diff --git a/doc/sql/mysql/db_jeelowcode.sql b/doc/sql/mysql/db_jeelowcode.sql new file mode 100644 index 0000000..fe59888 --- /dev/null +++ b/doc/sql/mysql/db_jeelowcode.sql @@ -0,0 +1,22344 @@ +/* + Navicat Premium Data Transfer + + Source Server : 内网-root + Source Server Type : MySQL + Source Server Version : 80022 + Source Host : 192.168.5.120:3306 + Source Schema : db_jeelowcode_gitee + + Target Server Type : MySQL + Target Server Version : 80022 + File Encoding : 65001 + + Date: 31/12/2024 13:47:11 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for act_evt_log +-- ---------------------------- +DROP TABLE IF EXISTS `act_evt_log`; +CREATE TABLE `act_evt_log` ( + `LOG_NR_` bigint(0) NOT NULL AUTO_INCREMENT, + `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DATA_` longblob NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `IS_PROCESSED_` tinyint(0) NULL DEFAULT 0, + PRIMARY KEY (`LOG_NR_`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_evt_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ge_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS `act_ge_bytearray`; +CREATE TABLE `act_ge_bytearray` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BYTES_` longblob NULL, + `GENERATED_` tinyint(0) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_BYTEARR_DEPL`(`DEPLOYMENT_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_BYTEARR_DEPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_re_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ge_bytearray +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ge_property +-- ---------------------------- +DROP TABLE IF EXISTS `act_ge_property`; +CREATE TABLE `act_ge_property` ( + `NAME_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `VALUE_` varchar(300) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REV_` int(0) NULL DEFAULT NULL, + PRIMARY KEY (`NAME_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ge_property +-- ---------------------------- +INSERT INTO `act_ge_property` VALUES ('batch.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('cfg.execution-related-entities-count', 'true', 1); +INSERT INTO `act_ge_property` VALUES ('cfg.task-related-entities-count', 'true', 1); +INSERT INTO `act_ge_property` VALUES ('common.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('entitylink.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('eventsubscription.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('identitylink.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('job.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('next.dbid', '1', 1); +INSERT INTO `act_ge_property` VALUES ('schema.history', 'create(6.8.0.0)', 1); +INSERT INTO `act_ge_property` VALUES ('schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('task.schema.version', '6.8.0.0', 1); +INSERT INTO `act_ge_property` VALUES ('variable.schema.version', '6.8.0.0', 1); + +-- ---------------------------- +-- Table structure for act_hi_actinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_actinst`; +CREATE TABLE `act_hi_actinst` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `TRANSACTION_ORDER_` int(0) NULL DEFAULT NULL, + `DURATION_` bigint(0) NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_START`(`START_TIME_`) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_END`(`END_TIME_`) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_PROCINST`(`PROC_INST_ID_`, `ACT_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_EXEC`(`EXECUTION_ID_`, `ACT_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_actinst +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_attachment +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_attachment`; +CREATE TABLE `act_hi_attachment` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `URL_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CONTENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_attachment +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_comment +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_comment`; +CREATE TABLE `act_hi_comment` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TIME_` datetime(3) NOT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACTION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `MESSAGE_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `FULL_MSG_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_comment +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_detail +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_detail`; +CREATE TABLE `act_hi_detail` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `VAR_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `TIME_` datetime(3) NOT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint(0) NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_PROC_INST`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_ACT_INST`(`ACT_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_TIME`(`TIME_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_NAME`(`NAME_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_TASK_ID`(`TASK_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_detail +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_entitylink`; +CREATE TABLE `act_hi_entitylink` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `LINK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ROOT_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ROOT_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_REF_SCOPE`(`REF_SCOPE_ID_`, `REF_SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_ROOT_SCOPE`(`ROOT_SCOPE_ID_`, `ROOT_SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_entitylink +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_identitylink`; +CREATE TABLE `act_hi_identitylink` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_USER`(`USER_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_TASK`(`TASK_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_PROCINST`(`PROC_INST_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_identitylink +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_procinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_procinst`; +CREATE TABLE `act_hi_procinst` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT 1, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint(0) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `END_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUPER_PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `PROC_INST_ID_`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PRO_INST_END`(`END_TIME_`) USING BTREE, + INDEX `ACT_IDX_HI_PRO_I_BUSKEY`(`BUSINESS_KEY_`) USING BTREE, + INDEX `ACT_IDX_HI_PRO_SUPER_PROCINST`(`SUPER_PROCESS_INSTANCE_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_procinst +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_taskinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_taskinst`; +CREATE TABLE `act_hi_taskinst` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint(0) NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PRIORITY_` int(0) NULL DEFAULT NULL, + `DUE_DATE_` datetime(3) NULL DEFAULT NULL, + `FORM_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_TASK_INST_PROCINST`(`PROC_INST_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_taskinst +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_tsk_log +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_tsk_log`; +CREATE TABLE `act_hi_tsk_log` ( + `ID_` bigint(0) NOT NULL AUTO_INCREMENT, + `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `TIME_STAMP_` timestamp(3) NOT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DATA_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_tsk_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_hi_varinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_varinst`; +CREATE TABLE `act_hi_varinst` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT 1, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `VAR_TYPE_` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint(0) NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_NAME_TYPE`(`NAME_`, `VAR_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_PROC_INST`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_TASK_ID`(`TASK_ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_EXE`(`EXECUTION_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_hi_varinst +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_bytearray`; +CREATE TABLE `act_id_bytearray` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_bytearray +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_group +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_group`; +CREATE TABLE `act_id_group` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_group +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_info +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_info`; +CREATE TABLE `act_id_info` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `USER_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `VALUE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PASSWORD_` longblob NULL, + `PARENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_info +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_membership +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_membership`; +CREATE TABLE `act_id_membership` ( + `USER_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `GROUP_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + PRIMARY KEY (`USER_ID_`, `GROUP_ID_`) USING BTREE, + INDEX `ACT_FK_MEMB_GROUP`(`GROUP_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_MEMB_GROUP` FOREIGN KEY (`GROUP_ID_`) REFERENCES `act_id_group` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MEMB_USER` FOREIGN KEY (`USER_ID_`) REFERENCES `act_id_user` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_membership +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_priv +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_priv`; +CREATE TABLE `act_id_priv` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_PRIV_NAME`(`NAME_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_priv +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_priv_mapping +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_priv_mapping`; +CREATE TABLE `act_id_priv_mapping` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `PRIV_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_PRIV_MAPPING`(`PRIV_ID_`) USING BTREE, + INDEX `ACT_IDX_PRIV_USER`(`USER_ID_`) USING BTREE, + INDEX `ACT_IDX_PRIV_GROUP`(`GROUP_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_PRIV_MAPPING` FOREIGN KEY (`PRIV_ID_`) REFERENCES `act_id_priv` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_priv_mapping +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_property +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_property`; +CREATE TABLE `act_id_property` ( + `NAME_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `VALUE_` varchar(300) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REV_` int(0) NULL DEFAULT NULL, + PRIMARY KEY (`NAME_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_property +-- ---------------------------- +INSERT INTO `act_id_property` VALUES ('schema.version', '6.8.0.0', 1); + +-- ---------------------------- +-- Table structure for act_id_token +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_token`; +CREATE TABLE `act_id_token` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `TOKEN_VALUE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TOKEN_DATE_` timestamp(3) NULL DEFAULT NULL, + `IP_ADDRESS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `USER_AGENT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TOKEN_DATA_` varchar(2000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_token +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_id_user +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_user`; +CREATE TABLE `act_id_user` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `FIRST_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `LAST_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DISPLAY_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EMAIL_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PWD_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PICTURE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_id_user +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_procdef_info +-- ---------------------------- +DROP TABLE IF EXISTS `act_procdef_info`; +CREATE TABLE `act_procdef_info` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `INFO_JSON_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_INFO_PROCDEF`(`PROC_DEF_ID_`) USING BTREE, + INDEX `ACT_IDX_INFO_PROCDEF`(`PROC_DEF_ID_`) USING BTREE, + INDEX `ACT_FK_INFO_JSON_BA`(`INFO_JSON_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_INFO_JSON_BA` FOREIGN KEY (`INFO_JSON_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_INFO_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_procdef_info +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_re_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_deployment`; +CREATE TABLE `act_re_deployment` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `DEPLOY_TIME_` timestamp(3) NULL DEFAULT NULL, + `DERIVED_FROM_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_re_deployment +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_re_model +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_model`; +CREATE TABLE `act_re_model` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `LAST_UPDATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `VERSION_` int(0) NULL DEFAULT NULL, + `META_INFO_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EDITOR_SOURCE_VALUE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EDITOR_SOURCE_EXTRA_VALUE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_MODEL_SOURCE`(`EDITOR_SOURCE_VALUE_ID_`) USING BTREE, + INDEX `ACT_FK_MODEL_SOURCE_EXTRA`(`EDITOR_SOURCE_EXTRA_VALUE_ID_`) USING BTREE, + INDEX `ACT_FK_MODEL_DEPLOYMENT`(`DEPLOYMENT_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_MODEL_DEPLOYMENT` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_re_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MODEL_SOURCE` FOREIGN KEY (`EDITOR_SOURCE_VALUE_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MODEL_SOURCE_EXTRA` FOREIGN KEY (`EDITOR_SOURCE_EXTRA_VALUE_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_re_model +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_re_procdef +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_procdef`; +CREATE TABLE `act_re_procdef` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `VERSION_` int(0) NOT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DGRM_RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HAS_START_FORM_KEY_` tinyint(0) NULL DEFAULT NULL, + `HAS_GRAPHICAL_NOTATION_` tinyint(0) NULL DEFAULT NULL, + `SUSPENSION_STATE_` int(0) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DERIVED_FROM_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DERIVED_VERSION_` int(0) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_PROCDEF`(`KEY_`, `VERSION_`, `DERIVED_VERSION_`, `TENANT_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_re_procdef +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_actinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_actinst`; +CREATE TABLE `act_ru_actinst` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint(0) NULL DEFAULT NULL, + `TRANSACTION_ORDER_` int(0) NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_START`(`START_TIME_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_END`(`END_TIME_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_PROC`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_PROC_ACT`(`PROC_INST_ID_`, `ACT_ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_EXEC`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_EXEC_ACT`(`EXECUTION_ID_`, `ACT_ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_TASK`(`TASK_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_actinst +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_deadletter_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_deadletter_job`; +CREATE TABLE `act_ru_deadletter_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_CORRELATION_ID`(`CORRELATION_ID_`) USING BTREE, + INDEX `ACT_IDX_DJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_DJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_DJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_deadletter_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_entitylink`; +CREATE TABLE `act_ru_entitylink` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `LINK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ROOT_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ROOT_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_REF_SCOPE`(`REF_SCOPE_ID_`, `REF_SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_ROOT_SCOPE`(`ROOT_SCOPE_ID_`, `ROOT_SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_entitylink +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_event_subscr +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_event_subscr`; +CREATE TABLE `act_ru_event_subscr` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `EVENT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EVENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACTIVITY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CONFIGURATION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATED_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EVENT_SUBSCR_CONFIG_`(`CONFIGURATION_`) USING BTREE, + INDEX `ACT_IDX_EVENT_SUBSCR_SCOPEREF_`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_EVENT_EXEC`(`EXECUTION_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_EVENT_EXEC` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_event_subscr +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_execution +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_execution`; +CREATE TABLE `act_ru_execution` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUPER_EXEC_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ROOT_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `IS_ACTIVE_` tinyint(0) NULL DEFAULT NULL, + `IS_CONCURRENT_` tinyint(0) NULL DEFAULT NULL, + `IS_SCOPE_` tinyint(0) NULL DEFAULT NULL, + `IS_EVENT_SCOPE_` tinyint(0) NULL DEFAULT NULL, + `IS_MI_ROOT_` tinyint(0) NULL DEFAULT NULL, + `SUSPENSION_STATE_` int(0) NULL DEFAULT NULL, + `CACHED_ENT_STATE_` int(0) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `IS_COUNT_ENABLED_` tinyint(0) NULL DEFAULT NULL, + `EVT_SUBSCR_COUNT_` int(0) NULL DEFAULT NULL, + `TASK_COUNT_` int(0) NULL DEFAULT NULL, + `JOB_COUNT_` int(0) NULL DEFAULT NULL, + `TIMER_JOB_COUNT_` int(0) NULL DEFAULT NULL, + `SUSP_JOB_COUNT_` int(0) NULL DEFAULT NULL, + `DEADLETTER_JOB_COUNT_` int(0) NULL DEFAULT NULL, + `EXTERNAL_WORKER_JOB_COUNT_` int(0) NULL DEFAULT NULL, + `VAR_COUNT_` int(0) NULL DEFAULT NULL, + `ID_LINK_COUNT_` int(0) NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EXEC_BUSKEY`(`BUSINESS_KEY_`) USING BTREE, + INDEX `ACT_IDC_EXEC_ROOT`(`ROOT_PROC_INST_ID_`) USING BTREE, + INDEX `ACT_IDX_EXEC_REF_ID_`(`REFERENCE_ID_`) USING BTREE, + INDEX `ACT_FK_EXE_PROCINST`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_FK_EXE_PARENT`(`PARENT_ID_`) USING BTREE, + INDEX `ACT_FK_EXE_SUPER`(`SUPER_EXEC_`) USING BTREE, + INDEX `ACT_FK_EXE_PROCDEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_EXE_PARENT` FOREIGN KEY (`PARENT_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXE_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXE_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `ACT_FK_EXE_SUPER` FOREIGN KEY (`SUPER_EXEC_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_execution +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_external_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_external_job`; +CREATE TABLE `act_ru_external_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RETRIES_` int(0) NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_CORRELATION_ID`(`CORRELATION_ID_`) USING BTREE, + INDEX `ACT_IDX_EJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_EJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_EJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + CONSTRAINT `ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXTERNAL_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_external_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_history_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_history_job`; +CREATE TABLE `act_ru_history_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RETRIES_` int(0) NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ADV_HANDLER_CFG_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_history_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_identitylink`; +CREATE TABLE `act_ru_identitylink` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_USER`(`USER_ID_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_GROUP`(`GROUP_ID_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_ATHRZ_PROCEDEF`(`PROC_DEF_ID_`) USING BTREE, + INDEX `ACT_FK_TSKASS_TASK`(`TASK_ID_`) USING BTREE, + INDEX `ACT_FK_IDL_PROCINST`(`PROC_INST_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_ATHRZ_PROCEDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_IDL_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TSKASS_TASK` FOREIGN KEY (`TASK_ID_`) REFERENCES `act_ru_task` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_identitylink +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_job`; +CREATE TABLE `act_ru_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RETRIES_` int(0) NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE, + INDEX `ACT_IDX_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE, + INDEX `ACT_IDX_JOB_CORRELATION_ID`(`CORRELATION_ID_`) USING BTREE, + INDEX `ACT_IDX_JOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_JOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_JOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE, + INDEX `ACT_FK_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_suspended_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_suspended_job`; +CREATE TABLE `act_ru_suspended_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RETRIES_` int(0) NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_CORRELATION_ID`(`CORRELATION_ID_`) USING BTREE, + INDEX `ACT_IDX_SJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_SJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_SJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_suspended_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_task +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_task`; +CREATE TABLE `act_ru_task` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DELEGATION_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PRIORITY_` int(0) NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `DUE_DATE_` datetime(3) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUSPENSION_STATE_` int(0) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + `FORM_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL, + `IS_COUNT_ENABLED_` tinyint(0) NULL DEFAULT NULL, + `VAR_COUNT_` int(0) NULL DEFAULT NULL, + `ID_LINK_COUNT_` int(0) NULL DEFAULT NULL, + `SUB_TASK_COUNT_` int(0) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_TASK_CREATE`(`CREATE_TIME_`) USING BTREE, + INDEX `ACT_IDX_TASK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_TASK_EXE`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_TASK_PROCINST`(`PROC_INST_ID_`) USING BTREE, + INDEX `ACT_FK_TASK_PROCDEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_TASK_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TASK_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TASK_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_task +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_timer_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_timer_job`; +CREATE TABLE `act_ru_timer_job` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RETRIES_` int(0) NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_CORRELATION_ID`(`CORRELATION_ID_`) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_DUEDATE`(`DUEDATE_`) USING BTREE, + INDEX `ACT_IDX_TJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_TJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_TJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_TIMER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_timer_job +-- ---------------------------- + +-- ---------------------------- +-- Table structure for act_ru_variable +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_variable`; +CREATE TABLE `act_ru_variable` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint(0) NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_RU_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_IDX_RU_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE, + INDEX `ACT_FK_VAR_BYTEARRAY`(`BYTEARRAY_ID_`) USING BTREE, + INDEX `ACT_IDX_VARIABLE_TASK_ID`(`TASK_ID_`) USING BTREE, + INDEX `ACT_FK_VAR_EXE`(`EXECUTION_ID_`) USING BTREE, + INDEX `ACT_FK_VAR_PROCINST`(`PROC_INST_ID_`) USING BTREE, + CONSTRAINT `ACT_FK_VAR_BYTEARRAY` FOREIGN KEY (`BYTEARRAY_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_VAR_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_VAR_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of act_ru_variable +-- ---------------------------- + +-- ---------------------------- +-- Table structure for bpm_form +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_form`; +CREATE TABLE `bpm_form` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单名', + `status` int(0) NULL DEFAULT NULL COMMENT '状态', + `conf` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单配置', + `fields` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单项的数组', + `remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '工作流的表单' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_form +-- ---------------------------- + +-- ---------------------------- +-- Table structure for bpm_oa_leave +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_oa_leave`; +CREATE TABLE `bpm_oa_leave` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户id', + `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假类型', + `reason` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原因', + `start_time` datetime(0) NOT NULL COMMENT '开始时间', + `end_time` datetime(0) NOT NULL COMMENT '结束时间', + `day` bigint(0) NULL DEFAULT NULL COMMENT '请假天数', + `result` int(0) NULL DEFAULT NULL COMMENT '请假的结果', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '对应的流程编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请假申请' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_oa_leave +-- ---------------------------- + +-- ---------------------------- +-- Table structure for bpm_process_definition_ext +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_process_definition_ext`; +CREATE TABLE `bpm_process_definition_ext` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程定义的编号', + `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程模型的编号', + `description` varchar(2550) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述', + `form_type` int(0) NULL DEFAULT NULL COMMENT '表单类型', + `form_id` bigint(0) NULL DEFAULT NULL COMMENT '表单id', + `form_conf` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '表单配置', + `form_fields` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '表单项的数组', + `form_custom_create_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '自定义表单的提交路径', + `form_custom_view_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '自定义表单的查看路径', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '流程定义的拓展表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_process_definition_ext +-- ---------------------------- +INSERT INTO `bpm_process_definition_ext` VALUES (1, 'flow_test_old:1:4fb36db2-8d00-11ef-a4f0-0ae0afb368ca', 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', '测试', 20, NULL, NULL, NULL, 'bpm/oa/leave/create', 'bpm/oa/leave/detail', '1', '2024-10-18 11:23:15', '1', '2024-10-18 11:23:15', b'0', 1); +INSERT INTO `bpm_process_definition_ext` VALUES (2, 'flow_test_old:2:3873c776-8d01-11ef-a4f0-0ae0afb368ca', 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', '测试', 20, NULL, NULL, NULL, 'bpm/oa/leave/create', 'bpm/oa/leave/detail', '1', '2024-10-18 11:29:46', '1', '2024-10-18 11:29:46', b'0', 1); +INSERT INTO `bpm_process_definition_ext` VALUES (3, 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', '测试', 10, 1820725669344575489, '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"qj_time\":{\"type\":\"datetimerange\",\"controlType\":\"date\",\"label\":\"请假时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":[]},\"qj_yy\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"请假原因\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"tableDesignId\":\"1820725467384643585\",\"group\":[]}', NULL, 'bpm/oa/leave/create', 'bpm/oa/leave/detail', '1', '2024-10-18 14:54:14', '1', '2024-10-18 14:54:14', b'0', 1); + +-- ---------------------------- +-- Table structure for bpm_process_instance_copy +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_process_instance_copy`; +CREATE TABLE `bpm_process_instance_copy` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `start_user_id` bigint(0) NOT NULL COMMENT '发起流程的用户编号', + `process_instance_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程名', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程实例的编号', + `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务编号', + `task_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '任务名称', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `reason` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抄送原因', + `category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程分类', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程抄送' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_process_instance_copy +-- ---------------------------- + +-- ---------------------------- +-- Table structure for bpm_process_instance_ext +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_process_instance_ext`; +CREATE TABLE `bpm_process_instance_ext` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `start_user_id` bigint(0) NOT NULL COMMENT '发起流程的用户编号', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程实例的名字', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程实例的编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程定义的编号', + `category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程分类', + `status` tinyint(0) NOT NULL COMMENT '流程实例的状态', + `result` tinyint(0) NOT NULL COMMENT '流程实例的结果', + `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间', + `form_variables` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '表单值', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 325 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程实例的拓展' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_process_instance_ext +-- ---------------------------- +INSERT INTO `bpm_process_instance_ext` VALUES (300, 1, '测试', 'c43e0185-e5a0-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '2', 2, 4, '2024-03-19 11:47:10', '{}', '1', '2024-03-19 11:28:35', '1', '2024-03-19 11:47:10', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (301, 1, '测试', 'a915284e-e5a3-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '2', 2, 4, '2024-08-22 09:52:58', '{\"Fk831on5w6twq3\":\"请假\"}', '1', '2024-03-19 11:49:17', '1', '2024-08-22 09:52:58', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (302, 1, '测试', '17b32509-e5bd-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '2', 2, 2, '2024-03-19 15:01:23', '{}', '1', '2024-03-19 14:51:20', '1', '2024-03-19 15:01:23', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (303, 1, '测试', 'fc99584f-e5c5-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '2', 2, 4, '2024-08-22 09:52:55', '{}', '1', '2024-03-19 15:55:00', '1', '2024-08-22 09:52:55', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (304, 1, '测试', '1c395a78-e5c6-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '2', 2, 4, '2024-08-22 09:52:53', '{\"Fk831on5w6twq3\":\"111111\"}', '1', '2024-03-19 15:55:54', '1', '2024-08-22 09:52:53', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (305, 1, '新流程测试', 'ae3f1fa3-602a-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 4, '2024-08-22 10:24:27', NULL, '1', '2024-08-22 10:03:10', '1', '2024-08-22 10:24:27', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (306, 1, '新流程测试', '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 1, 1, NULL, NULL, '1', '2024-08-22 10:31:11', '1', '2024-08-22 10:31:11', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (307, 1, '新流程测试', '7f6de497-6060-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 3, NULL, NULL, '1', '2024-08-22 16:28:24', '103', '2024-08-22 16:36:38', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (308, 1, '新流程测试', '3b8750de-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 4, '2024-08-22 16:41:18', NULL, '1', '2024-08-22 16:40:49', '1', '2024-08-22 16:41:18', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (309, 1, '新流程测试', '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 4, '2024-08-22 16:51:15', NULL, '1', '2024-08-22 16:41:31', '1', '2024-08-22 16:51:15', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (310, 1, '新流程测试', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 2, '2024-08-23 11:05:30', NULL, '1', '2024-08-22 16:51:44', '1', '2024-08-23 11:05:30', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (311, 103, '新流程测试', '751746e4-60ed-11ef-ace4-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', 2, 2, '2024-08-23 10:44:28', NULL, '103', '2024-08-23 09:17:26', '103', '2024-08-23 10:44:28', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (312, 1, '新流程测试', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 3, NULL, NULL, '1', '2024-08-23 10:30:02', '103', '2024-08-23 10:59:41', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (313, 1, '新流程测试', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 2, '2024-08-23 11:11:22', NULL, '1', '2024-08-23 11:05:20', '1', '2024-08-23 11:11:22', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (314, 1, '新流程测试', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 52, NULL, NULL, '1', '2024-08-23 11:13:08', '1', '2024-08-23 11:17:56', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (315, 1, '新流程测试', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 2, '2024-08-23 11:26:58', NULL, '1', '2024-08-23 11:26:00', '1', '2024-08-23 11:26:58', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (316, 1, '新流程测试', 'de75d36a-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 52, NULL, NULL, '1', '2024-08-23 11:43:33', '1', '2024-08-23 11:43:46', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (317, 1, '新流程测试', 'f3b372b9-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 52, NULL, NULL, '1', '2024-08-23 11:44:08', '103', '2024-08-23 11:44:29', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (318, 1, '新流程测试', '0b06f9b8-6102-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 52, '2024-08-23 11:49:52', NULL, '1', '2024-08-23 11:44:47', '103', '2024-08-23 11:49:52', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (319, 1, '新流程测试', 'a20e2d11-6115-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 52, '2024-08-23 14:05:16', NULL, '1', '2024-08-23 14:05:01', '1', '2024-08-23 14:05:16', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (320, 1, '新流程测试', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', 2, 4, '2024-08-24 09:26:56', NULL, '1', '2024-08-23 14:49:30', '1', '2024-08-24 09:26:56', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (321, 1, '流程测试_1', '3b00c02f-61be-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', '1', 2, 4, '2024-08-24 13:57:18', NULL, '1', '2024-08-24 10:11:53', '1', '2024-08-24 13:57:18', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (322, 1, '流程测试_1', 'caa2faca-61dd-11ef-a290-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', '1', 1, 1, NULL, NULL, '1', '2024-08-24 13:57:49', '1', '2024-08-24 13:57:49', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (323, 1, '改回旧流程测试', 'f1667122-8d1f-11ef-84c4-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', '1', 2, 2, '2024-10-18 16:28:31', '{\"qj_time\":\"2024-10-18 00:00:00,2024-10-25 00:00:00\",\"qj_yy\":\"测试\"}', '1', '2024-10-18 15:09:41', '1', '2024-10-18 16:28:31', b'0', 1); +INSERT INTO `bpm_process_instance_ext` VALUES (324, 1, '改回旧流程测试', '50b19f0b-8d2c-11ef-84c4-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', '1', 1, 1, NULL, '{\"qj_time\":\"2024-11-05 00:00:00,2024-11-10 00:00:00\",\"qj_yy\":\"测试\"}', '1', '2024-10-18 16:38:14', '1', '2024-10-18 16:38:15', b'0', 1); + +-- ---------------------------- +-- Table structure for bpm_process_instance_ext_form +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_process_instance_ext_form`; +CREATE TABLE `bpm_process_instance_ext_form` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `process_instance_ext_id` bigint(0) NULL DEFAULT NULL COMMENT '流程实例拓展id', + `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务id', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程实例的编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程定义的编号', + `definition_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '节点key', + `jeelowcode_form_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '表单类型', + `jeelowcode_dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `jeelowcode_desform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单设计id', + `form_variables` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '表单值', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 329 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '流程表单数据存储' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_process_instance_ext_form +-- ---------------------------- +INSERT INTO `bpm_process_instance_ext_form` VALUES (305, 305, NULL, 'ae3f1fa3-602a-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-22 00:00:00,2024-08-23 00:00:00\",\"qj_yy\":\"2222\",\"id\":\"1826439938296016898\"}', '1', '2024-08-22 10:03:11', '1', '2024-08-22 10:03:11', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (306, 306, NULL, '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-22 00:00:00,2024-08-23 00:00:00\",\"qj_yy\":\"请假测试\",\"id\":\"1826446988023459842\"}', '1', '2024-08-22 10:31:11', '1', '2024-08-22 10:31:11', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (307, 306, NULL, '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"测试 22\",\"fields_3190211\":\"110\",\"fields_8215121\":\"dic_1\",\"fields_6632076\":\"dic_2\",\"$fields_8215121\":\"字典1\",\"$fields_6632076\":\"字典2\"}', '103', '2024-08-22 16:10:05', '103', '2024-08-22 16:10:05', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (308, 307, NULL, '7f6de497-6060-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-22 00:00:00,2024-08-23 00:00:00\",\"qj_yy\":\"测试请假\",\"id\":\"1826536886319505410\"}', '1', '2024-08-22 16:28:25', '1', '2024-08-22 16:28:25', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (309, 307, NULL, '7f6de497-6060-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"22\",\"fields_3190211\":\"110\",\"fields_8215121\":\"\",\"fields_6632076\":\"\"}', '103', '2024-08-22 16:34:41', '103', '2024-08-22 16:34:41', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (310, 308, NULL, '3b8750de-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-22 00:00:00,2024-08-23 00:00:00\",\"qj_yy\":\"22222\",\"id\":\"1826540011533164546\"}', '1', '2024-08-22 16:40:50', '1', '2024-08-22 16:40:50', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (311, 309, NULL, '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-08 00:00:00\",\"qj_yy\":\"222\",\"id\":\"1826540186116874242\"}', '1', '2024-08-22 16:41:32', '1', '2024-08-22 16:41:32', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (312, 309, NULL, '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"22\",\"fields_3190211\":\"111\",\"fields_8215121\":\"dic_1\",\"fields_6632076\":\"dic_1\",\"$fields_8215121\":\"字典1\",\"$fields_6632076\":\"字典1\"}', '103', '2024-08-22 16:42:18', '103', '2024-08-22 16:42:18', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (313, 310, '-1', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-22 00:00:00,2024-08-23 00:00:00\",\"qj_yy\":\"2222222222222\",\"id\":\"1826542754708627458\"}', '1', '2024-08-22 16:51:45', '1', '2024-08-22 16:51:45', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (314, 310, 'c1887945-6063-11ef-b273-d017c28703e7', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"222\",\"fields_3190211\":\"111\",\"fields_8215121\":\"dic_1\",\"fields_6632076\":\"dic_2\",\"$fields_8215121\":\"字典1\",\"$fields_6632076\":\"字典2\"}', '103', '2024-08-22 16:52:21', '103', '2024-08-22 16:52:21', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (315, 310, '89ba86da-6069-11ef-ace4-d017c28703e7', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"222\",\"fields_3190211\":\"110\",\"fields_8215121\":\"dic_1\",\"fields_6632076\":\"dic_2\",\"$fields_8215121\":\"字典1\",\"$fields_6632076\":\"字典2\"}', '103', '2024-08-22 17:33:46', '103', '2024-08-22 17:33:46', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (316, 311, '-1', '751746e4-60ed-11ef-ace4-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-23 00:00:00,2024-08-24 00:00:00\",\"qj_yy\":\"测试\",\"id\":\"1826790817029226497\"}', '103', '2024-08-23 09:17:27', '103', '2024-08-23 09:17:27', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (317, 311, '75221c60-60ed-11ef-ace4-d017c28703e7', '751746e4-60ed-11ef-ace4-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 'form', NULL, 1826445808547426305, '{\"fields_7337406\":\"2222\",\"fields_3190211\":\"111\",\"fields_8215121\":\"dic_1\",\"fields_6632076\":\"dic_2\",\"$fields_8215121\":\"字典1\",\"$fields_6632076\":\"字典2\"}', '103', '2024-08-23 10:26:59', '103', '2024-08-23 10:26:59', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (318, 312, '-1', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-08 00:00:00,2024-08-09 00:00:00\",\"qj_yy\":\"111\",\"id\":\"1826809089615265794\"}', '1', '2024-08-23 10:30:03', '1', '2024-08-23 10:30:03', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (319, 313, '-1', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-09 00:00:00\",\"qj_yy\":\"222\",\"id\":\"1826817967643979778\"}', '1', '2024-08-23 11:05:21', '1', '2024-08-23 11:05:21', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (320, 314, '-1', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-02 00:00:00\",\"qj_yy\":\"222\",\"id\":\"1826819933199691778\"}', '1', '2024-08-23 11:13:09', '1', '2024-08-23 11:13:09', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (321, 315, '-1', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-02 00:00:00\",\"qj_yy\":\"222\",\"id\":\"1826823172225789953\"}', '1', '2024-08-23 11:26:01', '1', '2024-08-23 11:26:01', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (322, 316, '-1', 'de75d36a-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-07 00:00:00,2024-08-09 00:00:00\",\"qj_yy\":\"222\",\"id\":\"1826827586563006466\"}', '1', '2024-08-23 11:43:33', '1', '2024-08-23 11:43:33', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (323, 317, '-1', 'f3b372b9-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-23 00:00:00,2024-08-24 00:00:00\",\"qj_yy\":\"22\",\"id\":\"1826827736555511809\"}', '1', '2024-08-23 11:44:09', '1', '2024-08-23 11:44:09', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (324, 318, '-1', '0b06f9b8-6102-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-02 00:00:00\",\"qj_yy\":\"cw\",\"id\":\"1826827900737347585\"}', '1', '2024-08-23 11:44:48', '1', '2024-08-23 11:44:48', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (325, 319, '-1', 'a20e2d11-6115-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-01 00:00:00,2024-08-02 00:00:00\",\"qj_yy\":\"测试驳回\",\"id\":\"1826863189660839938\"}', '1', '2024-08-23 14:05:02', '1', '2024-08-23 14:05:02', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (326, 320, '-1', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-23 00:00:00,2024-08-24 00:00:00\",\"qj_yy\":\"111\",\"id\":\"1826874384254021633\"}', '1', '2024-08-23 14:49:31', '1', '2024-08-23 14:49:31', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (327, 321, '-1', '3b00c02f-61be-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Event_15nmdkm', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-24 00:00:00,2024-08-25 00:00:00\",\"qj_yy\":\"测试\",\"id\":\"1827166909191704577\"}', '1', '2024-08-24 10:11:54', '1', '2024-08-24 10:11:54', b'0', 1); +INSERT INTO `bpm_process_instance_ext_form` VALUES (328, 322, '-1', 'caa2faca-61dd-11ef-a290-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Event_15nmdkm', 'form', 1820725467384643585, 1820725669344575489, '{\"qj_time\":\"2024-08-24 00:00:00,2024-08-25 00:00:00\",\"qj_yy\":\"222222222\",\"id\":\"1827223764626636802\"}', '1', '2024-08-24 13:57:49', '1', '2024-08-24 13:57:49', b'0', 1); + +-- ---------------------------- +-- Table structure for bpm_task_assign_rule +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_task_assign_rule`; +CREATE TABLE `bpm_task_assign_rule` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `model_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程模型的编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '流程定义的编号', + `task_definition_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程任务定义的 key', + `type` tinyint(0) NULL DEFAULT NULL COMMENT '规则类型', + `options` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '规则值,JSON 数组', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + `jeelowcode_form_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '表单类型', + `jeelowcode_dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `jeelowcode_desform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单设计id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 319 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'Bpm 任务规则表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_task_assign_rule +-- ---------------------------- +INSERT INTO `bpm_task_assign_rule` VALUES (276, 'c90ba10f-e59e-11ee-92d3-d017c28703e7', '', 'Activity_14w6rax', 21, '[103]', '1', '2024-03-19 11:27:23', '1', '2024-03-19 11:48:55', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (277, 'c90ba10f-e59e-11ee-92d3-d017c28703e7', '', 'Activity_0unr2qy', 10, '[1]', '1', '2024-03-19 11:27:42', '1', '2024-03-19 11:27:42', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (278, 'c90ba10f-e59e-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', 'Activity_14w6rax', 21, '[103,104,105,106,107,108,109]', '1', '2024-03-19 11:28:12', '1', '2024-03-19 11:28:12', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (279, 'c90ba10f-e59e-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', 'Activity_0unr2qy', 10, '[1]', '1', '2024-03-19 11:28:12', '1', '2024-03-19 11:28:12', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (280, 'd49694a7-4eda-11ef-922a-d017c28703e7', '', 'Activity_1050ksl', 30, '[1,103]', '1', '2024-08-03 09:14:08', '1', '2024-08-03 17:54:51', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (281, 'd49694a7-4eda-11ef-922a-d017c28703e7', '', 'Activity_0rteubl', 22, '[2]', '1', '2024-08-03 09:14:48', '1', '2024-08-03 17:15:16', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (282, 'd49694a7-4eda-11ef-922a-d017c28703e7', 'text_flow:1:fe8dff39-5135-11ef-a5d2-d017c28703e7', 'Activity_1050ksl', 10, '[146]', '1', '2024-08-03 09:16:22', '1', '2024-08-03 09:16:22', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (283, 'd49694a7-4eda-11ef-922a-d017c28703e7', 'text_flow:1:fe8dff39-5135-11ef-a5d2-d017c28703e7', 'Activity_0rteubl', 10, '[1]', '1', '2024-08-03 09:16:22', '1', '2024-08-03 09:16:22', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (284, 'd49694a7-4eda-11ef-922a-d017c28703e7', '', 'Activity_1bdhvqv', 10, '[1]', '1', '2024-08-05 15:27:24', '1', '2024-08-05 15:27:24', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (285, 'd49694a7-4eda-11ef-922a-d017c28703e7', 'text_flow:2:35f1314a-52fc-11ef-b089-d017c28703e7', 'Activity_1050ksl', 30, '[1,103]', '1', '2024-08-05 15:27:47', '1', '2024-08-05 15:27:47', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (286, 'd49694a7-4eda-11ef-922a-d017c28703e7', 'text_flow:2:35f1314a-52fc-11ef-b089-d017c28703e7', 'Activity_0rteubl', 22, '[2]', '1', '2024-08-05 15:27:47', '1', '2024-08-05 15:27:47', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (287, 'd49694a7-4eda-11ef-922a-d017c28703e7', 'text_flow:2:35f1314a-52fc-11ef-b089-d017c28703e7', 'Activity_1bdhvqv', 10, '[1]', '1', '2024-08-05 15:27:47', '1', '2024-08-05 15:27:47', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (288, 'b460058b-53c1-11ef-901e-c22bf95b2d16', '', 'Event_031ywfu', NULL, NULL, '1', '2024-08-06 16:23:53', '1', '2024-08-06 16:23:53', b'0', 1, 'form', 1820725467384643585, 1820725669344575489); +INSERT INTO `bpm_task_assign_rule` VALUES (289, 'b460058b-53c1-11ef-901e-c22bf95b2d16', '', 'Activity_0i1dsu8', 10, '[1]', '1', '2024-08-06 16:43:51', '1', '2024-08-22 10:59:02', b'0', 1, 'defalut', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (290, 'b460058b-53c1-11ef-901e-c22bf95b2d16', '', 'Activity_0g24kl8', 10, '[1]', '1', '2024-08-06 16:43:57', '1', '2024-08-06 16:43:57', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (291, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Event_031ywfu', NULL, NULL, '1', '2024-08-06 17:16:13', '1', '2024-08-06 17:16:13', b'0', 1, 'form', 1820725467384643585, 1820725669344575489); +INSERT INTO `bpm_task_assign_rule` VALUES (292, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0i1dsu8', 10, '[1]', '1', '2024-08-06 17:16:13', '1', '2024-08-22 11:24:41', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (293, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', 'Activity_0g24kl8', 10, '[1]', '1', '2024-08-06 17:16:13', '1', '2024-08-06 17:16:13', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (294, 'b460058b-53c1-11ef-901e-c22bf95b2d16', '', 'Activity_1qiu0fl', 10, '[1]', '1', '2024-08-23 10:29:29', '1', '2024-08-23 10:29:29', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (295, 'b460058b-53c1-11ef-901e-c22bf95b2d16', '', 'Activity_1x64hb2', 10, '[1]', '1', '2024-08-23 10:29:36', '1', '2024-08-23 10:29:36', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (296, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Event_031ywfu', NULL, NULL, '1', '2024-08-23 10:29:47', '1', '2024-08-23 10:29:47', b'0', 1, 'form', 1820725467384643585, 1820725669344575489); +INSERT INTO `bpm_task_assign_rule` VALUES (297, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Activity_0i1dsu8', 10, '[1]', '1', '2024-08-23 10:29:47', '1', '2024-08-23 16:13:39', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (298, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Activity_0g24kl8', 10, '[1]', '1', '2024-08-23 10:29:47', '1', '2024-08-23 16:13:48', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (299, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Activity_1qiu0fl', 10, '[1]', '1', '2024-08-23 10:29:47', '1', '2024-08-23 16:13:54', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (300, 'b460058b-53c1-11ef-901e-c22bf95b2d16', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', 'Activity_1x64hb2', 10, '[1]', '1', '2024-08-23 10:29:47', '1', '2024-08-23 16:14:01', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (301, '1820bcf9-61b8-11ef-8830-d017c28703e7', '', 'Event_15nmdkm', NULL, NULL, '1', '2024-08-24 10:08:21', '1', '2024-08-24 10:08:21', b'0', 1, 'form', 1820725467384643585, 1820725669344575489); +INSERT INTO `bpm_task_assign_rule` VALUES (302, '1820bcf9-61b8-11ef-8830-d017c28703e7', '', 'Activity_0abli6c', 30, '[117]', '1', '2024-08-24 10:09:06', '1', '2024-08-24 10:09:06', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (303, '1820bcf9-61b8-11ef-8830-d017c28703e7', '', 'Activity_0b8z050', 30, '[117]', '1', '2024-08-24 10:09:20', '1', '2024-08-24 10:09:20', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (304, '1820bcf9-61b8-11ef-8830-d017c28703e7', '', 'Activity_06p41z0', 30, '[117]', '1', '2024-08-24 10:09:33', '1', '2024-08-24 10:09:33', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (305, '1820bcf9-61b8-11ef-8830-d017c28703e7', '', 'Activity_0zwnvlq', 30, '[117]', '1', '2024-08-24 10:09:56', '1', '2024-08-24 10:09:56', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (306, '1820bcf9-61b8-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Event_15nmdkm', NULL, NULL, '1', '2024-08-24 10:10:22', '1', '2024-08-24 10:10:22', b'0', 1, 'form', 1820725467384643585, 1820725669344575489); +INSERT INTO `bpm_task_assign_rule` VALUES (307, '1820bcf9-61b8-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Activity_0abli6c', 30, '[117]', '1', '2024-08-24 10:10:22', '1', '2024-08-24 10:10:22', b'0', 1, 'form', NULL, 1826445808547426305); +INSERT INTO `bpm_task_assign_rule` VALUES (308, '1820bcf9-61b8-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Activity_0b8z050', 30, '[117]', '1', '2024-08-24 10:10:22', '1', '2024-08-24 10:10:22', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (309, '1820bcf9-61b8-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Activity_06p41z0', 30, '[117]', '1', '2024-08-24 10:10:22', '1', '2024-08-24 10:10:22', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (310, '1820bcf9-61b8-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', 'Activity_0zwnvlq', 30, '[117]', '1', '2024-08-24 10:10:22', '1', '2024-08-24 10:10:22', b'0', 1, 'defalut', NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (311, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', '', 'Activity_0yfjhpm', 30, '[1]', '1', '2024-10-18 11:21:20', '1', '2024-10-18 11:21:20', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (312, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', '', 'Activity_0xogghj', 30, '[1,104]', '1', '2024-10-18 11:21:30', '1', '2024-10-18 11:29:40', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (313, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:1:4fb36db2-8d00-11ef-a4f0-0ae0afb368ca', 'Activity_0yfjhpm', 30, '[1]', '1', '2024-10-18 11:23:15', '1', '2024-10-18 11:23:15', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (314, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:1:4fb36db2-8d00-11ef-a4f0-0ae0afb368ca', 'Activity_0xogghj', 30, '[1]', '1', '2024-10-18 11:23:15', '1', '2024-10-18 11:23:15', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (315, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:2:3873c776-8d01-11ef-a4f0-0ae0afb368ca', 'Activity_0yfjhpm', 30, '[1]', '1', '2024-10-18 11:29:46', '1', '2024-10-18 11:29:46', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (316, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:2:3873c776-8d01-11ef-a4f0-0ae0afb368ca', 'Activity_0xogghj', 30, '[1,104]', '1', '2024-10-18 11:29:46', '1', '2024-10-18 11:29:46', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (317, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', 'Activity_0yfjhpm', 30, '[1]', '1', '2024-10-18 14:54:14', '1', '2024-10-18 14:54:14', b'0', 1, NULL, NULL, NULL); +INSERT INTO `bpm_task_assign_rule` VALUES (318, 'ddd509ad-8cff-11ef-a4f0-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', 'Activity_0xogghj', 30, '[1,104]', '1', '2024-10-18 14:54:14', '1', '2024-10-18 14:54:14', b'0', 1, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for bpm_task_ext +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_task_ext`; +CREATE TABLE `bpm_task_ext` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `assignee_user_id` bigint(0) NULL DEFAULT NULL COMMENT '任务的审批人', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任务的名字', + `task_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务的编号', + `result` tinyint(0) NOT NULL COMMENT '任务的结果', + `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '审批建议', + `end_time` datetime(0) NULL DEFAULT NULL COMMENT '任务的结束时间', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程实例的编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '流程定义的编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 414 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '工作流的流程任务的拓展表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_task_ext +-- ---------------------------- +INSERT INTO `bpm_task_ext` VALUES (351, 103, '领导审批', 'c44cce9b-e5a0-11ee-92d3-d017c28703e7', 4, '主动取消任务,原因:没理由', '2024-03-19 11:47:11', 'c43e0185-e5a0-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 11:28:35', '1', '2024-03-19 11:47:11', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (352, 103, '领导审批', 'a91d8cc6-e5a3-11ee-92d3-d017c28703e7', 4, '主动取消任务,原因:2', '2024-08-22 09:52:58', 'a915284e-e5a3-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 11:49:17', '1', '2024-08-22 09:52:58', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (353, 1, '领导审批', '17bbd79f-e5bd-11ee-92d3-d017c28703e7', 2, '可以', '2024-03-19 14:59:37', '17b32509-e5bd-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 14:51:20', '1', '2024-03-19 14:59:38', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (354, 1, 'HR审批', '3fb334f7-e5be-11ee-92d3-d017c28703e7', 2, '1', '2024-03-19 15:01:23', '17b32509-e5bd-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 14:59:37', '1', '2024-03-19 15:01:24', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (355, 104, '领导审批', 'fca25905-e5c5-11ee-92d3-d017c28703e7', 4, '主动取消任务,原因:2', '2024-08-22 09:52:56', 'fc99584f-e5c5-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 15:55:00', '1', '2024-08-22 09:52:56', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (356, 1, '领导审批', '1c420d10-e5c6-11ee-92d3-d017c28703e7', 4, '主动取消任务,原因:2', '2024-08-22 09:52:54', '1c395a78-e5c6-11ee-92d3-d017c28703e7', 'num_test:1:b6407684-e5a0-11ee-92d3-d017c28703e7', '1', '2024-03-19 15:55:54', '1', '2024-08-22 09:52:54', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (357, 1, '部门管理员审核', 'ae5566cf-602a-11ef-a4cc-d017c28703e7', 4, '主动取消任务,原因:222', '2024-08-22 10:24:28', 'ae3f1fa3-602a-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 10:03:10', '1', '2024-08-22 10:24:28', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (358, 103, '部门管理员审核', '9811cc7e-602e-11ef-a4cc-d017c28703e7', 2, NULL, '2024-08-22 16:10:04', '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 10:31:11', '103', '2024-08-22 16:10:04', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (361, 103, '总经理审核', 'ef6ae6be-605d-11ef-97e0-d017c28703e7', 8, '测试', NULL, '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:10:04', '103', '2024-08-22 16:18:41', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (362, 1, '总经理审核', 'a762bfbaf92f42c5b8d4763c45f4aaf5', 8, '111', NULL, '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:18:41', '1', '2024-08-22 16:25:22', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (363, 103, '总经理审核', 'c28d619ac6c7488ea5148bbbc750e790', 1, NULL, NULL, '9808cbc2-602e-11ef-a4cc-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 16:25:22', '1', '2024-08-22 16:25:22', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (364, 103, '部门管理员审核', '7f77cfb3-6060-11ef-97e0-d017c28703e7', 2, NULL, '2024-08-22 16:34:40', '7f6de497-6060-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 16:28:24', '103', '2024-08-22 16:34:41', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (365, 103, '总经理审核', '5f8683dc-6061-11ef-97e0-d017c28703e7', 3, '2222', '2024-08-22 16:36:39', '7f6de497-6060-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:34:40', '103', '2024-08-22 16:36:39', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (366, 1, '部门管理员审核', '3b90edda-6062-11ef-97e0-d017c28703e7', 4, '主动取消任务,原因:222', '2024-08-22 16:41:19', '3b8750de-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 16:40:49', '1', '2024-08-22 16:41:19', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (367, 103, '部门管理员审核', '546150d9-6062-11ef-97e0-d017c28703e7', 2, NULL, '2024-08-22 16:42:17', '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 16:41:31', '103', '2024-08-22 16:42:18', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (368, 103, '总经理审核', '6fcea5d2-6062-11ef-97e0-d017c28703e7', 5, '22222', '2024-08-22 16:42:37', '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:42:17', '103', '2024-08-22 16:42:37', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (369, 103, '部门管理员审核', '7b8a5727-6062-11ef-97e0-d017c28703e7', 4, '主动取消任务,原因:22', '2024-08-22 16:51:16', '5457b3dd-6062-11ef-97e0-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:42:37', '1', '2024-08-22 16:51:16', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (370, 103, '部门管理员审核', 'c1887945-6063-11ef-b273-d017c28703e7', 2, NULL, '2024-08-22 16:52:20', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 16:51:44', '103', '2024-08-22 16:52:21', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (371, 1, '总经理审核', 'd78549de-6063-11ef-b273-d017c28703e7', 5, '测试回退', '2024-08-22 17:33:08', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 16:52:21', '1', '2024-08-22 17:33:08', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (372, 103, '部门管理员审核', '89ba86da-6069-11ef-ace4-d017c28703e7', 2, NULL, '2024-08-22 17:33:45', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '1', '2024-08-22 17:33:07', '103', '2024-08-22 17:33:45', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (373, 1, '总经理审核', 'a03253d2-6069-11ef-ace4-d017c28703e7', 2, '2222', '2024-08-23 11:05:29', 'c174ca29-6063-11ef-b273-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-22 17:33:45', '1', '2024-08-23 11:05:31', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (374, 103, '部门管理员审核', '75221c60-60ed-11ef-ace4-d017c28703e7', 2, NULL, '2024-08-23 10:26:58', '751746e4-60ed-11ef-ace4-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-23 09:17:26', '103', '2024-08-23 10:26:59', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (375, 103, '总经理审核', '2ba4bde9-60f7-11ef-ace4-d017c28703e7', 2, '', '2024-08-23 10:44:27', '751746e4-60ed-11ef-ace4-d017c28703e7', 'new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16', '103', '2024-08-23 10:26:58', '103', '2024-08-23 10:44:29', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (376, 1, '部门管理员审核', '99cf8fdb-60f7-11ef-ace4-d017c28703e7', 2, '', '2024-08-23 10:44:47', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 10:30:03', '1', '2024-08-23 10:44:48', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (377, 103, '总经理审核', 'a92d8326-60f9-11ef-85e2-d017c28703e7', 2, '', '2024-08-23 10:45:21', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 10:44:47', '103', '2024-08-23 10:45:21', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (378, 103, '财务确认', 'bd09969f-60f9-11ef-85e2-d017c28703e7', 2, '', '2024-08-23 10:45:26', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 10:45:21', '103', '2024-08-23 10:45:27', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (379, 1, '确认请假', 'c01290e7-60f9-11ef-85e2-d017c28703e7', 51, '驳回1', '2024-08-23 10:58:15', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 10:45:26', '1', '2024-08-23 10:58:15', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (380, 103, '财务确认', '89eb464d-60fb-11ef-a51a-d017c28703e7', 51, '驳回2', '2024-08-23 10:59:07', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 10:58:14', '103', '2024-08-23 10:59:07', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (381, 103, '总经理审核', 'a90acdd2-60fb-11ef-a51a-d017c28703e7', 51, '驳回3', '2024-08-23 10:59:21', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 10:59:06', '103', '2024-08-23 10:59:21', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (382, 103, '部门管理员审核', 'b1ad0a27-60fb-11ef-a51a-d017c28703e7', 51, '驳回4', '2024-08-23 10:59:42', '99c3f70f-60f7-11ef-ace4-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 10:59:21', '103', '2024-08-23 10:59:42', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (383, 103, '部门管理员审核', '87e43655-60fc-11ef-a51a-d017c28703e7', 2, '444', '2024-08-23 11:05:43', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:05:20', '103', '2024-08-23 11:05:44', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (384, 103, '总经理审核', '959268e4-60fc-11ef-a51a-d017c28703e7', 2, '555', '2024-08-23 11:05:48', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:05:43', '103', '2024-08-23 11:05:49', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (385, 103, '财务确认', '98b294ac-60fc-11ef-a51a-d017c28703e7', 51, '222', '2024-08-23 11:05:55', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:05:48', '103', '2024-08-23 11:05:55', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (386, 1, '总经理审核', '9c71bf91-60fc-11ef-a51a-d017c28703e7', 2, '驳回2', '2024-08-23 11:10:57', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:05:54', '1', '2024-08-23 11:10:58', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (387, 103, '财务确认', '5120532a-60fd-11ef-9002-d017c28703e7', 2, '驳回3', '2024-08-23 11:11:09', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:10:58', '103', '2024-08-23 11:11:10', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (388, 1, '确认请假', '5815a2d2-60fd-11ef-9002-d017c28703e7', 2, '驳回4', '2024-08-23 11:11:21', '87c78689-60fc-11ef-a51a-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:11:09', '1', '2024-08-23 11:11:23', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (389, 103, '部门管理员审核', '9ef95f36-60fd-11ef-9002-d017c28703e7', 2, '222', '2024-08-23 11:13:26', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:13:08', '103', '2024-08-23 11:13:27', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (390, 1, '总经理审核', 'a9d70c9f-60fd-11ef-9002-d017c28703e7', 2, '3333', '2024-08-23 11:13:35', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:13:26', '1', '2024-08-23 11:13:36', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (391, 1, '财务确认', 'aeca71c8-60fd-11ef-9002-d017c28703e7', 2, '444', '2024-08-23 11:13:39', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:13:35', '1', '2024-08-23 11:13:40', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (392, 1, '确认请假', 'b12fb200-60fd-11ef-9002-d017c28703e7', 51, '驳回测试1', '2024-08-23 11:15:14', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:13:39', '1', '2024-08-23 11:15:23', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (393, 1, '财务确认', 'c3e4f8b5-60fd-11ef-9002-d017c28703e7', 51, '测试驳回2', '2024-08-23 11:16:13', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:14:10', '1', '2024-08-23 11:16:13', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (394, 103, '总经理审核', '0cb1e76a-60fe-11ef-9002-d017c28703e7', 51, '测试驳回3', '2024-08-23 11:17:12', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:16:12', '103', '2024-08-23 11:17:12', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (395, 1, '部门管理员审核', '2fe71e3f-60fe-11ef-9002-d017c28703e7', 4, '不通过任务,原因:测试驳回4', '2024-08-23 11:18:07', '9eef741a-60fd-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:17:11', '1', '2024-08-23 11:18:07', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (396, 103, '部门管理员审核', '6b1c2c2d-60ff-11ef-9002-d017c28703e7', 2, '22', '2024-08-23 11:26:18', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:26:00', '103', '2024-08-23 11:26:19', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (397, 103, '总经理审核', '75ad6746-60ff-11ef-9002-d017c28703e7', 2, '33', '2024-08-23 11:26:22', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:26:18', '103', '2024-08-23 11:26:23', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (398, 1, '财务确认', '784a323e-60ff-11ef-9002-d017c28703e7', 2, '444', '2024-08-23 11:26:32', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 11:26:22', '1', '2024-08-23 11:26:33', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (399, 1, '确认请假', '7e462dc7-60ff-11ef-9002-d017c28703e7', 2, '55', '2024-08-23 11:26:58', '6b130461-60ff-11ef-9002-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:26:32', '1', '2024-08-23 11:31:37', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (400, 1, '部门管理员审核', 'de87d4d6-6101-11ef-811b-d017c28703e7', 4, '不通过任务,原因:2232', '2024-08-23 11:43:47', 'de75d36a-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:43:33', '1', '2024-08-23 11:43:47', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (401, 103, '部门管理员审核', 'f3bb8915-6101-11ef-811b-d017c28703e7', 4, '不通过任务,原因:22323', '2024-08-23 11:44:29', 'f3b372b9-6101-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:44:08', '103', '2024-08-23 11:44:29', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (402, 103, '部门管理员审核', '0b0f1014-6102-11ef-811b-d017c28703e7', 4, '不通过任务,原因:asd', '2024-08-23 11:49:52', '0b06f9b8-6102-11ef-811b-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 11:44:48', '103', '2024-08-23 11:49:52', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (403, 1, '部门管理员审核', 'a222515d-6115-11ef-ac86-d017c28703e7', 52, '测试', '2024-08-23 14:05:17', 'a20e2d11-6115-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 14:05:01', '1', '2024-08-23 14:05:17', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (404, 1, '部门管理员审核', 'd8ca42cc-611b-11ef-ac86-d017c28703e7', 2, '1111', '2024-08-23 14:49:42', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 14:49:30', '1', '2024-08-23 14:49:43', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (405, 1, '总经理审核', 'e03cd8c5-611b-11ef-ac86-d017c28703e7', 5, '测试回退', '2024-08-23 14:49:58', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 14:49:43', '1', '2024-08-23 14:49:58', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (406, 1, '部门管理员审核', 'e8d3a36a-611b-11ef-ac86-d017c28703e7', 2, '222', '2024-08-23 14:53:00', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 14:49:57', '1', '2024-08-23 14:53:01', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (407, 103, '总经理审核', '55d27872-611c-11ef-ac86-d017c28703e7', 51, '测试驳回', '2024-08-23 14:53:20', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '1', '2024-08-23 14:53:00', '103', '2024-08-23 14:53:20', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (408, 1, '部门管理员审核', '61a7cc48-611c-11ef-ac86-d017c28703e7', 4, '222', '2024-08-24 09:26:57', 'd8c030a0-611b-11ef-ac86-d017c28703e7', 'new_flow_test:2:8ff87cfe-60f7-11ef-ace4-d017c28703e7', '103', '2024-08-23 14:53:20', '1', '2024-08-24 09:26:57', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (409, 104, '审批1', '3b192a3b-61be-11ef-8830-d017c28703e7', 4, '123456', '2024-08-24 13:57:19', '3b00c02f-61be-11ef-8830-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', '1', '2024-08-24 10:11:53', '1', '2024-08-24 13:57:19', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (410, 117, '审批1', 'cab45ff6-61dd-11ef-a290-d017c28703e7', 1, NULL, NULL, 'caa2faca-61dd-11ef-a290-d017c28703e7', 'flow_test_1:1:049b464e-61be-11ef-8830-d017c28703e7', '1', '2024-08-24 13:57:49', '1', '2024-08-24 13:57:49', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (411, 1, '部门负责人审核', 'f179f92c-8d1f-11ef-84c4-0ae0afb368ca', 2, '测试通过', '2024-10-18 16:28:08', 'f1667122-8d1f-11ef-84c4-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', '1', '2024-10-18 15:09:41', '1', '2024-10-18 16:28:08', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (412, 1, '部门经理审核', 'e7213244-8d2a-11ef-84c4-0ae0afb368ca', 2, '测试通过2', '2024-10-18 16:28:31', 'f1667122-8d1f-11ef-84c4-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', '1', '2024-10-18 16:28:08', '1', '2024-10-18 16:28:32', b'0', 1); +INSERT INTO `bpm_task_ext` VALUES (413, 1, '部门负责人审核', '50b98e55-8d2c-11ef-84c4-0ae0afb368ca', 1, NULL, NULL, '50b19f0b-8d2c-11ef-84c4-0ae0afb368ca', 'flow_test_old:3:c8f656d1-8d1d-11ef-84c4-0ae0afb368ca', '1', '2024-10-18 16:38:14', '1', '2024-10-18 16:38:15', b'0', 1); + +-- ---------------------------- +-- Table structure for bpm_user_group +-- ---------------------------- +DROP TABLE IF EXISTS `bpm_user_group`; +CREATE TABLE `bpm_user_group` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '组名', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '描述', + `member_user_ids` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '成员编号数组', + `status` tinyint(0) NOT NULL COMMENT '状态(0正常 1停用)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户组' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of bpm_user_group +-- ---------------------------- +INSERT INTO `bpm_user_group` VALUES (113, '12', '1', '[103,106,107]', 0, '1', '2024-03-18 16:10:03', '1', '2024-10-17 15:07:19', b'0', 1); +INSERT INTO `bpm_user_group` VALUES (114, 'tets', 'tets', '[103,106]', 0, '1', '2024-03-19 10:14:02', '1', '2024-03-19 10:14:08', b'0', 1); + +-- ---------------------------- +-- Table structure for example_advanced_details_tabs +-- ---------------------------- +DROP TABLE IF EXISTS `example_advanced_details_tabs`; +CREATE TABLE `example_advanced_details_tabs` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `order_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单标题', + `total_order_amount` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单总金额', + `approval_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批状态', + `received_amount` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '已回款金额', + `invoiced_amount` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '已开票金额', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-高级详情页-分类标签' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_advanced_details_tabs +-- ---------------------------- +INSERT INTO `example_advanced_details_tabs` VALUES (1840269066497433602, '订单标题', ' ¥ 10,000.00', '1', ' ¥ 1,000.00', ' ¥ 1,000.00', 1, 1, '2024-09-29 13:55:10', 101, 1, '2024-09-29 13:55:26', 0); +INSERT INTO `example_advanced_details_tabs` VALUES (1840269280717316097, '订单标题', ' ¥ 1,000.00', '1', ' ¥ 1,000.00', ' ¥ 1,000.00', 1, 1, '2024-09-29 13:56:01', 101, NULL, NULL, 0); +INSERT INTO `example_advanced_details_tabs` VALUES (1840269340716834818, '订单标题', ' ¥ 10,000.00', '1', ' ¥ 10,000.00', ' ¥ 10,000.00', 1, 1, '2024-09-29 13:56:16', 101, NULL, NULL, 0); +INSERT INTO `example_advanced_details_tabs` VALUES (1840269403513954306, '订单标题', ' ¥ 10,000.00', '1', ' ¥ 10,000.00', ' ¥ 10,000.00', 1, 1, '2024-09-29 13:56:31', 101, NULL, NULL, 0); +INSERT INTO `example_advanced_details_tabs` VALUES (1840269461798002690, '订单标题', ' ¥ 10,000.00', '1', ' ¥ 10,000.00', ' ¥ 10,000.00', 1, 1, '2024-09-29 13:56:44', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_basics_form_design +-- ---------------------------- +DROP TABLE IF EXISTS `example_basics_form_design`; +CREATE TABLE `example_basics_form_design` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `client_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户名称', + `client_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户类型', + `client_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户状态', + `client_head_contact` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '首联系人', + `phone_number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号码', + `client_affiliation` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户归属', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '基础类型示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_basics_form_design +-- ---------------------------- +INSERT INTO `example_basics_form_design` VALUES (1833396031341531138, '小名', '1', '1', '100', '12555', '104', 1, 1, '2024-09-10 14:44:11', 101, NULL, NULL, -1); +INSERT INTO `example_basics_form_design` VALUES (1833399359190405121, '34', '3', '4', '104', '56466', '100', 1, 1, '2024-09-10 14:57:24', 101, NULL, NULL, -1); +INSERT INTO `example_basics_form_design` VALUES (1833404719984873473, '陈展', '1', '1', '100', '15238680373', NULL, 1, 1, '2024-09-10 15:18:42', 101, 1, '2024-09-10 16:15:58', 0); +INSERT INTO `example_basics_form_design` VALUES (1833422539936915457, '陈展', '3', '4', '1', '15238680383', '1', 1, 1, '2024-09-10 16:29:31', 101, NULL, NULL, 0); +INSERT INTO `example_basics_form_design` VALUES (1833422925431201794, '陈展', '6', '7', '1', '15236680377', '1', 1, 1, '2024-09-10 16:31:03', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_btn_enhance +-- ---------------------------- +DROP TABLE IF EXISTS `example_btn_enhance`; +CREATE TABLE `example_btn_enhance` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `age` int(0) NULL DEFAULT NULL COMMENT '年龄', + `interest` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '爱好', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '自定义按钮配合增强示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_btn_enhance +-- ---------------------------- +INSERT INTO `example_btn_enhance` VALUES (1833327905992151041, '李梅梅', '1980-07-08', 44, '无', 1, 1, '2024-09-10 10:13:29', 101, NULL, NULL, 0); +INSERT INTO `example_btn_enhance` VALUES (1833332818679762945, '李雪梅', '1996-07-01', 29, '无', 1, 1, '2024-09-10 10:33:00', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_contact_manager +-- ---------------------------- +DROP TABLE IF EXISTS `example_contact_manager`; +CREATE TABLE `example_contact_manager` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `xm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `tx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `zw` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职务', + `gs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司', + `sj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `yx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `dh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话', + `dz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `color` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标记', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `lx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-联系人管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_contact_manager +-- ---------------------------- +INSERT INTO `example_contact_manager` VALUES (1852627220146909186, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909187, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909188, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909189, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909190, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909191, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909192, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909193, '赵小刚', NULL, '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:44:36', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909194, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909195, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909196, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909197, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909198, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:16:35', 0, '1'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909199, '赵小刚', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#73A0FA', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:43:25', 0, '2'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909200, '赵小刚', NULL, '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#FF7A8C', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-11-04 15:47:25', 0, '2'); +INSERT INTO `example_contact_manager` VALUES (1852627220146909201, '136', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png', '销售总监', '广州某科技有限公司', '15288888888', 'email@xxxx.xxx', '0959-99999999', '广东省广州市XXXX', '#52C1F5', 1, 1, '2024-11-02 16:22:04', 101, 1, '2024-12-27 13:43:33', 0, '2'); + +-- ---------------------------- +-- Table structure for example_control_use +-- ---------------------------- +DROP TABLE IF EXISTS `example_control_use`; +CREATE TABLE `example_control_use` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `text_input` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文本输入框', + `text_password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码输入框', + `text_number` int(0) NULL DEFAULT NULL COMMENT '数字输入框', + `text_textarea` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多行文本框', + `text_select` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '下拉选择框', + `text_tree` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树型选择框', + `text_cascader` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Cascader级联选择框', + `text_table` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格选择框', + `text_user` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户选择框', + `text_dept` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门选择框', + `text_region` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地区选择框', + `text_radio` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '单选框', + `text_checkbox` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '多选框', + `text_date` date NULL DEFAULT NULL COMMENT '日期', + `text_time` time(0) NULL DEFAULT NULL COMMENT '时间', + `text_datetime` datetime(0) NULL DEFAULT NULL COMMENT '日期时间', + `text_file` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件上传', + `text_image` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片上传', + `text_code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '代码编辑器', + `text_custom` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自定义控件', + `text_ueditor` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '富文本', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '控件使用示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_control_use +-- ---------------------------- +INSERT INTO `example_control_use` VALUES (1832963258617200641, '文本输入框', '123456', 123, '多行文本框\n多行文本框\n多行文本框', '10', '1831597440226566145', '1831592917458231298,1831595308807102466,1831597440226566145', '1831586943775326210', '1', '101', '110000,110100,110101', '1', '1,2', '2024-09-02', '09:59:22', '2024-09-09 10:02:43', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-09/1/logo.png', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-09/1/logo_2.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/logo_6.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/logo_7.png', 'return {\r\n text: \'jeelowcode低代码开发平台\'\r\n}', 'AddLocation', '

jeelowcode低代码开发平台

', 1, 1, '2024-09-09 10:04:30', 101, 1, '2024-11-02 14:19:43', 0); + +-- ---------------------------- +-- Table structure for example_expand_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_expand_table`; +CREATE TABLE `example_expand_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `birthday` date NULL DEFAULT NULL COMMENT '生日', + `sex` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `stature` int(0) NULL DEFAULT NULL COMMENT '身高(cm)', + `weight` int(0) NULL DEFAULT NULL COMMENT '体重(kg)', + `address` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `contact_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系方式', + `hobbies` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '兴趣爱好', + `educational` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '教育背景', + `major_course` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主修课程', + `software_skill` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '软件技能', + `introduce` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '个人介绍', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据表格页(可展开表格)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_expand_table +-- ---------------------------- +INSERT INTO `example_expand_table` VALUES (184065732373121844, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (184065732373121845, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (184065732373121846, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (184065732373121847, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (184065732373121848, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (184065732373121849, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218433, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218434, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218435, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218436, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218437, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218438, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218439, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218440, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218441, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218442, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, NULL, NULL, 0); +INSERT INTO `example_expand_table` VALUES (1840657323731218443, '张小刚', '1995-10-01', '1', 170, 70, '北京市海淀区西二旗', '18034418500', '摄影、旅行、美食', '华南理工大学', '商业心理学', 'Axure RP、Microsoft Office、Adobe Photoshop', '我正在寻找一个更好的发展平台,希望能够充分发挥己的优势,共同努力成就一番事业。', 1, 1, '2024-09-30 15:37:58', 101, 1, '2024-09-30 16:15:34', 0); + +-- ---------------------------- +-- Table structure for example_fixed_list +-- ---------------------------- +DROP TABLE IF EXISTS `example_fixed_list`; +CREATE TABLE `example_fixed_list` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `company_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名称', + `customer_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户状态', + `industry_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行业类型', + `customer_source` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户来源', + `customer_star` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户星级', + `attributable_person` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '归属人员', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '添加人员', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '添加时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-固定表列' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_fixed_list +-- ---------------------------- +INSERT INTO `example_fixed_list` VALUES (1838514926830288897, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-24 17:44:51', 101, 1, '2024-09-27 13:47:44', 0); +INSERT INTO `example_fixed_list` VALUES (1838516137499361281, '202410001', NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-09-24 17:49:39', 101, NULL, NULL, -1); +INSERT INTO `example_fixed_list` VALUES (1839542348786823170, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:47:27', 101, 1, '2024-09-27 13:47:52', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043521, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043601, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043602, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043603, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043604, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043605, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043606, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043607, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043608, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); +INSERT INTO `example_fixed_list` VALUES (1839544605272043609, '202410001', '深圳木卫二科技有限公司', '2', '1', '9', '4', '1', 1, 1, '2024-09-27 13:56:25', 101, 1, '2024-09-27 14:00:40', 0); + +-- ---------------------------- +-- Table structure for example_ggmk_gdgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_ggmk_gdgl`; +CREATE TABLE `example_ggmk_gdgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `gdbh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工单编号', + `gdbt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工单标题', + `gdlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工单类型', + `clry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理人员', + `gdzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工单状态', + `jycd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '紧要程度', + `tjsj` datetime(0) NULL DEFAULT NULL COMMENT '提交时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `ddsc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '等待时长', + `glkh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联客户', + `gldd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联订单', + `gdms` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '工单描述', + `csry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抄送人员', + `scfj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上传附件', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-工单管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_ggmk_gdgl +-- ---------------------------- +INSERT INTO `example_ggmk_gdgl` VALUES (1844642517014294530, '20241011153341', '处理客户反馈问题', '2', '104', NULL, '1', NULL, 1, 1, '2024-10-11 15:33:42', 101, NULL, NULL, -1, NULL, '1', '1', 'cs', '1', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1844643163453009922, '20241011153615', '处理客户反馈问题', '2', '104', '1', '1', '2024-10-11 15:36:15', 1, 1, '2024-10-11 15:36:16', 101, NULL, NULL, 0, NULL, '1', '1', 'cs', '104', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1844643454248300546, '20241011153725', '处理客户反馈问题', '2', '1', '1', '1', '2024-10-11 15:37:25', 1, 1, '2024-10-11 15:37:25', 101, NULL, NULL, 0, NULL, '2', '2', 'cs', '1', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1844643775443906562, '20241011153841', '处理客户反馈问题', '2', '1', '3', '1', '2024-10-11 15:38:41', 1, 1, '2024-10-11 15:38:42', 101, NULL, NULL, 0, NULL, '3', '3', '123', '1', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1844643936085749762, '20241011153920', '处理客户反馈问题', '2', '1', '4', '1', '2024-10-11 15:39:20', 1, 1, '2024-10-11 15:39:20', 101, NULL, NULL, -1, NULL, '4', '4', '12', '1', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1844644151287099393, '20241011154011', '处理客户反馈问题', '2', '1', '2', '1', '2024-10-11 15:40:11', 1, 1, '2024-10-11 15:40:12', 101, NULL, NULL, 0, NULL, '2', '2', 'cs123', '1', NULL); +INSERT INTO `example_ggmk_gdgl` VALUES (1845022418972254209, NULL, NULL, NULL, NULL, NULL, '1', NULL, 1, 1, '2024-10-12 16:43:18', 101, NULL, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for example_glmk_bmgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_glmk_bmgl`; +CREATE TABLE `example_glmk_bmgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `pid` bigint(0) NULL DEFAULT 0 COMMENT '父级节点', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名称', + `sjbm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上级部门', + `zt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `cysl` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员数量', + `zgry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主管人员', + `bmms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '部门描述', + `time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-部门管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_glmk_bmgl +-- ---------------------------- +INSERT INTO `example_glmk_bmgl` VALUES (1846009797113241601, 0, '测试', '114', NULL, '12', '100', '123', '2024-10-15 10:06:13', 1, 1, '2024-10-15 10:06:47', 101, NULL, NULL, -1); +INSERT INTO `example_glmk_bmgl` VALUES (1846015807647342594, 0, '12345', '114', '1', '100', '1', '345678', '2024-10-15 10:30:41', 1, 1, '2024-10-15 10:30:40', 101, NULL, NULL, -1); +INSERT INTO `example_glmk_bmgl` VALUES (1846016103039590401, 0, NULL, NULL, '1', '100', NULL, NULL, '2024-10-15 10:31:52', 1, 1, '2024-10-15 10:31:50', 101, NULL, NULL, -1); +INSERT INTO `example_glmk_bmgl` VALUES (1846016259944308737, 0, NULL, NULL, '1', '100', NULL, NULL, '2024-10-15 10:32:29', 1, 1, '2024-10-15 10:32:28', 101, NULL, NULL, -1); +INSERT INTO `example_glmk_bmgl` VALUES (1846017434328457218, 0, '总裁办', '114', '1', '100', '1', '暂无相关描述', '2024-10-15 10:37:09', 1, 1, '2024-10-15 10:37:08', 101, NULL, NULL, 0); +INSERT INTO `example_glmk_bmgl` VALUES (1846025771036057602, 1846017434328457218, '秘书', '114', '1', '100', '104', '暂无相关描述', '2024-10-15 11:10:16', 1, 1, '2024-10-15 11:10:15', 101, 1, '2024-10-15 11:10:29', 0); + +-- ---------------------------- +-- Table structure for example_glmk_ddgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_glmk_ddgl`; +CREATE TABLE `example_glmk_ddgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `ddbh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号', + `ddje` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单金额', + `ddzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单状态', + `zfss` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付方式', + `ddly` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单来源', + `yhzh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户账号', + `tjsj` datetime(0) NULL DEFAULT NULL COMMENT '提交时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `ddlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单类型', + `bz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `gbyy` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关闭原因', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-订单管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_glmk_ddgl +-- ---------------------------- +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022401, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022402, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022403, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022404, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022405, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022406, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022407, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022408, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022409, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844279090962022410, '202062976600', '200.00', '2', '1', '2', 'Windir', '2020-11-25 23:26:08', 1, 1, '2024-10-10 15:29:34', 101, NULL, NULL, 0, '1', NULL, NULL); +INSERT INTO `example_glmk_ddgl` VALUES (1844616644080971777, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-10-11 13:50:53', 101, NULL, NULL, -1, NULL, 'xzc', NULL); + +-- ---------------------------- +-- Table structure for example_glmk_gdgl_fjjl +-- ---------------------------- +DROP TABLE IF EXISTS `example_glmk_gdgl_fjjl`; +CREATE TABLE `example_glmk_gdgl_fjjl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `wjm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名', + `dx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '大小', + `scsj` datetime(0) NULL DEFAULT NULL COMMENT '上传时间', + `scry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上传人员', + `bznr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注内容', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-工单管理-附件记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_glmk_gdgl_fjjl +-- ---------------------------- +INSERT INTO `example_glmk_gdgl_fjjl` VALUES (1845012910245949442, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-12/1/7_2.png', '2MB', '2024-10-12 04:04:00', '1', '123', 1, 1, '2024-10-12 16:05:31', 101, NULL, NULL, 0); +INSERT INTO `example_glmk_gdgl_fjjl` VALUES (1845013144791429121, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-12/1/3.png', '2MB', '2024-10-12 01:04:12', '104', '123', 1, 1, '2024-10-12 16:06:27', 101, NULL, NULL, 0); +INSERT INTO `example_glmk_gdgl_fjjl` VALUES (1845013289901764610, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-12/1/4.png', '2MB', '2024-10-12 02:01:00', '133', '无备注内容', 1, 1, '2024-10-12 16:07:01', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_glmk_xmgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_glmk_xmgl`; +CREATE TABLE `example_glmk_xmgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `jbxx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '基本信息', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `content` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容', + `zt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态', + `xmjd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目进度', + `zhgx` datetime(0) NULL DEFAULT NULL COMMENT '最后更新', + `xmcy` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目成员', + `xmzs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目总数', + `jxz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '进行中', + `ywc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '已完成', + `yyq` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '已延期', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `fj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', + `kssj` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `jssj` datetime(0) NULL DEFAULT NULL COMMENT '结束时间', + `fzr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人', + `cyry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参与人员', + `rwbj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务标记', + `kxfw` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可选范围', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-项目管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_glmk_xmgl +-- ---------------------------- +INSERT INTO `example_glmk_xmgl` VALUES (1847094827944218625, NULL, 'jeeLowCode网站改版', '专业的交互原型素材原创分享平台', '1', '50', '2020-11-25 23:26:08', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/4_2.png', '200', '50', '50', '50', 1, 1, '2024-10-18 09:58:19', 101, 1, '2024-11-04 09:22:00', 0, NULL, '2024-10-19 00:00:00', '2024-10-19 00:00:00', '1', '100', '#FEC03D', '1'); +INSERT INTO `example_glmk_xmgl` VALUES (1847201382521769986, NULL, 'jeeLowCode网站改版', '专业的交互原型素材原创分享平台', '1', '50', '2024-10-18 17:01:43', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/2.png', NULL, NULL, NULL, NULL, 1, 1, '2024-10-18 17:01:43', 101, 1, '2024-11-04 09:21:47', 0, NULL, '2024-10-18 23:19:00', '2024-10-18 22:19:00', '1', '104', '#FEC03D', '1'); + +-- ---------------------------- +-- Table structure for example_glmk_zwgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_glmk_zwgl`; +CREATE TABLE `example_glmk_zwgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `zwmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职务名称', + `zwms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职务描述', + `zt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `cysl` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员数量', + `bmms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门描述', + `time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-职务管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_glmk_zwgl +-- ---------------------------- +INSERT INTO `example_glmk_zwgl` VALUES (1846086273921589250, '销售总监', '测试', '1', '100', '暂无相关描述', '2024-10-15 15:10:41', 1, 1, '2024-10-15 15:10:40', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_grzx_wz +-- ---------------------------- +DROP TABLE IF EXISTS `example_grzx_wz`; +CREATE TABLE `example_grzx_wz` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `time` datetime(0) NULL DEFAULT NULL COMMENT '时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '个人中心-文章' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_grzx_wz +-- ---------------------------- +INSERT INTO `example_grzx_wz` VALUES (1848650185862979586, '从新基建到大数据,创业者看好数据爆炸新风口', '今年以来,新基建成了热词,其七大领域之一的大数据中心,也被按下加速键。这个领域,市场体量巨大,阿里、腾讯、华为、百度等均早有布局。随着新基建的推行,各大数据企业也迎来了加速冲刺的窗口期。大数据中台产品及解决方案供应商...', 1, 1, '2024-10-22 16:58:45', 101, NULL, NULL, -1, NULL); +INSERT INTO `example_grzx_wz` VALUES (1848651981952032769, '从新基建到大数据,创业者看好数据爆炸新风口', '今年以来,新基建成了热词,其七大领域之一的大数据中心,也被按下加速键。这个领域,市场体量巨大,阿里、腾讯、华为、百度等均早有布局。随着新基建的推行,各大数据企业也迎来了加速冲刺的窗口期。大数据中台产品及解决方案供应商...', 1, 1, '2024-10-22 17:05:53', 101, NULL, NULL, -1, NULL); +INSERT INTO `example_grzx_wz` VALUES (1848667942320025602, '从新基建到大数据,创业者看好数据爆炸新风口', '今年以来,新基建成了热词,其七大领域之一的大数据中心,也被按下加速键。这个领域,市场体量巨大,阿里、腾讯、华为、百度等均早有布局。随着新基建的推行,各大数据企业也迎来了加速冲刺的窗口期。大数据中台产品及解决方案供应商...', 1, 1, '2024-10-22 18:09:18', 101, 1, '2024-10-23 09:14:20', -1, NULL); +INSERT INTO `example_grzx_wz` VALUES (1848896811714125825, '从新基建到大数据,创业者看好数据爆炸新风口', '今年以来,新基建成了热词,其七大领域之一的大数据中心,也被按下加速键。这个领域,市场体量巨大,阿里、腾讯、华为、百度等均早有布局。随着新基建的推行,各大数据企业也迎来了加速冲刺的窗口期。大数据中台产品及解决方案供应商...', 1, 1, '2024-10-23 09:18:45', 101, NULL, NULL, -1, '2024-10-23 09:18:46'); +INSERT INTO `example_grzx_wz` VALUES (1848897115012636674, '1', '1', 1, 1, '2024-10-23 09:19:57', 101, NULL, NULL, -1, '2024-10-23 09:19:58'); +INSERT INTO `example_grzx_wz` VALUES (1848897633990647810, '从新基建到大数据,创业者看好数据爆炸新风口', '今年以来,新基建成了热词,其七大领域之一的大数据中心,也被按下加速键。这个领域,市场体量巨大,阿里、腾讯、华为、百度等均早有布局。随着新基建的推行,各大数据企业也迎来了加速冲刺的窗口期。大数据中台产品及解决方案供应商', 1, 1, '2024-10-23 09:22:01', 101, NULL, NULL, 0, '2024-10-23 09:22:02'); + +-- ---------------------------- +-- Table structure for example_grzx_xm +-- ---------------------------- +DROP TABLE IF EXISTS `example_grzx_xm`; +CREATE TABLE `example_grzx_xm` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `zt_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `zt_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据列表页(专题列表)_copy' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_grzx_xm +-- ---------------------------- +INSERT INTO `example_grzx_xm` VALUES (1848638025862651905, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651906, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651907, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651908, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651909, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651910, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651911, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651912, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651913, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:19:23', 0, NULL); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651914, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:30:20', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651915, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:31:01', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651916, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:30:15', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651917, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:30:10', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651918, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:56', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651919, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:30:01', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651920, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:51', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651921, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:46', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651922, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:34', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651923, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:39', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651924, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:29', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651925, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:24', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651926, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:12', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651927, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:18', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651928, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:07', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); +INSERT INTO `example_grzx_xm` VALUES (1848638025862651929, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-10-22 16:10:26', 101, 1, '2024-10-22 16:29:01', 0, '每一年设计师们都会利用自己的认知,理解和专业给出各自的答案。'); + +-- ---------------------------- +-- Table structure for example_grzx_yy +-- ---------------------------- +DROP TABLE IF EXISTS `example_grzx_yy`; +CREATE TABLE `example_grzx_yy` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `crad_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `crad_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `card_describe` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '个人中心-应用' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_grzx_yy +-- ---------------------------- +INSERT INTO `example_grzx_yy` VALUES (1848632602740826113, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:48:53', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018753, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018754, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018755, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018756, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018757, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018758, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018759, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018760, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018761, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018762, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018763, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018764, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018765, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018766, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018767, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018768, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018769, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018770, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018771, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018772, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018773, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018774, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018775, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018776, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); +INSERT INTO `example_grzx_yy` VALUES (1848632725571018777, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-22/1/QQ20240925-162317副本_2.png', '应用名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-10-22 15:49:22', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_jllt_htlb +-- ---------------------------- +DROP TABLE IF EXISTS `example_jllt_htlb`; +CREATE TABLE `example_jllt_htlb` ( + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `id` bigint(0) NOT NULL COMMENT '主键', + `cytx` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '成员头像', + `htbt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '话题标题', + `lll` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览量', + `hfl` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回复量', + `sd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否锁定', + `zd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '置顶', + `rm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '热门', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '交流论坛-话题列表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_jllt_htlb +-- ---------------------------- +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420801, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420802, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420803, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420804, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420805, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420806, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420807, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420808, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420809, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420810, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420811, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420812, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420813, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420814, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420815, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420816, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420817, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, NULL, NULL, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420818, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', NULL, NULL, NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, '2024-11-08 14:51:40', 1, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420819, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', '1', NULL, '1'); +INSERT INTO `example_jllt_htlb` VALUES (0, '2024-11-08 14:51:36', 1, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420820, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加速企业应用交付', '1000', '1000', '1', '1', NULL); +INSERT INTO `example_jllt_htlb` VALUES (0, '2024-11-09 09:28:59', 1, 101, '2024-11-08 10:56:43', 1, 1, 1854719672777420821, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-08/1/f0ee8a3c7c9638a54940382568c9dpng.png', '阿里云发布应用负载均衡ALB 加111', '1000', '1000', '1', '1', '1'); +INSERT INTO `example_jllt_htlb` VALUES (-1, NULL, NULL, 101, '2024-11-09 11:48:49', 1, 1, 1855095170082779137, NULL, 'csa', NULL, NULL, '1', '1', NULL); +INSERT INTO `example_jllt_htlb` VALUES (-1, NULL, NULL, 101, '2024-11-09 11:55:07', 1, 1, 1855096754795687937, NULL, 's', NULL, NULL, '0', '1', NULL); + +-- ---------------------------- +-- Table structure for example_jllt_tlbk +-- ---------------------------- +DROP TABLE IF EXISTS `example_jllt_tlbk`; +CREATE TABLE `example_jllt_tlbk` ( + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `id` bigint(0) NOT NULL COMMENT '主键', + `bktx` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '板块头像', + `htbk` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '话题版块', + `bkjs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '板块介绍', + `cytx` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '成员头像', + `htsl` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '话题数量', + `hfsl` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回复数量', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '交流论坛-讨论板块' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_jllt_tlbk +-- ---------------------------- +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211714, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211715, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211716, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211717, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211718, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211719, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211720, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211721, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (-1, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211722, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (-1, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211723, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (-1, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211724, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (-1, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211725, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (-1, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211726, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211727, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211728, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211729, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 14:43:23', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211730, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo_2.png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); +INSERT INTO `example_jllt_tlbk` VALUES (0, '2024-11-07 15:23:09', 1, 101, '2024-11-07 14:38:56', 1, 1, 1854413208628211731, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/zondicons--photo (1).png', '技术分享', '专业的分享平台', 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_4.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_12.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_13.png,http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/f0ee8a3c7c9638a54940382568c9dpng_14.png', '10000', '10000'); + +-- ---------------------------- +-- Table structure for example_main_date +-- ---------------------------- +DROP TABLE IF EXISTS `example_main_date`; +CREATE TABLE `example_main_date` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `kssj` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `jssj` datetime(0) NULL DEFAULT NULL COMMENT '结束时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '日程管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_main_date +-- ---------------------------- +INSERT INTO `example_main_date` VALUES (1850727265467604994, 1, 1, '2024-10-28 10:32:19', 101, 1, '2024-10-29 14:00:01', 0, '2024-10-28 00:00:00', '2024-10-31 00:00:00'); +INSERT INTO `example_main_date` VALUES (1850736884009115649, 1, 1, '2024-10-28 11:10:32', 101, 1, '2024-10-29 13:59:15', 0, '2024-10-27 00:00:00', '2024-10-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1850780975187075073, 1, 1, '2024-10-28 14:05:44', 101, 1, '2024-10-29 13:58:34', 0, '2024-10-09 00:00:00', '2024-10-16 00:00:00'); +INSERT INTO `example_main_date` VALUES (1850791495534260225, 1, 1, '2024-10-28 14:47:33', 101, 1, '2024-10-29 13:57:08', 0, '2024-10-14 00:00:00', '2024-11-01 00:00:00'); +INSERT INTO `example_main_date` VALUES (1850791601130057730, 1, 1, '2024-10-28 14:47:58', 101, 1, '2024-10-29 13:56:18', 0, '2024-10-15 00:00:00', '2024-11-22 00:00:00'); +INSERT INTO `example_main_date` VALUES (1850791762384269314, 1, 1, '2024-10-28 14:48:36', 101, 1, '2024-10-29 13:55:07', 0, '2024-10-16 00:00:00', '2024-10-18 00:00:00'); +INSERT INTO `example_main_date` VALUES (1851139536275513346, 1, 1, '2024-10-29 13:50:32', 101, NULL, NULL, 0, '2024-10-29 13:48:08', '2024-11-29 07:48:08'); +INSERT INTO `example_main_date` VALUES (1851142984714821634, 1, 1, '2024-10-29 14:04:14', 101, NULL, NULL, 0, '2024-10-30 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1851143685658517505, 1, 1, '2024-10-29 14:07:01', 101, NULL, NULL, -1, NULL, NULL); +INSERT INTO `example_main_date` VALUES (1856520938558005249, 1, 1, '2024-11-13 10:14:18', 101, NULL, NULL, -1, '2024-11-13 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856526928263192577, 1, 1, '2024-11-13 10:38:06', 101, NULL, NULL, 0, '2024-11-13 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856528785215791105, 1, 1, '2024-11-13 10:45:29', 101, 1, '2024-11-14 16:15:20', 0, '2024-11-14 00:00:00', '2024-11-14 03:03:00'); +INSERT INTO `example_main_date` VALUES (1856529232794165250, 1, 1, '2024-11-13 10:47:16', 101, NULL, NULL, -1, '2024-11-14 00:00:00', '2024-11-14 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856530830916263937, 1, 1, '2024-11-13 10:53:37', 101, NULL, NULL, -1, '2024-11-14 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856531474741927938, 1, 1, '2024-11-13 10:56:10', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856532167351541762, 1, 1, '2024-11-13 10:58:56', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-16 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856534161702174722, 1, 1, '2024-11-13 11:06:51', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856535450284638209, 1, 1, '2024-11-13 11:11:58', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856535987738558465, 1, 1, '2024-11-13 11:14:06', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856537077078999042, 1, 1, '2024-11-13 11:18:26', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856537179873001473, 1, 1, '2024-11-13 11:18:51', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856537843172818945, 1, 1, '2024-11-13 11:21:29', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856538553088131073, 1, 1, '2024-11-13 11:24:18', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856540440688508930, 1, 1, '2024-11-13 11:31:48', 101, NULL, NULL, -1, '2024-11-13 00:00:00', '2024-11-13 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856541508243734530, 1, 1, '2024-11-13 11:36:03', 101, NULL, NULL, -1, '2024-11-14 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856542736197533698, 1, 1, '2024-11-13 11:40:55', 101, 1, '2024-11-13 11:59:12', 0, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856543109503172610, 1, 1, '2024-11-13 11:42:24', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856544823048323073, 1, 1, '2024-11-13 11:49:13', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856545023049515009, 1, 1, '2024-11-13 11:50:01', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856545769786621954, 1, 1, '2024-11-13 11:52:59', 101, NULL, NULL, -1, '2024-11-13 00:00:00', '2024-11-15 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856546214999408642, 1, 1, '2024-11-13 11:54:45', 101, NULL, NULL, -1, '2024-11-15 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856572934800457730, 1, 1, '2024-11-13 13:40:55', 101, NULL, NULL, 0, '2024-11-06 00:00:00', '2024-11-08 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856575793050861570, 1, 1, '2024-11-13 13:52:17', 101, NULL, NULL, 0, '2024-11-08 00:00:00', '2024-11-09 13:52:01'); +INSERT INTO `example_main_date` VALUES (1856577118492868610, 1, 1, '2024-11-13 13:57:33', 101, NULL, NULL, 0, '2024-11-07 00:00:00', '2024-11-07 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856585792883965954, 1, 1, '2024-11-13 14:32:01', 101, NULL, NULL, 0, '2024-11-15 00:00:00', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856602058952720386, 1, 1, '2024-11-13 15:36:39', 101, 1, '2024-11-13 16:11:46', 0, '2024-11-13 05:02:10', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856602425102876673, 1, 1, '2024-11-13 15:38:06', 101, 1, '2024-11-13 16:12:05', 0, '2024-11-13 04:07:05', '2024-11-30 00:00:00'); +INSERT INTO `example_main_date` VALUES (1856602484364197889, 1, 1, '2024-11-13 15:38:20', 101, 1, '2024-11-13 16:12:28', 0, '2024-11-13 03:00:00', '2024-11-30 00:00:00'); + +-- ---------------------------- +-- Table structure for example_main_erp_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_main_erp_table`; +CREATE TABLE `example_main_erp_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `first_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生名字', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-主表(ERP)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_main_erp_table +-- ---------------------------- +INSERT INTO `example_main_erp_table` VALUES (1831885493457448962, '李华', '2000-02-15', '1', '123456@123.com', 1, 1, '2024-09-06 10:41:51', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_main_nq_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_main_nq_table`; +CREATE TABLE `example_main_nq_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `first_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生名字', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-主表(内嵌)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_main_nq_table +-- ---------------------------- +INSERT INTO `example_main_nq_table` VALUES (1831886241205383170, '李华', '2000-02-15', '1', '123456@123.com', 1, 1, '2024-09-06 10:44:49', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_main_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_main_table`; +CREATE TABLE `example_main_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `first_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生名字', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `email` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-主表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_main_table +-- ---------------------------- +INSERT INTO `example_main_table` VALUES (1831874115279548418, '李华', '2000-02-15', '1', '123456@123.com', 1, 1, '2024-09-06 09:56:38', 101, 1, '2024-09-06 10:13:13', 0); +INSERT INTO `example_main_table` VALUES (1837383128985735169, '谭生', '2024-09-18', '1', '94949@139.com', 1, 1, '2024-09-21 14:47:29', 101, 1, '2024-09-21 16:13:33', 0); + +-- ---------------------------- +-- Table structure for example_mkgl_dlrz +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_dlrz`; +CREATE TABLE `example_mkgl_dlrz` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `ss` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '搜索', + `dlsj` datetime(0) NULL DEFAULT NULL COMMENT '登录时间', + `zdlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端类型', + `llq` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器/终端版本', + `czxt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统', + `sbmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备名称', + `macdz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'MAC地址', + `dlIP` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录IP ', + `szdq` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在地区', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dlry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录人员', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块管理-登录日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_dlrz +-- ---------------------------- +INSERT INTO `example_mkgl_dlrz` VALUES (1854345016014778370, NULL, '2024-11-07 10:07:09', '0', 'Firefox 68.0', 'Win10', 'WindirPC', 'E8-4E-06-51-3B-16', '192.168.1.1', '440000,440100,440111', 1, 1, '2024-11-07 10:07:58', 101, 1, '2024-11-07 10:09:17', 0, '137'); + +-- ---------------------------- +-- Table structure for example_mkgl_gggl +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_gggl`; +CREATE TABLE `example_mkgl_gggl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `ggbt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公告标题', + `ggzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公告状态', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `gglx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公告类型', + `ggxq` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '公告详情', + `jsry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收人员', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '发布人员', + `fj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', + `plsz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论设置', + `txfs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提醒方式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块管理-公告管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_gggl +-- ---------------------------- +INSERT INTO `example_mkgl_gggl` VALUES (1854356590033088513, '如何建立良好的客户关系', NULL, -1, NULL, NULL, 101, 1, '1', '

公告详情

', NULL, '2024-11-07 10:53:58', 1, NULL, NULL, NULL); +INSERT INTO `example_mkgl_gggl` VALUES (1854367409353502721, 'cs', '1', -1, NULL, NULL, 101, 1, '1', '

cs

', '全体员工', '2024-11-07 11:36:57', 1, NULL, '1', NULL); +INSERT INTO `example_mkgl_gggl` VALUES (1854419060919611393, '123', NULL, -1, NULL, NULL, 101, 1, '1', '

123

', NULL, '2024-11-07 15:02:12', 1, NULL, NULL, NULL); +INSERT INTO `example_mkgl_gggl` VALUES (1854419532300660738, 'qwe', '1', -1, NULL, NULL, 101, 1, '1', '

qwe

', '全体员工', '2024-11-07 15:04:04', 1, NULL, '1', NULL); +INSERT INTO `example_mkgl_gggl` VALUES (1854419681471082497, '如何建立良好的客户关系', '1', 0, NULL, NULL, 101, 1, '1', '

客户关系长期持久,源于让客户感受到价值和重要,是非常有利可图的。满足并保留您的客户群,确保未来获得丰厚的收入和利润。口碑也是强大的力量,忠诚的顾客会把你推荐给别人。通过提供优质的服务,保持联系并建立客户关系,改善和维护客户关系。

让顾客感到自己受到了重视从而建立持久的客户关系,能为你带来丰厚的回报。让顾客满意并维持好客户基数能为将来的收入和利润提供重要的保障。口碑也是一个杀手锏,忠诚的顾客会向其他人推荐你。所以你需要通过提供优质的服务,持续的客户沟通及建立良好的客户关系来改善和维持客户关系。

把重点放在质量上。赢得忠实客户和商业的最好方式是提供比竞争对手更高质量的产品或服务。其他策略只是为了保留客户已经对您的产品质量印象深刻。不断优化您的产品,确保它们尽可能接近完美。关注质量将导致更多的建议,重复销售和品牌的忠诚度比任何其他战略。因此,首先要确保在这方面的客户保留。

重视产品和服务质量。赢得忠诚的顾客和订单的最佳方式就是提供比竞争对手更加优质的产品质量和服务。其他的策略只是帮助维持已经被产品和服务吸引的现有客户。要不断改善服务,确保它们总在向完美靠近。专注于产品的质量会比其他策略为你带来更多的老客户推荐,回购以及品牌忠诚度。所以,一定要在维护老客户方面进行努力。

即使是最高质量的服务或产品也不会导致高销售额,如果只有几个客户实际上获得这样的质量水平。一致性是建立质量和可靠性的声誉的关键,这将导致客户的忠诚度。努力确保与客户的每一个接触点,从店内互动到在线响应,都代表着您的品牌和您提供的质量水平。这也适用于可能需要过度测试或质量控制以确保一致性的产品。

即使是最优质的服务品质,如果仅有几个客户获得了这种级别的服务品质,也不会带来高销售额。始终如一的高品质服务和产品是带来良好声誉和客户忠诚度的关键所在。不论在店内销售还是在线答疑,每次接触客户时的表现都代表你所追求的品牌价值和服务水准。对于需要进行大量测试或者质量管控才能维持一贯水准的产品来说,这点同样适用。

', '全体员工', '2024-11-07 15:04:40', 1, NULL, '1', '1'); + +-- ---------------------------- +-- Table structure for example_mkgl_gzbg +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_gzbg`; +CREATE TABLE `example_mkgl_gzbg` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bgbt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报告标题', + `bglx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报告类型', + `pyzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '批阅状态', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '提交人员', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '提交时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '所属部门', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `bgrq` date NULL DEFAULT NULL COMMENT '报告日期', + `gzzj` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '工作总结', + `gzjh` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '工作计划', + `fj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', + `pyry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '批阅人员', + `csry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抄送人员', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块管理-工作报告' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_gzbg +-- ---------------------------- +INSERT INTO `example_mkgl_gzbg` VALUES (1853269947326885890, '123', '123', '123', 1, 1, '2024-11-04 10:56:02', 101, NULL, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853271073539452929, '333', '333', '33', 1, 1, '2024-11-04 11:00:30', 101, NULL, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853278287092215810, '日报', '2', '0', 1, 1, '2024-11-04 11:29:10', 101, NULL, NULL, -1, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853333131526107137, '月报', '1', '0', 1, 1, '2024-11-04 15:07:06', 101, NULL, NULL, -1, '2024-11-04', '

cs

', NULL, NULL, '136', NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853337792287043585, '2024-11-04 周报', '1', '0', 1, 1, '2024-11-04 15:25:37', 101, NULL, NULL, 0, '2024-11-04', '

测试

', NULL, NULL, '137', NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853338508649000962, '2024-11-04 日报', '2', '0', 1, 1, '2024-11-04 15:28:28', 101, NULL, NULL, 0, '2024-11-04', '

测试

', '

测试

', NULL, '136', NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853338816930344961, '2024-11-04 日报', '2', '0', 1, 1, '2024-11-04 15:29:41', 101, NULL, NULL, 0, '2024-11-04', '

123

', NULL, NULL, '137', NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853640420658229250, '2024-11-01 月报', '3', '0', 1, 1, '2024-11-05 11:28:09', 101, 1, '2024-11-05 15:12:42', 0, '2024-11-01', '

gfgd

', '

eh

', NULL, '1', NULL); +INSERT INTO `example_mkgl_gzbg` VALUES (1853697285889945602, '2024-11-14 日报', '2', '0', 1, 1, '2024-11-05 15:14:07', 101, 1, '2024-11-07 10:03:30', 0, '2024-11-14', '

358686868

', NULL, NULL, '1', '1'); + +-- ---------------------------- +-- Table structure for example_mkgl_rzgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_rzgl`; +CREATE TABLE `example_mkgl_rzgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `czbh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作编号', + `czsj` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `czry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人员', + `ssmk` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属模块', + `czdx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作对象', + `czlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作类型', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块管理-日志管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_rzgl +-- ---------------------------- +INSERT INTO `example_mkgl_rzgl` VALUES (1854068212116975617, '202010001', '2024-11-06 07:03:01', '137', '0', '测试', '0', 1, 1, '2024-11-06 15:48:03', 101, 1, '2024-11-06 15:58:24', 0); + +-- ---------------------------- +-- Table structure for example_mkgl_sprz +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_sprz`; +CREATE TABLE `example_mkgl_sprz` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `spbh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批编号', + `spsj` datetime(0) NULL DEFAULT NULL COMMENT '审批时间', + `spry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批人员', + `splx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批类型', + `ywbh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务编号', + `tjsj` datetime(0) NULL DEFAULT NULL COMMENT '提交时间', + `spjg` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批结果', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块管理-审批日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_sprz +-- ---------------------------- +INSERT INTO `example_mkgl_sprz` VALUES (1854339947693322242, '20241107', '2024-11-07 09:47:41', '137', '0', 'HT20241107', '2024-11-07 09:47:51', '0', 1, 1, '2024-11-07 09:47:50', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_mkgl_tdzsk +-- ---------------------------- +DROP TABLE IF EXISTS `example_mkgl_tdzsk`; +CREATE TABLE `example_mkgl_tdzsk` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `img` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `text` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '问题标题', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `cp_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品标题', + `cp_text` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品问题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容', + `llcs` int(0) NULL DEFAULT NULL COMMENT '浏览次数', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模版管理-团队知识库' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_mkgl_tdzsk +-- ---------------------------- +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163457, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163458, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163459, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163460, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163461, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163462, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163463, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163464, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163465, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163466, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163467, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163468, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163469, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163470, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163471, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163472, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163473, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163474, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163475, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163476, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163477, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163478, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163479, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163480, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163481, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163482, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, 1, '2024-11-20 16:12:57', 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 1); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163483, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163484, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163485, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163486, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, 1, '2024-11-08 17:24:21', 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 1); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163487, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, NULL, NULL, 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 0); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163488, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, 1, '2024-11-08 17:24:18', 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 2); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163489, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, 1, '2024-11-08 17:24:15', 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 3); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854444754454163497, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:44:18', 101, 1, '2024-11-08 17:24:12', 0, '产品知识', '产品相关常见问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 7); +INSERT INTO `example_mkgl_tdzsk` VALUES (1854445428243935233, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-07/1/snipaste20241107_164216_2.jpg', '阿里云发布应用负载均衡ALB 加速企业应用交付', '在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品', 1, 1, '2024-11-07 16:46:58', 101, 1, '2024-12-27 13:54:43', 0, '产品知识', '产品相关问题', '

近日,在阿里云2020年云栖大会上,阿里云智能网络产品研究员祝顺民重磅发布了多款网络新品,其中之一就是应用负载均衡ALB。ALB产品定位应用层高级负载,具备超强性能、安全可靠、面向云原生、即开即用等优势价值,提供弹性自动伸缩、QUIC协议支持、基于内容的高级路由、自带DDoS安全防护、云原生应用、弹性灵活计费等产品能力,满足越来越多元化的应用层负载需求。

说到负载均衡,很多朋友或许都会想到经典负载均衡,阿里云负载均衡SLB发布近十年,为各行各业的用户提供强大稳定的负载分担能力,解决大并发流量负载分担,消除单点故障,提高业务可用性。但随着企业和互联网业务高速发展,业务形态和需求不断变化,诸多业务场景已经无法单纯的用传统负载均衡来满足全部需求。在大互联网业务、电商大促、音视频、移动互联网应用、游戏业务、金融服务、云原生开发应用等场景中,存在大量高性能、弹性、多协议七层转发、安全、云原生等需求,急需新产品设计来满足。

场景例举一:某电商大促业务

电商经常需要在某个节日、某次活动中进行集中促销,直播带货必不可少,但活动前又无法预估业务高峰会达到多大的流量水平;此外电商场景中,常常需要根据地域、时间段、支付流程等进行负载分担。传统的负载均衡虽然具备一定的统一灵活调度能力,但在弹性、自动扩展、高性能方面还有所欠缺;同时实时弹性、高并发、超大新建规格、多协议(HTTP/HTTPS/HOST/URL/Cookie/Http Method))7层负载转发能力也无法通过传统负载均衡来实现,需要全新的应用负载均衡产品来满足业务需求。

场景例举二:某视频直播业务


对于各类视频业务,如影视剧长视频,生活短视频、直播带货、在线教学等等,视频业务对后端的资源需求越来越高。动则上百万新建连接需求,自动弹性扩展,基于用户画像的流量转发机制等等,让当前以四层为主的负载均衡系统无法完全满足业务发展需要。而应用负载均衡ALB基于QUIC的传输转发能力,更快速高效的建立连接,缩短时延,分担业务请求流量,保障大流量业务需求。


场景例举三;某云原生应用业务


近些年诸多业务已经上云,由于云厂商提供了统一的IaaS 能力和云服务,大幅提升了IaaS 层的复用程度,用户也希望IaaS以上层的系统也被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本,这正好就是云原生架构专注解决的问题。全新应用型负载均衡ALB基于云原生架构设计,能够很好的满足用户需求,应对灰度发布、流量仿真、微服务等场景。

', 40); + +-- ---------------------------- +-- Table structure for example_my_login_records +-- ---------------------------- +DROP TABLE IF EXISTS `example_my_login_records`; +CREATE TABLE `example_my_login_records` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `login_tp` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `login_system` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统', + `login_address` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录地址', + `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'ip', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-个人中心-登录记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_my_login_records +-- ---------------------------- +INSERT INTO `example_my_login_records` VALUES (1840577621293301762, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-30/1/windows-fill_2.png', 'WindirPC', '广东省深圳市', '14.127.100.242', 1, 1, '2024-09-30 10:21:15', 101, 1, '2024-09-30 14:10:04', 0); +INSERT INTO `example_my_login_records` VALUES (1840635400255209473, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-30/1/windows-fill_3.png', 'WindirPC', '广东省深圳市', ' 14.127.100.242', 1, 1, '2024-09-30 14:10:51', 101, NULL, NULL, 0); +INSERT INTO `example_my_login_records` VALUES (1840635469645774850, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-30/1/windows-fill_4.png', 'WindirPC', '广东省深圳市', ' 14.127.100.242', 1, 1, '2024-09-30 14:11:07', 101, NULL, NULL, 0); +INSERT INTO `example_my_login_records` VALUES (1840635540407877634, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-30/1/windows-fill_5.png', 'WindirPC', '广东省深圳市', ' 14.127.100.242', 1, 1, '2024-09-30 14:11:24', 101, NULL, NULL, 0); +INSERT INTO `example_my_login_records` VALUES (1840635605646082050, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-30/1/windows-fill_6.png', 'WindirPC', '广东省深圳市', '14.127.100.242', 1, 1, '2024-09-30 14:11:40', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_my_message_settings +-- ---------------------------- +DROP TABLE IF EXISTS `example_my_message_settings`; +CREATE TABLE `example_my_message_settings` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `icon` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图标', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `introduce` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '介绍', + `switch` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '开关', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-个人中心-消息设置' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_my_message_settings +-- ---------------------------- +INSERT INTO `example_my_message_settings` VALUES (1843478092353900546, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-08/1/铃铛.png', '系统通知', '系统通知将以站内信的形式通知', '1', 1, 1, '2024-10-08 10:26:42', 101, 1, '2024-10-08 10:50:25', 0); +INSERT INTO `example_my_message_settings` VALUES (1843479142192386049, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-08/1/mti-勤-待办任务.png', '待批申请', '待批申请将以站内信的形式通知', '1', 1, 1, '2024-10-08 10:30:52', 101, 1, '2024-10-08 10:50:06', 0); +INSERT INTO `example_my_message_settings` VALUES (1843826641713283073, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-09/1/日程.png', '今日日程', '今日日程将以站内信的形式通知', '1', 1, 1, '2024-10-09 09:31:42', 101, NULL, NULL, 0); +INSERT INTO `example_my_message_settings` VALUES (1843826775989731330, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-09/1/待办工单.png', '待办工单', '待办工单将以站内信的形式通知', '1', 1, 1, '2024-10-09 09:32:14', 101, NULL, NULL, 0); +INSERT INTO `example_my_message_settings` VALUES (1843826864414048258, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-09/1/旗帜-01.png', '待办任务', '待办任务将以站内信的形式通知', '1', 1, 1, '2024-10-09 09:32:35', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_my_system_notification +-- ---------------------------- +DROP TABLE IF EXISTS `example_my_system_notification`; +CREATE TABLE `example_my_system_notification` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通知标题', + `status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `rich_text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '富文本', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-个人中心-系统通知' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_my_system_notification +-- ---------------------------- +INSERT INTO `example_my_system_notification` VALUES (1840644017107419137, '关于开展核实清理虚假备案专项工作的通知', '1', '4', 1, 1, '2024-09-30 14:45:05', 101, 1, '2024-09-30 14:46:57', 0, NULL); +INSERT INTO `example_my_system_notification` VALUES (1840644514753200130, '关于开展核实清理虚假备案专项工作的通知', '1', '4', 1, 1, '2024-09-30 14:47:04', 101, NULL, NULL, 0, NULL); +INSERT INTO `example_my_system_notification` VALUES (1840644540996960257, '关于开展核实清理虚假备案专项工作的通知', '1', '4', 1, 1, '2024-09-30 14:47:10', 101, NULL, NULL, 0, NULL); +INSERT INTO `example_my_system_notification` VALUES (1840644568469651457, '关于开展核实清理虚假备案专项工作的通知', '1', '4', 1, 1, '2024-09-30 14:47:17', 101, NULL, NULL, 0, NULL); +INSERT INTO `example_my_system_notification` VALUES (1840644601998917633, '关于开展核实清理虚假备案专项工作的通知', '1', '4', 1, 1, '2024-09-30 14:47:25', 101, 1, '2024-09-30 16:29:11', 0, '

为贯彻落实《中华人民共和国反恐怖主义法》《中华人民共和国网络安全法》《互联网信息服务管理办法》《非经营性互联网信息服务备案管理办法》等法律法规和规章的要求,配合《工业和信息化部关于进一步落实网站备案信息真实性核验工作方案(试行)》的开展,XXX将进一步规范落实网站备案真实性核验工作要求,以保证备案信息真实有效。届时XXX将对存在问题的备案信息进行通知,若逾期未按通知进行修改,则备案信息将被取消接入。


具体核查内容包括:

1.主体信息是否真实准确:主办单位名称、主办单位证件号码需与现实际主体有效证件一致。

2.联系方式是否真实准确:主体负责人固定电话及手机号码、网站负责人固定电话及手机号码需为备案本人且电话有效可拨通。

3.网站备案真实性核验材料是否真实完整:包括网站主办者身份证件、组织机构代码证、工商营业执照、核验照片等。

4.接入信息是否真实准确:备案域名当前解析的IP地址的归属,需与备案接入的接入服务商一致。

5.网站内容、域名持有者是否与备案信息相符。


同时,如下情况将被视为网站内容与备案信息不符:

①个人性质的备案开办企业网站。

②企业性质备案网站内容与备案主体企业不一致。

③网站内容涉及各项前置审批内容但并未办理前置审批。


备案信息不合格,修改方案:

请您登录代备案管理系统中提交变更备案操作。变更备案流程链接:http://help.xxx.com/knowledge_detail/5974925.html


接入信息不合格,修改方案:

请您登录代备案管理系统中提交接入备案操作。接入备案流程链接:https://help.xxx.com/knowledge_detail/36924.html


网站内容不合格,修改方案:

方式一:将备案信息的主体性质变更为与网站内容相一致。请您登录代备案管理系统中提交变更备案操作。

方式二:修改网站内容,确保与备案信息相符。


确保网站备案真实性是网站主办者的基本义务,请广大用户务必提前进行自查自纠。同时,为配合以上专项清理整顿工作的开展,XXX将对存在问题的备案信息进行通知,请相关用户按照通知要求进行及时修改,以避免因虚假备案或备案信息不真实而触犯国家相关法律法规,导致网站无法正常访问。


备案真实性核验工作是XXX作为接入服务商工作的重中之重,一直以来,XXX都在积极推动创新真实性核验的革新工作,并协同相关部门强化信息安全管理工作,为用户提供便捷、合规的备案接入服务。XXX也将一如既往的打击虚假备案情况,确保互联网环境绿色、健康。

'); + +-- ---------------------------- +-- Table structure for example_order_commodity +-- ---------------------------- +DROP TABLE IF EXISTS `example_order_commodity`; +CREATE TABLE `example_order_commodity` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `commodity_picture` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片', + `commodity_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称', + `price` bigint(0) NULL DEFAULT NULL COMMENT '价格', + `hh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '货号', + `specifications` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格', + `num` bigint(0) NULL DEFAULT NULL COMMENT '数量', + `subtotal` bigint(0) NULL DEFAULT NULL COMMENT '小计', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单详情-商品信息' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_order_commodity +-- ---------------------------- +INSERT INTO `example_order_commodity` VALUES (1836299456819572737, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-18/1/_我的 (1).png', '苹果 Apple iPhone 11 全网通4G手机', 5000, 'H0001', '黑色 128G', 1, 5000, 1, 1, '2024-09-18 15:01:21', 101, 1, '2024-09-18 15:04:48', -1); +INSERT INTO `example_order_commodity` VALUES (1836300745347510274, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-18/1/_我的 (1)_2.png', '苹果 Apple iPhone 11 全网通4G手机', 5000, 'H0001', '黑色 128G', 1, 5000, 1, 1, '2024-09-18 15:06:29', 101, NULL, NULL, 0); +INSERT INTO `example_order_commodity` VALUES (1836300794727051266, NULL, '5', NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-09-18 15:06:40', 101, NULL, NULL, -1); +INSERT INTO `example_order_commodity` VALUES (1836301489471565826, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-18/1/_我的 (1)_3.png', '苹果 Apple iPhone 11 全网通4G手机', 5000, 'H0002', '红色 128G', 1, 5000, 1, 1, '2024-09-18 15:09:26', 101, NULL, NULL, 0); +INSERT INTO `example_order_commodity` VALUES (1836301655415009282, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-18/1/_我的 (1)_4.png', '苹果 Apple iPhone 11 全网通4G手机', 5000, 'H0003', '黄色 128G', 1, 5000, 1, 1, '2024-09-18 15:10:06', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_order_pending_orders +-- ---------------------------- +DROP TABLE IF EXISTS `example_order_pending_orders`; +CREATE TABLE `example_order_pending_orders` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称', + `date` datetime(0) NULL DEFAULT NULL COMMENT '下单时间', + `num` int(0) NULL DEFAULT NULL COMMENT '数量', + `money` decimal(10, 0) NULL DEFAULT NULL COMMENT '金额', + `status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单管理-待处理订单' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_order_pending_orders +-- ---------------------------- +INSERT INTO `example_order_pending_orders` VALUES (1847459470194647042, '202290434567655', '米家声波电动牙刷', '2024-10-19 10:06:52', 2, 300, '1', 1, 1, '2024-10-19 10:07:16', 101, NULL, NULL, 0); +INSERT INTO `example_order_pending_orders` VALUES (1847462174346321922, '202290434567656', '手工毛线针织编织玫瑰永生花', '2024-10-19 10:17:51', 2, 50, '1', 1, 1, '2024-10-19 10:18:01', 101, NULL, NULL, 0); +INSERT INTO `example_order_pending_orders` VALUES (1847462321453146113, '45861611145651', 'KDL826泰坦电视人3.0', '2024-10-19 10:18:27', 1, 10, '1', 1, 1, '2024-10-19 10:18:36', 101, NULL, NULL, 0); +INSERT INTO `example_order_pending_orders` VALUES (1847462670427627521, '26914891561581', 'peak匹克羽毛球拍', '2024-10-19 10:19:49', 2, 100, '1', 1, 1, '2024-10-19 10:19:59', 101, NULL, NULL, 0); +INSERT INTO `example_order_pending_orders` VALUES (1847462831912525825, '8941651651541', '新款卡皮巴拉笔袋', '2024-10-19 10:20:27', 3, 40, '1', 1, 1, '2024-10-19 10:20:37', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_order_record +-- ---------------------------- +DROP TABLE IF EXISTS `example_order_record`; +CREATE TABLE `example_order_record` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `manipulator` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作者', + `order_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单状态', + `payment_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '付款状态', + `delivery_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货状态', + `view` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作详情', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单详情-操作记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_order_record +-- ---------------------------- +INSERT INTO `example_order_record` VALUES (1836322482663534593, '2024-09-09 02:00:00', '1', '1', '2', '1', '完成商品评价', 1, 1, '2024-09-18 16:32:51', 101, 1, '2024-09-18 16:33:46', 0); +INSERT INTO `example_order_record` VALUES (1836322902207180802, '2024-08-19 15:43:23', '1', '3', '1', '1', '手动确认收货', 1, 1, '2024-09-18 16:34:31', 101, 1, '2024-09-18 16:35:34', 0); + +-- ---------------------------- +-- Table structure for example_primordial_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_primordial_table`; +CREATE TABLE `example_primordial_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `company_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名称', + `customer_status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户状态', + `industry_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行业类型', + `customer_source` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户来源', + `add_people` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '添加人员', + `customer_star` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户星级', + `update_date` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-原生表格' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_primordial_table +-- ---------------------------- +INSERT INTO `example_primordial_table` VALUES (1838393398591512577, '202010001', '深圳木卫二科技有限公司', '2', '3', '9', '1', '1', '2024-09-11 02:02:00', 1, 1, '2024-09-24 09:41:56', 101, 1, '2024-09-27 09:33:01', 0); +INSERT INTO `example_primordial_table` VALUES (1838422167180042242, '202010001', '深圳木卫二科技有限公司', '2', '3', '9', '1', '3', '2024-09-25 17:05:05', 1, 1, '2024-09-24 11:36:15', 101, 1, '2024-09-27 09:31:18', 0); +INSERT INTO `example_primordial_table` VALUES (1838474189697396738, NULL, '深圳木卫二科技有限公司', '2', '3', '9', '1', '1', '2024-09-24 15:02:58', 1, 1, '2024-09-24 15:02:58', 101, 1, '2024-09-27 09:30:59', -1); +INSERT INTO `example_primordial_table` VALUES (1838474325068558337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-09-24 15:03:30', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838474343737405441, NULL, '深圳木卫二科技有限公', '6', '8', '7', '1', '1', '2024-09-24 16:47:02', 1, 1, '2024-09-24 15:03:35', 101, 1, '2024-09-24 16:47:04', -1); +INSERT INTO `example_primordial_table` VALUES (1838475232518811650, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-09-24 15:07:07', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838475245777006594, NULL, '深圳木卫二科技有限公司', '6', '8', '7', '1', '1', '2024-09-24 15:07:10', 1, 1, '2024-09-24 15:07:10', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838475635650146305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2024-09-24 15:08:43', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838475649839476738, NULL, '深圳木卫二科技有限公司', '6', '8', '7', '1', '1', '2024-09-24 15:08:46', 1, 1, '2024-09-24 15:08:46', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838476471587516418, NULL, '1', '7', '1', '2', '1', '2', '2024-09-24 15:12:02', 1, 1, '2024-09-24 15:12:02', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838477143137529858, NULL, '2', '6', '7', '8', '1', '1', '2024-09-24 15:14:42', 1, 1, '2024-09-24 15:14:42', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838478713192734721, NULL, '1', '5', '7', '7', '1', '3', '2024-09-24 15:20:55', 1, 1, '2024-09-24 15:20:57', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838481612487196673, NULL, 'a', '3', '7', '7', '1', '1', '2024-09-24 15:32:28', 1, 1, '2024-09-24 15:32:28', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838482743858757634, NULL, '.', '4', '7', '7', '1', '5', '2024-09-24 15:36:58', 1, 1, '2024-09-24 15:36:58', 101, NULL, NULL, -1); +INSERT INTO `example_primordial_table` VALUES (1838485365768519681, '20241001', '深圳木卫二科技有限公司', '2', '3', '9', '1', '5', '2024-09-24 16:46:56', 1, 1, '2024-09-24 15:47:23', 101, 1, '2024-09-27 09:33:21', 0); +INSERT INTO `example_primordial_table` VALUES (1838501409414770690, '20241001', '深圳木卫二科技有限公司', '2', '3', '9', '1', '2', '2024-09-24 16:51:19', 1, 1, '2024-09-24 16:51:08', 101, 1, '2024-09-27 09:30:33', 0); +INSERT INTO `example_primordial_table` VALUES (1839478107039907841, '20241001', '深圳木卫二科技有限公司', '2', '2', '9', '1', '1', NULL, 1, 1, '2024-09-27 09:32:11', 101, 1, '2024-12-27 09:56:32', 0); + +-- ---------------------------- +-- Table structure for example_report_data +-- ---------------------------- +DROP TABLE IF EXISTS `example_report_data`; +CREATE TABLE `example_report_data` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `table_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报表类型', + `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'json数据', + `type_index` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '首页类型', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_type_index`(`table_type`, `type_index`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报表数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_report_data +-- ---------------------------- +INSERT INTO `example_report_data` VALUES (1847169891393736706, '实时数据', '[\r\n {\r\n \"jrjye\": {\r\n \"value\": 715400,\r\n \"button\": \"+1.6%\",\r\n \"type\": 1\r\n },\r\n \"jrddl\": {\r\n \"value\": 5960,\r\n \"button\": \"-5.0%\",\r\n \"type\": \"0\"\r\n },\r\n \"jrlll\": {\r\n \"value\": 211400,\r\n \"button\": \"+1.6%\",\r\n \"type\": \"1\"\r\n },\r\n \"jrfwyh\": {\r\n \"value\": 12218,\r\n \"button\": \"-0.5%\",\r\n \"type\": \"0\"\r\n },\r\n \"jrzcyh\": {\r\n \"value\": 5200,\r\n \"button\": \"+1.6%\",\r\n \"type\": \"1\"\r\n },\r\n \"jrxzhy\": {\r\n \"value\": 2435,\r\n \"button\": \"-1.1%\",\r\n \"type\": \"0\"\r\n }\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-18 14:56:35', 101, 1, '2024-10-22 16:55:49', 0); +INSERT INTO `example_report_data` VALUES (1847184136874409986, '订单及销量趋势', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"date\": \"星期一\",\r\n \"xse\": \"3244\",\r\n \"ddl\": \"1632\"\r\n },\r\n {\r\n \"date\": \"星期二\",\r\n \"xse\": \"3424\",\r\n \"ddl\": \"1695\"\r\n },\r\n {\r\n \"date\": \"星期三\",\r\n \"xse\": \"3232\",\r\n \"ddl\": \"1697\"\r\n },\r\n {\r\n \"date\": \"星期四\",\r\n \"xse\": \"5648\",\r\n \"ddl\": \"3599\"\r\n },\r\n {\r\n \"date\": \"星期五\",\r\n \"xse\": \"2000\",\r\n \"ddl\": \"2055\"\r\n },\r\n {\r\n \"date\": \"星期六\",\r\n \"xse\": \"6441\",\r\n \"ddl\": \"2687\"\r\n },\r\n {\r\n \"date\": \"星期日\",\r\n \"xse\": \"2959\",\r\n \"ddl\": \"3688\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"date\": \"上旬\",\r\n \"xse\": \"3244\",\r\n \"ddl\": \"1632\"\r\n },\r\n {\r\n \"date\": \"中旬\",\r\n \"xse\": \"3424\",\r\n \"ddl\": \"1695\"\r\n },\r\n {\r\n \"date\": \"下旬\",\r\n \"xse\": \"3232\",\r\n \"ddl\": \"1697\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"date\": \"第一季度\",\r\n \"xse\": \"3244\",\r\n \"ddl\": \"1632\"\r\n },\r\n {\r\n \"date\": \"第二季度\",\r\n \"xse\": \"3424\",\r\n \"ddl\": \"1695\"\r\n },\r\n {\r\n \"date\": \"第三季度\",\r\n \"xse\": \"3232\",\r\n \"ddl\": \"1697\"\r\n },\r\n {\r\n \"date\": \"第四季度\",\r\n \"xse\": \"3694\",\r\n \"ddl\": \"1698\"\r\n }\r\n ]\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-18 15:53:11', 101, 1, '2024-10-22 17:11:20', 0); +INSERT INTO `example_report_data` VALUES (1847204183260954625, '商品销售占比', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"name\": \"商品一\",\r\n \"xse\": 214620,\r\n \"value\": 30\r\n },\r\n {\r\n \"name\": \"商品二\",\r\n \"xse\": 178850,\r\n \"value\": 25\r\n },\r\n {\r\n \"name\": \"商品三\",\r\n \"xse\": 107310,\r\n \"value\": 15\r\n },\r\n {\r\n \"name\": \"商品四\",\r\n \"xse\": 71540,\r\n \"value\": 10\r\n },\r\n {\r\n \"name\": \"商品五\",\r\n \"xse\": 35770,\r\n \"value\": 5\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"name\": \"商品一\",\r\n \"xse\": 224875,\r\n \"value\": 35\r\n },\r\n {\r\n \"name\": \"商品二\",\r\n \"xse\": 128500,\r\n \"value\": 20\r\n },\r\n {\r\n \"name\": \"商品三\",\r\n \"xse\": 64250,\r\n \"value\": 10\r\n },\r\n {\r\n \"name\": \"商品四\",\r\n \"xse\": 64250,\r\n \"value\": 10\r\n },\r\n {\r\n \"name\": \"商品五\",\r\n \"xse\": 64250,\r\n \"value\": 10\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"name\": \"商品一\",\r\n \"xse\": 189650,\r\n \"value\": 25\r\n },\r\n {\r\n \"name\": \"商品二\",\r\n \"xse\": 189650,\r\n \"value\": 25\r\n },\r\n {\r\n \"name\": \"商品三\",\r\n \"xse\": 113790,\r\n \"value\": 15\r\n },\r\n {\r\n \"name\": \"商品四\",\r\n \"xse\": 113790,\r\n \"value\": 15\r\n },\r\n {\r\n \"name\": \"商品五\",\r\n \"xse\": 151720,\r\n \"value\": 20\r\n }\r\n ]\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-18 17:12:51', 101, 1, '2024-10-24 11:13:18', 0); +INSERT INTO `example_report_data` VALUES (1847208870949322754, '新增用户及会员趋势', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"date\": \"周一\",\r\n \"xzyh\": 2500,\r\n \"xzhy\": 1234\r\n },\r\n {\r\n \"date\": \"周二\",\r\n \"xzyh\": 1800,\r\n \"xzhy\": 3456\r\n },\r\n {\r\n \"date\": \"周三\",\r\n \"xzyh\": 4200,\r\n \"xzhy\": 2345\r\n },\r\n {\r\n \"date\": \"周四\",\r\n \"xzyh\": 3100,\r\n \"xzhy\": 4567\r\n },\r\n {\r\n \"date\": \"周五\",\r\n \"xzyh\": 2900,\r\n \"xzhy\": 123\r\n },\r\n {\r\n \"date\": \"周六\",\r\n \"xzyh\": 4700,\r\n \"xzhy\": 4321\r\n },\r\n {\r\n \"date\": \"周日\",\r\n \"xzyh\": 1300,\r\n \"xzhy\": 3210\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"date\": \"上旬\",\r\n \"xzyh\": 2500,\r\n \"xzhy\": 1234\r\n },\r\n {\r\n \"date\": \"中旬\",\r\n \"xzyh\": 1800,\r\n \"xzhy\": 3456\r\n },\r\n {\r\n \"date\": \"下旬\",\r\n \"xzyh\": 4200,\r\n \"xzhy\": 2345\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"date\": \"第一季度\",\r\n \"xzyh\": 2500,\r\n \"xzhy\": 1234\r\n },\r\n {\r\n \"date\": \"第二季度\",\r\n \"xzyh\": 1800,\r\n \"xzhy\": 3456\r\n },\r\n {\r\n \"date\": \"第三季度\",\r\n \"xzyh\": 4200,\r\n \"xzhy\": 2345\r\n },\r\n {\r\n \"date\": \"第四季度\",\r\n \"xzyh\": 3200,\r\n \"xzhy\": 2648\r\n }\r\n ]\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-18 17:31:28', 101, 1, '2024-10-22 17:59:48', 0); +INSERT INTO `example_report_data` VALUES (1847209270993649665, '新增用户及会员趋势', '{\r\n \"title\": \"新增用户及会员趋势\",\r\n \"typeList\": [\"本周\", \"本月\", \"本年\"],\r\n \"type\": \"本月\",\r\n \"option\": {\r\n \"legend\": {\r\n \"data\": [\r\n \"新增用户\",\r\n \"新增会员\"\r\n ]\r\n },\r\n \"xAxis\": {\r\n \"data\": [\r\n \"上旬\",\r\n \"中旬\",\r\n \"下旬\"\r\n ]\r\n },\r\n \"series\": [\r\n {\r\n \"name\": \"新增用户\",\r\n \"data\": [\r\n 2500,\r\n 1800,\r\n 4200\r\n ]\r\n },\r\n {\r\n \"name\": \"新增会员\",\r\n \"data\": [\r\n 1234,\r\n 3456,\r\n 2345\r\n ]\r\n }\r\n ]\r\n }\r\n}', '系统首页数据看板1', 1, 1, '2024-10-18 17:33:04', 101, 1, '2024-10-19 09:29:23', -1); +INSERT INTO `example_report_data` VALUES (1847209600305233921, '新增用户及会员趋势', '{\r\n \"title\": \"新增用户及会员趋势\",\r\n \"typeList\": [\"本周\", \"本月\", \"本年\"],\r\n \"type\": \"本年\",\r\n \"option\": {\r\n \"legend\": {\r\n \"data\": [\r\n \"新增用户\",\r\n \"新增会员\"\r\n ]\r\n },\r\n \"xAxis\": {\r\n \"data\": [\r\n \"第一季度\",\r\n \"第二季度\",\r\n \"第三季度\",\r\n \"第四季度\"\r\n ]\r\n },\r\n \"series\": [\r\n {\r\n \"name\": \"新增用户\",\r\n \"data\": [\r\n 2500,\r\n 1800,\r\n 4200,\r\n 3200\r\n ]\r\n },\r\n {\r\n \"name\": \"新增会员\",\r\n \"data\": [\r\n 1234,\r\n 3456,\r\n 2345,\r\n 2648\r\n ]\r\n }\r\n ]\r\n }\r\n}', '系统首页数据看板1', 1, 1, '2024-10-18 17:34:22', 101, 1, '2024-10-19 09:29:40', -1); +INSERT INTO `example_report_data` VALUES (1847213957767729153, '用户访问趋势', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"date\": \"周一\",\r\n \"fwyh\": 2500\r\n },\r\n {\r\n \"date\": \"周二\",\r\n \"fwyh\": 1500\r\n },\r\n {\r\n \"date\": \"周三\",\r\n \"fwyh\": 1000\r\n },\r\n {\r\n \"date\": \"周四\",\r\n \"fwyh\": 2000\r\n },\r\n {\r\n \"date\": \"周五\",\r\n \"fwyh\": 2000\r\n },\r\n {\r\n \"date\": \"周六\",\r\n \"fwyh\": 2700\r\n },\r\n {\r\n \"date\": \"周日\",\r\n \"fwyh\": 2300\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"date\": \"上旬\",\r\n \"fwyh\": 2500\r\n },\r\n {\r\n \"date\": \"中旬\",\r\n \"fwyh\": 1500\r\n },\r\n {\r\n \"date\": \"下旬\",\r\n \"fwyh\": 1000\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"date\": \"第一季度\",\r\n \"fwyh\": 2200\r\n },\r\n {\r\n \"date\": \"第二季度\",\r\n \"fwyh\": 2100\r\n },\r\n {\r\n \"date\": \"第三季度\",\r\n \"fwyh\": 2300\r\n },\r\n {\r\n \"date\": \"第四季度\",\r\n \"fwyh\": 2000\r\n }\r\n ]\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-18 17:51:41', 101, 1, '2024-10-22 18:12:04', 0); +INSERT INTO `example_report_data` VALUES (1847450981783183361, '用户访问趋势', '{\r\n \"title\": \"用户访问趋势\",\r\n \"typeList\": [\"本周\", \"本月\", \"本年\"],\r\n \"type\": \"本月\",\r\n \"option\": {\r\n \"legend\": {\r\n \"data\": [\"访问用户\"]\r\n },\r\n \"xAxis\": {\r\n \"data\": [\"上旬\",\"中旬\",\"下旬\"]\r\n },\r\n \"series\": [\r\n {\r\n \"name\": \"访问用户\",\r\n \"data\": [2500,2000,2300]\r\n }\r\n ]\r\n }\r\n}', '系统首页数据看板1', 1, 1, '2024-10-19 09:33:32', 101, NULL, NULL, -1); +INSERT INTO `example_report_data` VALUES (1847451334608035842, '用户访问趋势', '{\r\n \"title\": \"用户访问趋势\",\r\n \"typeList\": [\"本周\", \"本月\", \"本年\"],\r\n \"type\": \"本年\",\r\n \"option\": {\r\n \"legend\": {\r\n \"data\": [\"访问用户\"]\r\n },\r\n \"xAxis\": {\r\n \"data\": [\"第一季度\",\"第二季度\",\"第三季度\",\"第四季度\"]\r\n },\r\n \"series\": [\r\n {\r\n \"name\": \"访问用户\",\r\n \"data\": [2200,2100,2300,2000]\r\n }\r\n ]\r\n }\r\n}', '系统首页数据看板1', 1, 1, '2024-10-19 09:34:56', 101, NULL, NULL, -1); +INSERT INTO `example_report_data` VALUES (1847479193917595650, '本月单品销量排名', '[\r\n {\r\n \"pm\": 1,\r\n \"name\": \"米家声波电动牙刷\",\r\n \"sl\": 9500,\r\n \"sse\": 90500\r\n },\r\n {\r\n \"pm\": 2,\r\n \"name\": \"小米米家充电宝\",\r\n \"sl\": 9500,\r\n \"sse\": 90500\r\n },\r\n {\r\n \"pm\": 3,\r\n \"name\": \"极米H3投影仪\",\r\n \"sl\": 9500,\r\n \"sse\": 90500\r\n },\r\n {\r\n \"pm\": 4,\r\n \"name\": \"搜狗A智能录音笔\",\r\n \"sl\": 9500,\r\n \"sse\": 90500\r\n },\r\n {\r\n \"pm\": 5,\r\n \"name\": \"石头扫地机器人\",\r\n \"sl\": 9500,\r\n \"sse\": 90500\r\n }\r\n]', '系统首页数据看板1', 1, 1, '2024-10-19 11:25:38', 101, 1, '2024-10-24 09:34:04', 0); +INSERT INTO `example_report_data` VALUES (1847486664694439938, '本月数据', '[\r\n {\r\n \"yxsje\": {\r\n \"value\": \"120000\",\r\n \"ztb\": \"12%\",\r\n \"ztbType\": \"top\",\r\n \"rhb\": \"10%\",\r\n \"rhbType\": \"bottom\"\r\n },\r\n \"yhkje\": {\r\n \"value\": \"100000\",\r\n \"data\": [\r\n 1,\r\n 1,\r\n 1,\r\n 2,\r\n 2,\r\n 2,\r\n 2,\r\n 2,\r\n 12,\r\n 11,\r\n 25,\r\n 4,\r\n 9,\r\n 8,\r\n 28,\r\n 28,\r\n 26,\r\n 28,\r\n 18,\r\n 19,\r\n 16,\r\n 12,\r\n 9,\r\n 13,\r\n 16,\r\n 16,\r\n 12,\r\n 12,\r\n 17,\r\n 11,\r\n 8,\r\n 8,\r\n 1,\r\n 3,\r\n 2,\r\n 2,\r\n 2,\r\n 2,\r\n 2,\r\n 1,\r\n 1\r\n ]\r\n },\r\n \"bycjdd\": {\r\n \"value\": \"1000\",\r\n \"data\": [\r\n 30,\r\n 50,\r\n 65,\r\n 35,\r\n 45,\r\n 40,\r\n 30,\r\n 40,\r\n 60,\r\n 50,\r\n 20,\r\n 35,\r\n 55,\r\n 45,\r\n 60\r\n ]\r\n },\r\n \"wcxsmb\": {\r\n \"value\": 75\r\n },\r\n \"hkdcl\": {\r\n \"value\": 80\r\n }\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 11:55:20', 101, 1, '2024-10-22 14:20:18', 0); +INSERT INTO `example_report_data` VALUES (1847516681042272258, '数据简报', '[\r\n {\r\n \"xzkh\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"pos\"\r\n },\r\n \"xzxs\": {\r\n \"value\": \"1200\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"pos\"\r\n },\r\n \"xzsj\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"neg\"\r\n },\r\n \"xzdd\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"neg\"\r\n },\r\n \"xnlxr\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"pos\"\r\n },\r\n \"gjcs\": {\r\n \"value\": \"1200\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"pos\"\r\n },\r\n \"clrw\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"neg\"\r\n },\r\n \"clgd\": {\r\n \"value\": \"500\",\r\n \"percent\": \"15.9%\",\r\n \"type\": \"neg\"\r\n }\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 13:54:36', 101, 1, '2024-10-22 13:48:47', 0); +INSERT INTO `example_report_data` VALUES (1847517389778984962, '业绩目标', '[\r\n {\r\n \"date\": \"1月\",\r\n \"mbje\": \"1700000\",\r\n \"cjje\": \"2520000\"\r\n },\r\n {\r\n \"date\": \"2月\",\r\n \"mbje\": \"1660000\",\r\n \"cjje\": \"2650000\"\r\n },\r\n {\r\n \"date\": \"3月\",\r\n \"mbje\": \"1420000\",\r\n \"cjje\": \"2330000\"\r\n },\r\n {\r\n \"date\": \"4月\",\r\n \"mbje\": \"1520000\",\r\n \"cjje\": \"2150000\"\r\n },\r\n {\r\n \"date\": \"5月\",\r\n \"mbje\": \"1190000\",\r\n \"cjje\": \"1840000\"\r\n },\r\n {\r\n \"date\": \"6月\",\r\n \"mbje\": \"1030000\",\r\n \"cjje\": \"1830000\"\r\n },\r\n {\r\n \"date\": \"7月\",\r\n \"mbje\": \"1050000\",\r\n \"cjje\": \"1450000\"\r\n },\r\n {\r\n \"date\": \"8月\",\r\n \"mbje\": \"870000\",\r\n \"cjje\": \"950000\"\r\n },\r\n {\r\n \"date\": \"9月\",\r\n \"mbje\": \"690000\",\r\n \"cjje\": \"690000\"\r\n },\r\n {\r\n \"date\": \"10月\",\r\n \"mbje\": \"620000\",\r\n \"cjje\": \"2650000\"\r\n },\r\n {\r\n \"date\": \"11月\",\r\n \"mbje\": \"1320000\",\r\n \"cjje\": \"1230000\"\r\n },\r\n {\r\n \"date\": \"12月\",\r\n \"mbje\": \"1220000\",\r\n \"cjje\": \"1000000\"\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 13:57:25', 101, 1, '2024-10-22 11:04:28', 0); +INSERT INTO `example_report_data` VALUES (1847517802133594114, '销售预测', '[\r\n {\r\n \"date\": \"1月\",\r\n \"yjxsje\": \"700000\",\r\n \"glje\": \"390000\"\r\n },\r\n {\r\n \"date\": \"2月\",\r\n \"yjxsje\": \"690000\",\r\n \"glje\": \"420000\"\r\n },\r\n {\r\n \"date\": \"3月\",\r\n \"yjxsje\": \"950000\",\r\n \"glje\": \"570000\"\r\n },\r\n {\r\n \"date\": \"4月\",\r\n \"yjxsje\": \"1450000\",\r\n \"glje\": \"850000\"\r\n },\r\n {\r\n \"date\": \"5月\",\r\n \"yjxsje\": \"1840000\",\r\n \"glje\": \"1190000\"\r\n },\r\n {\r\n \"date\": \"6月\",\r\n \"yjxsje\": \"2150000\",\r\n \"glje\": \"1520000\"\r\n },\r\n {\r\n \"date\": \"7月\",\r\n \"yjxsje\": \"2520000\",\r\n \"glje\": \"1700000\"\r\n },\r\n {\r\n \"date\": \"8月\",\r\n \"yjxsje\": \"2650000\",\r\n \"glje\": \"1660000\"\r\n },\r\n {\r\n \"date\": \"9月\",\r\n \"yjxsje\": \"2330000\",\r\n \"glje\": \"1420000\"\r\n },\r\n {\r\n \"date\": \"10月\",\r\n \"yjxsje\": \"1830000\",\r\n \"glje\": \"1030000\"\r\n },\r\n {\r\n \"date\": \"11月\",\r\n \"yjxsje\": \"1390000\",\r\n \"glje\": \"660000\"\r\n },\r\n {\r\n \"date\": \"12月\",\r\n \"yjxsje\": \"960000\",\r\n \"glje\": \"480000\"\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 13:59:03', 101, 1, '2024-10-22 11:09:34', 0); +INSERT INTO `example_report_data` VALUES (1847518234444701698, '销售漏斗图', '[\r\n {\r\n \"cbqt\": \"36\",\r\n \"srgt\": \"25\",\r\n \"cpbj\": \"18\",\r\n \"cjsj\": \"10\",\r\n \"lssj\": \"8\"\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 14:00:46', 101, 1, '2024-10-22 11:12:34', 0); +INSERT INTO `example_report_data` VALUES (1847518830023286786, '销售排名', '[\r\n {\r\n \"name\": \"张小刚\",\r\n \"money\": \"100.00万\",\r\n \"percent\": 90\r\n },\r\n {\r\n \"name\": \"李小红\",\r\n \"money\": \"90.00万\",\r\n \"percent\": 80\r\n },\r\n {\r\n \"name\": \"王小明\",\r\n \"money\": \"80.00万\",\r\n \"percent\": 70\r\n },\r\n {\r\n \"name\": \"周小伟\",\r\n \"money\": \"70.00万\",\r\n \"percent\": 65\r\n },\r\n {\r\n \"name\": \"郭小涛\",\r\n \"money\": \"60.00万\",\r\n \"percent\": 50\r\n },\r\n {\r\n \"name\": \"邵小婷\",\r\n \"money\": \"55.00万\",\r\n \"percent\": 50\r\n },\r\n {\r\n \"name\": \"叶小福\",\r\n \"money\": \"50.00万\",\r\n \"percent\": 50\r\n },\r\n {\r\n \"name\": \"郭千秋\",\r\n \"money\": \"45.00万\",\r\n \"percent\": 50\r\n },\r\n {\r\n \"name\": \"姜小风\",\r\n \"money\": \"42.00万\",\r\n \"percent\": 50\r\n },\r\n {\r\n \"name\": \"吴小夏\",\r\n \"money\": \"40.00万\",\r\n \"percent\": 50\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 14:03:08', 101, 1, '2024-10-22 11:17:29', 0); +INSERT INTO `example_report_data` VALUES (1847521639368105986, '系统通知', '[\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n },\r\n {\r\n \"label\": \"JeeLowCode低代码平台\",\r\n \"time\": \"2024-08-31 12:00:00\"\r\n }\r\n]', '系统首页客户管理', 1, 1, '2024-10-19 14:14:18', 101, 1, '2024-10-22 11:18:47', 0); +INSERT INTO `example_report_data` VALUES (1847526489531228162, '统计数据', '[\r\n {\r\n \"shzs\": {\r\n \"num\": \"1200\",\r\n \"percentage\": \"10%\",\r\n \"type\": \"pos\"\r\n },\r\n \"ktzsh\": {\r\n \"num\": \"1000\",\r\n \"percentage\": \"10%\",\r\n \"type\": \"pos\"\r\n },\r\n \"zfwl\": {\r\n \"num\": \"200000\",\r\n \"percentage\": \"10%\",\r\n \"type\": \"pos\"\r\n },\r\n \"zjye\": {\r\n \"num\": \"80000\"\r\n },\r\n \"zddl\": {\r\n \"num\": \"24200.00\",\r\n \"percentage\": \"20%\",\r\n \"type\": \"neg\"\r\n },\r\n \"kdj\": {\r\n \"num\": \"120.00\",\r\n \"percentage\": \"10%\",\r\n \"type\": \"pos\"\r\n }\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 14:33:35', 101, 1, '2024-10-22 14:16:47', 0); +INSERT INTO `example_report_data` VALUES (1847528427031240705, '商户外拓', '[\r\n {\r\n \"yjh\": {\r\n \"leftNum\": 600,\r\n \"rightNum\": 1000\r\n },\r\n \"ywc\": {\r\n \"leftNum\": 500,\r\n \"rightNum\": 1000\r\n },\r\n \"ktz\": {\r\n \"leftNum\": 400,\r\n \"rightNum\": 1000\r\n },\r\n \"qtz\": {\r\n \"leftNum\": 400,\r\n \"rightNum\": 1000\r\n }\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 14:41:17', 101, 1, '2024-10-22 14:35:10', 0); +INSERT INTO `example_report_data` VALUES (1847530697479299074, '日交易额', '[\r\n {\r\n \"time\": \"12:00\",\r\n \"data\": 32000\r\n },\r\n {\r\n \"time\": \"14:00\",\r\n \"data\": 35000\r\n },\r\n {\r\n \"time\": \"16:00\",\r\n \"data\": 37000\r\n },\r\n {\r\n \"time\": \"18:00\",\r\n \"data\": 32000\r\n },\r\n {\r\n \"time\": \"20:00\",\r\n \"data\": 34000\r\n },\r\n {\r\n \"time\": \"22:00\",\r\n \"data\": 33000\r\n },\r\n {\r\n \"time\": \"24:00\",\r\n \"data\": 37000\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 14:50:18', 101, 1, '2024-10-22 14:50:56', 0); +INSERT INTO `example_report_data` VALUES (1847531621232812034, '周订单量', '[\r\n {\r\n \"date\": \"周一\",\r\n \"data\": 800\r\n },\r\n {\r\n \"date\": \"周二\",\r\n \"data\": 3000\r\n },\r\n {\r\n \"date\": \"周三\",\r\n \"data\": 2000\r\n },\r\n {\r\n \"date\": \"周四\",\r\n \"data\": 3800\r\n },\r\n {\r\n \"date\": \"周五\",\r\n \"data\": 3600\r\n },\r\n {\r\n \"date\": \"周六\",\r\n \"data\": 4800\r\n },\r\n {\r\n \"date\": \"周日\",\r\n \"data\": 4500\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 14:53:58', 101, 1, '2024-10-22 14:54:50', 0); +INSERT INTO `example_report_data` VALUES (1847533387051573250, '开拓商家', '[\r\n {\r\n \"date\": \"周一\",\r\n \"mbkts\": 1008,\r\n \"sjkts\": 1800\r\n },\r\n {\r\n \"date\": \"周二\",\r\n \"mbkts\": 2000,\r\n \"sjkts\": 2500\r\n },\r\n {\r\n \"date\": \"周三\",\r\n \"mbkts\": 2600,\r\n \"sjkts\": 2100\r\n },\r\n {\r\n \"date\": \"周四\",\r\n \"mbkts\": 1800,\r\n \"sjkts\": 1300\r\n },\r\n {\r\n \"date\": \"周五\",\r\n \"mbkts\": 3500,\r\n \"sjkts\": 6000\r\n },\r\n {\r\n \"date\": \"周六\",\r\n \"mbkts\": 5300,\r\n \"sjkts\": 2800\r\n },\r\n {\r\n \"date\": \"周日\",\r\n \"mbkts\": 3800,\r\n \"sjkts\": 6000\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 15:00:59', 101, 1, '2024-10-22 14:59:08', 0); +INSERT INTO `example_report_data` VALUES (1847534384184434689, '成交金额趋势', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"date\": \"12-01\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"100000\"\r\n },\r\n {\r\n \"date\": \"12-02\",\r\n \"xscj\": \"330000\",\r\n \"xxcj\": \"200000\"\r\n },\r\n {\r\n \"date\": \"12-03\",\r\n \"xscj\": \"340000\",\r\n \"xxcj\": \"180000\"\r\n },\r\n {\r\n \"date\": \"12-04\",\r\n \"xscj\": \"350000\",\r\n \"xxcj\": \"320000\"\r\n },\r\n {\r\n \"date\": \"12-05\",\r\n \"xscj\": \"360000\",\r\n \"xxcj\": \"300000\"\r\n },\r\n {\r\n \"date\": \"12-06\",\r\n \"xscj\": \"430000\",\r\n \"xxcj\": \"400000\"\r\n },\r\n {\r\n \"date\": \"12-07\",\r\n \"xscj\": \"450000\",\r\n \"xxcj\": \"380000\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"date\": \"12-05\",\r\n \"xscj\": \"350000\",\r\n \"xxcj\": \"320000\"\r\n },\r\n {\r\n \"date\": \"12-10\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"100000\"\r\n },\r\n {\r\n \"date\": \"12-15\",\r\n \"xscj\": \"360000\",\r\n \"xxcj\": \"300000\"\r\n },\r\n {\r\n \"date\": \"12-20\",\r\n \"xscj\": \"330000\",\r\n \"xxcj\": \"200000\"\r\n },\r\n {\r\n \"date\": \"12-25\",\r\n \"xscj\": \"430000\",\r\n \"xxcj\": \"400000\"\r\n },\r\n {\r\n \"date\": \"12-30\",\r\n \"xscj\": \"340000\",\r\n \"xxcj\": \"180000\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"date\": \"01\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"310000\"\r\n },\r\n {\r\n \"date\": \"02\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"280000\"\r\n },\r\n {\r\n \"date\": \"03\",\r\n \"xscj\": \"330000\",\r\n \"xxcj\": \"400000\"\r\n },\r\n {\r\n \"date\": \"04\",\r\n \"xscj\": \"340000\",\r\n \"xxcj\": \"180000\"\r\n },\r\n {\r\n \"date\": \"05\",\r\n \"xscj\": \"430000\",\r\n \"xxcj\": \"100000\"\r\n },\r\n {\r\n \"date\": \"06\",\r\n \"xscj\": \"420000\",\r\n \"xxcj\": \"350000\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"4\",\r\n \"data\": [\r\n {\r\n \"date\": \"01\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"310000\"\r\n },\r\n {\r\n \"date\": \"02\",\r\n \"xscj\": \"200000\",\r\n \"xxcj\": \"280000\"\r\n },\r\n {\r\n \"date\": \"03\",\r\n \"xscj\": \"330000\",\r\n \"xxcj\": \"400000\"\r\n },\r\n {\r\n \"date\": \"04\",\r\n \"xscj\": \"340000\",\r\n \"xxcj\": \"180000\"\r\n },\r\n {\r\n \"date\": \"05\",\r\n \"xscj\": \"430000\",\r\n \"xxcj\": \"100000\"\r\n },\r\n {\r\n \"date\": \"06\",\r\n \"xscj\": \"220000\",\r\n \"xxcj\": \"350000\"\r\n },\r\n {\r\n \"date\": \"07\",\r\n \"xscj\": \"380000\",\r\n \"xxcj\": \"180000\"\r\n },\r\n {\r\n \"date\": \"08\",\r\n \"xscj\": \"350000\",\r\n \"xxcj\": \"350000\"\r\n },\r\n {\r\n \"date\": \"09\",\r\n \"xscj\": \"280000\",\r\n \"xxcj\": \"100000\"\r\n },\r\n {\r\n \"date\": \"10\",\r\n \"xscj\": \"310000\",\r\n \"xxcj\": \"350000\"\r\n },\r\n {\r\n \"date\": \"11\",\r\n \"xscj\": \"330000\",\r\n \"xxcj\": \"400000\"\r\n },\r\n {\r\n \"date\": \"12\",\r\n \"xscj\": \"360000\",\r\n \"xxcj\": \"350000\"\r\n }\r\n ]\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-19 15:04:57', 101, 1, '2024-10-22 17:00:41', 0); +INSERT INTO `example_report_data` VALUES (1847538546150350850, '服务器基本信息', '[\r\n {\r\n \"xtyxsj\": 100,\r\n \"cpuhxs\": 8,\r\n \"nczl\": 50.0,\r\n \"xtpjfz\": 0.08,\r\n \"cpusyl\": 40,\r\n \"ncsyl\": 40,\r\n \"xtpjfzl\": 40\r\n }\r\n]', '系统首页系统监控', 1, 1, '2024-10-19 15:21:29', 101, 1, '2024-10-22 18:03:19', 0); +INSERT INTO `example_report_data` VALUES (1847539538107441153, 'CPU使用率', '[\r\n {\r\n \"time\": \"12:00\",\r\n \"syl\": \"10\"\r\n },\r\n {\r\n \"time\": \"13:00\",\r\n \"syl\": \"22\"\r\n },\r\n {\r\n \"time\": \"14:00\",\r\n \"syl\": \"28\"\r\n },\r\n {\r\n \"time\": \"15:00\",\r\n \"syl\": \"43\"\r\n },\r\n {\r\n \"time\": \"16:00\",\r\n \"syl\": \"49\"\r\n },\r\n {\r\n \"time\": \"17:00\",\r\n \"syl\": \"40\"\r\n }\r\n]', '系统首页系统监控', 1, 1, '2024-10-19 15:25:26', 101, 1, '2024-10-22 16:38:43', 0); +INSERT INTO `example_report_data` VALUES (1847540707286458370, '内存使用率', '[\r\n {\r\n \"time\": \"12:00\",\r\n \"syl\": \"10\"\r\n },\r\n {\r\n \"time\": \"13:00\",\r\n \"syl\": \"22\"\r\n },\r\n {\r\n \"time\": \"14:00\",\r\n \"syl\": \"28\"\r\n },\r\n {\r\n \"time\": \"15:00\",\r\n \"syl\": \"43\"\r\n },\r\n {\r\n \"time\": \"16:00\",\r\n \"syl\": \"49\"\r\n },\r\n {\r\n \"time\": \"17:00\",\r\n \"syl\": \"40\"\r\n }\r\n]', '系统首页系统监控', 1, 1, '2024-10-19 15:30:04', 101, 1, '2024-10-22 16:40:07', 0); +INSERT INTO `example_report_data` VALUES (1847541045368332290, '服务器流量', '[\r\n {\r\n \"time\": \"12:00\",\r\n \"sc\": 10,\r\n \"xz\": 20\r\n },\r\n {\r\n \"time\": \"13:00\",\r\n \"sc\": 15,\r\n \"xz\": 12\r\n },\r\n {\r\n \"time\": \"14:00\",\r\n \"sc\": 20,\r\n \"xz\": 23\r\n },\r\n {\r\n \"time\": \"15:00\",\r\n \"sc\": 25,\r\n \"xz\": 22\r\n },\r\n {\r\n \"time\": \"16:00\",\r\n \"sc\": 15,\r\n \"xz\": 10\r\n },\r\n {\r\n \"time\": \"17:00\",\r\n \"sc\": 20,\r\n \"xz\": 5\r\n }\r\n]', '系统首页系统监控', 1, 1, '2024-10-19 15:31:25', 101, 1, '2024-10-22 16:43:20', 0); +INSERT INTO `example_report_data` VALUES (1847541574995681281, '服务器磁盘IO', '[\r\n {\r\n \"time\": \"12:00\",\r\n \"sc\": 10,\r\n \"sr\": 20\r\n },\r\n {\r\n \"time\": \"13:00\",\r\n \"sc\": 15,\r\n \"sr\": 12\r\n },\r\n {\r\n \"time\": \"14:00\",\r\n \"sc\": 20,\r\n \"sr\": 23\r\n },\r\n {\r\n \"time\": \"15:00\",\r\n \"sc\": 25,\r\n \"sr\": 22\r\n },\r\n {\r\n \"time\": \"16:00\",\r\n \"sc\": 15,\r\n \"sr\": 10\r\n },\r\n {\r\n \"time\": \"17:00\",\r\n \"sc\": 20,\r\n \"sr\": 5\r\n }\r\n]', '系统首页系统监控', 1, 1, '2024-10-19 15:33:31', 101, 1, '2024-10-22 16:45:42', 0); +INSERT INTO `example_report_data` VALUES (1847543014543728641, '我的待办', '[\r\n {\r\n \"dclgd\": 50,\r\n \"dbxmx\": 25,\r\n \"dtjhb\": 23,\r\n \"dtjbb\": 14\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 15:39:15', 101, 1, '2024-10-24 09:44:15', 0); +INSERT INTO `example_report_data` VALUES (1847552846378180609, '业务处理', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n },\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"4\",\r\n \"data\": [\r\n {\r\n \"tjsj\": \"2016-05-03 12:00\",\r\n \"bxlx\": \"交通费报销单\",\r\n \"spdh\": \"Bx78858439\",\r\n \"bxje\": \"¥250.00\",\r\n \"spdx\": \"部门经理\"\r\n }\r\n ]\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:18:19', 101, 1, '2024-10-24 09:53:15', 0); +INSERT INTO `example_report_data` VALUES (1847553023780462594, '业务处理', '{\r\n \"title\": \"业务处理\",\r\n \"typeList\": [\r\n {\r\n \"name\": \"待我审批\",\r\n \"type\": \"dwsp\"\r\n },\r\n {\r\n \"name\": \"超期待审\",\r\n \"type\": \"cqds\"\r\n },\r\n {\r\n \"name\": \"我提交的\",\r\n \"type\": \"wtjd\"\r\n },\r\n {\r\n \"name\": \"被退回的\",\r\n \"type\": \"bthd\"\r\n }\r\n ],\r\n \"type\": \"cqds\",\r\n \"tableLabel\": [\r\n {\r\n \"prop\": \"date\",\r\n \"label\": \"提交时间\"\r\n },\r\n {\r\n \"prop\": \"name\",\r\n \"label\": \"报销类型\"\r\n },\r\n {\r\n \"prop\": \"number\",\r\n \"label\": \"审批单号\"\r\n },\r\n {\r\n \"prop\": \"money\",\r\n \"label\": \"报销金额\"\r\n },\r\n {\r\n \"prop\": \"object\",\r\n \"label\": \"审批对象\"\r\n }\r\n ],\r\n \"tableData\": [\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n },\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n }\r\n ]\r\n}', '系统首页数据看板2', 1, 1, '2024-10-19 16:19:01', 101, 1, '2024-10-21 11:25:32', -1); +INSERT INTO `example_report_data` VALUES (1847553127744675841, '业务处理', '{\r\n \"title\": \"业务处理\",\r\n \"typeList\": [\r\n {\r\n \"name\": \"待我审批\",\r\n \"type\": \"dwsp\"\r\n },\r\n {\r\n \"name\": \"超期待审\",\r\n \"type\": \"cqds\"\r\n },\r\n {\r\n \"name\": \"我提交的\",\r\n \"type\": \"wtjd\"\r\n },\r\n {\r\n \"name\": \"被退回的\",\r\n \"type\": \"bthd\"\r\n }\r\n ],\r\n \"type\": \"wtjd\",\r\n \"tableLabel\": [\r\n {\r\n \"prop\": \"date\",\r\n \"label\": \"提交时间\"\r\n },\r\n {\r\n \"prop\": \"name\",\r\n \"label\": \"报销类型\"\r\n },\r\n {\r\n \"prop\": \"number\",\r\n \"label\": \"审批单号\"\r\n },\r\n {\r\n \"prop\": \"money\",\r\n \"label\": \"报销金额\"\r\n },\r\n {\r\n \"prop\": \"object\",\r\n \"label\": \"审批对象\"\r\n }\r\n ],\r\n \"tableData\": [\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n },\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n },\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n },\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n }\r\n ]\r\n}', '系统首页数据看板2', 1, 1, '2024-10-19 16:19:26', 101, 1, '2024-10-21 11:27:31', -1); +INSERT INTO `example_report_data` VALUES (1847553186167136258, '业务处理', '{\r\n \"title\": \"业务处理\",\r\n \"typeList\": [\r\n {\r\n \"name\": \"待我审批\",\r\n \"type\": \"dwsp\"\r\n },\r\n {\r\n \"name\": \"超期待审\",\r\n \"type\": \"cqds\"\r\n },\r\n {\r\n \"name\": \"我提交的\",\r\n \"type\": \"wtjd\"\r\n },\r\n {\r\n \"name\": \"被退回的\",\r\n \"type\": \"bthd\"\r\n }\r\n ],\r\n \"type\": \"bthd\",\r\n \"tableLabel\": [\r\n {\r\n \"prop\": \"date\",\r\n \"label\": \"提交时间\"\r\n },\r\n {\r\n \"prop\": \"name\",\r\n \"label\": \"报销类型\"\r\n },\r\n {\r\n \"prop\": \"number\",\r\n \"label\": \"审批单号\"\r\n },\r\n {\r\n \"prop\": \"money\",\r\n \"label\": \"报销金额\"\r\n },\r\n {\r\n \"prop\": \"object\",\r\n \"label\": \"审批对象\"\r\n }\r\n ],\r\n \"tableData\": [\r\n {\r\n \"date\": \"2016-05-03 12:00\",\r\n \"name\": \"交通费报销单\",\r\n \"number\": \"Bx78858439\",\r\n \"money\": \"¥250.00\",\r\n \"object\": \"部门经理\"\r\n }\r\n ]\r\n}', '系统首页数据看板2', 1, 1, '2024-10-19 16:19:40', 101, 1, '2024-10-21 11:30:28', -1); +INSERT INTO `example_report_data` VALUES (1847553851350196225, '预警信息', '[\r\n {\r\n \"dqysk\": 150,\r\n \"yqysk\": 100,\r\n \"dqyfk\": 120,\r\n \"yqyfk\": 200\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:22:18', 101, 1, '2024-10-24 09:56:54', 0); +INSERT INTO `example_report_data` VALUES (1847554362698768385, '年度经营目标', '[\r\n {\r\n \"ndjymb\": 900,\r\n \"ywcmb\": 585,\r\n \"wcl\": 65\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:24:20', 101, 1, '2024-10-24 15:00:05', 0); +INSERT INTO `example_report_data` VALUES (1847555085654171649, '年度回款目标', '[\r\n {\r\n \"ndhkmb\": 800,\r\n \"ywcmb\": 440,\r\n \"wcl\": 55\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:27:12', 101, 1, '2024-10-24 15:00:25', 0); +INSERT INTO `example_report_data` VALUES (1847555794957115393, '账户余额', '[\r\n {\r\n \"name\": \"招商银行\",\r\n \"num\": 3500,\r\n \"jdt\": 80\r\n },\r\n {\r\n \"name\": \"建设银行\",\r\n \"num\": 3000,\r\n \"jdt\": 70\r\n },\r\n {\r\n \"name\": \"工商银行\",\r\n \"num\": 2500,\r\n \"jdt\": 60\r\n },\r\n {\r\n \"name\": \"农业银行\",\r\n \"num\": 2000,\r\n \"jdt\": 50\r\n },\r\n {\r\n \"name\": \"广州银行\",\r\n \"num\": 1500,\r\n \"jdt\": 40\r\n },\r\n {\r\n \"name\": \"其它\",\r\n \"num\": 1200,\r\n \"jdt\": 30\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:30:02', 101, 1, '2024-10-24 10:11:29', 0); +INSERT INTO `example_report_data` VALUES (1847556458613448705, '收支预测', '[\r\n {\r\n \"date\": \"1月\",\r\n \"yjsr\": 1008,\r\n \"yjzc\": 1800\r\n },\r\n {\r\n \"date\": \"2月\",\r\n \"yjsr\": 2000,\r\n \"yjzc\": 2500\r\n },\r\n {\r\n \"date\": \"3月\",\r\n \"yjsr\": 2600,\r\n \"yjzc\": 2100\r\n },\r\n {\r\n \"date\": \"4月\",\r\n \"yjsr\": 1800,\r\n \"yjzc\": 1300\r\n },\r\n {\r\n \"date\": \"5月\",\r\n \"yjsr\": 3500,\r\n \"yjzc\": 6000\r\n },\r\n {\r\n \"date\": \"6月\",\r\n \"yjsr\": 5300,\r\n \"yjzc\": 2800\r\n },\r\n {\r\n \"date\": \"7月\",\r\n \"yjsr\": 3200,\r\n \"yjzc\": 4000\r\n },\r\n {\r\n \"date\": \"8月\",\r\n \"yjsr\": 2800,\r\n \"yjzc\": 5000\r\n },\r\n {\r\n \"date\": \"9月\",\r\n \"yjsr\": 3300,\r\n \"yjzc\": 2500\r\n },\r\n {\r\n \"date\": \"10月\",\r\n \"yjsr\": 1100,\r\n \"yjzc\": 2000\r\n },\r\n {\r\n \"date\": \"11月\",\r\n \"yjsr\": 3800,\r\n \"yjzc\": 2800\r\n },\r\n {\r\n \"date\": \"12月\",\r\n \"yjsr\": 3800,\r\n \"yjzc\": 6000\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:32:40', 101, 1, '2024-10-24 10:17:42', 0); +INSERT INTO `example_report_data` VALUES (1847557169011105794, '费用结构', '[\r\n {\r\n \"name\": \"培训费用\",\r\n \"value\": 500000\r\n },\r\n {\r\n \"name\": \"产品研发\",\r\n \"value\": 900000\r\n },\r\n {\r\n \"name\": \"项目实施\",\r\n \"value\": 600000\r\n },\r\n {\r\n \"name\": \"其他费用\",\r\n \"value\": 500000\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:35:29', 101, 1, '2024-10-24 10:21:23', 0); +INSERT INTO `example_report_data` VALUES (1847557890913738754, '收入结构', '[\r\n {\r\n \"name\": \"培训费用\",\r\n \"value\": 500000\r\n },\r\n {\r\n \"name\": \"产品研发\",\r\n \"value\": 900000\r\n },\r\n {\r\n \"name\": \"项目实施\",\r\n \"value\": 600000\r\n },\r\n {\r\n \"name\": \"其他费用\",\r\n \"value\": 500000\r\n }\r\n]', '系统首页数据看板2', 1, 1, '2024-10-19 16:38:21', 101, 1, '2024-10-24 10:22:52', 0); +INSERT INTO `example_report_data` VALUES (1847558871873363969, '统计数据', '[\r\n {\r\n \"today_visitors\": 521555,\r\n \"today_member_visitors\": 12553,\r\n \"today_paid_member\": 5996,\r\n \"today_new_member\": 266\r\n }\r\n]', '系统首页数据会员', 1, 1, '2024-10-19 16:42:15', 101, 1, '2024-10-24 10:28:21', 0); +INSERT INTO `example_report_data` VALUES (1847559753813860354, '实时访问量', '[\r\n {\r\n \"date\": \"10:00\",\r\n \"ssfkl\": 1500\r\n },\r\n {\r\n \"date\": \"11:00\",\r\n \"ssfkl\": 3000\r\n },\r\n {\r\n \"date\": \"12:00\",\r\n \"ssfkl\": 2000\r\n },\r\n {\r\n \"date\": \"13:00\",\r\n \"ssfkl\": 1000\r\n },\r\n {\r\n \"date\": \"14:00\",\r\n \"ssfkl\": 1300\r\n },\r\n {\r\n \"date\": \"15:00\",\r\n \"ssfkl\": 1600\r\n },\r\n {\r\n \"date\": \"16:00\",\r\n \"ssfkl\": 2100\r\n },\r\n {\r\n \"date\": \"17:00\",\r\n \"ssfkl\": 1400\r\n },\r\n {\r\n \"date\": \"18:00\",\r\n \"ssfkl\": 1300\r\n }\r\n]', '系统首页数据会员', 1, 1, '2024-10-19 16:45:45', 101, 1, '2024-10-24 10:33:03', 0); +INSERT INTO `example_report_data` VALUES (1847560265909018626, '销售额', '[\r\n {\r\n \"date\": \"7日\",\r\n \"xse\": 0\r\n },\r\n {\r\n \"date\": \"8日\",\r\n \"xse\": 3000\r\n },\r\n {\r\n \"date\": \"9日\",\r\n \"xse\": 2000\r\n },\r\n {\r\n \"date\": \"10日\",\r\n \"xse\": 1000\r\n },\r\n {\r\n \"date\": \"11日\",\r\n \"xse\": 1300\r\n },\r\n {\r\n \"date\": \"12日\",\r\n \"xse\": 1600\r\n },\r\n {\r\n \"date\": \"13日\",\r\n \"xse\": 2100\r\n },\r\n {\r\n \"date\": \"14日\",\r\n \"xse\": 1400\r\n },\r\n {\r\n \"date\": \"15日\",\r\n \"xse\": 0\r\n }\r\n]', '系统首页数据会员', 1, 1, '2024-10-19 16:47:48', 101, 1, '2024-10-24 10:36:14', 0); +INSERT INTO `example_report_data` VALUES (1847561312085876737, '各品类占比', '[\r\n {\r\n \"je\": 3966,\r\n \"date\": \"2024-10\",\r\n \"nz\": 31.25,\r\n \"xb\": 12.50,\r\n \"my\": 18.75,\r\n \"sm\": 37.50\r\n }\r\n]', '系统首页数据会员', 1, 1, '2024-10-19 16:51:57', 101, 1, '2024-10-24 10:59:02', 0); +INSERT INTO `example_report_data` VALUES (1847562310334423041, '店铺业绩', '[\r\n {\r\n \"jrxse\": {\r\n \"num\": 8987.00,\r\n \"bf\": 68,\r\n \"bz\": 36\r\n },\r\n \"bzxse\": {\r\n \"num\": 17128.00,\r\n \"ts\": 21.6,\r\n \"mbje\": 13000.00\r\n },\r\n \"byxse\": {\r\n \"num\": 80064.00,\r\n \"ts\": 21.6,\r\n \"mbje\": 100000.00\r\n },\r\n \"bnxse\": {\r\n \"num\": 907064.00,\r\n \"ts\": 92,\r\n \"mbje\": 1200000.00\r\n }\r\n }\r\n]', '系统首页数据首页', 1, 1, '2024-10-19 16:55:55', 101, 1, '2024-10-24 11:18:08', 0); +INSERT INTO `example_report_data` VALUES (1847563190903382017, '销售数据', '[\r\n {\r\n \"date\": \"44周\",\r\n \"sczhl\": 120,\r\n \"je\": 150\r\n },\r\n {\r\n \"date\": \"45周\",\r\n \"sczhl\": 132,\r\n \"je\": 182\r\n },\r\n {\r\n \"date\": \"46周\",\r\n \"sczhl\": 101,\r\n \"je\": 151,\r\n \"rje\": 100\r\n },\r\n {\r\n \"date\": \"47周\",\r\n \"sczhl\": 134,\r\n \"je\": 164\r\n },\r\n {\r\n \"date\": \"48周\",\r\n \"sczhl\": 90,\r\n \"je\": 120,\r\n \"rje\": 100\r\n },\r\n {\r\n \"date\": \"49周\",\r\n \"sczhl\": 230,\r\n \"je\": 160\r\n },\r\n {\r\n \"date\": \"本周\",\r\n \"sczhl\": 160,\r\n \"je\": 100,\r\n \"rje\": 100\r\n }\r\n]', '系统首页数据首页', 1, 1, '2024-10-19 16:59:25', 101, 1, '2024-10-24 11:30:02', 0); +INSERT INTO `example_report_data` VALUES (1847563858124873730, '本周数据详情', '[\r\n {\r\n \"tycs\": 875,\r\n \"tycszhl\": 45,\r\n \"sccs\": 326,\r\n \"sccszhl\": 45,\r\n \"xssl\": 124,\r\n \"xsslzhl\": 36,\r\n \"ldv\": 5,\r\n \"yjdl\": 23,\r\n \"ddl\": 8,\r\n \"gjdp\": 0\r\n }\r\n]', '系统首页数据首页', 1, 1, '2024-10-19 17:02:04', 101, 1, '2024-10-24 11:39:19', 0); +INSERT INTO `example_report_data` VALUES (1847564828560990209, '上周综合提升', '[\r\n {\r\n \"xsl\": \"6%\",\r\n \"xse\": \"15%\",\r\n \"sczh\": \"6%\"\r\n }\r\n]', '系统首页数据首页', 1, 1, '2024-10-19 17:05:55', 101, 1, '2024-10-24 13:43:55', 0); +INSERT INTO `example_report_data` VALUES (1848615589260808193, '商户分布', '[\r\n {\r\n \"value\": 8000,\r\n \"name\": \"娱乐\"\r\n },\r\n {\r\n \"value\": 10000,\r\n \"name\": \"旅游\"\r\n },\r\n {\r\n \"value\": 10000,\r\n \"name\": \"酒店\"\r\n },\r\n {\r\n \"value\": 8000,\r\n \"name\": \"餐饮\"\r\n },\r\n {\r\n \"value\": 6000,\r\n \"name\": \"医疗\"\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-22 14:41:16', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1848616650138701826, '交易漏斗', '[\r\n {\r\n \"value\": 50000,\r\n \"name\": \"访问人数\"\r\n },\r\n {\r\n \"value\": 35000,\r\n \"name\": \"提交订单\"\r\n },\r\n {\r\n \"value\": 25000,\r\n \"name\": \"支付成功\"\r\n },\r\n {\r\n \"value\": 15000,\r\n \"name\": \"到店消费\"\r\n }\r\n]', '系统首页商户统计', 1, 1, '2024-10-22 14:45:29', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849333158003253249, '转化率', '[\r\n {\r\n \"date\": \"2020-05-12 ~ 2020-07-18\",\r\n \"cgkhs\": 2454,\r\n \"xzhys\": 2454,\r\n \"kdj\": 40.50,\r\n \"fwzfzhl\": 45\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 14:12:38', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849340925292224513, '实时数据', '[\r\n {\r\n \"zfje\": {\r\n \"jr\": 619.86,\r\n \"zr\": 407.31,\r\n \"flag\": 1\r\n },\r\n \"zfdd\": {\r\n \"jr\": 40,\r\n \"zr\": 88,\r\n \"flag\": 0\r\n },\r\n \"lll\": {\r\n \"jr\": 2368,\r\n \"zr\": 2587,\r\n \"flag\": 0\r\n },\r\n \"fks\": {\r\n \"jr\": 987,\r\n \"zr\": 1257,\r\n \"flag\": 0\r\n },\r\n \"gxsj\": \"11:41:22\",\r\n \"data\": [\r\n {\r\n \"date\": \"1\",\r\n \"zr\": 76,\r\n \"jr\": 50\r\n },\r\n {\r\n \"date\": \"2\",\r\n \"zr\": 60,\r\n \"jr\": 50\r\n },\r\n {\r\n \"date\": \"3\",\r\n \"zr\": 22,\r\n \"jr\": 32\r\n },\r\n {\r\n \"date\": \"4\",\r\n \"zr\": 85,\r\n \"jr\": 65\r\n },\r\n {\r\n \"date\": \"5\",\r\n \"zr\": 50,\r\n \"jr\": 30\r\n },\r\n {\r\n \"date\": \"6\",\r\n \"zr\": 60\r\n }\r\n ]\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 14:43:30', 101, 1, '2024-10-24 14:48:16', 0); +INSERT INTO `example_report_data` VALUES (1849343844515225601, '智能助手', '[\r\n {\r\n \"type\": \"1\",\r\n \"data\": [\r\n {\r\n \"dfhdd\": 3534,\r\n \"dhfkf\": 7833,\r\n \"yzxsp\": 3873,\r\n \"dtkdd\": 3873,\r\n \"pdzkh\": 2737\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"2\",\r\n \"data\": [\r\n {\r\n \"dfhdd\": 3454,\r\n \"dhfkf\": 3575,\r\n \"yzxsp\": 3388,\r\n \"dtkdd\": 3783,\r\n \"pdzkh\": 3788\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"3\",\r\n \"data\": [\r\n {\r\n \"dfhdd\": 4876,\r\n \"dhfkf\": 3788,\r\n \"yzxsp\": 3786,\r\n \"dtkdd\": 2837,\r\n \"pdzkh\": 3787\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"4\",\r\n \"data\": [\r\n {\r\n \"dfhdd\": 3873,\r\n \"dhfkf\": 3738,\r\n \"yzxsp\": 3783,\r\n \"dtkdd\": 3366,\r\n \"pdzkh\": 3783\r\n }\r\n ]\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 14:55:06', 101, 1, '2024-10-24 15:07:30', 0); +INSERT INTO `example_report_data` VALUES (1849350949871722497, '智能助手待处理', '[\r\n {\r\n \"xxnra\": \"有新的小程序版本(2.57.7)待更新\",\r\n \"jjcd\": 1,\r\n \"btname\": \"立即处理\"\r\n },\r\n {\r\n \"xxnra\": \"跳失率49.09%,行业标准22.9%,改良版本\",\r\n \"jjcd\": 0,\r\n \"btname\": \"快速提升\"\r\n },\r\n {\r\n \"xxnra\": \"未开通快速回款\",\r\n \"xxnrb\": \"开通后,发货当日即可回款\",\r\n \"jjcd\": 0,\r\n \"btname\": \"立即开通\"\r\n },\r\n {\r\n \"xxnra\": \"消息4\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息5\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息5\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息6\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息7\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息8\",\r\n \"jjcd\": 0\r\n },\r\n {\r\n \"xxnra\": \"消息9\",\r\n \"jjcd\": 0\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:23:20', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849352534425247745, '服务通知', '[\r\n {\r\n \"title\": \"【社区团购】\",\r\n \"content\": \"服务已失效,如需继续使用,可一键订购\"\r\n },\r\n {\r\n \"title\": \"【知识付费】\",\r\n \"content\": \"服务已失效,如需继续使用,可一键订购\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:29:38', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849354290081210369, '规则中心', '[\r\n {\r\n \"type\": \"success\",\r\n \"title\": \"[投票]生态管理与违规处理规范\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[协议]隐私政策\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[协议]担保服务协议\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[协议]商家经营规范\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:36:36', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849355515996577793, '产品动态', '[\r\n {\r\n \"type\": \"success\",\r\n \"title\": \"[07-27]悬浮窗增加微信引导分享\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[07-22]退货包运费准入门槛降低\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[07-17]分享有礼帮助商家裂变引流\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[07-17]积分兑换库存商详页展示优化\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:41:29', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849356680775770114, '学习中心', '[\r\n {\r\n \"type\": \"success\",\r\n \"title\": \"[资讯]支持极速开通小程序\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[报名]爱逛8月活动招商活动\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[报名]销售员版商品详情页内测招募\"\r\n },\r\n {\r\n \"type\": \"info\",\r\n \"title\": \"[公告]精选7月消暑清凉节招商\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:46:06', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849356680775770115, '商家', '[\r\n {\r\n \"title\": \"某赞金融\",\r\n \"content\": \"[快速回款]为数百商家提额\"\r\n },\r\n {\r\n \"title\": \"运营干货\",\r\n \"content\": \"30条电商8月热点营销秘籍\"\r\n },\r\n {\r\n \"title\": \"直播电商\",\r\n \"content\": \"戴军爱逛直播零坑位费推广好...\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:46:06', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1849356680775770116, '商家经验数量', '[\r\n {\r\n \"cou\": \"30k+\"\r\n }\r\n]', '系统首页首页概览', 1, 1, '2024-10-24 15:46:06', 101, NULL, NULL, 0); +INSERT INTO `example_report_data` VALUES (1851878855000862721, '使用最多模块', '[\r\n {\r\n \"pm\": 1,\r\n \"mk\": \"用户管理\",\r\n \"syyhs\": 100,\r\n \"zzf\": \"128%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 2,\r\n \"mk\": \"菜单管理\",\r\n \"syyhs\": 99,\r\n \"zzf\": \"3%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 3,\r\n \"mk\": \"公告管理\",\r\n \"syyhs\": 90,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 4,\r\n \"mk\": \"系统日志\",\r\n \"syyhs\": 77,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 0\r\n },\r\n {\r\n \"pm\": 5,\r\n \"mk\": \"系统监控\",\r\n \"syyhs\": 66,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 0\r\n }\r\n]', '系统首页使用统计', 1, 1, '2024-10-31 14:48:19', 101, 1, '2024-10-31 14:51:16', 0); +INSERT INTO `example_report_data` VALUES (1851880329806229506, '使用最少模块', '[\r\n {\r\n \"pm\": 1,\r\n \"mk\": \"消息中心\",\r\n \"syyhs\": 12,\r\n \"zzf\": \"128%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 2,\r\n \"mk\": \"租户管理\",\r\n \"syyhs\": 19,\r\n \"zzf\": \"3%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 3,\r\n \"mk\": \"组织管理\",\r\n \"syyhs\": 24,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 1\r\n },\r\n {\r\n \"pm\": 4,\r\n \"mk\": \"个人中心\",\r\n \"syyhs\": 28,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 0\r\n },\r\n {\r\n \"pm\": 5,\r\n \"mk\": \"租户管理\",\r\n \"syyhs\": 32,\r\n \"zzf\": \"58%\",\r\n \"zzfFlag\": 0\r\n }\r\n]', '系统首页使用统计', 1, 1, '2024-10-31 14:54:11', 101, 1, '2024-10-31 17:27:03', 0); + +-- ---------------------------- +-- Table structure for example_score +-- ---------------------------- +DROP TABLE IF EXISTS `example_score`; +CREATE TABLE `example_score` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `student_id` bigint(0) NULL DEFAULT NULL COMMENT '学生', + `course_id` bigint(0) NULL DEFAULT NULL COMMENT '课程', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `score_test` decimal(10, 0) NULL DEFAULT NULL COMMENT '分数', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '成绩' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_score +-- ---------------------------- +INSERT INTO `example_score` VALUES (1834522214307893250, 1833443857386340354, 1, 1, 1, '2024-09-13 17:19:14', 101, NULL, NULL, 0, 11); + +-- ---------------------------- +-- Table structure for example_single_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_single_table`; +CREATE TABLE `example_single_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `age` int(0) NULL DEFAULT NULL COMMENT '年龄', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `interest` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '爱好', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '单表示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_single_table +-- ---------------------------- +INSERT INTO `example_single_table` VALUES (1831586687260082177, '彭艳', 29, '1995-09-05', '烹饪', 1, 1, '2024-09-05 14:54:30', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586692536516610, '唐刚', 42, '1982-09-05', '篮球', 1, 1, '2024-09-05 14:54:31', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586697846505474, '冯丽', 48, '1976-09-05', '旅行', 1, 1, '2024-09-05 14:54:32', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586703064219649, '贾刚', 30, '1994-09-05', '园艺', 1, 1, '2024-09-05 14:54:33', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586708562952193, '潘敏', 42, '1982-09-05', '阅读', 1, 1, '2024-09-05 14:54:35', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586713747111938, '贾刚', 42, '1982-09-05', '音乐', 1, 1, '2024-09-05 14:54:36', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586718943854593, '潘敏', 46, '1978-09-05', '游泳', 1, 1, '2024-09-05 14:54:37', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586724182540290, '郭涛', 20, '2004-09-05', '绘画', 1, 1, '2024-09-05 14:54:38', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586729442197505, '贾刚', 25, '1999-09-05', '音乐', 1, 1, '2024-09-05 14:54:40', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586734735409154, '汪敏', 48, '1976-09-05', '篮球', 1, 1, '2024-09-05 14:54:41', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586740016037890, '潘敏', 28, '1996-09-05', '园艺', 1, 1, '2024-09-05 14:54:42', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586745233752066, '苏浩', 47, '1977-09-05', '绘画', 1, 1, '2024-09-05 14:54:43', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586750392745986, '莫刚', 29, '1995-09-05', '旅行', 1, 1, '2024-09-05 14:54:45', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586755497213954, '欧明', 36, '1988-09-05', '绘画', 1, 1, '2024-09-05 14:54:46', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586760677179393, '杨强', 32, '1992-09-05', '绘画', 1, 1, '2024-09-05 14:54:47', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586765953613826, '汪敏', 25, '1999-09-05', '摄影', 1, 1, '2024-09-05 14:54:48', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586771221659650, '谢浩', 35, '1989-09-05', '园艺', 1, 1, '2024-09-05 14:54:50', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586776464539650, '罗明', 38, '1986-09-05', '音乐', 1, 1, '2024-09-05 14:54:51', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586781736779777, '岳丽', 35, '1989-09-05', '阅读', 1, 1, '2024-09-05 14:54:52', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586786983854081, '莫刚', 25, '1999-09-05', '游泳', 1, 1, '2024-09-05 14:54:53', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586792323203074, '彭艳', 41, '1983-09-05', '摄影', 1, 1, '2024-09-05 14:54:55', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586797461225474, '唐刚', 42, '1982-09-05', '音乐', 1, 1, '2024-09-05 14:54:56', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586802649579521, '高敏', 42, '1982-09-05', '游泳', 1, 1, '2024-09-05 14:54:57', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586807946985473, '周琳', 48, '1976-09-05', '旅行', 1, 1, '2024-09-05 14:54:58', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586813307305985, '赵敏', 48, '1976-09-05', '园艺', 1, 1, '2024-09-05 14:55:00', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586818504048641, '林芳', 30, '1994-09-05', '篮球', 1, 1, '2024-09-05 14:55:01', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586823675625473, '钟强', 25, '1999-09-05', '阅读', 1, 1, '2024-09-05 14:55:02', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586828754927618, '刘伟', 20, '2004-09-05', '摄影', 1, 1, '2024-09-05 14:55:03', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586834014584833, '郑丽', 26, '1998-09-05', '游泳', 1, 1, '2024-09-05 14:55:05', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586839282630658, '郭涛', 26, '1998-09-05', '烹饪', 1, 1, '2024-09-05 14:55:06', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586844567453697, '李强', 33, '1991-09-05', '园艺', 1, 1, '2024-09-05 14:55:07', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586849676115969, '王芳', 27, '1997-09-05', '烹饪', 1, 1, '2024-09-05 14:55:08', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586854839304193, '万丽', 22, '2002-09-05', '绘画', 1, 1, '2024-09-05 14:55:10', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586860073795586, '张伟', 46, '1978-09-05', '游泳', 1, 1, '2024-09-05 14:55:11', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586865421533186, '郭涛', 35, '1989-09-05', '篮球', 1, 1, '2024-09-05 14:55:12', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586870660218882, '魏艳', 24, '2000-09-05', '阅读', 1, 1, '2024-09-05 14:55:13', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586875873738754, '韦明', 32, '1992-09-05', '阅读', 1, 1, '2024-09-05 14:55:15', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586881045315586, '傅敏', 41, '1983-09-05', '绘画', 1, 1, '2024-09-05 14:55:16', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586886263029762, '林芳', 32, '1992-09-05', '园艺', 1, 1, '2024-09-05 14:55:17', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586891543658498, '潘敏', 25, '1999-09-05', '篮球', 1, 1, '2024-09-05 14:55:18', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586896824287233, '何强', 45, '1979-09-05', '园艺', 1, 1, '2024-09-05 14:55:20', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586902083944449, '彭艳', 44, '1980-09-05', '瑜伽', 1, 1, '2024-09-05 14:55:21', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586907217772546, '蔡浩', 45, '1979-09-05', '瑜伽', 1, 1, '2024-09-05 14:55:22', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586912406126593, '肖强', 27, '1997-09-05', '阅读', 1, 1, '2024-09-05 14:55:23', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586917539954690, '陈浩', 21, '2003-09-05', '音乐', 1, 1, '2024-09-05 14:55:25', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586922837360641, '林芳', 49, '1975-09-05', '游泳', 1, 1, '2024-09-05 14:55:26', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586928189292546, '蔡浩', 37, '1987-09-05', '旅行', 1, 1, '2024-09-05 14:55:27', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586933310537730, '冯丽', 36, '1988-09-05', '篮球', 1, 1, '2024-09-05 14:55:28', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586938448560129, '彭艳', 24, '2000-09-05', '瑜伽', 1, 1, '2024-09-05 14:55:30', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1831586943775326210, '王芳', 48, '1976-09-05', '游泳', 1, 1, '2024-09-05 14:55:31', 101, NULL, NULL, 0); +INSERT INTO `example_single_table` VALUES (1837013597012119553, '小米', 20, '1999-01-01', '表格', 1, 1, '2024-09-20 14:19:06', 101, NULL, NULL, -1); + +-- ---------------------------- +-- Table structure for example_sjbb_hkje +-- ---------------------------- +DROP TABLE IF EXISTS `example_sjbb_hkje`; +CREATE TABLE `example_sjbb_hkje` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tabs_card_date` date NULL DEFAULT NULL COMMENT '时间', + `tabs_card_target_money` bigint(0) NULL DEFAULT NULL COMMENT '目标金额', + `tabs_card_accomplish_money` bigint(0) NULL DEFAULT NULL COMMENT '成交金额', + `tabs_card_accomplish_form` bigint(0) NULL DEFAULT NULL COMMENT '成交订单', + `tabs_card_percentage_complete` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '完成率', + `tabs_card_average_price` bigint(0) NULL DEFAULT NULL COMMENT '平均客单价', + `tabs_card_department` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门', + `tabs_card_personnel` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '人员', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据报表-回款金额' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sjbb_hkje +-- ---------------------------- +INSERT INTO `example_sjbb_hkje` VALUES (1834071428629225473, '2024-09-04', 100, 100, 10, '120', 11, '114', '1', 1, 1, '2024-09-12 11:27:58', 101, 1, '2024-09-12 13:45:26', 0); +INSERT INTO `example_sjbb_hkje` VALUES (1834106523788402689, '2024-09-13', 5, 1, 54, '4', 4, '114', '1', 1, 1, '2024-09-12 13:47:25', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sjhy_gplzb +-- ---------------------------- +DROP TABLE IF EXISTS `example_sjhy_gplzb`; +CREATE TABLE `example_sjhy_gplzb` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `sm` decimal(10, 2) NULL DEFAULT NULL COMMENT '数码', + `nz` decimal(10, 2) NULL DEFAULT NULL COMMENT '男装', + `my` decimal(10, 2) NULL DEFAULT NULL COMMENT '母婴', + `xb` decimal(10, 2) NULL DEFAULT NULL COMMENT '鞋包', + `rq` date NULL DEFAULT NULL COMMENT '日期', + `je` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据会员-各品类占比' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sjhy_gplzb +-- ---------------------------- +INSERT INTO `example_sjhy_gplzb` VALUES (1850109515985485825, 37.50, 31.25, 18.75, 12.50, '2024-10-31', 3967.00, 1, 1, '2024-10-26 17:37:36', 101, 1, '2024-10-28 14:42:49', 0); + +-- ---------------------------- +-- Table structure for example_sjhy_ssfkl +-- ---------------------------- +DROP TABLE IF EXISTS `example_sjhy_ssfkl`; +CREATE TABLE `example_sjhy_ssfkl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `fkl` int(0) NULL DEFAULT NULL COMMENT '访客量', + `sj` time(0) NULL DEFAULT NULL COMMENT '时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据会员-实时访客量' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sjhy_ssfkl +-- ---------------------------- +INSERT INTO `example_sjhy_ssfkl` VALUES (1850092932500185090, 1500, '10:00:00', 1, 1, '2024-10-26 16:31:42', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093006810669058, 3000, '11:00:00', 1, 1, '2024-10-26 16:32:00', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093085764247554, 2000, '12:00:00', 1, 1, '2024-10-26 16:32:19', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093152864722946, 1000, '13:00:00', 1, 1, '2024-10-26 16:32:35', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093358473699330, 1300, '14:00:00', 1, 1, '2024-10-26 16:33:24', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093419244969985, 1600, '15:00:00', 1, 1, '2024-10-26 16:33:38', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093480129486850, 2100, '16:00:00', 1, 1, '2024-10-26 16:33:53', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093607913152513, 1400, '17:00:00', 1, 1, '2024-10-26 16:34:23', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_ssfkl` VALUES (1850093665161207809, 1300, '18:00:00', 1, 1, '2024-10-26 16:34:37', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sjhy_tjsj +-- ---------------------------- +DROP TABLE IF EXISTS `example_sjhy_tjsj`; +CREATE TABLE `example_sjhy_tjsj` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `jrfks` int(0) NULL DEFAULT NULL COMMENT '今日访客数', + `jrhyfws` int(0) NULL DEFAULT NULL COMMENT '今日会员访问数', + `jrhyffs` int(0) NULL DEFAULT NULL COMMENT '今日会员付费数', + `xzhys` int(0) NULL DEFAULT NULL COMMENT '新增会员数', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据会员-统计数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sjhy_tjsj +-- ---------------------------- +INSERT INTO `example_sjhy_tjsj` VALUES (1850061694028689410, 521555, 12553, 5996, 267, 1, 1, '2024-10-26 14:27:35', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sjhy_xse +-- ---------------------------- +DROP TABLE IF EXISTS `example_sjhy_xse`; +CREATE TABLE `example_sjhy_xse` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `xse` decimal(10, 0) NULL DEFAULT NULL COMMENT '销售额', + `rq` date NULL DEFAULT NULL COMMENT '日期', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据会员-销售额' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sjhy_xse +-- ---------------------------- +INSERT INTO `example_sjhy_xse` VALUES (1850095513469345793, 0, '2024-10-07', 1, 1, '2024-10-26 16:41:58', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095553898242049, 3000, '2024-10-08', 1, 1, '2024-10-26 16:42:07', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095640988770306, 2000, '2024-10-09', 1, 1, '2024-10-26 16:42:28', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095696705904641, 1000, '2024-10-10', 1, 1, '2024-10-26 16:42:41', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095749432500226, 1300, '2024-10-11', 1, 1, '2024-10-26 16:42:54', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095806214987777, 1600, '2024-10-12', 1, 1, '2024-10-26 16:43:07', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095870027128834, 2100, '2024-10-13', 1, 1, '2024-10-26 16:43:23', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095946392821761, 2100, '2024-10-14', 1, 1, '2024-10-26 16:43:41', 101, NULL, NULL, 0); +INSERT INTO `example_sjhy_xse` VALUES (1850095988717543425, 0, '2024-10-15', 1, 1, '2024-10-26 16:43:51', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_staff_management +-- ---------------------------- +DROP TABLE IF EXISTS `example_staff_management`; +CREATE TABLE `example_staff_management` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `xm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `bm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `zw` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职务', + `zhzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号状态', + `phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `zxzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '在线状态', + `zhdl` datetime(0) NULL DEFAULT NULL COMMENT '最后登录', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-员工管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_staff_management +-- ---------------------------- +INSERT INTO `example_staff_management` VALUES (1846127398497792001, '张小刚', '114', 1, 1, '2024-10-15 17:54:05', 101, 1, '2024-10-15 17:57:28', 0, '销售总监', '1', '18088889999', '1', '2024-10-15 17:54:05'); +INSERT INTO `example_staff_management` VALUES (1846128507253665794, '张小刚', '114', 1, 1, '2024-10-15 17:58:30', 101, NULL, NULL, 0, '销售部', '1', '18088889999', '1', '2024-10-15 17:58:30'); +INSERT INTO `example_staff_management` VALUES (1846128600149110786, '张小刚', '114', 1, 1, '2024-10-15 17:58:52', 101, NULL, NULL, 0, '销售部', '1', '18088889999', '1', '2024-10-13 00:00:00'); +INSERT INTO `example_staff_management` VALUES (1846128698656534529, '张小刚', '114', 1, 1, '2024-10-15 17:59:15', 101, NULL, NULL, 0, '销售部', '1', '18088889999', '1', '2024-09-30 00:00:00'); +INSERT INTO `example_staff_management` VALUES (1846128849366265858, '张小刚', '114', 1, 1, '2024-10-15 17:59:51', 101, NULL, NULL, 0, '销售部', '1', '18088889999', '1', '2024-10-12 10:08:05'); + +-- ---------------------------- +-- Table structure for example_staff_management_console +-- ---------------------------- +DROP TABLE IF EXISTS `example_staff_management_console`; +CREATE TABLE `example_staff_management_console` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `zdlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '终端类型', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '登录时间', + `bb` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器/终端版本', + `czxt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统', + `sbmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备名称', + `macdz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'MAC地址', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录IP', + `address` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在地区', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '员工管理-登录日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_staff_management_console +-- ---------------------------- +INSERT INTO `example_staff_management_console` VALUES (1846739571754336258, '1', '2024-10-17 10:26:39', 'Firefox 68.0', 'Win10', 'WindirPC', 'E8-4E-06-51-3B-16', 1, 1, 101, 1, '2024-10-17 10:28:10', 0, '192.168.1.1', '130000,130200'); +INSERT INTO `example_staff_management_console` VALUES (1846740834617327618, '1', '2024-10-17 10:31:40', 'Firefox 68.0', 'Win10', 'WindirPC', 'E8-4E-06-51-3B-16', 1, 1, 101, NULL, NULL, 0, '192.168.1.1', '130000,130200'); +INSERT INTO `example_staff_management_console` VALUES (1846741082119012353, '1', '2024-10-17 10:32:39', 'Firefox 68.0', 'Win10', 'WindirPC', 'E8-4E-06-51-3B-16', 1, 1, 101, NULL, NULL, 0, '192.168.1.1', '110000,110100'); + +-- ---------------------------- +-- Table structure for example_staff_management_czjl +-- ---------------------------- +DROP TABLE IF EXISTS `example_staff_management_czjl`; +CREATE TABLE `example_staff_management_czjl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `czlx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作类型', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `czxq` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作详情', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '操作者', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '员工管理-操作记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_staff_management_czjl +-- ---------------------------- +INSERT INTO `example_staff_management_czjl` VALUES (1846748838192414722, '1', '2024-10-17 11:03:28', '设为启用(备注内容:***)', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_staff_management_czjl` VALUES (1846748901622874114, '1', '2024-10-17 11:03:43', '设为停用(备注内容:***)', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_staff_management_czjl` VALUES (1846748949538603009, '2', '2024-10-17 11:03:55', '修改部门(旧值:*** 新值:***)', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_staff_management_czjl` VALUES (1846748999920582657, '3', '2024-10-17 11:04:07', '修改职务(旧值:*** 新值:***)', 1, 1, 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_student +-- ---------------------------- +DROP TABLE IF EXISTS `example_student`; +CREATE TABLE `example_student` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `sno` bigint(0) NULL DEFAULT NULL COMMENT '学号', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `sex` int(0) NULL DEFAULT NULL COMMENT '性别', + `birthday` date NULL DEFAULT NULL COMMENT '出生日期', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `flag` int(0) NULL DEFAULT 0 COMMENT '标记', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '学生' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_student +-- ---------------------------- +INSERT INTO `example_student` VALUES (1849362903864614914, 1, '1', 1, '2024-10-24', 1, 1, '2024-10-24 16:10:50', 101, NULL, NULL, 0, NULL); + +-- ---------------------------- +-- Table structure for example_sub_erp_more_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_erp_more_table`; +CREATE TABLE `example_sub_erp_more_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `course_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程名称', + `credits` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学分', + `grade` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成绩', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表_copy' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_erp_more_table +-- ---------------------------- +INSERT INTO `example_sub_erp_more_table` VALUES (1831885554518126593, 1831885493457448962, '语文', '80', '80', 1, 1, '2024-09-06 10:42:05', 101, NULL, NULL, 0); +INSERT INTO `example_sub_erp_more_table` VALUES (1831885583827922946, 1831885493457448962, '数学', '85', '85', 1, 1, '2024-09-06 10:42:12', 101, NULL, NULL, 0); +INSERT INTO `example_sub_erp_more_table` VALUES (1831885609471897601, 1831885493457448962, '英语', '0', '0', 1, 1, '2024-09-06 10:42:18', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sub_erp_one_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_erp_one_table`; +CREATE TABLE `example_sub_erp_one_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `emergency_contact` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '紧急联系人', + `contact_phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人电话', + `address` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '住址', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表_copy' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_erp_one_table +-- ---------------------------- +INSERT INTO `example_sub_erp_one_table` VALUES (1831886003434483713, 1831885493457448962, '李梅梅', '15013500000', '广东省广州市xxx村', 1, 1, '2024-09-06 10:43:52', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sub_more_date +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_more_date`; +CREATE TABLE `example_sub_more_date` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `rl_id` bigint(0) NULL DEFAULT NULL COMMENT '日历id', + `time` datetime(0) NULL DEFAULT NULL COMMENT '时间', + `ms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '描述', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日程标题', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '日历管理附表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_more_date +-- ---------------------------- +INSERT INTO `example_sub_more_date` VALUES (1850727266746867714, 1, 1, '2024-10-28 10:32:19', 101, 1, '2024-10-29 14:00:01', 0, 1850727265467604994, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1850727267355041793, 1, 1, '2024-10-28 10:32:20', 101, 1, '2024-10-29 14:00:01', 0, 1850727265467604994, NULL, '未添加描述', '任务或日程标题二'); +INSERT INTO `example_sub_more_date` VALUES (1850727267959021570, 1, 1, '2024-10-28 10:32:20', 101, 1, '2024-10-29 14:00:02', 0, 1850727265467604994, NULL, '未添加描述', '任务或日程标题三'); +INSERT INTO `example_sub_more_date` VALUES (1850736885149966338, 1, 1, '2024-10-28 11:10:33', 101, 1, '2024-10-29 13:59:16', 0, 1850736884009115649, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1850736885741363202, 1, 1, '2024-10-28 11:10:33', 101, 1, '2024-10-29 13:59:16', 0, 1850736884009115649, NULL, '未添加描述', '任务或日程标题二'); +INSERT INTO `example_sub_more_date` VALUES (1850736886315982849, 1, 1, '2024-10-28 11:10:33', 101, 1, '2024-10-29 13:59:16', 0, 1850736884009115649, NULL, '未添加描述', '任务或日程标题三'); +INSERT INTO `example_sub_more_date` VALUES (1850780976428589057, 1, 1, '2024-10-28 14:05:45', 101, 1, '2024-10-29 13:58:34', 0, 1850780975187075073, NULL, '未添加描述', '过期的任务或日程一'); +INSERT INTO `example_sub_more_date` VALUES (1850780977045151746, 1, 1, '2024-10-28 14:05:45', 101, 1, '2024-10-29 13:58:34', 0, 1850780975187075073, NULL, '未添加描述', '过期的任务或日程二'); +INSERT INTO `example_sub_more_date` VALUES (1850780977670103042, 1, 1, '2024-10-28 14:05:45', 101, 1, '2024-10-29 13:58:34', 0, 1850780975187075073, NULL, '未添加描述', '过期的任务或日程三'); +INSERT INTO `example_sub_more_date` VALUES (1850790112932278274, 1, 1, '2024-10-28 14:42:03', 101, 1, '2024-10-29 14:00:02', 0, 1850727265467604994, NULL, '未添加描述', '任务或日程标题四'); +INSERT INTO `example_sub_more_date` VALUES (1850790540076003330, 1, 1, '2024-10-28 14:43:45', 101, 1, '2024-10-29 13:59:16', 0, 1850736884009115649, NULL, '未添加描述', '任务或日程标题四'); +INSERT INTO `example_sub_more_date` VALUES (1850791496868048897, 1, 1, '2024-10-28 14:47:33', 101, 1, '2024-10-29 13:57:09', 0, 1850791495534260225, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1850791497602052097, 1, 1, '2024-10-28 14:47:33', 101, 1, '2024-10-29 13:57:09', 0, 1850791495534260225, NULL, '未添加描述', '任务或日程标题二'); +INSERT INTO `example_sub_more_date` VALUES (1850791498285723650, 1, 1, '2024-10-28 14:47:33', 101, 1, '2024-10-29 13:57:09', 0, 1850791495534260225, NULL, '未添加描述', '任务或日程标题三'); +INSERT INTO `example_sub_more_date` VALUES (1850791498944229378, 1, 1, '2024-10-28 14:47:34', 101, 1, '2024-10-29 13:57:09', 0, 1850791495534260225, NULL, '未添加描述', '任务或日程标题四'); +INSERT INTO `example_sub_more_date` VALUES (1850791602530955266, 1, 1, '2024-10-28 14:47:58', 101, 1, '2024-10-29 13:56:18', 0, 1850791601130057730, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1850791603189460994, 1, 1, '2024-10-28 14:47:58', 101, 1, '2024-10-29 13:56:19', 0, 1850791601130057730, NULL, '未添加描述', '任务或日程标题二'); +INSERT INTO `example_sub_more_date` VALUES (1850791603831189506, 1, 1, '2024-10-28 14:47:59', 101, 1, '2024-10-29 13:56:19', 0, 1850791601130057730, NULL, '未添加描述', '任务或日程标题三'); +INSERT INTO `example_sub_more_date` VALUES (1850791763650949122, 1, 1, '2024-10-28 14:48:37', 101, 1, '2024-10-29 13:55:07', 0, 1850791762384269314, NULL, '未添加描述', '过期的任务或日程一'); +INSERT INTO `example_sub_more_date` VALUES (1850791764317843457, 1, 1, '2024-10-28 14:48:37', 101, 1, '2024-10-29 13:55:07', 0, 1850791762384269314, NULL, '未添加描述', '过期的任务或日程二'); +INSERT INTO `example_sub_more_date` VALUES (1850791764976349186, 1, 1, '2024-10-28 14:48:37', 101, 1, '2024-10-29 13:55:07', 0, 1850791762384269314, NULL, '未添加描述', '过期的任务或日程三'); +INSERT INTO `example_sub_more_date` VALUES (1851139537777074178, 1, 1, '2024-10-29 13:50:32', 101, NULL, NULL, 0, 1851139536275513346, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1851139538448162817, 1, 1, '2024-10-29 13:50:33', 101, NULL, NULL, 0, 1851139536275513346, NULL, '未添加描述', '任务或日程标题二'); +INSERT INTO `example_sub_more_date` VALUES (1851139539110862850, 1, 1, '2024-10-29 13:50:33', 101, NULL, NULL, 0, 1851139536275513346, NULL, '未添加描述', '任务或日程标题三'); +INSERT INTO `example_sub_more_date` VALUES (1851142985981501441, 1, 1, '2024-10-29 14:04:15', 101, NULL, NULL, 0, 1851142984714821634, NULL, '未添加描述', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1851143687063609346, 1, 1, '2024-10-29 14:07:02', 101, NULL, NULL, -1, 1851143685658517505, NULL, NULL, NULL); +INSERT INTO `example_sub_more_date` VALUES (1851143687776641025, 1, 1, '2024-10-29 14:07:02', 101, NULL, NULL, -1, 1851143685658517505, NULL, NULL, NULL); +INSERT INTO `example_sub_more_date` VALUES (1856520939816296449, 1, 1, '2024-11-13 10:14:19', 101, NULL, NULL, -1, 1856520938558005249, NULL, '12313', '任务或日程标题一'); +INSERT INTO `example_sub_more_date` VALUES (1856526929638924289, 1, 1, '2024-11-13 10:38:07', 101, NULL, NULL, 0, 1856526928263192577, NULL, '测试', '任务标题一'); +INSERT INTO `example_sub_more_date` VALUES (1856529036018393090, 1, 1, '2024-11-13 10:46:29', 101, 1, '2024-11-14 16:15:20', 0, 1856528785215791105, NULL, '测试', '任务标题一'); +INSERT INTO `example_sub_more_date` VALUES (1856531121732526082, 1, 1, '2024-11-13 10:54:46', 101, NULL, NULL, -1, NULL, NULL, '123', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856536299174019074, 1, 1, '2024-11-13 11:15:21', 101, NULL, NULL, 0, 1856535987738558500, NULL, 'xwdxsxwxw', 'sws'); +INSERT INTO `example_sub_more_date` VALUES (1856536435266600961, 1, 1, '2024-11-13 11:15:53', 101, NULL, NULL, 0, 1856535987738558500, NULL, 'cfrcfrc', 'crfcrc'); +INSERT INTO `example_sub_more_date` VALUES (1856540447890128897, 1, 1, '2024-11-13 11:31:50', 101, NULL, NULL, -1, 1856540440688508930, NULL, '123456', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856541509502025729, 1, 1, '2024-11-13 11:36:03', 101, NULL, NULL, -1, 1856541508243734530, NULL, '123456', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856542737380327426, 1, 1, '2024-11-13 11:40:56', 101, 1, '2024-11-13 11:59:12', 0, 1856542736197533698, NULL, '12345', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856543110962790402, 1, 1, '2024-11-13 11:42:25', 101, NULL, NULL, -1, 1856543109503172610, NULL, '222', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856544824415666177, 1, 1, '2024-11-13 11:49:13', 101, NULL, NULL, -1, 1856544823048323073, NULL, 'cs', '666'); +INSERT INTO `example_sub_more_date` VALUES (1856545024240697346, 1, 1, '2024-11-13 11:50:01', 101, NULL, NULL, -1, 1856545023049515009, NULL, '33', '33'); +INSERT INTO `example_sub_more_date` VALUES (1856545771254628354, 1, 1, '2024-11-13 11:52:59', 101, NULL, NULL, -1, 1856545769786621954, NULL, 'cs', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856546216396111873, 1, 1, '2024-11-13 11:54:45', 101, NULL, NULL, -1, 1856546214999408642, NULL, '1213', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856547336917008385, 1, 1, '2024-11-13 11:59:12', 101, NULL, NULL, 0, 1856542736197533698, NULL, 'cs', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856547337680371714, 1, 1, '2024-11-13 11:59:12', 101, NULL, NULL, 0, 1856542736197533698, NULL, 'cs', 'cs'); +INSERT INTO `example_sub_more_date` VALUES (1856572936025194497, 1, 1, '2024-11-13 13:40:56', 101, NULL, NULL, -1, 1856572934800457730, NULL, '1234', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856575794233655297, 1, 1, '2024-11-13 13:52:17', 101, NULL, NULL, 0, 1856575793050861570, NULL, '666', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856577119751159809, 1, 1, '2024-11-13 13:57:33', 101, NULL, NULL, 0, 1856577118492868610, NULL, '3333', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856585794293252097, 1, 1, '2024-11-13 14:32:01', 101, NULL, NULL, 0, 1856585792883965954, NULL, '333', '测试'); +INSERT INTO `example_sub_more_date` VALUES (1856602060273926146, 1, 1, '2024-11-13 15:36:39', 101, 1, '2024-11-13 16:11:46', 0, 1856602058952720386, NULL, '1111', '测试1'); +INSERT INTO `example_sub_more_date` VALUES (1856602426365362178, 1, 1, '2024-11-13 15:38:07', 101, 1, '2024-11-13 16:12:05', 0, 1856602425102876673, NULL, '2222', '测试2'); +INSERT INTO `example_sub_more_date` VALUES (1856602485505048577, 1, 1, '2024-11-13 15:38:21', 101, 1, '2024-11-13 16:12:28', 0, 1856602484364197889, NULL, '3333', '测试3'); + +-- ---------------------------- +-- Table structure for example_sub_more_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_more_table`; +CREATE TABLE `example_sub_more_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `course_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程名称', + `credits` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学分', + `grade` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成绩', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_more_table +-- ---------------------------- +INSERT INTO `example_sub_more_table` VALUES (1831874116722388994, 1831874115279548418, '语文', '80', '80', 1, 1, '2024-09-06 09:56:38', 101, 1, '2024-09-06 10:13:13', 0); +INSERT INTO `example_sub_more_table` VALUES (1831874117414449153, 1831874115279548418, '数学', '85', '85', 1, 1, '2024-09-06 09:56:38', 101, 1, '2024-09-06 10:13:13', 0); +INSERT INTO `example_sub_more_table` VALUES (1831874118102315009, 1831874115279548418, '英语', '0', '0', 1, 1, '2024-09-06 09:56:38', 101, 1, '2024-09-06 10:13:13', 0); +INSERT INTO `example_sub_more_table` VALUES (1837383129270947842, 1837383128985735169, '语文', '3', '99', 1, 1, '2024-09-21 14:47:29', 101, 1, '2024-09-21 16:13:33', 0); +INSERT INTO `example_sub_more_table` VALUES (1837383129312890881, 1837383128985735169, '数学', '8', '100', 1, 1, '2024-09-21 14:47:29', 101, 1, '2024-09-21 16:13:33', 0); +INSERT INTO `example_sub_more_table` VALUES (1837383129359028225, 1837383128985735169, '语文', '6', '98', 1, 1, '2024-09-21 14:47:29', 101, 1, '2024-09-21 16:13:33', 0); +INSERT INTO `example_sub_more_table` VALUES (1837383129409359873, 1837383128985735169, '你好', NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129459691522, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129510023169, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129560354818, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129610686466, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129661018114, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129702961153, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); +INSERT INTO `example_sub_more_table` VALUES (1837383129828790273, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, NULL, NULL, -1); + +-- ---------------------------- +-- Table structure for example_sub_nq_more_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_nq_more_table`; +CREATE TABLE `example_sub_nq_more_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `course_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程名称', + `credits` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学分', + `grade` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成绩', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表(内嵌)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_nq_more_table +-- ---------------------------- +INSERT INTO `example_sub_nq_more_table` VALUES (1831886242446897154, 1831886241205383170, '语文', '80', '80', 1, 1, '2024-09-06 10:44:49', 101, NULL, NULL, 0); +INSERT INTO `example_sub_nq_more_table` VALUES (1831886243038294017, 1831886241205383170, '数学', '85', '85', 1, 1, '2024-09-06 10:44:49', 101, NULL, NULL, 0); +INSERT INTO `example_sub_nq_more_table` VALUES (1831886243625496577, 1831886241205383170, '英语', '0', '0', 1, 1, '2024-09-06 10:44:49', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sub_nq_one_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_nq_one_table`; +CREATE TABLE `example_sub_nq_one_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `emergency_contact` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '紧急联系人', + `contact_phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人电话', + `address` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '住址', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表(内嵌)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_nq_one_table +-- ---------------------------- +INSERT INTO `example_sub_nq_one_table` VALUES (1831886244489523202, 1831886241205383170, '李梅梅', '15013500000', '广东省广州市xxx村', 1, 1, '2024-09-06 10:44:50', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_sub_one_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_sub_one_table`; +CREATE TABLE `example_sub_one_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `main_id` bigint(0) NULL DEFAULT NULL COMMENT '主表id', + `emergency_contact` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '紧急联系人', + `contact_phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人电话', + `address` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '住址', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '主附表示例-附表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_sub_one_table +-- ---------------------------- +INSERT INTO `example_sub_one_table` VALUES (1831874119104753666, 1831874115279548418, '李梅梅', '15013500000', '广东省广州市xxx村', 1, 1, '2024-09-06 09:56:39', 101, 1, '2024-09-06 10:13:13', 0); +INSERT INTO `example_sub_one_table` VALUES (1837383129904287745, 1837383128985735169, NULL, NULL, NULL, 1, 1, '2024-09-21 14:47:29', 101, 1, '2024-09-21 16:13:33', 0); + +-- ---------------------------- +-- Table structure for example_subject_list +-- ---------------------------- +DROP TABLE IF EXISTS `example_subject_list`; +CREATE TABLE `example_subject_list` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `zt_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `zt_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `zt_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `dz_num` int(0) NULL DEFAULT NULL COMMENT '点赞数', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `sc_num` int(0) NULL DEFAULT NULL COMMENT '收藏数', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `pl_num` int(0) NULL DEFAULT NULL COMMENT '评论数', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据列表页(专题列表)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_subject_list +-- ---------------------------- +INSERT INTO `example_subject_list` VALUES (1838829659777191938, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191939, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191940, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191941, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191942, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191943, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191944, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191945, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191946, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191947, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191948, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191949, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191950, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191951, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191952, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191953, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191954, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191955, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191956, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191957, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191958, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `example_subject_list` VALUES (1838829659777191959, 1, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-143449.png', 1, '2019淘宝造物节品牌设计案', '2024-09-25 14:35:29', '1', 101, NULL, NULL, NULL, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_table_kplb +-- ---------------------------- +DROP TABLE IF EXISTS `example_table_kplb`; +CREATE TABLE `example_table_kplb` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `crad_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `crad_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `card_describe` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据表格页(卡片列表)' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_table_kplb +-- ---------------------------- +INSERT INTO `example_table_kplb` VALUES (1838857441169137666, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137667, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137668, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137669, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137670, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137671, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137672, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137673, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137674, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137675, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137676, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137677, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137678, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137679, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137680, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137681, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); +INSERT INTO `example_table_kplb` VALUES (1838857441169137682, 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-25/1/QQ20240925-162317副本.png', '类目名称', '这里是一个交互原型素材原创分享平台,提供高质量通用组件模板库和行业原型模板的分享。', 1, 1, '2024-09-25 16:25:52', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_tabs_card +-- ---------------------------- +DROP TABLE IF EXISTS `example_tabs_card`; +CREATE TABLE `example_tabs_card` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tabs_card_date` date NULL DEFAULT NULL COMMENT '时间', + `tabs_card_target_money` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '目标金额', + `tabs_card_accomplish_money` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成交金额', + `tabs_card_accomplish_form` bigint(0) NULL DEFAULT NULL COMMENT '成交订单', + `tabs_card_percentage_complete` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '完成率', + `tabs_card_average_price` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '平均客单价', + `tabs_card_department` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门', + `tabs_card_personnel` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '人员', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '标签页卡片风格类型示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tabs_card +-- ---------------------------- +INSERT INTO `example_tabs_card` VALUES (1834139546663657473, '2024-09-04', '2000000', '2200000', 20000, '110', '110', '114', '1', 1, 1, '2024-09-12 15:58:39', 101, 1, '2024-09-13 17:38:27', 0); +INSERT INTO `example_tabs_card` VALUES (1834139887803179009, '2024-08-08', '1500000', '1666000', 35000, '111', '47.6', '114', '1', 1, 1, '2024-09-12 16:00:00', 101, 1, '2024-09-13 17:36:17', 0); +INSERT INTO `example_tabs_card` VALUES (1834140116027842562, '2024-07-19', '3600000', '3500600', 12000, '97.2', '292', '100', '1', 1, 1, '2024-09-12 16:00:54', 101, 1, '2024-09-13 17:40:54', 0); +INSERT INTO `example_tabs_card` VALUES (1834402171364462594, '2024-06-06', '1477500.60', '1317500.60', 3350, '89.1', '393', '100', '1', 1, 1, '2024-09-13 09:22:13', 101, 1, '2024-09-13 17:44:18', 0); +INSERT INTO `example_tabs_card` VALUES (1834526011337248770, '2024-05-16', '2650000', '2500000', 1800, '94.3', '13888', '100', '1', 1, 1, '2024-09-13 17:34:19', 101, 1, '2024-09-13 17:39:43', 0); +INSERT INTO `example_tabs_card` VALUES (1834529284593094657, '2024-10-09', '2600000', '1700000', 2860, '65.3', '594', '114', '1', 1, 1, '2024-09-13 17:47:20', 101, NULL, NULL, 0); +INSERT INTO `example_tabs_card` VALUES (1834530284091543553, '2024-04-04', '2700000', '3100000', 7500, '114', '413', '114', '103', 1, 1, '2024-09-13 17:51:18', 101, NULL, NULL, 0); +INSERT INTO `example_tabs_card` VALUES (1834532487225217026, '2024-03-22', '2200000', '2000000', 5430, '90', '368', NULL, '1', 1, 1, '2024-09-13 18:00:03', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_task_management_list +-- ---------------------------- +DROP TABLE IF EXISTS `example_task_management_list`; +CREATE TABLE `example_task_management_list` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `jzsj` datetime(0) NULL DEFAULT NULL COMMENT '截止时间', + `urgent_relief` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '急缓', + `xmmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目名称', + `fj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', + `tx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `kssj` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `rwtx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务提醒', + `rwms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务描述', + `cyry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参与人员', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `lys` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '留言数', + `color` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务标注颜色', + `txfs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提醒方式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '任务管理-列表显示' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_task_management_list +-- ---------------------------- +INSERT INTO `example_task_management_list` VALUES (1847107686129348609, '任务标题文字', '1', '2024-10-15 00:00:00', '2', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件.txt,http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_2.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_4.png', '2024-10-17 00:00:00', '3', NULL, '1,100', 1, 1, '2024-10-18 10:49:24', 101, 1, '2024-10-26 11:07:10', 0, '10', 'rgba(117, 133, 162, 1)', NULL); +INSERT INTO `example_task_management_list` VALUES (1847160879647498241, '任务标题文字', '1', '2024-10-25 00:00:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_3.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_5.png', '2024-10-22 00:00:00', '3', '这是个任务', '1,100', 1, 1, '2024-10-18 14:20:46', 101, 1, '2024-10-28 16:47:35', 0, '8', 'rgba(254, 192, 61, 1)', NULL); +INSERT INTO `example_task_management_list` VALUES (1847161380577419265, '任务标题文字', '2', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419266, '任务标题文字', '3', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419267, '任务标题文字', '1', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419268, '任务标题文字', '2', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419269, '任务标题文字', '3', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419270, '任务标题文字', '1', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419271, '任务标题文字', '2', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419273, '任务标题文字', '3', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419274, '任务标题文字', '1', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419275, '任务标题文字', '2', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419276, '任务标题文字', '3', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419277, '任务标题文字', '1', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419278, '任务标题文字', '2', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); +INSERT INTO `example_task_management_list` VALUES (1847161380577419279, '任务标题文字', '3', '2024-10-28 05:05:00', '1', '项目名称', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/文件_4.txt', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/f0ee8a3c7c9638a54940382568c9dpng_6.png', '2024-10-03 13:10:00', '3', NULL, '1', 1, 1, '2024-10-18 14:22:46', 101, 1, '2024-10-28 17:32:46', 0, '5', '#24D2D3', '1'); + +-- ---------------------------- +-- Table structure for example_tdgl_sjtj +-- ---------------------------- +DROP TABLE IF EXISTS `example_tdgl_sjtj`; +CREATE TABLE `example_tdgl_sjtj` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `cyxm_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员姓名', + `cyxm` int(0) NULL DEFAULT NULL COMMENT '参与项目', + `rwzs` int(0) NULL DEFAULT NULL COMMENT '任务总数', + `ywc` int(0) NULL DEFAULT NULL COMMENT '已完成', + `dwc` int(0) NULL DEFAULT NULL COMMENT '待完成', + `yyq` int(0) NULL DEFAULT NULL COMMENT '已延期', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '团队管理-数据统计' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tdgl_sjtj +-- ---------------------------- +INSERT INTO `example_tdgl_sjtj` VALUES (1852242310819180545, '小明', 20, 50, 25, 15, 5, 1, 1, '2024-11-01 14:52:34', 101, 1, '2024-11-01 17:01:11', 0); +INSERT INTO `example_tdgl_sjtj` VALUES (1852242535898116098, '小明', 20, 50, 25, 15, 5, 1, 1, '2024-11-01 14:53:28', 101, 1, '2024-11-01 17:01:06', 0); +INSERT INTO `example_tdgl_sjtj` VALUES (1852251511469600770, '小明', 20, 50, 25, 15, 5, 1, 1, '2024-11-01 15:29:08', 101, 1, '2024-11-01 17:01:00', 0); + +-- ---------------------------- +-- Table structure for example_team_management +-- ---------------------------- +DROP TABLE IF EXISTS `example_team_management`; +CREATE TABLE `example_team_management` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tx` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '团队头像', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '团队名称', + `tdjs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '团队介绍', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `cy` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员', + `xm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目', + `rw` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务', + `cytx` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '成员头像', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模版-团队管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_team_management +-- ---------------------------- +INSERT INTO `example_team_management` VALUES (1851520036739612673, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612674, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612675, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612676, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612677, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612678, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612679, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612680, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612681, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612682, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612683, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612684, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612685, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/formkit--people.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-30 15:08:22', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); +INSERT INTO `example_team_management` VALUES (1851520036739612686, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-30/1/pepicons-pop--people-circle-filled.png', '团队名称', '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件', 1, 1, '2024-10-30 15:02:30', 101, 1, '2024-10-31 17:43:49', 0, '136,137,1', '20', '20', 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/f0ee8a3c7c9638a54940382568c9dpng_2.png,http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/f0ee8a3c7c9638a54940382568c9dpng_3.png'); + +-- ---------------------------- +-- Table structure for example_trader_dealing_amount +-- ---------------------------- +DROP TABLE IF EXISTS `example_trader_dealing_amount`; +CREATE TABLE `example_trader_dealing_amount` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `ranking` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '排名', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商户名称', + `visit` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '访问量', + `quantity` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单量', + `cancel` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '取消量', + `pj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '综合评分', + `score` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评分数', + `money` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成交金额', + `zeng` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '趋势增', + `jian` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '趋势减', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商户统计-成交金额趋势' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_trader_dealing_amount +-- ---------------------------- +INSERT INTO `example_trader_dealing_amount` VALUES (1848178774867374082, 1, 1, '2024-10-21 09:45:32', 101, NULL, NULL, 0, '01', 'Apple产品自营旗舰店', '20000', '5000', '2000', '3', '80', '645452.00', '10', NULL); +INSERT INTO `example_trader_dealing_amount` VALUES (1848178928341151746, 1, 1, '2024-10-21 09:46:08', 101, NULL, NULL, 0, '02', 'Apple产品自营旗舰店', '20000', '5000', '2000', '3', '80', '645452.00', NULL, '20'); +INSERT INTO `example_trader_dealing_amount` VALUES (1848179063250939905, 1, 1, '2024-10-21 09:46:40', 101, NULL, NULL, 0, '03', 'Apple产品自营旗舰店', '20000', '5000', '2000', '3', '80', '645452.00', NULL, '20'); + +-- ---------------------------- +-- Table structure for example_tree_grid +-- ---------------------------- +DROP TABLE IF EXISTS `example_tree_grid`; +CREATE TABLE `example_tree_grid` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `pid` bigint(0) NULL DEFAULT 0 COMMENT '父级节点', + `classification_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类名称', + `classification_number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类编号', + `status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `quantity_goods` int(0) NULL DEFAULT NULL COMMENT '商品数量', + `note_information` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注信息', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '添加人员', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-树形表格' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tree_grid +-- ---------------------------- +INSERT INTO `example_tree_grid` VALUES (1838754450021875714, 0, '箱包/鞋靴', '202410001', '1', 1000, '备注信息', 1, 1, '2024-09-25 09:36:37', 101, 1, '2024-09-27 15:00:35', 0); +INSERT INTO `example_tree_grid` VALUES (1838754547560415234, 1838754450021875714, '男包', '202410001', '1', 43, '备注信息', 1, 1, '2024-09-25 09:37:01', 101, 1, '2024-09-27 15:00:56', 0); +INSERT INTO `example_tree_grid` VALUES (1838757021054730241, 1838754450021875714, ' 女包', '202410001', '1', 687, '备注信息', 1, 1, '2024-09-25 09:46:50', 101, 1, '2024-09-27 15:00:42', 0); +INSERT INTO `example_tree_grid` VALUES (1838757399024435201, 1838757021054730241, ' 单肩包', '202410001', '1', 10, '备注信息', 1, 1, '2024-09-25 09:48:21', 101, 1, '2024-09-27 15:00:52', 0); +INSERT INTO `example_tree_grid` VALUES (1838757500824387586, 1838757021054730241, '手提包', '202410001', '1', 60, '备注信息', 1, 1, '2024-09-25 09:48:45', 101, 1, '2024-09-27 15:01:02', 0); +INSERT INTO `example_tree_grid` VALUES (1846014015001812993, 0, '测试', '202410001', '1', 123, '123', 1, 1, '2024-10-15 10:23:33', 101, NULL, NULL, -1); + +-- ---------------------------- +-- Table structure for example_tree_table +-- ---------------------------- +DROP TABLE IF EXISTS `example_tree_table`; +CREATE TABLE `example_tree_table` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `pid` bigint(0) NULL DEFAULT 0 COMMENT '父级节点', + `type_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类名称', + `type_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类编号', + `type_state` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '树表示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tree_table +-- ---------------------------- +INSERT INTO `example_tree_table` VALUES (1831592917458231298, 0, '箱包/鞋靴', '10001', '1', NULL, 1, 1, '2024-09-05 15:19:15', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831595308807102466, 1831592917458231298, ' 女包', '1001', '1', NULL, 1, 1, '2024-09-05 15:28:45', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597073208188930, 1831592917458231298, ' 男包', '1002', '1', NULL, 1, 1, '2024-09-05 15:35:46', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597130020036610, 1831592917458231298, '双肩包', '1003', '1', NULL, 1, 1, '2024-09-05 15:35:59', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597225339789313, 1831592917458231298, '旅行箱', '1004', '1', NULL, 1, 1, '2024-09-05 15:36:22', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597440226566145, 1831595308807102466, '单肩包', '101', '1', NULL, 1, 1, '2024-09-05 15:37:13', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597480789680129, 1831595308807102466, '手提包', '102', '1', NULL, 1, 1, '2024-09-05 15:37:23', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597523827433473, 1831595308807102466, '小方包', '103', '1', NULL, 1, 1, '2024-09-05 15:37:33', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597618685812738, 1831597073208188930, '商务', '101', '1', NULL, 1, 1, '2024-09-05 15:37:56', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597663304818689, 1831597073208188930, '休闲', '102', '1', NULL, 1, 1, '2024-09-05 15:38:07', 101, NULL, NULL, 0); +INSERT INTO `example_tree_table` VALUES (1831597702802579458, 1831597073208188930, '潮流', '103', '1', NULL, 1, 1, '2024-09-05 15:38:16', 101, 1, '2024-09-05 15:38:28', 0); + +-- ---------------------------- +-- Table structure for example_tyym_djbt +-- ---------------------------- +DROP TABLE IF EXISTS `example_tyym_djbt`; +CREATE TABLE `example_tyym_djbt` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `gsmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名称', + `khzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户状态', + `khly` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户来源', + `hylx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行业类型', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '添加人员', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-多级表头' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tyym_djbt +-- ---------------------------- +INSERT INTO `example_tyym_djbt` VALUES (1838754398591320066, '1', '1', '1', '1', '1', 1, 1, '2024-09-25 09:36:25', 101, 1, '2024-10-19 09:12:30', 0); +INSERT INTO `example_tyym_djbt` VALUES (1838754808047665154, '2', '2', '2', '2', '2', 1, 1, '2024-09-25 09:38:03', 101, 1, '2024-10-19 09:12:26', 0); + +-- ---------------------------- +-- Table structure for example_tyym_dtsj +-- ---------------------------- +DROP TABLE IF EXISTS `example_tyym_dtsj`; +CREATE TABLE `example_tyym_dtsj` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `sr` date NULL DEFAULT NULL COMMENT '生日', + `tx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `sg` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '身高', + `tz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '体重', + `sj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `dz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `xs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '显示', + `zt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `xb` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-动态数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tyym_dtsj +-- ---------------------------- +INSERT INTO `example_tyym_dtsj` VALUES (1838495243058081794, '2024-09-24', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-24/1/2_2.png', '王小明', '165cm', '67kg', '13823434346', '北京市朝阳区芍药居', '1', '1', 1, 1, '2024-09-24 16:26:38', 101, 1, '2024-09-27 11:52:50', 0, '2'); +INSERT INTO `example_tyym_dtsj` VALUES (1838500658525302786, '2024-09-24', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-24/1/9_2.png', '李小红', '160cm', '72kg', '13582338488', '上海市浦东新区世纪大道', '1', '1', 1, 1, '2024-09-24 16:48:09', 101, 1, '2024-09-27 11:52:07', 0, '2'); +INSERT INTO `example_tyym_dtsj` VALUES (1838500971244220417, '2024-09-24', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-24/1/5.png', '张小刚', '170cm', '70kg', '13531314569', '北京市海淀区西二旗', '1', '1', 1, 1, '2024-09-24 16:49:23', 101, 1, '2024-09-27 11:51:59', 0, '2'); +INSERT INTO `example_tyym_dtsj` VALUES (1839514810433794049, '2024-08-28', 'http://oss.yckxt.com/chatgpt/upload/1/2024-09-27/1/_我的 (1)_6.png', '周小伟', '175cm', '76kg', '18075234678', '深圳市南山区深南大道', '1', '1', 1, 1, '2024-09-27 11:58:01', 101, NULL, NULL, 0, '1'); + +-- ---------------------------- +-- Table structure for example_tyym_gjsx +-- ---------------------------- +DROP TABLE IF EXISTS `example_tyym_gjsx`; +CREATE TABLE `example_tyym_gjsx` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `bh` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '编号', + `gsmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名称', + `khzt` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户状态', + `khly` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户来源', + `hylx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行业类型', + `tjry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '添加人员', + `gxsj` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用页面-高级筛选' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_tyym_gjsx +-- ---------------------------- +INSERT INTO `example_tyym_gjsx` VALUES (1838834090623168514, '1', '1', '1', '1', '1', '104', '2024-09-25 14:53:04', 1, 1, '2024-09-25 14:53:05', 101, NULL, NULL, 0); +INSERT INTO `example_tyym_gjsx` VALUES (1839577931043057666, '6666', '6666', '123', '6666', '6666', NULL, '2024-09-27 00:00:00', 1, 1, '2024-09-27 16:08:51', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_user_management +-- ---------------------------- +DROP TABLE IF EXISTS `example_user_management`; +CREATE TABLE `example_user_management` ( + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `id` bigint(0) NOT NULL COMMENT 'ID编号', + `user_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户账号', + `membership_level` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '会员等级', + `user_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户状态', + `order_record` bigint(0) NULL DEFAULT NULL COMMENT '订单记录', + `consumption_amount` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消费金额', + `available_points` bigint(0) NULL DEFAULT NULL COMMENT '可用积分', + `user_label` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户标签', + `registration_channel` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注册渠道', + `zcsj` date NULL DEFAULT NULL COMMENT '注册时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-用户管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_user_management +-- ---------------------------- +INSERT INTO `example_user_management` VALUES (0, '2024-10-12 17:52:13', 1, 101, '2024-10-12 17:02:02', 1, 1, 1845027136683450369, 'Windir', '2', '1', 10, '200.00', 1000, '2', '2', '2024-10-09'); +INSERT INTO `example_user_management` VALUES (0, NULL, NULL, 101, '2024-10-12 17:54:46', 1, 1, 1845040404848254978, 'Windir', '2', '1', 10, '200.00', 1000, '4', '2', '2024-10-18'); +INSERT INTO `example_user_management` VALUES (0, '2024-10-12 17:56:02', 1, 101, '2024-10-12 17:55:12', 1, 1, 1845040514076319746, 'Windir', '2', '1', 10, '200.00', 1000, '5', '1', '2024-10-15'); +INSERT INTO `example_user_management` VALUES (0, '2024-10-14 16:24:22', 1, 101, '2024-10-12 17:55:28', 1, 1, 1845040580967079937, 'Windir', '2', '1', 10, '200.00', 1000, '2', '3', '2024-10-25'); +INSERT INTO `example_user_management` VALUES (0, '2024-10-14 16:24:51', 1, 101, '2024-10-12 17:55:53', 1, 1, 1845040688349650945, 'Windir', '2', '1', 10, '200.00', 1000, '1', '3', '2024-10-18'); + +-- ---------------------------- +-- Table structure for example_user_management_address +-- ---------------------------- +DROP TABLE IF EXISTS `example_user_management_address`; +CREATE TABLE `example_user_management_address` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号码', + `address` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址', + `yzbm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮政编码', + `default_address` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认地址', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户管理-收货地址' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_user_management_address +-- ---------------------------- +INSERT INTO `example_user_management_address` VALUES (1846075745132224514, '张小刚', '18888888888', '130000,130200,130203', '518000', NULL, 1, 1, '2024-10-15 14:28:50', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_address` VALUES (1846076009536954370, '张小刚', '18888888888', '210000,210300,210303', '518000', NULL, 1, 1, '2024-10-15 14:29:53', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_address` VALUES (1846076100347830274, '张小刚', '18888888888', '140000,140200,140214', '518000', NULL, 1, 1, '2024-10-15 14:30:15', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_address` VALUES (1846076175589449729, '张小刚', '18888888888', '620000,620300,620321', '518000', NULL, 1, 1, '2024-10-15 14:30:33', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_address` VALUES (1846076246112477186, '张小刚', '18888888888', '530000,530400,530423', '518000', '1', 1, 1, '2024-10-15 14:30:50', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_user_management_console +-- ---------------------------- +DROP TABLE IF EXISTS `example_user_management_console`; +CREATE TABLE `example_user_management_console` ( + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '登录时间', + `id` bigint(0) NOT NULL COMMENT '主键', + `ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IP地址', + `address` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `dlfs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录方式', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户管理-登录日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_user_management_console +-- ---------------------------- +INSERT INTO `example_user_management_console` VALUES ('2024-10-15 16:11:53', 1846101678312529922, '183.14.135.1', '广东省深圳市', '3', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_console` VALUES ('2024-10-15 16:12:10', 1846101750727188482, '183.14.135.1', '广东省深圳市', '3', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_console` VALUES ('2024-10-15 16:12:20', 1846101790392721409, '183.14.135.1', '广东省深圳市', '4', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_console` VALUES ('2024-10-15 16:12:30', 1846101832692277250, '183.14.135.1', '广东省深圳市', '3', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_console` VALUES ('2024-10-15 16:12:39', 1846101871502172162, '183.14.135.1', '广东省深圳市', '1', 1, 1, 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_user_management_czjl +-- ---------------------------- +DROP TABLE IF EXISTS `example_user_management_czjl`; +CREATE TABLE `example_user_management_czjl` ( + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '操作时间', + `id` bigint(0) NOT NULL COMMENT '主键', + `czz` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作者', + `cz_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作类型', + `czxq` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作详情', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户管理-操作记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_user_management_czjl +-- ---------------------------- +INSERT INTO `example_user_management_czjl` VALUES ('2024-10-15 16:24:22', 1846104817203814402, '张小刚', '1', '会员等级(旧值:普通会员 新值:黄金会员)', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_czjl` VALUES ('2024-10-15 16:24:47', 1846104925504937986, '张小刚', '2', '设为启用(备注内容:***)', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_czjl` VALUES ('2024-10-15 16:25:01', 1846104982262259713, '张小刚', '3', '重置密码', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_czjl` VALUES ('2024-10-15 16:25:17', 1846105051136925698, '张小刚', '1', '会员等级(旧值:普通会员 新值:黄金会员', 1, 1, 101, NULL, NULL, 0); +INSERT INTO `example_user_management_czjl` VALUES ('2024-10-15 16:25:27', 1846105090953453569, '张小刚', '2', '设为启用(备注内容:***)', 1, 1, 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_user_management_points +-- ---------------------------- +DROP TABLE IF EXISTS `example_user_management_points`; +CREATE TABLE `example_user_management_points` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `sj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '事件', + `points_change` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '积分变化', + `points_balance` bigint(0) NULL DEFAULT NULL COMMENT '积分余额', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '记录时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户管理-积分记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_user_management_points +-- ---------------------------- +INSERT INTO `example_user_management_points` VALUES (1846097964596076546, '完成每日登录', '+5', 1000, 1, 1, '2024-10-15 15:57:08', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_points` VALUES (1846098516688117761, '订单消费抵扣', '+100', 1000, 1, 1, '2024-10-15 15:59:19', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_points` VALUES (1846098605582196738, '使用积分', '-20', 1000, 1, 1, '2024-10-15 15:59:41', 101, NULL, NULL, 0); +INSERT INTO `example_user_management_points` VALUES (1846098675853565954, '完成每日登录', '+5', 1000, 1, 1, '2024-10-15 15:59:57', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_visitor_record +-- ---------------------------- +DROP TABLE IF EXISTS `example_visitor_record`; +CREATE TABLE `example_visitor_record` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `user_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户id', + `visitor_time` datetime(0) NULL DEFAULT NULL COMMENT '来访时间', + `goods_name` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '携带物品', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '来访记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_visitor_record +-- ---------------------------- +INSERT INTO `example_visitor_record` VALUES (1833331889796616193, '1833327905992151041', '2024-09-10 16:00:00', '无', 1, 1, '2024-09-10 10:29:18', 101, NULL, NULL, 0); +INSERT INTO `example_visitor_record` VALUES (1833332192285626369, '1833327905992151041', '2024-08-14 09:00:00', '无', 1, 1, '2024-09-10 10:30:30', 101, NULL, NULL, 0); +INSERT INTO `example_visitor_record` VALUES (1833334481096347649, '1833332818679762945', '2024-09-09 07:00:00', '手提箱', 1, 1, '2024-09-10 10:39:36', 101, 1, '2024-09-14 09:12:43', 0); +INSERT INTO `example_visitor_record` VALUES (1837016907110699010, '1833327905992151041', '2024-09-20 14:32:04', '测试', 1, 1, '2024-09-20 14:32:15', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_web_enhance +-- ---------------------------- +DROP TABLE IF EXISTS `example_web_enhance`; +CREATE TABLE `example_web_enhance` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `birth_date` date NULL DEFAULT NULL COMMENT '出生日期', + `age` int(0) NULL DEFAULT NULL COMMENT '年龄', + `interest` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '爱好', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '前端增强示例' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_web_enhance +-- ---------------------------- +INSERT INTO `example_web_enhance` VALUES (1833059403586629633, '彭艳', '1995-09-05', 29, '烹饪', 1, 1, '2024-09-09 16:26:33', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059404538736642, '唐刚', '1982-09-05', 42, '篮球', 1, 1, '2024-09-09 16:26:33', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059405469872129, '冯丽', '1976-09-05', 48, '旅行', 1, 1, '2024-09-09 16:26:33', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059406413590530, '贾刚', '1994-09-05', 30, '园艺', 1, 1, '2024-09-09 16:26:33', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059407327948802, '潘敏', '1982-09-05', 42, '阅读', 1, 1, '2024-09-09 16:26:33', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059408263278594, '贾刚', '1982-09-05', 42, '音乐', 1, 1, '2024-09-09 16:26:34', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059409165053953, '潘敏', '1978-09-05', 46, '游泳', 1, 1, '2024-09-09 16:26:34', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059410104578050, '郭涛', '2004-09-05', 20, '绘画', 1, 1, '2024-09-09 16:26:34', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059411023130626, '贾刚', '1999-09-05', 25, '音乐', 1, 1, '2024-09-09 16:26:34', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059411933294594, '汪敏', '1976-09-05', 48, '篮球', 1, 1, '2024-09-09 16:26:35', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059412864430081, '潘敏', '1996-09-05', 28, '园艺', 1, 1, '2024-09-09 16:26:35', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059413799759874, '苏浩', '1977-09-05', 47, '绘画', 1, 1, '2024-09-09 16:26:35', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059414709923842, '莫刚', '1995-09-05', 29, '旅行', 1, 1, '2024-09-09 16:26:35', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059415653642242, '欧明', '1988-09-05', 36, '绘画', 1, 1, '2024-09-09 16:26:35', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059416572194818, '杨强', '1992-09-05', 32, '绘画', 1, 1, '2024-09-09 16:26:36', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059417511718914, '汪敏', '1999-09-05', 25, '摄影', 1, 1, '2024-09-09 16:26:36', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059418442854402, '谢浩', '1989-09-05', 35, '园艺', 1, 1, '2024-09-09 16:26:36', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059419340435458, '罗明', '1986-09-05', 38, '音乐', 1, 1, '2024-09-09 16:26:36', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059420250599425, '岳丽', '1989-09-05', 35, '阅读', 1, 1, '2024-09-09 16:26:37', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059421181734914, '莫刚', '1999-09-05', 25, '游泳', 1, 1, '2024-09-09 16:26:37', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059422096093186, '彭艳', '1983-09-05', 41, '摄影', 1, 1, '2024-09-09 16:26:37', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059423018840065, '唐刚', '1982-09-05', 42, '音乐', 1, 1, '2024-09-09 16:26:37', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059423949975553, '高敏', '1982-09-05', 42, '游泳', 1, 1, '2024-09-09 16:26:37', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059424851750913, '周琳', '1976-09-05', 48, '旅行', 1, 1, '2024-09-09 16:26:38', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059425799663618, '赵敏', '1976-09-05', 48, '园艺', 1, 1, '2024-09-09 16:26:38', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059426705633281, '林芳', '1994-09-05', 30, '篮球', 1, 1, '2024-09-09 16:26:38', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059427611602945, '钟强', '1999-09-05', 25, '阅读', 1, 1, '2024-09-09 16:26:38', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059428530155522, '刘伟', '2004-09-05', 20, '摄影', 1, 1, '2024-09-09 16:26:39', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059429452902402, '郑丽', '1998-09-05', 26, '游泳', 1, 1, '2024-09-09 16:26:39', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059430358872065, '郭涛', '1998-09-05', 26, '烹饪', 1, 1, '2024-09-09 16:26:39', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059431290007553, '李强', '1991-09-05', 33, '园艺', 1, 1, '2024-09-09 16:26:39', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059432212754434, '王芳', '1997-09-05', 27, '烹饪', 1, 1, '2024-09-09 16:26:39', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059433160667138, '万丽', '2002-09-05', 22, '绘画', 1, 1, '2024-09-09 16:26:40', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059434087608321, '张伟', '1978-09-05', 46, '游泳', 1, 1, '2024-09-09 16:26:40', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059434985189377, '郭涛', '1989-09-05', 35, '篮球', 1, 1, '2024-09-09 16:26:40', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059435903741953, '魏艳', '2000-09-05', 24, '阅读', 1, 1, '2024-09-09 16:26:40', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059436822294529, '韦明', '1992-09-05', 32, '阅读', 1, 1, '2024-09-09 16:26:40', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059437740847105, '傅敏', '1983-09-05', 41, '绘画', 1, 1, '2024-09-09 16:26:41', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059438659399681, '林芳', '1992-09-05', 32, '园艺', 1, 1, '2024-09-09 16:26:41', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059439598923777, '潘敏', '1999-09-05', 25, '篮球', 1, 1, '2024-09-09 16:26:41', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059440488116225, '何强', '1979-09-05', 45, '园艺', 1, 1, '2024-09-09 16:26:41', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059441427640322, '彭艳', '1980-09-05', 44, '瑜伽', 1, 1, '2024-09-09 16:26:42', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059442350387202, '蔡浩', '1979-09-05', 45, '瑜伽', 1, 1, '2024-09-09 16:26:42', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059443239579650, '肖强', '1997-09-05', 27, '阅读', 1, 1, '2024-09-09 16:26:42', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059444158132226, '陈浩', '2003-09-05', 21, '音乐', 1, 1, '2024-09-09 16:26:42', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059445093462018, '林芳', '1975-09-05', 49, '游泳', 1, 1, '2024-09-09 16:26:42', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059446003625986, '蔡浩', '1987-09-05', 37, '旅行', 1, 1, '2024-09-09 16:26:43', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059446926372865, '冯丽', '1988-09-05', 36, '篮球', 1, 1, '2024-09-09 16:26:43', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059447853314049, '彭艳', '2000-09-05', 24, '瑜伽', 1, 1, '2024-09-09 16:26:43', 101, NULL, NULL, 0); +INSERT INTO `example_web_enhance` VALUES (1833059448805421058, '王芳', '1976-09-05', 48, '游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳游泳', 1, 1, '2024-09-09 16:26:43', 101, 1, '2024-09-19 15:40:04', 0); + +-- ---------------------------- +-- Table structure for example_xcgl +-- ---------------------------- +DROP TABLE IF EXISTS `example_xcgl`; +CREATE TABLE `example_xcgl` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `zt_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `zt_title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `time_test` datetime(0) NULL DEFAULT NULL COMMENT '时间', + `num` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片数量', + `zt_box` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '遮罩层', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-相册管理' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_xcgl +-- ---------------------------- +INSERT INTO `example_xcgl` VALUES (1851797786155212801, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449.png', 'jeeLowCode 专业的交互原型素材原创分享平台', NULL, 1, 1, '2024-10-31 09:26:11', 101, 1, '2024-11-20 16:19:13', 0, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1851895970603941889, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'jeeLowCode 专业的交互原型素材原创分享平台', NULL, 1, 1, '2024-10-31 15:56:20', 101, 1, '2024-11-20 16:19:03', 0, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1851899797180727298, NULL, NULL, NULL, 1, 1, '2024-10-31 16:11:32', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851900207786311681, NULL, NULL, NULL, 1, 1, '2024-10-31 16:13:10', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851900652160237569, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', 'cs', 1, 1, '2024-10-31 16:14:56', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851901059917889537, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', 'cs', 1, 1, '2024-10-31 16:16:33', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851901403846623234, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', '123', 1, 1, '2024-10-31 16:17:55', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851901519647162369, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', '444', 1, 1, '2024-10-31 16:18:23', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851901717651865601, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', NULL, 1, 1, '2024-10-31 16:19:10', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851902106166050818, NULL, 'AxureUX 专业的交互原型素材原创分享平台', NULL, 1, 1, '2024-10-31 16:20:43', 101, NULL, NULL, -1, NULL, NULL, NULL); +INSERT INTO `example_xcgl` VALUES (1851902429861462018, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', NULL, 1, 1, '2024-10-31 16:22:00', 101, NULL, NULL, -1, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1851903296903790594, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'jeeLowCode 专业的交互原型素材原创分享平台', 'cs', 1, 1, '2024-10-31 16:25:27', 101, 1, '2024-11-20 16:18:57', 0, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1851903583810961409, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', '123', 1, 1, '2024-10-31 16:26:35', 101, NULL, NULL, -1, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1851903627947622402, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'AxureUX 专业的交互原型素材原创分享平台', 'cs', 1, 1, '2024-10-31 16:26:46', 101, NULL, NULL, -1, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1852171866900488194, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', '123', '123', 1, 1, '2024-11-01 10:12:39', 101, NULL, NULL, -1, NULL, '100', '11'); +INSERT INTO `example_xcgl` VALUES (1852188730523344898, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png', 'jeeLowCode 专业的交互原型素材原创分享平台', 'cs', 1, 1, '2024-11-01 11:19:40', 101, 1, '2024-11-20 16:18:47', 0, NULL, '100', NULL); +INSERT INTO `example_xcgl` VALUES (1852254903545851906, NULL, NULL, NULL, 1, 1, '2024-11-01 15:42:36', 101, NULL, NULL, -1, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for example_xcgl_view +-- ---------------------------- +DROP TABLE IF EXISTS `example_xcgl_view`; +CREATE TABLE `example_xcgl_view` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `zt_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', + `time_test` datetime(0) NULL DEFAULT NULL COMMENT '时间', + `num` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片数量', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `zt_box` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '遮罩层', + `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理模块-相册管理_详情' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_xcgl_view +-- ---------------------------- +INSERT INTO `example_xcgl_view` VALUES (1852243596880867330, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-01/1/QQ20240925-143449_2.png', NULL, NULL, 1, 1, '2024-11-01 14:57:41', 101, NULL, NULL, 0, NULL, '图片名称.jpg'); +INSERT INTO `example_xcgl_view` VALUES (1852246180836372482, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-01/1/QQ20240925-143449_2_2.png', NULL, NULL, 1, 1, '2024-11-01 15:07:57', 101, NULL, NULL, 0, NULL, '图片名称.jpg'); +INSERT INTO `example_xcgl_view` VALUES (1852246254131834881, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-01/1/QQ20240925-143449_2_3.png', NULL, NULL, 1, 1, '2024-11-01 15:08:14', 101, NULL, NULL, 0, NULL, '图片名称.jpg'); +INSERT INTO `example_xcgl_view` VALUES (1852246296519471106, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-01/1/QQ20240925-143449_2_4.png', NULL, NULL, 1, 1, '2024-11-01 15:08:24', 101, NULL, NULL, 0, NULL, '图片名称.jpg'); +INSERT INTO `example_xcgl_view` VALUES (1852246335220314114, 'http://oss.yckxt.com/chatgpt/upload/1/2024-11-01/1/QQ20240925-143449_2_5.png', NULL, NULL, 1, 1, '2024-11-01 15:08:34', 101, NULL, NULL, 0, NULL, '图片名称.jpg'); + +-- ---------------------------- +-- Table structure for example_xmgl_cylb +-- ---------------------------- +DROP TABLE IF EXISTS `example_xmgl_cylb`; +CREATE TABLE `example_xmgl_cylb` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `cyxm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员姓名', + `jrsj` datetime(0) NULL DEFAULT NULL COMMENT '加入时间', + `bm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门', + `js` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '项目管理-成员列表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_xmgl_cylb +-- ---------------------------- +INSERT INTO `example_xmgl_cylb` VALUES (1848301959817371650, '赵小刚', '2020-08-19 15:43:23', '114', '负责人员', 1, 1, '2024-10-21 17:55:01', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for example_xmgl_rwlb +-- ---------------------------- +DROP TABLE IF EXISTS `example_xmgl_rwlb`; +CREATE TABLE `example_xmgl_rwlb` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态', + `jzsj` datetime(0) NULL DEFAULT NULL COMMENT '截止时间', + `urgent_relief` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '急缓', + `xmmc` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目名称', + `lys` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '留言数', + `fj` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', + `tx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `kssj` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `rwtx` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务提醒', + `rwms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务描述', + `cyry` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参与人员', + `color` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务标注颜色', + `txfs` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提醒方式', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `zw` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '站位', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '项目管理-任务列表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_xmgl_rwlb +-- ---------------------------- +INSERT INTO `example_xmgl_rwlb` VALUES (1847473389050134529, '任务标题文字,点击查看详情', '1', '2024-10-19 00:00:00', '2', '项目名称', '10', NULL, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-19/1/tb.jpg', '2024-10-19 00:00:00', '1', '123', '104', '#7585a2', '1', 1, 1, '2024-10-19 11:02:35', 101, 1, '2024-10-26 16:25:41', 0, '123'); +INSERT INTO `example_xmgl_rwlb` VALUES (1847482867610943489, ' 任务标题文字,点击查看详情,点击查看详情', '1', '2024-10-19 18:14:00', '2', '项目名称', '10', NULL, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-19/1/tb_2.jpg', '2024-10-19 00:00:00', '1', 'cs', '104', '#fec03d', '1', 1, 1, '2024-10-19 11:40:14', 101, 1, '2024-10-26 16:25:17', 0, NULL); +INSERT INTO `example_xmgl_rwlb` VALUES (1847518814922735618, '任务标题文字,点击查看详情,点击查看详情', '1', '2024-10-19 00:00:00', '2', '项目名称', '10', NULL, 'http://oss.yckxt.com/chatgpt/upload/1/2024-10-19/1/tb_3.jpg', '2024-10-19 00:00:00', '1', '测试', '100', '#24d2d3', '1', 1, 1, '2024-10-19 14:03:05', 101, 1, '2024-10-26 16:24:56', 0, NULL); + +-- ---------------------------- +-- Table structure for example_zwgl_cylb +-- ---------------------------- +DROP TABLE IF EXISTS `example_zwgl_cylb`; +CREATE TABLE `example_zwgl_cylb` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `xm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名', + `bm` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门', + `tjsj` datetime(0) NULL DEFAULT NULL COMMENT '添加时间', + `tenant_id` bigint(0) NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '职务管理-成员列表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of example_zwgl_cylb +-- ---------------------------- +INSERT INTO `example_zwgl_cylb` VALUES (1846434738971324417, '张小刚', '销售部/华南区域/华南一部', '2020-11-25 23:26:08', 1, 1, '2024-10-16 14:15:21', 101, NULL, NULL, 0); +INSERT INTO `example_zwgl_cylb` VALUES (1846434834207191041, '张小刚', '销售部/华南区域/华南一部', '2020-11-25 23:26:08', 1, 1, '2024-10-16 14:15:44', 101, NULL, NULL, 0); +INSERT INTO `example_zwgl_cylb` VALUES (1846434919905210370, '张小刚', '销售部/华南区域/华南一部', '2020-11-25 23:26:08', 1, 1, '2024-10-16 14:16:04', 101, NULL, NULL, 0); + +-- ---------------------------- +-- Table structure for flw_channel_definition +-- ---------------------------- +DROP TABLE IF EXISTS `flw_channel_definition`; +CREATE TABLE `flw_channel_definition` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int(0) NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IMPLEMENTATION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_CHANNEL_DEF_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_channel_definition +-- ---------------------------- + +-- ---------------------------- +-- Table structure for flw_ev_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ev_databasechangelog`; +CREATE TABLE `flw_ev_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime(0) NOT NULL, + `ORDEREXECUTED` int(0) NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_ev_databasechangelog +-- ---------------------------- +INSERT INTO `flw_ev_databasechangelog` VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-12-09 09:46:00', 1, 'EXECUTED', '8:1b0c48c9cf7945be799d868a2626d687', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', '', NULL, '4.9.1', NULL, NULL, '3708759390'); +INSERT INTO `flw_ev_databasechangelog` VALUES ('2', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-12-09 09:46:00', 2, 'EXECUTED', '8:0ea825feb8e470558f0b5754352b9cda', 'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', '', NULL, '4.9.1', NULL, NULL, '3708759390'); +INSERT INTO `flw_ev_databasechangelog` VALUES ('3', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-12-09 09:46:00', 3, 'EXECUTED', '8:3c2bb293350b5cbe6504331980c9dcee', 'customChange', '', NULL, '4.9.1', NULL, NULL, '3708759390'); + +-- ---------------------------- +-- Table structure for flw_ev_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ev_databasechangeloglock`; +CREATE TABLE `flw_ev_databasechangeloglock` ( + `ID` int(0) NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime(0) NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_ev_databasechangeloglock +-- ---------------------------- +INSERT INTO `flw_ev_databasechangeloglock` VALUES (1, b'0', NULL, NULL); + +-- ---------------------------- +-- Table structure for flw_event_definition +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_definition`; +CREATE TABLE `flw_event_definition` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int(0) NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_EVENT_DEF_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_event_definition +-- ---------------------------- + +-- ---------------------------- +-- Table structure for flw_event_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_deployment`; +CREATE TABLE `flw_event_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_event_deployment +-- ---------------------------- + +-- ---------------------------- +-- Table structure for flw_event_resource +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_resource`; +CREATE TABLE `flw_event_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_event_resource +-- ---------------------------- + +-- ---------------------------- +-- Table structure for flw_ru_batch +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ru_batch`; +CREATE TABLE `flw_ru_batch` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `SEARCH_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SEARCH_KEY2_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NOT NULL, + `COMPLETE_TIME_` datetime(3) NULL DEFAULT NULL, + `STATUS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `BATCH_DOC_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_ru_batch +-- ---------------------------- + +-- ---------------------------- +-- Table structure for flw_ru_batch_part +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ru_batch_part`; +CREATE TABLE `flw_ru_batch_part` ( + `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `REV_` int(0) NULL DEFAULT NULL, + `BATCH_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SEARCH_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `SEARCH_KEY2_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NOT NULL, + `COMPLETE_TIME_` datetime(3) NULL DEFAULT NULL, + `STATUS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `RESULT_DOC_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `FLW_IDX_BATCH_PART`(`BATCH_ID_`) USING BTREE, + CONSTRAINT `FLW_FK_BATCH_PART_PARENT` FOREIGN KEY (`BATCH_ID_`) REFERENCES `flw_ru_batch` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of flw_ru_batch_part +-- ---------------------------- + +-- ---------------------------- +-- Table structure for infra_api_access_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_access_log`; +CREATE TABLE `infra_api_access_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '用户类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求地址', + `request_params` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求参数', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '浏览器 UA', + `begin_time` datetime(0) NOT NULL COMMENT '开始请求时间', + `end_time` datetime(0) NOT NULL COMMENT '结束请求时间', + `duration` int(0) NOT NULL COMMENT '执行时长', + `result_code` int(0) NOT NULL DEFAULT 0 COMMENT '结果码', + `result_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果提示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_create_time`(`create_time`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 35940 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'API 访问日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_api_access_log +-- ---------------------------- +INSERT INTO `infra_api_access_log` VALUES (35832, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:27:46', '2024-03-15 09:27:46', 389, 0, '', NULL, '2024-03-15 09:27:46', NULL, '2024-03-15 09:27:46', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35833, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:29:46', '2024-03-15 09:29:46', 83, 0, '', NULL, '2024-03-15 09:29:46', NULL, '2024-03-15 09:29:46', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35834, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:31:17', '2024-03-15 09:31:17', 211, 0, '', NULL, '2024-03-15 09:31:17', NULL, '2024-03-15 09:31:17', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35835, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:31:18', '2024-03-15 09:31:18', 51, 0, '', NULL, '2024-03-15 09:31:18', NULL, '2024-03-15 09:31:18', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35836, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:31:18', '2024-03-15 09:31:19', 316, 0, '', NULL, '2024-03-15 09:31:19', NULL, '2024-03-15 09:31:19', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35837, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-error-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:31:35', '2024-03-15 09:31:35', 337, 0, '', NULL, '2024-03-15 09:31:35', NULL, '2024-03-15 09:31:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35838, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:32:48', '2024-03-15 09:32:49', 171, 0, '', NULL, '2024-03-15 09:32:49', NULL, '2024-03-15 09:32:49', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35839, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:32:55', '2024-03-15 09:32:55', 47, 0, '', NULL, '2024-03-15 09:32:55', NULL, '2024-03-15 09:32:55', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35840, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:32:55', '2024-03-15 09:32:55', 193, 0, '', NULL, '2024-03-15 09:32:55', NULL, '2024-03-15 09:32:55', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35841, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:34:54', '2024-03-15 09:34:54', 51, 0, '', NULL, '2024-03-15 09:34:54', NULL, '2024-03-15 09:34:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35842, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:36:54', '2024-03-15 09:36:54', 46, 0, '', NULL, '2024-03-15 09:36:54', NULL, '2024-03-15 09:36:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35843, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:38:54', '2024-03-15 09:38:55', 66, 0, '', NULL, '2024-03-15 09:38:55', NULL, '2024-03-15 09:38:55', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35844, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:38:57', '2024-03-15 09:38:58', 579, 0, '', NULL, '2024-03-15 09:38:58', NULL, '2024-03-15 09:38:58', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35845, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:23', '2024-03-15 09:39:23', 285, 0, '', NULL, '2024-03-15 09:39:23', NULL, '2024-03-15 09:39:23', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35846, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.48', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:45', '2024-03-15 09:39:45', 71, 0, '', NULL, '2024-03-15 09:39:45', NULL, '2024-03-15 09:39:45', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35847, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"262e571818a14cf38f74f940acba7255\"},\"body\":null}', '192.168.5.48', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:45', '2024-03-15 09:39:46', 255, 0, '', NULL, '2024-03-15 09:39:46', NULL, '2024-03-15 09:39:46', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35848, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.48', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:46', '2024-03-15 09:39:46', 133, 0, '', NULL, '2024-03-15 09:39:46', NULL, '2024-03-15 09:39:46', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35849, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.48', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:47', '2024-03-15 09:39:47', 44, 0, '', NULL, '2024-03-15 09:39:47', NULL, '2024-03-15 09:39:47', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35850, '', 1, 2, 'yudao-server', 'POST', '/admin-api/system/menu/create', '{\"query\":{},\"body\":\"{\\\"id\\\":0,\\\"name\\\":\\\"访问日志\\\",\\\"permission\\\":\\\"\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"parentId\\\":1083,\\\"path\\\":\\\"apiAccessLog2\\\",\\\"icon\\\":\\\"\\\",\\\"component\\\":\\\"infra/apiAccessLog/index2\\\",\\\"componentName\\\":\\\"\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"keepAlive\\\":true,\\\"alwaysShow\\\":true}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:49', '2024-03-15 09:39:49', 319, 1002001000, '已经存在该名字的菜单', NULL, '2024-03-15 09:39:49', NULL, '2024-03-15 09:39:49', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35851, '', 1, 2, 'yudao-server', 'POST', '/admin-api/system/menu/create', '{\"query\":{},\"body\":\"{\\\"id\\\":0,\\\"name\\\":\\\"访问日志2\\\",\\\"permission\\\":\\\"\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"parentId\\\":1083,\\\"path\\\":\\\"apiAccessLog2\\\",\\\"icon\\\":\\\"\\\",\\\"component\\\":\\\"infra/apiAccessLog/index2\\\",\\\"componentName\\\":\\\"\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"keepAlive\\\":true,\\\"alwaysShow\\\":true}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:53', '2024-03-15 09:39:54', 255, 0, '', NULL, '2024-03-15 09:39:54', NULL, '2024-03-15 09:39:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35852, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:39:54', '2024-03-15 09:39:54', 419, 0, '', NULL, '2024-03-15 09:39:54', NULL, '2024-03-15 09:39:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35853, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:40:33', '2024-03-15 09:40:33', 131, 0, '', NULL, '2024-03-15 09:40:33', NULL, '2024-03-15 09:40:33', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35854, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:40:33', '2024-03-15 09:40:34', 840, 0, '', NULL, '2024-03-15 09:40:34', NULL, '2024-03-15 09:40:34', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35855, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:40:35', '2024-03-15 09:40:35', 40, 0, '', NULL, '2024-03-15 09:40:35', NULL, '2024-03-15 09:40:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35856, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:40:35', '2024-03-15 09:40:36', 422, 0, '', NULL, '2024-03-15 09:40:36', NULL, '2024-03-15 09:40:36', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35857, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:04', '2024-03-15 09:42:05', 191, 0, '', NULL, '2024-03-15 09:42:05', NULL, '2024-03-15 09:42:05', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35858, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:16', '2024-03-15 09:42:16', 185, 0, '', NULL, '2024-03-15 09:42:16', NULL, '2024-03-15 09:42:16', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35859, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:35', '2024-03-15 09:42:35', 62, 0, '', NULL, '2024-03-15 09:42:35', NULL, '2024-03-15 09:42:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35860, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"ee45185297904053b0553952c033ade3\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:35', '2024-03-15 09:42:36', 215, 0, '', NULL, '2024-03-15 09:42:36', NULL, '2024-03-15 09:42:36', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35861, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:36', '2024-03-15 09:42:36', 42, 0, '', NULL, '2024-03-15 09:42:36', NULL, '2024-03-15 09:42:36', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35862, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:39', '2024-03-15 09:42:39', 185, 0, '', NULL, '2024-03-15 09:42:39', NULL, '2024-03-15 09:42:39', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35863, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-error-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:42:56', '2024-03-15 09:42:56', 292, 0, '', NULL, '2024-03-15 09:42:56', NULL, '2024-03-15 09:42:56', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35864, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:43:04', '2024-03-15 09:43:04', 204, 0, '', NULL, '2024-03-15 09:43:04', NULL, '2024-03-15 09:43:04', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35865, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:43:20', '2024-03-15 09:43:20', 182, 0, '', NULL, '2024-03-15 09:43:20', NULL, '2024-03-15 09:43:20', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35866, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:44:35', '2024-03-15 09:44:35', 47, 0, '', NULL, '2024-03-15 09:44:35', NULL, '2024-03-15 09:44:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35867, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:46:35', '2024-03-15 09:46:35', 67, 0, '', NULL, '2024-03-15 09:46:35', NULL, '2024-03-15 09:46:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35868, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:46:51', '2024-03-15 09:46:52', 197, 0, '', NULL, '2024-03-15 09:46:52', NULL, '2024-03-15 09:46:52', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35869, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:48:35', '2024-03-15 09:48:35', 43, 0, '', NULL, '2024-03-15 09:48:35', NULL, '2024-03-15 09:48:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35870, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:48:43', '2024-03-15 09:48:43', 188, 0, '', NULL, '2024-03-15 09:48:43', NULL, '2024-03-15 09:48:43', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35871, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:49:28', '2024-03-15 09:49:29', 180, 0, '', NULL, '2024-03-15 09:49:29', NULL, '2024-03-15 09:49:29', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35872, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:50:35', '2024-03-15 09:50:35', 42, 0, '', NULL, '2024-03-15 09:50:35', NULL, '2024-03-15 09:50:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35873, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:51:28', '2024-03-15 09:51:28', 182, 0, '', NULL, '2024-03-15 09:51:28', NULL, '2024-03-15 09:51:28', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35874, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:51:54', '2024-03-15 09:51:54', 183, 0, '', NULL, '2024-03-15 09:51:54', NULL, '2024-03-15 09:51:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35875, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:52:04', '2024-03-15 09:52:04', 179, 0, '', NULL, '2024-03-15 09:52:04', NULL, '2024-03-15 09:52:04', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35876, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:52:21', '2024-03-15 09:52:22', 334, 0, '', NULL, '2024-03-15 09:52:22', NULL, '2024-03-15 09:52:22', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35877, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:52:36', '2024-03-15 09:52:36', 46, 0, '', NULL, '2024-03-15 09:52:36', NULL, '2024-03-15 09:52:36', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35878, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:53:10', '2024-03-15 09:53:10', 136, 0, '', NULL, '2024-03-15 09:53:10', NULL, '2024-03-15 09:53:10', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35879, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:53:12', '2024-03-15 09:53:12', 40, 0, '', NULL, '2024-03-15 09:53:12', NULL, '2024-03-15 09:53:12', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35880, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:53:12', '2024-03-15 09:53:13', 180, 0, '', NULL, '2024-03-15 09:53:13', NULL, '2024-03-15 09:53:13', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35881, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:54:31', '2024-03-15 09:54:31', 175, 0, '', NULL, '2024-03-15 09:54:31', NULL, '2024-03-15 09:54:31', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35882, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:55:04', '2024-03-15 09:55:05', 209, 0, '', NULL, '2024-03-15 09:55:05', NULL, '2024-03-15 09:55:05', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35883, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:55:12', '2024-03-15 09:55:12', 42, 0, '', NULL, '2024-03-15 09:55:12', NULL, '2024-03-15 09:55:12', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35884, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:55:19', '2024-03-15 09:55:19', 186, 0, '', NULL, '2024-03-15 09:55:19', NULL, '2024-03-15 09:55:19', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35885, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:55:33', '2024-03-15 09:55:33', 176, 0, '', NULL, '2024-03-15 09:55:33', NULL, '2024-03-15 09:55:33', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35886, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:55:37', '2024-03-15 09:55:38', 198, 0, '', NULL, '2024-03-15 09:55:38', NULL, '2024-03-15 09:55:38', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35887, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:57:12', '2024-03-15 09:57:12', 46, 0, '', NULL, '2024-03-15 09:57:12', NULL, '2024-03-15 09:57:12', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35888, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:59:04', '2024-03-15 09:59:05', 177, 0, '', NULL, '2024-03-15 09:59:05', NULL, '2024-03-15 09:59:05', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35889, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 09:59:12', '2024-03-15 09:59:12', 47, 0, '', NULL, '2024-03-15 09:59:12', NULL, '2024-03-15 09:59:12', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35890, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:01:12', '2024-03-15 10:01:12', 60, 0, '', NULL, '2024-03-15 10:01:12', NULL, '2024-03-15 10:01:12', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35891, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:01:35', '2024-03-15 10:01:35', 149, 0, '', NULL, '2024-03-15 10:01:35', NULL, '2024-03-15 10:01:35', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35892, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:01:59', '2024-03-15 10:01:59', 48, 0, '', NULL, '2024-03-15 10:01:59', NULL, '2024-03-15 10:01:59', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35893, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:01:59', '2024-03-15 10:01:59', 183, 0, '', NULL, '2024-03-15 10:01:59', NULL, '2024-03-15 10:01:59', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35894, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:03:59', '2024-03-15 10:03:59', 43, 0, '', NULL, '2024-03-15 10:03:59', NULL, '2024-03-15 10:03:59', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35895, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:04:23', '2024-03-15 10:04:23', 150, 0, '', NULL, '2024-03-15 10:04:23', NULL, '2024-03-15 10:04:23', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35896, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:04:26', '2024-03-15 10:04:26', 43, 0, '', NULL, '2024-03-15 10:04:26', NULL, '2024-03-15 10:04:26', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35897, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:04:26', '2024-03-15 10:04:26', 187, 0, '', NULL, '2024-03-15 10:04:26', NULL, '2024-03-15 10:04:26', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35898, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:04:53', '2024-03-15 10:04:54', 203, 0, '', NULL, '2024-03-15 10:04:54', NULL, '2024-03-15 10:04:54', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35899, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:05:13', '2024-03-15 10:05:13', 181, 0, '', NULL, '2024-03-15 10:05:13', NULL, '2024-03-15 10:05:13', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35900, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:05:42', '2024-03-15 10:05:43', 210, 0, '', NULL, '2024-03-15 10:05:43', NULL, '2024-03-15 10:05:43', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35901, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"0\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:02', '2024-03-15 10:06:02', 186, 0, '', NULL, '2024-03-15 10:06:02', NULL, '2024-03-15 10:06:02', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35902, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"4\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:06', '2024-03-15 10:06:06', 158, 0, '', NULL, '2024-03-15 10:06:06', NULL, '2024-03-15 10:06:06', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35903, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"0\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:10', '2024-03-15 10:06:10', 182, 0, '', NULL, '2024-03-15 10:06:10', NULL, '2024-03-15 10:06:10', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35904, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"duration\":\"\",\"pageNo\":\"1\",\"requestUrl\":\"\",\"resultCode\":\"true\",\"pageSize\":\"10\",\"userType\":\"\",\"userId\":\"\",\"applicationName\":\"\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:16', '2024-03-15 10:06:16', 35, 400, '请求参数不正确:Failed to convert property value of type \'java.lang.String\' to required type \'java.lang.Integer\' for property \'resultCode\'; nested exception is java.lang.NumberFormatException: For input string: \"true\"', NULL, '2024-03-15 10:06:16', NULL, '2024-03-15 10:06:16', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35905, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:20', '2024-03-15 10:06:20', 181, 0, '', NULL, '2024-03-15 10:06:20', NULL, '2024-03-15 10:06:20', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35906, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:06:26', '2024-03-15 10:06:26', 41, 0, '', NULL, '2024-03-15 10:06:26', NULL, '2024-03-15 10:06:26', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35907, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:08:26', '2024-03-15 10:08:26', 44, 0, '', NULL, '2024-03-15 10:08:26', NULL, '2024-03-15 10:08:26', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35908, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:09:18', '2024-03-15 10:09:18', 185, 0, '', NULL, '2024-03-15 10:09:18', NULL, '2024-03-15 10:09:18', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35909, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"8\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:09:24', '2024-03-15 10:09:24', 184, 0, '', NULL, '2024-03-15 10:09:24', NULL, '2024-03-15 10:09:24', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35910, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:09:25', '2024-03-15 10:09:25', 184, 0, '', NULL, '2024-03-15 10:09:25', NULL, '2024-03-15 10:09:25', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35911, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/role/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:09:51', '2024-03-15 10:09:51', 285, 0, '', NULL, '2024-03-15 10:09:51', NULL, '2024-03-15 10:09:51', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35912, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:09:58', '2024-03-15 10:09:58', 142, 0, '', NULL, '2024-03-15 10:09:58', NULL, '2024-03-15 10:09:58', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35913, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:04', '2024-03-15 10:10:04', 40, 0, '', NULL, '2024-03-15 10:10:04', NULL, '2024-03-15 10:10:04', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35914, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/role/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:04', '2024-03-15 10:10:05', 178, 0, '', NULL, '2024-03-15 10:10:05', NULL, '2024-03-15 10:10:05', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35915, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:11', '2024-03-15 10:10:11', 43, 0, '', NULL, '2024-03-15 10:10:11', NULL, '2024-03-15 10:10:11', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35916, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/role/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:11', '2024-03-15 10:10:11', 175, 0, '', NULL, '2024-03-15 10:10:11', NULL, '2024-03-15 10:10:11', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35917, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:24', '2024-03-15 10:10:25', 457, 0, '', NULL, '2024-03-15 10:10:25', NULL, '2024-03-15 10:10:25', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35918, '', 1, 2, 'yudao-server', 'DELETE', '/admin-api/system/menu/delete', '{\"query\":{\"id\":\"2732\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:58', '2024-03-15 10:10:58', 498, 0, '', NULL, '2024-03-15 10:10:58', NULL, '2024-03-15 10:10:58', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35919, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:10:58', '2024-03-15 10:10:59', 462, 0, '', NULL, '2024-03-15 10:10:59', NULL, '2024-03-15 10:10:59', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35920, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:11:27', '2024-03-15 10:11:27', 153, 0, '', NULL, '2024-03-15 10:11:27', NULL, '2024-03-15 10:11:27', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35921, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:11:27', '2024-03-15 10:11:28', 582, 0, '', NULL, '2024-03-15 10:11:28', NULL, '2024-03-15 10:11:28', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35922, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:11:30', '2024-03-15 10:11:30', 49, 0, '', NULL, '2024-03-15 10:11:30', NULL, '2024-03-15 10:11:30', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35923, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/menu/list', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:11:30', '2024-03-15 10:11:30', 411, 0, '', NULL, '2024-03-15 10:11:30', NULL, '2024-03-15 10:11:30', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35924, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:11:48', '2024-03-15 10:11:48', 235, 0, '', NULL, '2024-03-15 10:11:48', NULL, '2024-03-15 10:11:48', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35925, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-error-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:20', '2024-03-15 10:12:20', 316, 0, '', NULL, '2024-03-15 10:12:20', NULL, '2024-03-15 10:12:20', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35926, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-access-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:20', '2024-03-15 10:12:21', 190, 0, '', NULL, '2024-03-15 10:12:21', NULL, '2024-03-15 10:12:21', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35927, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/config/get-value-by-key', '{\"query\":{\"key\":\"url.druid\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:24', '2024-03-15 10:12:24', 69, 0, '', NULL, '2024-03-15 10:12:24', NULL, '2024-03-15 10:12:24', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35928, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/redis/get-monitor-info', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:27', '2024-03-15 10:12:27', 359, 0, '', NULL, '2024-03-15 10:12:27', NULL, '2024-03-15 10:12:27', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35929, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/redis/get-monitor-info', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:27', '2024-03-15 10:12:28', 192, 0, '', NULL, '2024-03-15 10:12:28', NULL, '2024-03-15 10:12:28', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35930, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/config/get-value-by-key', '{\"query\":{\"key\":\"url.spring-boot-admin\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:28', '2024-03-15 10:12:28', 45, 0, '', NULL, '2024-03-15 10:12:28', NULL, '2024-03-15 10:12:28', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35931, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/redis/get-monitor-info', '{\"query\":{},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:28', '2024-03-15 10:12:28', 188, 0, '', NULL, '2024-03-15 10:12:28', NULL, '2024-03-15 10:12:28', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35932, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/job/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:31', '2024-03-15 10:12:31', 311, 0, '', NULL, '2024-03-15 10:12:31', NULL, '2024-03-15 10:12:31', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35933, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/config/get-value-by-key', '{\"query\":{\"key\":\"url.skywalking\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:32', '2024-03-15 10:12:32', 49, 0, '', NULL, '2024-03-15 10:12:32', NULL, '2024-03-15 10:12:32', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35934, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/job/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:34', '2024-03-15 10:12:34', 187, 0, '', NULL, '2024-03-15 10:12:34', NULL, '2024-03-15 10:12:34', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35935, '', 0, 2, 'yudao-server', 'GET', '/admin-api/infra/config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:37', '2024-03-15 10:12:37', 46, 0, '', NULL, '2024-03-15 10:12:37', NULL, '2024-03-15 10:12:37', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35936, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"ee45185297904053b0553952c033ade3\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:37', '2024-03-15 10:12:37', 274, 0, '', NULL, '2024-03-15 10:12:37', NULL, '2024-03-15 10:12:37', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35937, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:37', '2024-03-15 10:12:37', 267, 0, '', NULL, '2024-03-15 10:12:37', NULL, '2024-03-15 10:12:37', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35938, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:39', '2024-03-15 10:12:40', 307, 0, '', NULL, '2024-03-15 10:12:40', NULL, '2024-03-15 10:12:40', 0, 1); +INSERT INTO `infra_api_access_log` VALUES (35939, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 10:12:41', '2024-03-15 10:12:41', 263, 0, '', NULL, '2024-03-15 10:12:41', NULL, '2024-03-15 10:12:41', 0, 1); + +-- ---------------------------- +-- Table structure for infra_api_error_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_error_log`; +CREATE TABLE `infra_api_error_log` ( + `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '链路追踪编号\n *\n * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。', + `user_id` int(0) NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '用户类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名\n *\n * 目前读取 spring.application.name', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求地址', + `request_params` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求参数', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '浏览器 UA', + `exception_time` datetime(0) NOT NULL COMMENT '异常发生时间', + `exception_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '异常名\n *\n * {@link Throwable#getClass()} 的类全名', + `exception_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常导致的消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getMessage(Throwable)}', + `exception_root_cause_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常导致的根消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getRootCauseMessage(Throwable)}', + `exception_stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常的栈轨迹\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getServiceException(Exception)}', + `exception_class_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的类全名\n *\n * {@link StackTraceElement#getClassName()}', + `exception_file_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的类文件\n *\n * {@link StackTraceElement#getFileName()}', + `exception_method_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的方法名\n *\n * {@link StackTraceElement#getMethodName()}', + `exception_line_number` int(0) NOT NULL COMMENT '异常发生的方法所在行\n *\n * {@link StackTraceElement#getLineNumber()}', + `process_status` tinyint(0) NOT NULL COMMENT '处理状态', + `process_time` datetime(0) NULL DEFAULT NULL COMMENT '处理时间', + `process_user_id` int(0) NULL DEFAULT 0 COMMENT '处理用户编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 15798 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_api_error_log +-- ---------------------------- +INSERT INTO `infra_api_error_log` VALUES (15324, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/menu/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.160', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36', '2024-03-01 15:14:43', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$ff39c908.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3a30c6d4.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x1f6dc9e2, L:/192.168.5.19:49620 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-01 15:14:43', NULL, '2024-03-01 15:14:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15325, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/tenant-package/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.160', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36', '2024-03-01 15:14:54', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$ff39c908.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3a30c6d4.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xa1959606, L:/192.168.5.19:49659 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-01 15:14:54', NULL, '2024-03-01 15:14:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15326, '', 1, 2, 'yudao-server', 'POST', '/admin-api/system/oauth2-client/create', '{\"query\":{},\"body\":\"{\\\"clientId\\\":\\\"yudao-sso-demo-by-password\\\",\\\"secret\\\":\\\"yudao-sso-demo-by-password\\\",\\\"name\\\":\\\"yudao-sso-demo-by-password\\\",\\\"logo\\\":\\\"\\\",\\\"description\\\":\\\"\\\",\\\"status\\\":0,\\\"accessTokenValiditySeconds\\\":2,\\\"refreshTokenValiditySeconds\\\":2,\\\"authorizedGrantTypes\\\":[\\\"authorization_code\\\",\\\"password\\\",\\\"client_credentials\\\"],\\\"scopes\\\":[],\\\"autoApproveScopes\\\":[],\\\"redirectUris\\\":\\\"yudao-sso-demo-by-password\\\",\\\"authorities\\\":\\\"\\\",\\\"resourceIds\\\":\\\"\\\",\\\"additionalInformation\\\":\\\"\\\",\\\"createTime\\\":\\\"\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-04 11:13:22', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 345] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO[\"redirectUris\"])', 'MismatchedInputException: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 345] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO[\"redirectUris\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 345] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO[\"redirectUris\"])\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `java.util.ArrayList` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value (\'yudao-sso-demo-by-password\')\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 345] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO[\"redirectUris\"])\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1728)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1353)\r\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromString(StdDeserializer.java:311)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.handleNonArray(StringCollectionDeserializer.java:284)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:192)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:182)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:25)\r\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 131 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-03-04 11:13:22', NULL, '2024-03-04 11:13:22', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15327, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-08 09:39:19', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeBytes(UTF8JsonGenerator.java:1260)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeFieldName(UTF8JsonGenerator.java:284)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:726)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 166 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-03-08 09:39:19', NULL, '2024-03-08 09:39:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15328, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/db-doc/export-html', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-08 10:01:32', 'cn.hutool.core.io.IORuntimeException', 'IORuntimeException: ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'cn.hutool.core.io.IORuntimeException: ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at cn.hutool.core.io.IoUtil.write(IoUtil.java:985)\r\n at cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.writeAttachment(ServletUtils.java:50)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController.doExportFile(DatabaseDocController.java:75)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController.exportHtml(DatabaseDocController.java:49)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController$$FastClassBySpringCGLIB$$d728d644.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController$$EnhancerBySpringCGLIB$$45e65834.exportHtml()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:747)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:674)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:90)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:632)\r\n at cn.hutool.core.io.IoUtil.write(IoUtil.java:983)\r\n ... 153 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 161 more\r\n', 'cn.hutool.core.io.IoUtil', 'IoUtil.java', 'write', 985, 0, NULL, 0, NULL, '2024-03-08 10:01:32', NULL, '2024-03-08 10:01:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15329, '', 1, 2, 'yudao-server', 'POST', '/admin-api/system/role/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"code\\\":\\\"test\\\",\\\"sort\\\":\\\"test\\\",\\\"status\\\":0,\\\"remark\\\":\\\"\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-08 10:47:52', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])', 'InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])\r\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\r\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\r\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:844)\r\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:824)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:531)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:506)\r\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 131 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-03-08 10:47:52', NULL, '2024-03-08 10:47:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15330, '', 1, 2, 'yudao-server', 'POST', '/admin-api/system/role/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"code\\\":\\\"test\\\",\\\"sort\\\":\\\"test\\\",\\\"status\\\":0,\\\"remark\\\":\\\"\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-08 10:47:56', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])', 'InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"test\": not a valid `java.lang.Integer` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 37] (through reference chain: cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO[\"sort\"])\r\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\r\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\r\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:844)\r\n at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:824)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:531)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:506)\r\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 131 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-03-08 10:47:56', NULL, '2024-03-08 10:47:56', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15331, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/get-by-ip', '{\"query\":{\"ip\":\"110000\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-09 14:43:53', 'java.lang.reflect.UndeclaredThrowableException', 'UndeclaredThrowableException: null', 'Exception: invalid ip address `110000`', 'java.lang.reflect.UndeclaredThrowableException\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:779)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$EnhancerBySpringCGLIB$$3d8da59a.getAreaByIp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.lang.Exception: invalid ip address `110000`\r\n at org.lionsoul.ip2region.xdb.Searcher.checkIP(Searcher.java:256)\r\n at org.lionsoul.ip2region.xdb.Searcher.search(Searcher.java:75)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getAreaId(IPUtils.java:54)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getArea(IPUtils.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController.getAreaByIp(AreaController.java:42)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$FastClassBySpringCGLIB$$c1fccba6.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n ... 148 more\r\n', 'org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation', 'CglibAopProxy.java', 'proceed', 779, 0, NULL, 0, NULL, '2024-03-09 14:43:53', NULL, '2024-03-09 14:43:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15332, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-template/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-11 14:46:43', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]', 'JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper.selectPage(NotifyTemplateMapper.java:18)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl.getNotifyTemplatePage(NotifyTemplateServiceImpl.java:108)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$FastClassBySpringCGLIB$$9dc5c8ed.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$EnhancerBySpringCGLIB$$ee436266.getNotifyTemplatePage()\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController.getNotifyTemplatePage(NotifyTemplateController.java:72)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$FastClassBySpringCGLIB$$236c7b5a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$EnhancerBySpringCGLIB$$16e3858a.getNotifyTemplatePage()\r\n at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy373.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:659)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2005)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:346)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-11 14:46:43', NULL, '2024-03-11 14:46:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15333, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-template/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-11 14:46:54', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]', 'JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper.selectPage(NotifyTemplateMapper.java:18)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl.getNotifyTemplatePage(NotifyTemplateServiceImpl.java:108)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$FastClassBySpringCGLIB$$9dc5c8ed.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$EnhancerBySpringCGLIB$$ee436266.getNotifyTemplatePage()\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController.getNotifyTemplatePage(NotifyTemplateController.java:72)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$FastClassBySpringCGLIB$$236c7b5a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$EnhancerBySpringCGLIB$$16e3858a.getNotifyTemplatePage()\r\n at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy373.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'\'\' (code 39)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"[\'codes\', \'test\']\"; line: 1, column: 3]\r\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:659)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2005)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:346)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-11 14:46:54', NULL, '2024-03-11 14:46:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15334, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-template/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-11 14:54:05', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]', 'JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper.selectPage(NotifyTemplateMapper.java:18)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl.getNotifyTemplatePage(NotifyTemplateServiceImpl.java:108)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$FastClassBySpringCGLIB$$9dc5c8ed.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$EnhancerBySpringCGLIB$$ee436266.getNotifyTemplatePage()\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController.getNotifyTemplatePage(NotifyTemplateController.java:72)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$FastClassBySpringCGLIB$$236c7b5a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$EnhancerBySpringCGLIB$$16e3858a.getNotifyTemplatePage()\r\n at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy373.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:745)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2961)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2002)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)\r\n at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4761)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4667)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-11 14:54:05', NULL, '2024-03-11 14:54:05', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15335, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/notify-template/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-11 14:54:23', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]', 'JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper.selectPage(NotifyTemplateMapper.java:18)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy205.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl.getNotifyTemplatePage(NotifyTemplateServiceImpl.java:108)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$FastClassBySpringCGLIB$$9dc5c8ed.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.notify.NotifyTemplateServiceImpl$$EnhancerBySpringCGLIB$$ee436266.getNotifyTemplatePage()\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController.getNotifyTemplatePage(NotifyTemplateController.java:72)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$FastClassBySpringCGLIB$$236c7b5a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyTemplateController$$EnhancerBySpringCGLIB$$16e3858a.getNotifyTemplatePage()\r\n at sun.reflect.GeneratedMethodAccessor442.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'params\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor254.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy373.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy372.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token \'codes\': was expecting (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (String)\"codes,test\"; line: 1, column: 6]\r\n at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)\r\n at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:745)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2961)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2002)\r\n at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802)\r\n at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4761)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4667)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 2, '2024-03-13 10:19:19', 1, NULL, '2024-03-11 14:54:23', '1', '2024-03-13 10:19:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15336, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"222\",\"tags\":\"32423\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-12 17:29:39', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'java.lang.IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true\r\n at org.springframework.util.Assert.isTrue(Assert.java:121)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl.validateText(SensitiveWordServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$FastClassBySpringCGLIB$$a7ad4b23.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$EnhancerBySpringCGLIB$$430491ea.validateText()\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.validateText(SensitiveWordController.java:105)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$FastClassBySpringCGLIB$$178d99e4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$dbc14768.validateText()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.springframework.util.Assert', 'Assert.java', 'isTrue', 121, 2, '2024-03-13 10:19:22', 1, NULL, '2024-03-12 17:29:39', '1', '2024-03-13 10:19:22', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15337, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"222\",\"tags\":\"32423\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-12 17:29:47', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'java.lang.IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true\r\n at org.springframework.util.Assert.isTrue(Assert.java:121)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl.validateText(SensitiveWordServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$FastClassBySpringCGLIB$$a7ad4b23.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$EnhancerBySpringCGLIB$$430491ea.validateText()\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.validateText(SensitiveWordController.java:105)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$FastClassBySpringCGLIB$$178d99e4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$dbc14768.validateText()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.springframework.util.Assert', 'Assert.java', 'isTrue', 121, 1, '2024-03-13 11:16:33', 1, NULL, '2024-03-12 17:29:47', '1', '2024-03-13 11:16:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15338, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"222\",\"tags\":\"32423\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-12 17:29:54', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'java.lang.IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true\r\n at org.springframework.util.Assert.isTrue(Assert.java:121)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl.validateText(SensitiveWordServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$FastClassBySpringCGLIB$$a7ad4b23.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$EnhancerBySpringCGLIB$$430491ea.validateText()\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.validateText(SensitiveWordController.java:105)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$FastClassBySpringCGLIB$$178d99e4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$dbc14768.validateText()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.springframework.util.Assert', 'Assert.java', 'isTrue', 121, 0, NULL, 0, NULL, '2024-03-12 17:29:54', NULL, '2024-03-12 17:29:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15339, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"1231231\",\"tags\":\"1231231\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-12 17:30:12', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'java.lang.IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true\r\n at org.springframework.util.Assert.isTrue(Assert.java:121)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl.validateText(SensitiveWordServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$FastClassBySpringCGLIB$$a7ad4b23.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$EnhancerBySpringCGLIB$$430491ea.validateText()\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.validateText(SensitiveWordController.java:105)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$FastClassBySpringCGLIB$$178d99e4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$dbc14768.validateText()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.springframework.util.Assert', 'Assert.java', 'isTrue', 121, 0, NULL, 0, NULL, '2024-03-12 17:30:12', NULL, '2024-03-12 17:30:12', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15340, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"111\",\"tags\":\"12313\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-12 17:31:09', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true', 'java.lang.IllegalArgumentException: 敏感词功能未开启,请将 ENABLED 设置为 true\r\n at org.springframework.util.Assert.isTrue(Assert.java:121)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl.validateText(SensitiveWordServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$FastClassBySpringCGLIB$$a7ad4b23.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordServiceImpl$$EnhancerBySpringCGLIB$$430491ea.validateText()\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.validateText(SensitiveWordController.java:105)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$FastClassBySpringCGLIB$$178d99e4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor286.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$dbc14768.validateText()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.springframework.util.Assert', 'Assert.java', 'isTrue', 121, 0, NULL, 0, NULL, '2024-03-12 17:31:09', NULL, '2024-03-12 17:31:09', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15341, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/db-doc/export-html', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-15 17:31:30', 'cn.hutool.core.io.IORuntimeException', 'IORuntimeException: ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'cn.hutool.core.io.IORuntimeException: ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at cn.hutool.core.io.IoUtil.write(IoUtil.java:985)\r\n at cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.writeAttachment(ServletUtils.java:50)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController.doExportFile(DatabaseDocController.java:75)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController.exportHtml(DatabaseDocController.java:49)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController$$FastClassBySpringCGLIB$$d728d644.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor175.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.db.DatabaseDocController$$EnhancerBySpringCGLIB$$86c15baf.exportHtml()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:747)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:674)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:90)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:632)\r\n at cn.hutool.core.io.IoUtil.write(IoUtil.java:983)\r\n ... 153 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 161 more\r\n', 'cn.hutool.core.io.IoUtil', 'IoUtil.java', 'write', 985, 0, NULL, 0, NULL, '2024-03-15 17:31:30', NULL, '2024-03-15 17:31:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15342, '', 0, 2, 'yudao-server', 'GET', '/admin-api/infra/file/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 10:17:41', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9aded63a.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$1abed01f.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x3fac1ba0, L:/192.168.5.19:57397 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-16 10:17:41', NULL, '2024-03-16 10:17:41', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15343, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 10:17:51', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9aded63a.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$1abed01f.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x7ff879c7, L:/192.168.5.19:57403 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-16 10:17:51', NULL, '2024-03-16 10:17:51', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15344, '', 0, 2, 'yudao-server', 'GET', '/admin-api/infra/file/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 10:17:51', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$9aded63a.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$1abed01f.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4c036a40, L:/192.168.5.19:57406 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-16 10:17:51', NULL, '2024-03-16 10:17:51', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15345, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/config/get', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:19', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl.getConfig(MemberConfigServiceImpl.java:40)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$FastClassBySpringCGLIB$$3b4790a2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$EnhancerBySpringCGLIB$$e9cf034a.getConfig()\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController.getConfig(MemberConfigController.java:41)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$FastClassBySpringCGLIB$$d3c55e8f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$EnhancerBySpringCGLIB$$3303039e.getConfig()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 181 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:19', NULL, '2024-03-16 15:16:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15346, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/group/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper.selectListByStatus(MemberGroupMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl.getGroupListByStatus(MemberGroupServiceImpl.java:100)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService.getEnableGroupList(MemberGroupService.java:81)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService$$FastClassBySpringCGLIB$$313ce7b4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$EnhancerBySpringCGLIB$$42984080.getEnableGroupList()\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController.getSimpleGroupList(MemberGroupController.java:69)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$FastClassBySpringCGLIB$$84e728fd.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$EnhancerBySpringCGLIB$$a9ab57a8.getSimpleGroupList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 184 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:21', NULL, '2024-03-16 15:16:21', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15347, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagList(MemberTagServiceImpl.java:122)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagList()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getSimpleTagList(MemberTagController.java:72)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getSimpleTagList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 178 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:21', NULL, '2024-03-16 15:16:21', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15348, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/level/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:21', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper.selectListByStatus(MemberLevelMapper.java:28)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl.getLevelListByStatus(MemberLevelServiceImpl.java:183)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService.getEnableLevelList(MemberLevelService.java:82)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService$$FastClassBySpringCGLIB$$ff62edea.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl$$EnhancerBySpringCGLIB$$c3082945.getEnableLevelList()\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController.getSimpleLevelList(MemberLevelController.java:67)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$FastClassBySpringCGLIB$$3fd3ef07.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$EnhancerBySpringCGLIB$$1db0c006.getSimpleLevelList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:21', NULL, '2024-03-16 15:16:21', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15349, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"levelId\":\"\",\"groupId\":\"\",\"nickname\":\"\",\"mobile\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:22', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper.selectPage(MemberUserMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserPage(MemberUserServiceImpl.java:279)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$b414a28d.getUserPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController.getUserPage(MemberUserController.java:100)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$14532def.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$52990dbe.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 192 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:22', NULL, '2024-03-16 15:16:22', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15350, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/page', '{\"query\":{\"pageNo\":\"1\",\"name\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:23', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper.selectPage(MemberTagMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagPage(MemberTagServiceImpl.java:117)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getTagPage(MemberTagController.java:90)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getTagPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:23', NULL, '2024-03-16 15:16:23', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15351, '', 1, 2, 'yudao-server', 'GET', '/admin-api/statistics/member/terminal-statistics-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:29', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT register_terminal AS terminal, COUNT(1) AS userCount FROM member_user WHERE deleted = FALSE AND tenant_id = 1 GROUP BY register_terminal\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT register_terminal AS terminal, COUNT(1) AS userCount FROM member_user WHERE deleted = FALSE AND tenant_id = 1 GROUP BY register_terminal\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy482.selectSummaryListByRegisterTerminal(Unknown Source)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl.getMemberTerminalStatisticsList(MemberStatisticsServiceImpl.java:110)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$FastClassBySpringCGLIB$$4c8f79d0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$EnhancerBySpringCGLIB$$b752eb94.getMemberTerminalStatisticsList()\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController.getMemberTerminalStatisticsList(MemberStatisticsController.java:100)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$FastClassBySpringCGLIB$$f7511b2f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$EnhancerBySpringCGLIB$$26111d7e.getMemberTerminalStatisticsList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 176 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:29', NULL, '2024-03-16 15:16:29', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15352, '', 1, 2, 'yudao-server', 'GET', '/admin-api/statistics/member/register-count-list', '{\"query\":{\"times[0]\":\"2024-02-15 00:00:00\",\"times[1]\":\"2024-03-16 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:29', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT DATE_FORMAT(create_time, \'%Y-%m-%d\') AS date, count(1) AS count FROM member_user WHERE create_time BETWEEN ? AND ? AND deleted = FALSE AND tenant_id = 1 GROUP BY date\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT DATE_FORMAT(create_time, \'%Y-%m-%d\') AS date, count(1) AS count FROM member_user WHERE create_time BETWEEN ? AND ? AND deleted = FALSE AND tenant_id = 1 GROUP BY date\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy482.selectListByCreateTimeBetween(Unknown Source)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl.getMemberRegisterCountList(MemberStatisticsServiceImpl.java:115)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$FastClassBySpringCGLIB$$4c8f79d0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$EnhancerBySpringCGLIB$$b752eb94.getMemberRegisterCountList()\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController.getMemberRegisterCountList(MemberStatisticsController.java:117)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$FastClassBySpringCGLIB$$f7511b2f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$EnhancerBySpringCGLIB$$26111d7e.getMemberRegisterCountList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 176 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:29', NULL, '2024-03-16 15:16:29', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15353, '', 1, 2, 'yudao-server', 'GET', '/admin-api/statistics/member/user-count-comparison', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:16:29', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(1) FROM member_user WHERE deleted = FALSE AND create_time >= ? AND create_time <= ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in file [D:\\localGit\\jeelowcode\\mng\\yudao-module-mall\\yudao-module-statistics-biz\\target\\classes\\mapper\\member\\MemberStatisticsMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(1) FROM member_user WHERE deleted = FALSE AND create_time >= ? AND create_time <= ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy482.selectUserCount(Unknown Source)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl.getUserCount(MemberStatisticsServiceImpl.java:133)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl.getUserCountComparison(MemberStatisticsServiceImpl.java:127)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$FastClassBySpringCGLIB$$4c8f79d0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.service.member.MemberStatisticsServiceImpl$$EnhancerBySpringCGLIB$$b752eb94.getUserCountComparison()\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController.getUserCountComparison(MemberStatisticsController.java:109)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$FastClassBySpringCGLIB$$f7511b2f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.statistics.controller.admin.member.MemberStatisticsController$$EnhancerBySpringCGLIB$$26111d7e.getUserCountComparison()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:29', NULL, '2024-03-16 15:16:29', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15354, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/config/get', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 15:16:53', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl.getConfig(MemberConfigServiceImpl.java:40)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$FastClassBySpringCGLIB$$3b4790a2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$EnhancerBySpringCGLIB$$e9cf034a.getConfig()\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController.getConfig(MemberConfigController.java:41)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$FastClassBySpringCGLIB$$d3c55e8f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$EnhancerBySpringCGLIB$$3303039e.getConfig()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:53', NULL, '2024-03-16 15:16:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15355, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 15:16:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagList(MemberTagServiceImpl.java:122)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagList()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getSimpleTagList(MemberTagController.java:72)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getSimpleTagList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 177 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:54', NULL, '2024-03-16 15:16:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15356, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/level/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 15:16:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper.selectListByStatus(MemberLevelMapper.java:28)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl.getLevelListByStatus(MemberLevelServiceImpl.java:183)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService.getEnableLevelList(MemberLevelService.java:82)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService$$FastClassBySpringCGLIB$$ff62edea.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl$$EnhancerBySpringCGLIB$$c3082945.getEnableLevelList()\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController.getSimpleLevelList(MemberLevelController.java:67)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$FastClassBySpringCGLIB$$3fd3ef07.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$EnhancerBySpringCGLIB$$1db0c006.getSimpleLevelList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 178 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:54', NULL, '2024-03-16 15:16:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15357, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/group/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 15:16:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper.selectListByStatus(MemberGroupMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl.getGroupListByStatus(MemberGroupServiceImpl.java:100)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService.getEnableGroupList(MemberGroupService.java:81)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService$$FastClassBySpringCGLIB$$313ce7b4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$EnhancerBySpringCGLIB$$42984080.getEnableGroupList()\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController.getSimpleGroupList(MemberGroupController.java:69)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$FastClassBySpringCGLIB$$84e728fd.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$EnhancerBySpringCGLIB$$a9ab57a8.getSimpleGroupList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 183 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:54', NULL, '2024-03-16 15:16:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15358, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"levelId\":\"\",\"groupId\":\"\",\"nickname\":\"\",\"mobile\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 15:16:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper.selectPage(MemberUserMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserPage(MemberUserServiceImpl.java:279)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$b414a28d.getUserPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController.getUserPage(MemberUserController.java:100)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$14532def.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$52990dbe.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 191 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:16:54', NULL, '2024-03-16 15:16:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15359, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/page', '{\"query\":{\"pageNo\":\"1\",\"name\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:17:13', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper.selectPage(MemberTagMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagPage(MemberTagServiceImpl.java:117)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getTagPage(MemberTagController.java:90)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getTagPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:17:13', NULL, '2024-03-16 15:17:13', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15360, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/group/page', '{\"query\":{\"pageNo\":\"1\",\"name\":\"\",\"pageSize\":\"10\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:17:19', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_group WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_group WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper.selectPage(MemberGroupMapper.java:21)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl.getGroupPage(MemberGroupServiceImpl.java:95)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$FastClassBySpringCGLIB$$f47cc3f4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$EnhancerBySpringCGLIB$$42984080.getGroupPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController.getGroupPage(MemberGroupController.java:77)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$FastClassBySpringCGLIB$$84e728fd.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$EnhancerBySpringCGLIB$$a9ab57a8.getGroupPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:17:19', NULL, '2024-03-16 15:17:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15361, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/config/get', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:00', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl.getConfig(MemberConfigServiceImpl.java:40)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$FastClassBySpringCGLIB$$3b4790a2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$EnhancerBySpringCGLIB$$e9cf034a.getConfig()\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController.getConfig(MemberConfigController.java:41)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$FastClassBySpringCGLIB$$d3c55e8f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$EnhancerBySpringCGLIB$$3303039e.getConfig()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:36:00', NULL, '2024-03-16 15:36:00', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15362, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/level/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper.selectListByStatus(MemberLevelMapper.java:28)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl.getLevelListByStatus(MemberLevelServiceImpl.java:183)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService.getEnableLevelList(MemberLevelService.java:82)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService$$FastClassBySpringCGLIB$$ff62edea.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl$$EnhancerBySpringCGLIB$$c3082945.getEnableLevelList()\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController.getSimpleLevelList(MemberLevelController.java:67)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$FastClassBySpringCGLIB$$3fd3ef07.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$EnhancerBySpringCGLIB$$1db0c006.getSimpleLevelList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 178 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:36:03', NULL, '2024-03-16 15:36:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15363, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagList(MemberTagServiceImpl.java:122)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagList()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getSimpleTagList(MemberTagController.java:72)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getSimpleTagList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 177 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:36:03', NULL, '2024-03-16 15:36:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15364, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/group/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper.selectListByStatus(MemberGroupMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl.getGroupListByStatus(MemberGroupServiceImpl.java:100)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService.getEnableGroupList(MemberGroupService.java:81)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService$$FastClassBySpringCGLIB$$313ce7b4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$EnhancerBySpringCGLIB$$42984080.getEnableGroupList()\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController.getSimpleGroupList(MemberGroupController.java:69)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$FastClassBySpringCGLIB$$84e728fd.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$EnhancerBySpringCGLIB$$a9ab57a8.getSimpleGroupList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 183 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:36:03', NULL, '2024-03-16 15:36:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15365, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"levelId\":\"\",\"groupId\":\"\",\"nickname\":\"\",\"mobile\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper.selectPage(MemberUserMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserPage(MemberUserServiceImpl.java:279)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$b414a28d.getUserPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController.getUserPage(MemberUserController.java:100)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$14532def.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$52990dbe.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 191 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 15:36:03', NULL, '2024-03-16 15:36:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15366, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/user-summary', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:35', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUserSummary(MpStatisticsServiceImpl.java:35)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUserSummary(MpStatisticsController.java:37)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUserSummary()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 15:36:35', NULL, '2024-03-16 15:36:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15367, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/user-cumulate', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:35', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUserCumulate(MpStatisticsServiceImpl.java:46)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUserCumulate(MpStatisticsController.java:46)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUserCumulate()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 15:36:35', NULL, '2024-03-16 15:36:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15368, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/upstream-message', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:35', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUpstreamMessage(MpStatisticsServiceImpl.java:57)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUpstreamMessage(MpStatisticsController.java:55)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUpstreamMessage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 15:36:35', NULL, '2024-03-16 15:36:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15369, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/interface-summary', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 15:36:35', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getInterfaceSummary(MpStatisticsServiceImpl.java:68)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getInterfaceSummary(MpStatisticsController.java:64)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getInterfaceSummary()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 15:36:35', NULL, '2024-03-16 15:36:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15370, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/sign-in/config/list', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 16:40:52', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy317.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy317.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl.getSignInConfigList(MemberSignInConfigServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$FastClassBySpringCGLIB$$23c28e20.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$EnhancerBySpringCGLIB$$1c135a84.getSignInConfigList()\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController.getSignInConfigList(MemberSignInConfigController.java:70)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$FastClassBySpringCGLIB$$6ca2a951.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$EnhancerBySpringCGLIB$$c116ad24.getSignInConfigList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 16:40:52', NULL, '2024-03-16 16:40:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15371, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/sign-in/record/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\",\"day\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 16:40:53', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_sign_in_record WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_sign_in_record WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy319.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy319.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy319.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy319.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper.selectPage(MemberSignInRecordMapper.java:24)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy319.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordServiceImpl.getSignInRecordPage(MemberSignInRecordServiceImpl.java:100)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordServiceImpl$$FastClassBySpringCGLIB$$6de8b5b1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordServiceImpl$$EnhancerBySpringCGLIB$$c2f6d93a.getSignInRecordPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInRecordController.getSignInRecordPage(MemberSignInRecordController.java:45)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInRecordController$$FastClassBySpringCGLIB$$5640cba0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInRecordController$$EnhancerBySpringCGLIB$$25d57d71.getSignInRecordPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_record\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 16:40:53', NULL, '2024-03-16 16:40:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15372, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-16 17:01:21', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$76cd09bd.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$930f2ca5.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x726a5f70, L:/192.168.5.19:62389 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-16 17:01:21', NULL, '2024-03-16 17:01:21', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15373, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/user-summary', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:40:30', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUserSummary(MpStatisticsServiceImpl.java:35)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUserSummary(MpStatisticsController.java:37)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUserSummary()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 17:40:30', NULL, '2024-03-16 17:40:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15374, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/interface-summary', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:40:30', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getInterfaceSummary(MpStatisticsServiceImpl.java:68)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getInterfaceSummary(MpStatisticsController.java:64)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getInterfaceSummary()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 17:40:30', NULL, '2024-03-16 17:40:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15375, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/upstream-message', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:40:30', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUpstreamMessage(MpStatisticsServiceImpl.java:57)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUpstreamMessage(MpStatisticsController.java:55)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUpstreamMessage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 17:40:30', NULL, '2024-03-16 17:40:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15376, '', 1, 2, 'yudao-server', 'GET', '/admin-api/mp/statistics/user-cumulate', '{\"query\":{\"accountId\":\"-1\",\"date[0]\":\"2024-03-09 00:00:00\",\"date[1]\":\"2024-03-15 23:59:59\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:40:30', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!', 'java.lang.IllegalArgumentException: 找到对应 id(-1) 的 WxMpService,请核实!\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.mp.framework.mp.core.MpServiceFactory.getRequiredMpService(MpServiceFactory.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy366.getRequiredMpService(Unknown Source)\r\n at cn.iocoder.yudao.module.mp.service.statistics.MpStatisticsServiceImpl.getUserCumulate(MpStatisticsServiceImpl.java:46)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController.getUserCumulate(MpStatisticsController.java:46)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$FastClassBySpringCGLIB$$f088248f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.mp.controller.admin.statistics.MpStatisticsController$$EnhancerBySpringCGLIB$$de37159e.getUserCumulate()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-03-16 17:40:30', NULL, '2024-03-16 17:40:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15377, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:32', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, create_time, update_time, creator, updater, deleted FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagList(MemberTagServiceImpl.java:122)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagList()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getSimpleTagList(MemberTagController.java:72)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getSimpleTagList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 177 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:32', NULL, '2024-03-16 17:42:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15378, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/group/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:32', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/group/MemberGroupMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, remark, status, create_time, update_time, creator, updater, deleted FROM member_group WHERE deleted = 0 AND (status = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper.selectListByStatus(MemberGroupMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy315.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl.getGroupListByStatus(MemberGroupServiceImpl.java:100)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService.getEnableGroupList(MemberGroupService.java:81)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupService$$FastClassBySpringCGLIB$$313ce7b4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.group.MemberGroupServiceImpl$$EnhancerBySpringCGLIB$$42984080.getEnableGroupList()\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController.getSimpleGroupList(MemberGroupController.java:69)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$FastClassBySpringCGLIB$$84e728fd.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.group.MemberGroupController$$EnhancerBySpringCGLIB$$a9ab57a8.getSimpleGroupList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_group\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 183 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:32', NULL, '2024-03-16 17:42:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15379, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/level/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:32', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/level/MemberLevelMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, level, experience, discount_percent, icon, background_url, status, create_time, update_time, creator, updater, deleted FROM member_level WHERE deleted = 0 AND (status = ?) AND tenant_id = 1 ORDER BY level ASC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper.selectListByStatus(MemberLevelMapper.java:28)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy305.selectListByStatus(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl.getLevelListByStatus(MemberLevelServiceImpl.java:183)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService.getEnableLevelList(MemberLevelService.java:82)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelService$$FastClassBySpringCGLIB$$ff62edea.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.level.MemberLevelServiceImpl$$EnhancerBySpringCGLIB$$c3082945.getEnableLevelList()\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController.getSimpleLevelList(MemberLevelController.java:67)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$FastClassBySpringCGLIB$$3fd3ef07.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.level.MemberLevelController$$EnhancerBySpringCGLIB$$1db0c006.getSimpleLevelList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_level\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 178 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:32', NULL, '2024-03-16 17:42:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15380, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/user/page', '{\"query\":{\"pageNo\":\"1\",\"levelId\":\"\",\"groupId\":\"\",\"nickname\":\"\",\"mobile\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:32', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_user WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper.selectPage(MemberUserMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy311.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserPage(MemberUserServiceImpl.java:279)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$b414a28d.getUserPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController.getUserPage(MemberUserController.java:100)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$FastClassBySpringCGLIB$$14532def.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.user.MemberUserController$$EnhancerBySpringCGLIB$$52990dbe.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_user\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 191 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:32', NULL, '2024-03-16 17:42:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15381, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/tag/page', '{\"query\":{\"pageNo\":\"1\",\"name\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:33', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM member_tag WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper.selectPage(MemberTagMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy321.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl.getTagPage(MemberTagServiceImpl.java:117)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$FastClassBySpringCGLIB$$da917a7e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.tag.MemberTagServiceImpl$$EnhancerBySpringCGLIB$$864fca5e.getTagPage()\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController.getTagPage(MemberTagController.java:90)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$FastClassBySpringCGLIB$$9127d933.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.tag.MemberTagController$$EnhancerBySpringCGLIB$$872a3a0a.getTagPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_tag\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:33', NULL, '2024-03-16 17:42:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15382, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/config/get', '{\"query\":{},\"body\":\"\"}', '192.168.5.108', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-16 17:42:35', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/config/MemberConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, point_trade_deduct_enable, point_trade_deduct_unit_price, point_trade_deduct_max_price, point_trade_give_point, create_time, update_time, creator, updater, deleted FROM member_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy304.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl.getConfig(MemberConfigServiceImpl.java:40)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$FastClassBySpringCGLIB$$3b4790a2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.config.MemberConfigServiceImpl$$EnhancerBySpringCGLIB$$e9cf034a.getConfig()\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController.getConfig(MemberConfigController.java:41)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$FastClassBySpringCGLIB$$d3c55e8f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.config.MemberConfigController$$EnhancerBySpringCGLIB$$3303039e.getConfig()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy633.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-16 17:42:35', NULL, '2024-03-16 17:42:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15383, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/app/list', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:49:53', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, status, remark, order_notify_url, refund_notify_url, transfer_notify_url, create_time, update_time, creator, updater, deleted FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, status, remark, order_notify_url, refund_notify_url, transfer_notify_url, create_time, update_time, creator, updater, deleted FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.getAppList(PayAppServiceImpl.java:104)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.getAppList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.getAppList(PayAppController.java:104)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.getAppList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:49:53', NULL, '2024-03-18 09:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15384, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/app/list', '{\"query\":{},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:50:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, status, remark, order_notify_url, refund_notify_url, transfer_notify_url, create_time, update_time, creator, updater, deleted FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, status, remark, order_notify_url, refund_notify_url, transfer_notify_url, create_time, update_time, creator, updater, deleted FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.getAppList(PayAppServiceImpl.java:104)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.getAppList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.getAppList(PayAppController.java:104)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.getAppList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'transfer_notify_url\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:50:03', NULL, '2024-03-18 09:50:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15385, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/app/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"status\\\":0,\\\"orderNotifyUrl\\\":\\\"http:www.test.com\\\",\\\"refundNotifyUrl\\\":\\\"http:www.test.com\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:52:27', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.createApp(PayAppServiceImpl.java:48)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.createApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.createApp(PayAppController.java:45)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.createApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:52:27', NULL, '2024-03-18 09:52:27', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15386, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/app/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"status\\\":0,\\\"orderNotifyUrl\\\":\\\"http://www.test.com\\\",\\\"refundNotifyUrl\\\":\\\"http://www.test.com\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:52:31', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.createApp(PayAppServiceImpl.java:48)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.createApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.createApp(PayAppController.java:45)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.createApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:52:31', NULL, '2024-03-18 09:52:31', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15387, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/app/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"status\\\":0,\\\"orderNotifyUrl\\\":\\\"http:www.test.com\\\",\\\"refundNotifyUrl\\\":\\\"http:www.test.com\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:57:52', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.createApp(PayAppServiceImpl.java:48)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.createApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.createApp(PayAppController.java:45)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.createApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:57:52', NULL, '2024-03-18 09:57:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15388, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/app/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:58:04', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_app WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.selectPage(PayAppMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.getAppPage(PayAppServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.getAppPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.getAppPage(PayAppController.java:87)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.getAppPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:58:04', NULL, '2024-03-18 09:58:04', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15389, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/app/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"status\\\":0,\\\"orderNotifyUrl\\\":\\\"http:www.test.com\\\",\\\"refundNotifyUrl\\\":\\\"http:www.test.com\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:58:14', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.createApp(PayAppServiceImpl.java:48)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.createApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.createApp(PayAppController.java:45)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.createApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor483.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:58:14', NULL, '2024-03-18 09:58:14', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15390, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 09:59:47', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$19bc61c1.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4416f90.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 09:59:47', NULL, '2024-03-18 09:59:47', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15391, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/app/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"test\\\",\\\"status\\\":0,\\\"orderNotifyUrl\\\":\\\"http:www.test.com\\\",\\\"refundNotifyUrl\\\":\\\"http:www.test.com\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 10:00:25', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', 'SQLException: Field \'id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.app.PayAppMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_app (name, status, order_notify_url, refund_notify_url, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy336.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.createApp(PayAppServiceImpl.java:48)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.createApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.createApp(PayAppController.java:45)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.createApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor483.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-03-18 10:00:25', NULL, '2024-03-18 10:00:25', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15392, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/channel/create', '{\"query\":{},\"body\":\"{\\\"appId\\\":1,\\\"code\\\":\\\"mock\\\",\\\"status\\\":0,\\\"remark\\\":\\\"\\\",\\\"feeRate\\\":0,\\\"config\\\":\\\"{\\\\\\\"name\\\\\\\":\\\\\\\"mock-conf\\\\\\\"}\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 10:03:48', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.channel.PayChannelMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_channel (code, status, fee_rate, remark, app_id, config, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', 'SQLException: Field \'id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.channel.PayChannelMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_channel (code, status, fee_rate, remark, app_id, config, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy340.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl.createChannel(PayChannelServiceImpl.java:92)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl$$FastClassBySpringCGLIB$$dd9b1018.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl$$EnhancerBySpringCGLIB$$8f21db6c.createChannel()\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController.createChannel(PayChannelController.java:38)\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController$$FastClassBySpringCGLIB$$350e0d55.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController$$EnhancerBySpringCGLIB$$45057bb0.createChannel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor483.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-03-18 10:03:48', NULL, '2024-03-18 10:03:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15393, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/channel/create', '{\"query\":{},\"body\":\"{\\\"appId\\\":1,\\\"code\\\":\\\"wallet\\\",\\\"status\\\":0,\\\"remark\\\":\\\"\\\",\\\"feeRate\\\":0,\\\"config\\\":\\\"{\\\\\\\"name\\\\\\\":\\\\\\\"mock-conf\\\\\\\"}\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 10:03:53', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.channel.PayChannelMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_channel (code, status, fee_rate, remark, app_id, config, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', 'SQLException: Field \'id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.channel.PayChannelMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_channel (code, status, fee_rate, remark, app_id, config, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy340.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl.createChannel(PayChannelServiceImpl.java:92)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl$$FastClassBySpringCGLIB$$dd9b1018.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.channel.PayChannelServiceImpl$$EnhancerBySpringCGLIB$$8f21db6c.createChannel()\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController.createChannel(PayChannelController.java:38)\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController$$FastClassBySpringCGLIB$$350e0d55.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.channel.PayChannelController$$EnhancerBySpringCGLIB$$45057bb0.createChannel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor483.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy368.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 175 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-03-18 10:03:53', NULL, '2024-03-18 10:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15394, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 10:04:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$19bc61c1.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4416f90.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 10:04:01', NULL, '2024-03-18 10:04:01', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15395, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/channel/create', '{\"query\":{},\"body\":\"{\\\"appId\\\":1,\\\"code\\\":\\\"alipay_pc\\\",\\\"status\\\":0,\\\"remark\\\":\\\"\\\",\\\"feeRate\\\":\\\"10%\\\",\\\"config\\\":\\\"{\\\\\\\"appId\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"serverUrl\\\\\\\":null,\\\\\\\"signType\\\\\\\":\\\\\\\"RSA2\\\\\\\",\\\\\\\"mode\\\\\\\":2,\\\\\\\"privateKey\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"alipayPublicKey\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"appCertContent\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"alipayPublicCertContent\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"rootCertContent\\\\\\\":\\\\\\\"\\\\\\\"}\\\"}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 15:41:04', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 64] (through reference chain: cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelCreateReqVO[\"feeRate\"])', 'InvalidFormatException: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 64] (through reference chain: cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelCreateReqVO[\"feeRate\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 64] (through reference chain: cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelCreateReqVO[\"feeRate\"])\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.lang.Double` from String \"10%\": not a valid `Double` value\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 64] (through reference chain: cn.iocoder.yudao.module.pay.controller.admin.channel.vo.PayChannelCreateReqVO[\"feeRate\"])\r\n at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)\r\n at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$DoubleDeserializer._parseDouble(NumberDeserializers.java:741)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$DoubleDeserializer.deserialize(NumberDeserializers.java:676)\r\n at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$DoubleDeserializer.deserialize(NumberDeserializers.java:655)\r\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 131 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-03-18 15:41:04', NULL, '2024-03-18 15:41:04', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15396, '', 1, 2, 'yudao-server', 'DELETE', '/admin-api/pay/app/delete', '{\"query\":{\"id\":\"2\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 15:56:38', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND (app_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND (app_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCount(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectCount(BaseMapperX.java:106)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCount(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectCountByAppId(PayOrderMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCountByAppId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderCountByAppId(PayOrderServiceImpl.java:98)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$19bc61c1.getOrderCountByAppId()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy338.getOrderCountByAppId(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy338.getOrderCountByAppId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.deleteApp(PayAppServiceImpl.java:75)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.deleteApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.deleteApp(PayAppController.java:69)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.deleteApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:931)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:561)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.GeneratedMethodAccessor438.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 209 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 15:56:38', NULL, '2024-03-18 15:56:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15397, '', 1, 2, 'yudao-server', 'DELETE', '/admin-api/pay/app/delete', '{\"query\":{\"id\":\"2\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 15:57:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND (app_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND (app_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCount(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectCount(BaseMapperX.java:106)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCount(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectCountByAppId(PayOrderMapper.java:43)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectCountByAppId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderCountByAppId(PayOrderServiceImpl.java:98)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$19bc61c1.getOrderCountByAppId()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy338.getOrderCountByAppId(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:234)\r\n at com.sun.proxy.$Proxy338.getOrderCountByAppId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl.deleteApp(PayAppServiceImpl.java:75)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$FastClassBySpringCGLIB$$73dbc558.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.app.PayAppServiceImpl$$EnhancerBySpringCGLIB$$185f432c.deleteApp()\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController.deleteApp(PayAppController.java:69)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$FastClassBySpringCGLIB$$41eb2c15.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.app.PayAppController$$EnhancerBySpringCGLIB$$cc660ff0.deleteApp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:931)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:561)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.GeneratedMethodAccessor438.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 209 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 15:57:46', NULL, '2024-03-18 15:57:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15398, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 16:01:13', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy332.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$19bc61c1.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4416f90.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 16:01:13', NULL, '2024-03-18 16:01:13', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15399, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 16:01:20', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy135.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy348.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy348.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy348.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy348.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy348.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$33949655.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$56c57b7c.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy636.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy369.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy368.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 16:01:20', NULL, '2024-03-18 16:01:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15400, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-18 16:37:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$f69c7e82.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$b2def035.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-18 16:37:26', NULL, '2024-03-18 16:37:26', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15401, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 10:35:00', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$f69c7e82.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$b2def035.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-19 10:35:00', NULL, '2024-03-19 10:35:00', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15402, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 10:35:03', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$1074b316.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$562fc21.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-19 10:35:03', NULL, '2024-03-19 10:35:03', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15403, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 11:02:55', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$f69c7e82.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$b2def035.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor198.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-19 11:02:55', NULL, '2024-03-19 11:02:55', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15404, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/process-instance/create', '{\"query\":{},\"body\":\"{\\\"processDefinitionId\\\":\\\"test:1:5240ab06-e59d-11ee-92d3-d017c28703e7\\\",\\\"variables\\\":{\\\"F2wo62b2qar75\\\":4}}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 11:06:30', 'org.flowable.common.engine.api.FlowableObjectNotFoundException', 'FlowableObjectNotFoundException: process instance ae5423e7-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'FlowableObjectNotFoundException: process instance ae5423e7-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'org.flowable.common.engine.api.FlowableObjectNotFoundException: process instance ae5423e7-e59d-11ee-92d3-d017c28703e7 doesn\'t exist\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:61)\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:28)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:52)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.setProcessInstanceName(RuntimeServiceImpl.java:742)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance0(BpmProcessInstanceServiceImpl.java:308)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance(BpmProcessInstanceServiceImpl.java:120)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$2a79c40f.createProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.createProcessInstance(BpmProcessInstanceController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$e3af0836.createProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd', 'SetProcessInstanceNameCmd.java', 'execute', 61, 0, NULL, 0, NULL, '2024-03-19 11:06:30', NULL, '2024-03-19 11:06:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15405, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/process-instance/create', '{\"query\":{},\"body\":\"{\\\"processDefinitionId\\\":\\\"test:1:5240ab06-e59d-11ee-92d3-d017c28703e7\\\",\\\"variables\\\":{\\\"F2wo62b2qar75\\\":4}}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 11:06:46', 'org.flowable.common.engine.api.FlowableObjectNotFoundException', 'FlowableObjectNotFoundException: process instance b82e9221-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'FlowableObjectNotFoundException: process instance b82e9221-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'org.flowable.common.engine.api.FlowableObjectNotFoundException: process instance b82e9221-e59d-11ee-92d3-d017c28703e7 doesn\'t exist\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:61)\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:28)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:52)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.setProcessInstanceName(RuntimeServiceImpl.java:742)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance0(BpmProcessInstanceServiceImpl.java:308)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance(BpmProcessInstanceServiceImpl.java:120)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$2a79c40f.createProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.createProcessInstance(BpmProcessInstanceController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$e3af0836.createProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd', 'SetProcessInstanceNameCmd.java', 'execute', 61, 0, NULL, 0, NULL, '2024-03-19 11:06:46', NULL, '2024-03-19 11:06:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15406, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/process-instance/create', '{\"query\":{},\"body\":\"{\\\"processDefinitionId\\\":\\\"test:1:5240ab06-e59d-11ee-92d3-d017c28703e7\\\",\\\"variables\\\":{\\\"F2wo62b2qar75\\\":4}}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 11:06:48', 'org.flowable.common.engine.api.FlowableObjectNotFoundException', 'FlowableObjectNotFoundException: process instance b928f7bb-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'FlowableObjectNotFoundException: process instance b928f7bb-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'org.flowable.common.engine.api.FlowableObjectNotFoundException: process instance b928f7bb-e59d-11ee-92d3-d017c28703e7 doesn\'t exist\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:61)\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:28)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:52)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.setProcessInstanceName(RuntimeServiceImpl.java:742)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance0(BpmProcessInstanceServiceImpl.java:308)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance(BpmProcessInstanceServiceImpl.java:120)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$2a79c40f.createProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.createProcessInstance(BpmProcessInstanceController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$e3af0836.createProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd', 'SetProcessInstanceNameCmd.java', 'execute', 61, 0, NULL, 0, NULL, '2024-03-19 11:06:48', NULL, '2024-03-19 11:06:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15407, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/process-instance/create', '{\"query\":{},\"body\":\"{\\\"processDefinitionId\\\":\\\"test:1:5240ab06-e59d-11ee-92d3-d017c28703e7\\\",\\\"variables\\\":{\\\"F2wo62b2qar75\\\":4}}\"}', '192.168.5.187', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 11:06:49', 'org.flowable.common.engine.api.FlowableObjectNotFoundException', 'FlowableObjectNotFoundException: process instance b9f79265-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'FlowableObjectNotFoundException: process instance b9f79265-e59d-11ee-92d3-d017c28703e7 doesn\'t exist', 'org.flowable.common.engine.api.FlowableObjectNotFoundException: process instance b9f79265-e59d-11ee-92d3-d017c28703e7 doesn\'t exist\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:61)\r\n at org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd.execute(SetProcessInstanceNameCmd.java:28)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:52)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.setProcessInstanceName(RuntimeServiceImpl.java:742)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance0(BpmProcessInstanceServiceImpl.java:308)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.createProcessInstance(BpmProcessInstanceServiceImpl.java:120)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$2a79c40f.createProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.createProcessInstance(BpmProcessInstanceController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor250.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$e3af0836.createProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'org.flowable.engine.impl.cmd.SetProcessInstanceNameCmd', 'SetProcessInstanceNameCmd.java', 'execute', 61, 0, NULL, 0, NULL, '2024-03-19 11:06:49', NULL, '2024-03-19 11:06:49', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15408, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.42', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:38:16', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1387500622 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1eda056e, L:/192.168.5.19:55487 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1387500622 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1eda056e, L:/192.168.5.19:55487 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1387500622 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1eda056e, L:/192.168.5.19:55487 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1387500622 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1eda056e, L:/192.168.5.19:55487 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1387500622 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1eda056e, L:/192.168.5.19:55487 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:38:16', NULL, '2024-03-19 16:38:16', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15409, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.16', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:41:15', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77107e7c, L:/192.168.5.19:52116 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-03-19 16:41:15', NULL, '2024-03-19 16:41:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15410, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.42', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:42:33', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@537150885 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xea3794a5, L:/192.168.5.19:52103 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@537150885 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xea3794a5, L:/192.168.5.19:52103 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@537150885 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xea3794a5, L:/192.168.5.19:52103 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@537150885 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xea3794a5, L:/192.168.5.19:52103 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@537150885 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xea3794a5, L:/192.168.5.19:52103 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:42:33', NULL, '2024-03-19 16:42:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15411, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.42', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:42:17', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1210337788 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xebb82e8a, L:/192.168.5.19:52099 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1210337788 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xebb82e8a, L:/192.168.5.19:52099 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1210337788 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xebb82e8a, L:/192.168.5.19:52099 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1210337788 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xebb82e8a, L:/192.168.5.19:52099 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1210337788 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xebb82e8a, L:/192.168.5.19:52099 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:42:17', NULL, '2024-03-19 16:42:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15412, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.16', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:43:02', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@153046591 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x81f731f5, L:/192.168.5.19:52114 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@153046591 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x81f731f5, L:/192.168.5.19:52114 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@153046591 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x81f731f5, L:/192.168.5.19:52114 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@153046591 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x81f731f5, L:/192.168.5.19:52114 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@153046591 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x81f731f5, L:/192.168.5.19:52114 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:43:02', NULL, '2024-03-19 16:43:02', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15413, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.42', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:43:01', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2000451684 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0811e8cb, L:/192.168.5.19:52096 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2000451684 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0811e8cb, L:/192.168.5.19:52096 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2000451684 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0811e8cb, L:/192.168.5.19:52096 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2000451684 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0811e8cb, L:/192.168.5.19:52096 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2000451684 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0811e8cb, L:/192.168.5.19:52096 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:43:01', NULL, '2024-03-19 16:43:01', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15414, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.16', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:45:02', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2071373707 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x061e8504, L:/192.168.5.19:52117 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2071373707 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x061e8504, L:/192.168.5.19:52117 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2071373707 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x061e8504, L:/192.168.5.19:52117 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2071373707 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x061e8504, L:/192.168.5.19:52117 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2071373707 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x061e8504, L:/192.168.5.19:52117 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:45:02', NULL, '2024-03-19 16:45:02', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15415, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-19 16:48:39', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@490716102 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x77107e7c, L:/192.168.5.19:52116 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@490716102 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x77107e7c, L:/192.168.5.19:52116 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@490716102 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x77107e7c, L:/192.168.5.19:52116 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@490716102 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x77107e7c, L:/192.168.5.19:52116 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$99b6c079.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a8fc838.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@490716102 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x77107e7c, L:/192.168.5.19:52116 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-03-19 16:48:39', NULL, '2024-03-19 16:48:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15416, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-21 11:05:08', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$943cbd52.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4c1f755.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-21 11:05:08', NULL, '2024-03-21 11:05:08', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15417, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-21 11:05:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$ae14f1e6.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$57460341.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-21 11:05:11', NULL, '2024-03-21 11:05:11', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15418, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/demo-order/create', '{\"query\":{},\"body\":\"{\\\"spuId\\\":1}\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-21 16:24:34', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl.createDemoOrder(PayDemoOrderServiceImpl.java:87)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$FastClassBySpringCGLIB$$a7f641e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$EnhancerBySpringCGLIB$$64d39618.createDemoOrder()\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController.createDemoOrder(PayDemoOrderController.java:40)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$FastClassBySpringCGLIB$$80c0b997.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$EnhancerBySpringCGLIB$$17b5e200.createDemoOrder()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor460.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 176 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-21 16:24:34', NULL, '2024-03-21 16:24:34', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15419, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-21 16:35:54', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$24ba367d.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4f88fefd.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-21 16:35:54', NULL, '2024-03-21 16:35:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15420, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-21 16:35:56', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$3e926b11.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$a20d0ae9.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-21 16:35:56', NULL, '2024-03-21 16:35:56', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15421, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 09:13:17', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$24ba367d.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4f88fefd.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 09:13:17', NULL, '2024-03-22 09:13:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15422, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 09:13:20', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$3e926b11.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$a20d0ae9.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 09:13:20', NULL, '2024-03-22 09:13:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15423, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 10:30:11', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$24ba367d.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4f88fefd.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:30:11', NULL, '2024-03-22 10:30:11', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15424, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 10:30:14', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$3e926b11.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$a20d0ae9.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:30:14', NULL, '2024-03-22 10:30:14', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15425, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 10:34:40', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$24ba367d.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4f88fefd.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:34:40', NULL, '2024-03-22 10:34:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15426, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 10:35:09', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$3e926b11.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$a20d0ae9.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:35:09', NULL, '2024-03-22 10:35:09', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15427, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/order/page', '{\"query\":{\"no\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"channelOrderNo\":\"\",\"merchantOrderId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 10:43:04', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_order WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.order.PayOrderMapper.selectPage(PayOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy368.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl.getOrderPage(PayOrderServiceImpl.java:103)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$FastClassBySpringCGLIB$$36c1c778.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.order.PayOrderServiceImpl$$EnhancerBySpringCGLIB$$24ba367d.getOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController.getOrderPage(PayOrderController.java:97)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$FastClassBySpringCGLIB$$beb027f5.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.order.PayOrderController$$EnhancerBySpringCGLIB$$4f88fefd.getOrderPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 199 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:43:04', NULL, '2024-03-22 10:43:04', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15428, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 10:46:12', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_refund WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.refund.PayRefundMapper.selectPage(PayRefundMapper.java:50)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy383.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl.getRefundPage(PayRefundServiceImpl.java:85)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$FastClassBySpringCGLIB$$a211e5d4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.refund.PayRefundServiceImpl$$EnhancerBySpringCGLIB$$28c9b559.getRefundPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.getRefundPage(PayRefundController.java:66)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$67c98da5.getRefundPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 200 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 10:46:12', NULL, '2024-03-22 10:46:12', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15429, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:03:17', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 11:03:17', NULL, '2024-03-22 11:03:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15430, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:11:44', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'app_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 11:11:44', NULL, '2024-03-22 11:11:44', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15431, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:13:57', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 11:13:57', NULL, '2024-03-22 11:13:57', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15432, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:14:24', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'alipay_logon_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 11:14:24', NULL, '2024-03-22 11:14:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15433, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:14:52', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, no, app_id, channel_id, channel_code, merchant_transfer_id, type, subject, price, user_name, status, success_time, alipay_logon_id, openid, notify_url, user_ip, channel_extras, channel_transfer_no, channel_error_code, channel_error_msg, channel_notify_data, create_time, update_time, creator, updater, deleted FROM pay_transfer WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'channel_transfer_no\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 11:14:52', NULL, '2024-03-22 11:14:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15434, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:15:35', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 230 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 232 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:15:35', NULL, '2024-03-22 11:15:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15435, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:16:50', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 230 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 232 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:16:50', NULL, '2024-03-22 11:16:50', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15436, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:17:40', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 230 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 232 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:17:40', NULL, '2024-03-22 11:17:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15437, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:17:57', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 230 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 232 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:17:57', NULL, '2024-03-22 11:17:57', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15438, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:18:15', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:18:15', NULL, '2024-03-22 11:18:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15439, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:18:28', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:18:28', NULL, '2024-03-22 11:18:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15440, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:19:22', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:19:22', NULL, '2024-03-22 11:19:22', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15441, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:24:46', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:24:46', NULL, '2024-03-22 11:24:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15442, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:24:59', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:24:59', NULL, '2024-03-22 11:24:59', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15443, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:25:38', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:25:38', NULL, '2024-03-22 11:25:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15444, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:25:38', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:25:38', NULL, '2024-03-22 11:25:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15445, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:26:17', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:26:17', NULL, '2024-03-22 11:26:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15446, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 11:26:40', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:26:40', NULL, '2024-03-22 11:26:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15447, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/transfer/page', '{\"query\":{\"no\":\"\",\"subject\":\"\",\"openid\":\"\",\"pageSize\":\"10\",\"merchantTransferId\":\"\",\"type\":\"\",\"userName\":\"\",\"alipayLogonId\":\"\",\"pageNo\":\"1\",\"price\":\"\",\"appId\":\"\",\"channelId\":\"\",\"channelCode\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 11:27:43', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.transfer.PayTransferMapper.selectPage(PayTransferMapper.java:31)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy385.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl.getTransferPage(PayTransferServiceImpl.java:250)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$FastClassBySpringCGLIB$$fbf005ae.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.transfer.PayTransferServiceImpl$$EnhancerBySpringCGLIB$$d921cd27.getTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController.getTransferPage(PayTransferController.java:49)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$FastClassBySpringCGLIB$$c0480dff.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.transfer.PayTransferController$$EnhancerBySpringCGLIB$$d1404a17.getTransferPage()\r\n at sun.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column \'channel_extras\' from result set. Cause: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:88)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getPropertyMappingValue(DefaultResultSetHandler.java:530)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyPropertyMappings(DefaultResultSetHandler.java:495)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:418)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:366)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:337)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:310)\r\n at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:202)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:66)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 194 more\r\nCaused by: java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:54)\r\n at com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler.getNullableResult(AbstractJsonTypeHandler.java:41)\r\n at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:86)\r\n ... 229 more\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.LinkedHashMap` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (String)\"1\"; line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:450)\r\n at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)\r\n at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.parse(JacksonTypeHandler.java:52)\r\n ... 231 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-22 11:27:43', NULL, '2024-03-22 11:27:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15448, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/refund/export-excel', '{\"query\":{},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 13:52:39', 'com.alibaba.excel.exception.ExcelGenerateException', 'ExcelGenerateException: Can not close IO.', 'IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was expected', 'com.alibaba.excel.exception.ExcelGenerateException: Can not close IO.\r\n at com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:420)\r\n at com.alibaba.excel.write.ExcelBuilderImpl.finish(ExcelBuilderImpl.java:99)\r\n at com.alibaba.excel.write.ExcelBuilderImpl.finishOnException(ExcelBuilderImpl.java:93)\r\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:64)\r\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:73)\r\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:50)\r\n at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:62)\r\n at cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.write(ExcelUtils.java:39)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController.exportRefundExcel(PayRefundController.java:93)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$FastClassBySpringCGLIB$$edcc4f19.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.refund.PayRefundController$$EnhancerBySpringCGLIB$$67c98da5.exportRefundExcel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was expected\r\n at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:538)\r\n at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1543)\r\n at org.apache.poi.openxml4j.opc.OPCPackage.close(OPCPackage.java:482)\r\n at org.apache.poi.POIXMLDocument.close(POIXMLDocument.java:210)\r\n at org.apache.poi.xssf.streaming.SXSSFWorkbook.close(SXSSFWorkbook.java:918)\r\n at com.alibaba.excel.context.WriteContextImpl.finish(WriteContextImpl.java:383)\r\n ... 168 more\r\n', 'com.alibaba.excel.context.WriteContextImpl', 'WriteContextImpl.java', 'finish', 420, 0, NULL, 0, NULL, '2024-03-22 13:52:39', NULL, '2024-03-22 13:52:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15449, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:25:55', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'register_terminal\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:25:55', NULL, '2024-03-22 17:25:55', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15450, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:28:45', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:28:45', NULL, '2024-03-22 17:28:45', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15451, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:28:58', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:28:58', NULL, '2024-03-22 17:28:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15452, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:29:35', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'sex\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:29:35', NULL, '2024-03-22 17:29:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15453, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-22 17:30:53', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:30:53', NULL, '2024-03-22 17:30:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15454, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:31:07', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'birthday\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:31:07', NULL, '2024-03-22 17:31:07', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15455, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet/page', '{\"query\":{\"pageNo\":\"1\",\"nickname\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:32:34', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, mobile, password, status, register_ip, register_terminal, login_ip, login_date, nickname, avatar, name, sex, birthday, area_id, mark, point, tag_ids, level_id, experience, group_id, tenant_id, create_time, update_time, creator, updater, deleted FROM member_user WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy316.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl.getUserList(MemberUserServiceImpl.java:140)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$FastClassBySpringCGLIB$$e45b0d42.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.member.service.user.MemberUserServiceImpl$$EnhancerBySpringCGLIB$$43ea4063.getUserList()\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl.getUserList(MemberUserApiImpl.java:34)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$FastClassBySpringCGLIB$$c5a4fda2.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.api.user.MemberUserApiImpl$$EnhancerBySpringCGLIB$$bbef79ef.getUserList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController.getWalletPage(PayWalletController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$FastClassBySpringCGLIB$$3380005b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletController$$EnhancerBySpringCGLIB$$78547aab.getWalletPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'area_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 186 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:32:34', NULL, '2024-03-22 17:32:34', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15456, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/wallet-recharge-package/page', '{\"query\":{\"pageNo\":\"1\",\"payPrice\":\"\",\"bonusPrice\":\"\",\"name\":\"\",\"pageSize\":\"10\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:44:38', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_wallet_recharge_package WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_wallet_recharge_package WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper.selectPage(PayWalletRechargePackageMapper.java:17)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.wallet.PayWalletRechargePackageServiceImpl.getWalletRechargePackagePage(PayWalletRechargePackageServiceImpl.java:105)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController.getWalletRechargePackagePage(PayWalletRechargePackageController.java:71)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$FastClassBySpringCGLIB$$d23cc5fc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$EnhancerBySpringCGLIB$$6efed82e.getWalletRechargePackagePage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 189 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:44:38', NULL, '2024-03-22 17:44:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15457, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/page', '{\"query\":{\"dataId\":\"\",\"pageNo\":\"1\",\"appId\":\"\",\"pageSize\":\"10\",\"merchantOrderId\":\"\",\"type\":\"\",\"status\":\"\"},\"body\":\"\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:48:33', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, app_id, type, data_id, merchant_order_id, merchant_transfer_id, status, next_notify_time, last_execute_time, notify_times, max_notify_times, notify_url, tenant_id, create_time, update_time, creator, updater, deleted FROM pay_notify_task WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, app_id, type, data_id, merchant_order_id, merchant_transfer_id, status, next_notify_time, last_execute_time, notify_times, max_notify_times, notify_url, tenant_id, create_time, update_time, creator, updater, deleted FROM pay_notify_task WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy379.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy379.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy379.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy379.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyTaskMapper.selectPage(PayNotifyTaskMapper.java:34)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy379.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyTaskPage(PayNotifyServiceImpl.java:291)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyTaskPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskPage(PayNotifyController.java:120)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'merchant_transfer_id\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:48:33', NULL, '2024-03-22 17:48:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15458, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/demo-order/create', '{\"query\":{},\"body\":\"{\\\"spuId\\\":1}\"}', '192.168.5.85', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-22 17:49:48', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl.createDemoOrder(PayDemoOrderServiceImpl.java:87)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$FastClassBySpringCGLIB$$a7f641e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$EnhancerBySpringCGLIB$$da849ae3.createDemoOrder()\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController.createDemoOrder(PayDemoOrderController.java:40)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$FastClassBySpringCGLIB$$80c0b997.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$EnhancerBySpringCGLIB$$eeb0f36d.createDemoOrder()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 176 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-22 17:49:48', NULL, '2024-03-22 17:49:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15459, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 09:06:34', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 09:06:34', NULL, '2024-03-23 09:06:34', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15460, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/demo-order/create', '{\"query\":{},\"body\":\"{\\\"spuId\\\":1}\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 09:06:47', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_demo_order (user_id, spu_id, spu_name, price, pay_status, refund_price, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl.createDemoOrder(PayDemoOrderServiceImpl.java:87)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$FastClassBySpringCGLIB$$a7f641e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$EnhancerBySpringCGLIB$$da849ae3.createDemoOrder()\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController.createDemoOrder(PayDemoOrderController.java:40)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$FastClassBySpringCGLIB$$80c0b997.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$EnhancerBySpringCGLIB$$eeb0f36d.createDemoOrder()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 176 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 09:06:47', NULL, '2024-03-23 09:06:47', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15461, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/demo-order/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.95', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-23 09:28:58', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, user_id, spu_id, spu_name, price, pay_status, pay_order_id, pay_time, pay_channel_code, pay_refund_id, refund_price, refund_time, create_time, update_time, creator, updater, deleted FROM pay_demo_order WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, user_id, spu_id, spu_name, price, pay_status, pay_order_id, pay_time, pay_channel_code, pay_refund_id, refund_price, refund_time, create_time, update_time, creator, updater, deleted FROM pay_demo_order WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC LIMIT ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoOrderMapper.selectPage(PayDemoOrderMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy387.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl.getDemoOrderPage(PayDemoOrderServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$FastClassBySpringCGLIB$$a7f641e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoOrderServiceImpl$$EnhancerBySpringCGLIB$$da849ae3.getDemoOrderPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController.getDemoOrderPage(PayDemoOrderController.java:46)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$FastClassBySpringCGLIB$$80c0b997.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoOrderController$$EnhancerBySpringCGLIB$$eeb0f36d.getDemoOrderPage()\r\n at sun.reflect.GeneratedMethodAccessor671.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'pay_status\' in \'field list\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 09:28:58', NULL, '2024-03-23 09:28:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15462, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/demo-transfer/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.95', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0', '2024-03-23 09:36:37', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_demo_transfer WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoTransferMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM pay_demo_transfer WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy389.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy389.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy389.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy389.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.demo.PayDemoTransferMapper.selectPage(PayDemoTransferMapper.java:14)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy389.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoTransferServiceImpl.getDemoTransferPage(PayDemoTransferServiceImpl.java:60)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoTransferServiceImpl$$FastClassBySpringCGLIB$$b1063053.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.service.demo.PayDemoTransferServiceImpl$$EnhancerBySpringCGLIB$$11ebc8a2.getDemoTransferPage()\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoTransferController.getDemoTransferPage(PayDemoTransferController.java:41)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoTransferController$$FastClassBySpringCGLIB$$c61f7aba.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.demo.PayDemoTransferController$$EnhancerBySpringCGLIB$$f9d184b6.getDemoTransferPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 09:36:37', NULL, '2024-03-23 09:36:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15463, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/wallet-recharge-package/create', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"11\\\",\\\"payPrice\\\":2,\\\"bonusPrice\\\":2,\\\"status\\\":0}\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 09:37:37', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_wallet_recharge_package (name, pay_price, bonus_price, status, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', 'SQLException: Field \'id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_wallet_recharge_package (name, pay_price, bonus_price, status, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.wallet.PayWalletRechargePackageServiceImpl.createWalletRechargePackage(PayWalletRechargePackageServiceImpl.java:56)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController.createWalletRechargePackage(PayWalletRechargePackageController.java:38)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$FastClassBySpringCGLIB$$d23cc5fc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$EnhancerBySpringCGLIB$$6efed82e.createWalletRechargePackage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 169 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-03-23 09:37:37', NULL, '2024-03-23 09:37:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15464, '', 1, 2, 'yudao-server', 'POST', '/admin-api/pay/wallet-recharge-package/create', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"\\\",\\\"name\\\":\\\"2\\\",\\\"payPrice\\\":2,\\\"bonusPrice\\\":2,\\\"status\\\":0,\\\"createTime\\\":\\\"\\\"}\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 10:03:43', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_wallet_recharge_package (name, pay_price, bonus_price, status, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value', 'SQLException: Field \'id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO pay_wallet_recharge_package (name, pay_price, bonus_price, status, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy397.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.wallet.PayWalletRechargePackageServiceImpl.createWalletRechargePackage(PayWalletRechargePackageServiceImpl.java:56)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController.createWalletRechargePackage(PayWalletRechargePackageController.java:38)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$FastClassBySpringCGLIB$$d23cc5fc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.wallet.PayWalletRechargePackageController$$EnhancerBySpringCGLIB$$6efed82e.createWalletRechargePackage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy403.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.GeneratedMethodAccessor366.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 169 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-03-23 10:03:43', NULL, '2024-03-23 10:03:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15465, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 10:10:38', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 10:10:38', NULL, '2024-03-23 10:10:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15466, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 10:11:05', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 10:11:05', NULL, '2024-03-23 10:11:05', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15467, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 10:11:36', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 10:11:36', NULL, '2024-03-23 10:11:36', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15468, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 11:09:18', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 11:09:18', NULL, '2024-03-23 11:09:18', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15469, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 11:13:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 11:13:16', NULL, '2024-03-23 11:13:16', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15470, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 11:14:40', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 11:14:40', NULL, '2024-03-23 11:14:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15471, '', 1, 2, 'yudao-server', 'GET', '/admin-api/pay/notify/get-detail', '{\"query\":{\"id\":\"1\"},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-23 13:38:46', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, task_id, notify_times, response, status, create_time, update_time, creator, updater, deleted FROM pay_notify_log WHERE deleted = 0 AND (task_id = ?) AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:118)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyLogMapper.selectListByTaskId(PayNotifyLogMapper.java:13)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy381.selectListByTaskId(Unknown Source)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl.getNotifyLogList(PayNotifyServiceImpl.java:296)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$FastClassBySpringCGLIB$$ff67d632.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.pay.service.notify.PayNotifyServiceImpl$$EnhancerBySpringCGLIB$$c11db133.getNotifyLogList()\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController.getNotifyTaskDetail(PayNotifyController.java:112)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$FastClassBySpringCGLIB$$53e7dafb.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.pay.controller.admin.notify.PayNotifyController$$EnhancerBySpringCGLIB$$8579ae8b.getNotifyTaskDetail()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 185 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-23 13:38:46', NULL, '2024-03-23 13:38:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15472, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/sign-in/config/list', '{\"query\":{},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-25 10:04:45', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy322.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy322.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl.getSignInConfigList(MemberSignInConfigServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$FastClassBySpringCGLIB$$23c28e20.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$EnhancerBySpringCGLIB$$33cf6a29.getSignInConfigList()\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController.getSignInConfigList(MemberSignInConfigController.java:70)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$FastClassBySpringCGLIB$$6ca2a951.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$EnhancerBySpringCGLIB$$d21abf4d.getSignInConfigList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 184 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-25 10:04:45', NULL, '2024-03-25 10:04:45', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15473, '', 1, 2, 'yudao-server', 'GET', '/admin-api/member/sign-in/config/list', '{\"query\":{},\"body\":\"\"}', '192.168.5.24', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-25 10:05:59', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, day, point, experience, status, create_time, update_time, creator, updater, deleted FROM member_sign_in_config WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy322.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy322.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl.getSignInConfigList(MemberSignInConfigServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$FastClassBySpringCGLIB$$23c28e20.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.service.signin.MemberSignInConfigServiceImpl$$EnhancerBySpringCGLIB$$33cf6a29.getSignInConfigList()\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController.getSignInConfigList(MemberSignInConfigController.java:70)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$FastClassBySpringCGLIB$$6ca2a951.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.member.controller.admin.signin.MemberSignInConfigController$$EnhancerBySpringCGLIB$$d21abf4d.getSignInConfigList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.member_sign_in_config\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy665.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy404.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy403.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 184 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-25 10:05:59', NULL, '2024-03-25 10:05:59', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15474, '', 0, 0, 'yudao-server', 'GET', '/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-26 13:56:16', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getDataOneByWrapper(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)\r\n at com.sun.proxy.$Proxy281.getDataOneByWrapper(Unknown Source)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl.getDataOneByWrapper(FrameSqlServiceImpl.java:46)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$FastClassBySpringCGLIB$$e8d2373e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$EnhancerBySpringCGLIB$$99f7983.getDataOneByWrapper()\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController.getTest(OpenController.java:81)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$FastClassBySpringCGLIB$$7a94ae99.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$EnhancerBySpringCGLIB$$297062ce.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\nCaused by: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.getRequiredTenantId(TenantContextHolder.java:52)\r\n at cn.iocoder.yudao.framework.tenant.core.db.TenantDatabaseInterceptor.getTenantId(TenantDatabaseInterceptor.java:34)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.buildTableExpression(TenantLineInnerInterceptor.java:271)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.lambda$builderExpression$3(BaseMultiTableInnerInterceptor.java:386)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.builderExpression(BaseMultiTableInnerInterceptor.java:388)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processPlainSelect(BaseMultiTableInnerInterceptor.java:113)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processSelectBody(BaseMultiTableInnerInterceptor.java:54)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.processSelect(TenantLineInnerInterceptor.java:92)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.processParser(JsqlParserSupport.java:90)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:72)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at cn.iocoder.yudao.framework.plus.plugins.JeeLowCodeInterceptor.intercept(JeeLowCodeInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n ... 187 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-26 13:56:16', NULL, '2024-03-26 13:56:16', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15475, '', 0, 0, 'yudao-server', 'GET', '/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '2024-03-26 13:57:44', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getDataOneByWrapper(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)\r\n at com.sun.proxy.$Proxy281.getDataOneByWrapper(Unknown Source)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl.getDataOneByWrapper(FrameSqlServiceImpl.java:46)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$FastClassBySpringCGLIB$$e8d2373e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$EnhancerBySpringCGLIB$$99f7983.getDataOneByWrapper()\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController.getTest(OpenController.java:81)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$FastClassBySpringCGLIB$$7a94ae99.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$EnhancerBySpringCGLIB$$297062ce.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\nCaused by: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.getRequiredTenantId(TenantContextHolder.java:52)\r\n at cn.iocoder.yudao.framework.tenant.core.db.TenantDatabaseInterceptor.getTenantId(TenantDatabaseInterceptor.java:34)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.buildTableExpression(TenantLineInnerInterceptor.java:271)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.lambda$builderExpression$3(BaseMultiTableInnerInterceptor.java:386)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.builderExpression(BaseMultiTableInnerInterceptor.java:388)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processPlainSelect(BaseMultiTableInnerInterceptor.java:113)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processSelectBody(BaseMultiTableInnerInterceptor.java:54)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.processSelect(TenantLineInnerInterceptor.java:92)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.processParser(JsqlParserSupport.java:90)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:72)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at cn.iocoder.yudao.framework.plus.plugins.JeeLowCodeInterceptor.intercept(JeeLowCodeInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy344.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n ... 187 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-26 13:57:44', NULL, '2024-03-26 13:57:44', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15476, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.15', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-26 14:30:48', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, sort, label, value, dict_type, status, color_type, css_class, remark, create_time, update_time, creator, updater, deleted FROM system_dict_data WHERE deleted = 0 AND (status = ?) AND tenant_id = -1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, sort, label, value, dict_type, status, color_type, css_class, remark, create_time, update_time, creator, updater, deleted FROM system_dict_data WHERE deleted = 0 AND (status = ?) AND tenant_id = -1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy133.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy163.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper.selectListByStatusAndDictType(DictDataMapper.java:44)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy163.selectListByStatusAndDictType(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.dict.DictDataServiceImpl.getDictDataList(DictDataServiceImpl.java:50)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictDataController.getSimpleDictDataList(DictDataController.java:70)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictDataController$$FastClassBySpringCGLIB$$f3ac98ea.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictDataController$$EnhancerBySpringCGLIB$$ce29613b.getSimpleDictDataList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy345.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy343.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy343.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy342.query(Unknown Source)\r\n at cn.iocoder.yudao.framework.plus.plugins.JeeLowCodeInterceptor.intercept(JeeLowCodeInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy342.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy342.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 160 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-03-26 14:30:48', NULL, '2024-03-26 14:30:48', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15477, '', 0, 0, 'yudao-server', 'GET', '/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', '2024-03-27 09:33:57', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy128.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getDataOneByWrapper(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)\r\n at com.sun.proxy.$Proxy281.getDataOneByWrapper(Unknown Source)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl.getDataOneByWrapper(FrameSqlServiceImpl.java:46)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$FastClassBySpringCGLIB$$e8d2373e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.service.impl.FrameSqlServiceImpl$$EnhancerBySpringCGLIB$$ea3e7c3.getDataOneByWrapper()\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController.getTest(OpenController.java:81)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$FastClassBySpringCGLIB$$7a94ae99.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:94)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.jeelowcode.controller.OpenController$$EnhancerBySpringCGLIB$$ad9f7813.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n### Cause: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\nCaused by: java.lang.NullPointerException: TenantContextHolder 不存在租户编号!可参考文档:https://doc.iocoder.cn\r\n at cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.getRequiredTenantId(TenantContextHolder.java:52)\r\n at cn.iocoder.yudao.framework.tenant.core.db.TenantDatabaseInterceptor.getTenantId(TenantDatabaseInterceptor.java:34)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.buildTableExpression(TenantLineInnerInterceptor.java:271)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.lambda$builderExpression$3(BaseMultiTableInnerInterceptor.java:386)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.builderExpression(BaseMultiTableInnerInterceptor.java:388)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processPlainSelect(BaseMultiTableInnerInterceptor.java:113)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor.processSelectBody(BaseMultiTableInnerInterceptor.java:54)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.processSelect(TenantLineInnerInterceptor.java:92)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.processParser(JsqlParserSupport.java:90)\r\n at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:72)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy343.query(Unknown Source)\r\n at cn.iocoder.yudao.framework.plus.plugins.JeeLowCodeInterceptor.intercept(JeeLowCodeInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy343.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy343.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n ... 187 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-03-27 09:33:57', NULL, '2024-03-27 09:33:57', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15478, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0', '2024-05-14 14:15:51', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-05-14 14:15:51', NULL, '2024-05-14 14:15:51', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15479, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/auth/get-permission-info', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0', '2024-05-14 14:15:53', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:520)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 166 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-05-14 14:15:53', NULL, '2024-05-14 14:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15480, '', 1, 2, 'yudao-server', 'POST', '/admin-api/jeelowcode/dbform/detail', '{\"query\":{\"dbFormId\":\"1798231490069065730\"},\"body\":\"{\\\"strings\\\":[\\\"all\\\"]}\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-05 14:44:21', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]', 'MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.handleNonArray(StringCollectionDeserializer.java:286)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:192)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:182)\r\n at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.deserialize(StringCollectionDeserializer.java:25)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 131 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-06-05 14:44:21', NULL, '2024-06-05 14:44:21', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15481, '', 0, 2, 'yudao-server', 'GET', '/admin-api/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-05 16:00:27', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException', 'LowCodeException: 该功能只允许超级管理员操作', 'LowCodeException: 该功能只允许超级管理员操作', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException: 该功能只允许超级管理员操作\r\n at cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect.around(AdministratorAspect.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.mj.jeelowcode.module.biz.controller.OpenController$$EnhancerBySpringCGLIB$$c0445377.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect', 'AdministratorAspect.java', 'around', 34, 0, NULL, 0, NULL, '2024-06-05 16:00:27', NULL, '2024-06-05 16:00:27', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15482, '', 0, 2, 'yudao-server', 'GET', '/admin-api/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-05 16:08:46', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException', 'LowCodeException: 该功能只允许超级管理员操作', 'LowCodeException: 该功能只允许超级管理员操作', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException: 该功能只允许超级管理员操作\r\n at cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect.around(AdministratorAspect.java:34)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.mj.jeelowcode.module.biz.controller.OpenController$$EnhancerBySpringCGLIB$$f6b21b24.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect', 'AdministratorAspect.java', 'around', 34, 0, NULL, 0, NULL, '2024-06-05 16:08:47', NULL, '2024-06-05 16:08:47', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15483, '', 0, 2, 'yudao-server', 'GET', '/admin-api/jeelowcode/open/getTest', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-05 16:14:13', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException', 'LowCodeException: 该功能只允许超级管理员操作', 'LowCodeException: 该功能只允许超级管理员操作', 'cn.mj.jeelowcode.framework.tenant.exception.LowCodeException: 该功能只允许超级管理员操作\r\n at cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect.around(AdministratorAspect.java:38)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.mj.jeelowcode.module.biz.controller.OpenController$$EnhancerBySpringCGLIB$$5748921d.getTest()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.mj.jeelowcode.module.biz.config.aspect.administrator.AdministratorAspect', 'AdministratorAspect.java', 'around', 38, 0, NULL, 0, NULL, '2024-06-05 16:14:13', NULL, '2024-06-05 16:14:13', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15484, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 09:59:47', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 09:59:47', NULL, '2024-06-13 09:59:47', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15485, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 09:59:58', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 09:59:58', NULL, '2024-06-13 09:59:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15486, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:00:31', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:00:31', NULL, '2024-06-13 10:00:31', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15487, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:04:58', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:04:58', NULL, '2024-06-13 10:04:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15488, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:05:33', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:05:33', NULL, '2024-06-13 10:05:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15489, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:09:29', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:09:30', NULL, '2024-06-13 10:09:30', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15490, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:10:37', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:10:37', NULL, '2024-06-13 10:10:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15491, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/test', '{\"query\":{\"id\":\"26\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-13 10:11:19', 'java.net.ConnectException', 'ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443', 'ConnectException: Connection refused: connect', 'java.net.ConnectException: Failed to connect to ossold.yckxt.com/157.148.75.65:443\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)\r\n at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)\r\n at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)\r\n at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)\r\n at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)\r\n at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)\r\n at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)\r\n at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)\r\n at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)\r\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)\r\n at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)\r\n at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)\r\n at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)\r\n at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)\r\n at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)\r\n at java.net.Socket.connect(Socket.java:606)\r\n at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)\r\n at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)\r\n ... 18 more\r\n', 'okhttp3.internal.connection.RealConnection', 'RealConnection.kt', 'connectSocket', 297, 0, NULL, 0, NULL, '2024-06-13 10:11:19', NULL, '2024-06-13 10:11:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15492, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-17 16:26:07', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-06-17 16:26:07', NULL, '2024-06-17 16:26:07', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15493, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-17 16:37:24', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-06-17 16:37:24', NULL, '2024-06-17 16:37:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15494, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', '2024-06-19 13:41:55', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-06-19 13:41:55', NULL, '2024-06-19 13:41:55', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15495, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0', '2024-06-21 09:08:03', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-06-21 09:08:03', NULL, '2024-06-21 09:08:03', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15496, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-06-24 09:22:07', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-06-24 09:22:07', NULL, '2024-06-24 09:22:07', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15497, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-05 09:28:10', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-07-05 09:28:10', NULL, '2024-07-05 09:28:10', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15498, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo01-contact/page', '{\"query\":{\"pageNo\":\"1\",\"sex\":\"\",\"name\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:01', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo01_contact WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo01_contact WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy260.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy260.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy260.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy260.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo01.Demo01ContactMapper.selectPage(Demo01ContactMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy260.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo01.Demo01ContactServiceImpl.getDemo01ContactPage(Demo01ContactServiceImpl.java:69)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo01.Demo01ContactServiceImpl$$FastClassBySpringCGLIB$$69726f27.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo01.Demo01ContactServiceImpl$$EnhancerBySpringCGLIB$$b8aad1b.getDemo01ContactPage()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.Demo01ContactController.getDemo01ContactPage(Demo01ContactController.java:76)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.Demo01ContactController$$FastClassBySpringCGLIB$$e9521c1e.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.Demo01ContactController$$EnhancerBySpringCGLIB$$d3f24999.getDemo01ContactPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo01_contact\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:01', NULL, '2024-07-09 15:52:01', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15499, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo02-category/list', '{\"query\":{\"name\":\"\",\"parentId\":\"\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:05', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, parent_id, create_time, update_time, creator, updater, deleted FROM infra_demo02_category WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id, name, parent_id, create_time, update_time, creator, updater, deleted FROM infra_demo02_category WHERE deleted = 0 AND tenant_id = 1 ORDER BY id DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy262.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo02.Demo02CategoryMapper.selectList(Demo02CategoryMapper.java:20)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy262.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo02.Demo02CategoryServiceImpl.getDemo02CategoryList(Demo02CategoryServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo02.Demo02CategoryServiceImpl$$FastClassBySpringCGLIB$$1c29bb05.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo02.Demo02CategoryServiceImpl$$EnhancerBySpringCGLIB$$9ff7eb75.getDemo02CategoryList()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.Demo02CategoryController.getDemo02CategoryList(Demo02CategoryController.java:74)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.Demo02CategoryController$$FastClassBySpringCGLIB$$165fb418.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.Demo02CategoryController$$EnhancerBySpringCGLIB$$4eb4ddc7.getDemo02CategoryList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo02_category\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:05', NULL, '2024-07-09 15:52:05', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15500, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo03-student/page', '{\"query\":{\"pageNo\":\"1\",\"sex\":\"\",\"name\":\"\",\"pageSize\":\"10\",\"description\":\"\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:07', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03StudentMapper.selectPage(Demo03StudentMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl.getDemo03StudentPage(Demo03StudentServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$FastClassBySpringCGLIB$$39482bec.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$EnhancerBySpringCGLIB$$4b36c212.getDemo03StudentPage()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController.getDemo03StudentPage(Demo03StudentController.java:78)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$FastClassBySpringCGLIB$$531f32b9.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$EnhancerBySpringCGLIB$$5663064a.getDemo03StudentPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:07', NULL, '2024-07-09 15:52:07', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15501, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo03-student/page', '{\"query\":{\"pageNo\":\"1\",\"sex\":\"\",\"name\":\"\",\"pageSize\":\"10\",\"description\":\"\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:16', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03StudentMapper.selectPage(Demo03StudentMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl.getDemo03StudentPage(Demo03StudentServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$FastClassBySpringCGLIB$$39482bec.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$EnhancerBySpringCGLIB$$4b36c212.getDemo03StudentPage()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController.getDemo03StudentPage(Demo03StudentController.java:78)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$FastClassBySpringCGLIB$$531f32b9.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$EnhancerBySpringCGLIB$$5663064a.getDemo03StudentPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:16', NULL, '2024-07-09 15:52:16', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15502, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo03-student/page', '{\"query\":{\"pageNo\":\"1\",\"sex\":\"\",\"name\":\"\",\"pageSize\":\"10\",\"description\":\"\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:20', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03StudentMapper.selectPage(Demo03StudentMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl.getDemo03StudentPage(Demo03StudentServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$FastClassBySpringCGLIB$$39482bec.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$EnhancerBySpringCGLIB$$4b36c212.getDemo03StudentPage()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController.getDemo03StudentPage(Demo03StudentController.java:78)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$FastClassBySpringCGLIB$$531f32b9.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$EnhancerBySpringCGLIB$$5663064a.getDemo03StudentPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:20', NULL, '2024-07-09 15:52:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15503, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/demo03-student/page', '{\"query\":{\"pageNo\":\"1\",\"sex\":\"\",\"name\":\"\",\"pageSize\":\"10\",\"description\":\"\"},\"body\":\"\"}', '192.168.5.12', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-09 15:52:43', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) AS total FROM infra_demo03_student WHERE deleted = 0 AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03StudentMapper.selectPage(Demo03StudentMapper.java:19)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy264.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl.getDemo03StudentPage(Demo03StudentServiceImpl.java:94)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$FastClassBySpringCGLIB$$39482bec.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentServiceImpl$$EnhancerBySpringCGLIB$$4b36c212.getDemo03StudentPage()\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController.getDemo03StudentPage(Demo03StudentController.java:78)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$FastClassBySpringCGLIB$$531f32b9.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.Demo03StudentController$$EnhancerBySpringCGLIB$$5663064a.getDemo03StudentPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'db_jeelowcode.infra_demo03_student\' doesn\'t exist\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy373.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy371.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:135)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy370.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor134.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-07-09 15:52:43', NULL, '2024-07-09 15:52:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15504, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/get-by-ip', '{\"query\":{\"ip\":\"1111\"},\"body\":\"\"}', '192.168.5.52', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-12 09:49:15', 'java.lang.reflect.UndeclaredThrowableException', 'UndeclaredThrowableException: null', 'Exception: invalid ip address `1111`', 'java.lang.reflect.UndeclaredThrowableException\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:779)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor364.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$EnhancerBySpringCGLIB$$1c0dcc93.getAreaByIp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.Exception: invalid ip address `1111`\r\n at org.lionsoul.ip2region.xdb.Searcher.checkIP(Searcher.java:256)\r\n at org.lionsoul.ip2region.xdb.Searcher.search(Searcher.java:75)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getAreaId(IPUtils.java:54)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getArea(IPUtils.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController.getAreaByIp(AreaController.java:42)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$FastClassBySpringCGLIB$$c1fccba6.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n ... 148 more\r\n', 'org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation', 'CglibAopProxy.java', 'proceed', 779, 0, NULL, 0, NULL, '2024-07-12 09:49:15', NULL, '2024-07-12 09:49:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15505, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/tenant/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.52', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-16 09:33:19', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$449d5b7c.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c2d5b8a9.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x4ef371cb, L:/192.168.5.19:51016 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-07-16 09:33:19', NULL, '2024-07-16 09:33:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15506, '', 1, 2, 'yudao-server', 'GET', '/admin-api/infra/api-error-log/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-16 14:06:35', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegment2(UTF8JsonGenerator.java:1485)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegment(UTF8JsonGenerator.java:1432)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1315)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 157 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-07-16 14:06:35', NULL, '2024-07-16 14:06:35', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15507, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/tree', '{\"query\":{},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-24 10:13:24', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeNumber(UTF8JsonGenerator.java:961)\r\n at com.fasterxml.jackson.databind.ser.std.NumberSerializers$IntegerSerializer.serialize(NumberSerializers.java:153)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 163 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-07-24 10:13:24', NULL, '2024-07-24 10:13:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15508, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/tree-by-id', '{\"query\":{},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-24 10:37:56', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 获取不到中国', 'IllegalArgumentException: 获取不到中国', 'java.lang.IllegalArgumentException: 获取不到中国\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController.getAreaTreeById(AreaController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$FastClassBySpringCGLIB$$c1fccba6.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$EnhancerBySpringCGLIB$$fa309eb6.getAreaTreeById()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-07-24 10:37:56', NULL, '2024-07-24 10:37:56', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15509, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36', '2024-07-30 15:50:51', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-07-30 15:50:52', NULL, '2024-07-30 15:50:52', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15510, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:27:53', NULL, '2024-08-01 17:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15511, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:28:06', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:28:06', NULL, '2024-08-01 17:28:06', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15512, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:28:56', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:28:56', NULL, '2024-08-01 17:28:56', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15513, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:30:17', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:30:17', NULL, '2024-08-01 17:30:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15514, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:32:29', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:32:29', NULL, '2024-08-01 17:32:29', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15515, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:33:43', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$47612fdf.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$135258e1.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:63)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:33:43', NULL, '2024-08-01 17:33:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15516, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:38:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$1e1601ab.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$1ed0ec0e.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:66)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:38:53', NULL, '2024-08-01 17:38:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15517, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:41:47', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$1e1601ab.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$1ed0ec0e.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:66)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:41:47', NULL, '2024-08-01 17:41:47', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15518, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:41:48', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$1e1601ab.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$1ed0ec0e.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:66)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:41:48', NULL, '2024-08-01 17:41:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15519, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:47:08', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$997ceb8a.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$d9149d99.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:68)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:47:08', NULL, '2024-08-01 17:47:08', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15520, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/user/page', '{\"query\":{\"pageNo\":\"1\",\"deptId\":\"\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-01 17:48:10', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectList(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectPage(BaseMapper.java:348)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:49)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectPage(BaseMapperX.java:37)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper.selectPage(AdminUserMapper.java:29)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.selectPage(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl.getUserPage(AdminUserServiceImpl.java:222)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$FastClassBySpringCGLIB$$b9a860de.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.user.AdminUserServiceImpl$$EnhancerBySpringCGLIB$$997ceb8a.getUserPage()\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController.getUserPage(UserController.java:95)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$FastClassBySpringCGLIB$$bc2558c0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.user.UserController$$EnhancerBySpringCGLIB$$d9149d99.getUserPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'mybatis_plus_first\' not found. Available parameters are [ew, page, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:225)\r\n at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:149)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.MyCustomInterceptor.intercept(MyCustomInterceptor.java:68)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 196 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-01 17:48:10', NULL, '2024-08-01 17:48:10', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15521, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:04:09', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 132 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 142 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 154 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-08-03 11:04:09', NULL, '2024-08-03 11:04:09', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15522, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"4ece37b38ce24a12a6e1c75e44b99d5f\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:36:43', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$5067a8d8.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$55992d.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor120.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:36:43', NULL, '2024-08-03 11:36:43', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15523, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:47:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:47:53', NULL, '2024-08-03 11:47:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15524, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:47:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:47:53', NULL, '2024-08-03 11:47:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15525, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:49:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:49:53', NULL, '2024-08-03 11:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15526, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:49:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:49:53', NULL, '2024-08-03 11:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15527, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:51:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:51:53', NULL, '2024-08-03 11:51:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15528, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:51:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:51:53', NULL, '2024-08-03 11:51:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15529, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:53:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:53:53', NULL, '2024-08-03 11:53:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15530, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:53:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c136fee7.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f425949.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor115.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:114)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:53:53', NULL, '2024-08-03 11:53:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15531, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:55:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:55:53', NULL, '2024-08-03 11:55:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15532, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:55:54', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:55:54', NULL, '2024-08-03 11:55:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15533, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:57:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:57:53', NULL, '2024-08-03 11:57:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15534, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:57:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:57:53', NULL, '2024-08-03 11:57:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15535, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:59:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:59:53', NULL, '2024-08-03 11:59:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15536, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 11:59:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 11:59:53', NULL, '2024-08-03 11:59:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15537, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:01:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:01:53', NULL, '2024-08-03 12:01:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15538, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:01:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:01:53', NULL, '2024-08-03 12:01:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15539, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:03:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:03:53', NULL, '2024-08-03 12:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15540, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:03:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:03:53', NULL, '2024-08-03 12:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15541, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:05:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:05:53', NULL, '2024-08-03 12:05:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15542, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:05:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:05:53', NULL, '2024-08-03 12:05:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15543, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:07:53', NULL, '2024-08-03 12:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15544, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:07:53', NULL, '2024-08-03 12:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15545, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:07:53', NULL, '2024-08-03 12:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15546, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:09:53', NULL, '2024-08-03 12:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15547, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 172 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:09:53', NULL, '2024-08-03 12:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15548, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:09:53', NULL, '2024-08-03 12:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15549, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:11:53', NULL, '2024-08-03 12:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15550, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:11:53', NULL, '2024-08-03 12:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15551, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:11:53', NULL, '2024-08-03 12:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15552, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:13:53', NULL, '2024-08-03 12:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15553, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:13:53', NULL, '2024-08-03 12:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15554, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:13:53', NULL, '2024-08-03 12:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15555, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:15:53', NULL, '2024-08-03 12:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15556, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:15:53', NULL, '2024-08-03 12:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15557, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:15:53', NULL, '2024-08-03 12:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15558, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:17:53', NULL, '2024-08-03 12:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15559, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:17:53', NULL, '2024-08-03 12:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15560, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:17:53', NULL, '2024-08-03 12:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15561, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:19:53', NULL, '2024-08-03 12:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15562, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:19:53', NULL, '2024-08-03 12:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15563, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:19:53', NULL, '2024-08-03 12:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15564, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:21:53', NULL, '2024-08-03 12:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15565, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:21:53', NULL, '2024-08-03 12:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15566, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:21:53', NULL, '2024-08-03 12:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15567, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:23:53', NULL, '2024-08-03 12:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15568, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:23:53', NULL, '2024-08-03 12:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15569, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:23:53', NULL, '2024-08-03 12:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15570, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:25:53', NULL, '2024-08-03 12:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15571, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:25:53', NULL, '2024-08-03 12:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15572, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:25:53', NULL, '2024-08-03 12:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15573, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:27:53', NULL, '2024-08-03 12:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15574, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:27:53', NULL, '2024-08-03 12:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15575, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:27:53', NULL, '2024-08-03 12:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15576, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:29:53', NULL, '2024-08-03 12:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15577, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:29:53', NULL, '2024-08-03 12:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15578, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:29:53', NULL, '2024-08-03 12:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15579, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:31:53', NULL, '2024-08-03 12:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15580, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:31:53', NULL, '2024-08-03 12:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15581, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:31:53', NULL, '2024-08-03 12:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15582, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:33:53', NULL, '2024-08-03 12:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15583, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:33:53', NULL, '2024-08-03 12:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15584, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:33:53', NULL, '2024-08-03 12:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15585, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:35:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:35:53', NULL, '2024-08-03 12:35:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15586, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:35:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:35:53', NULL, '2024-08-03 12:35:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15587, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:35:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:35:53', NULL, '2024-08-03 12:35:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15588, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:37:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:37:53', NULL, '2024-08-03 12:37:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15589, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:37:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:37:53', NULL, '2024-08-03 12:37:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15590, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:37:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:37:53', NULL, '2024-08-03 12:37:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15591, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:39:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:39:53', NULL, '2024-08-03 12:39:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15592, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:39:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:39:53', NULL, '2024-08-03 12:39:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15593, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:39:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:39:53', NULL, '2024-08-03 12:39:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15594, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:41:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:41:53', NULL, '2024-08-03 12:41:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15595, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:41:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:41:53', NULL, '2024-08-03 12:41:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15596, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:41:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:41:53', NULL, '2024-08-03 12:41:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15597, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:43:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:43:53', NULL, '2024-08-03 12:43:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15598, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:43:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:43:53', NULL, '2024-08-03 12:43:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15599, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:43:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:43:53', NULL, '2024-08-03 12:43:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15600, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:45:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:45:53', NULL, '2024-08-03 12:45:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15601, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:45:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:45:53', NULL, '2024-08-03 12:45:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15602, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:45:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:45:53', NULL, '2024-08-03 12:45:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15603, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:47:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:47:53', NULL, '2024-08-03 12:47:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15604, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:47:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:47:53', NULL, '2024-08-03 12:47:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15605, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:47:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:47:53', NULL, '2024-08-03 12:47:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15606, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:49:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:49:53', NULL, '2024-08-03 12:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15607, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:49:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:49:53', NULL, '2024-08-03 12:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15608, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:49:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:49:53', NULL, '2024-08-03 12:49:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15609, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:51:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:51:53', NULL, '2024-08-03 12:51:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15610, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:51:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:51:53', NULL, '2024-08-03 12:51:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15611, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:51:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:51:53', NULL, '2024-08-03 12:51:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15612, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:53:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:53:53', NULL, '2024-08-03 12:53:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15613, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:53:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:53:53', NULL, '2024-08-03 12:53:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15614, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:53:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:53:53', NULL, '2024-08-03 12:53:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15615, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:55:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:55:53', NULL, '2024-08-03 12:55:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15616, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:55:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:55:53', NULL, '2024-08-03 12:55:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15617, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:55:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:55:53', NULL, '2024-08-03 12:55:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15618, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:57:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:57:53', NULL, '2024-08-03 12:57:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15619, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:57:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:57:53', NULL, '2024-08-03 12:57:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15620, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:57:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:57:53', NULL, '2024-08-03 12:57:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15621, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:59:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:59:53', NULL, '2024-08-03 12:59:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15622, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:59:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:59:53', NULL, '2024-08-03 12:59:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15623, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 12:59:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 12:59:53', NULL, '2024-08-03 12:59:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15624, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:01:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:01:53', NULL, '2024-08-03 13:01:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15625, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:01:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:01:53', NULL, '2024-08-03 13:01:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15626, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:01:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:01:53', NULL, '2024-08-03 13:01:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15627, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:03:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:03:53', NULL, '2024-08-03 13:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15628, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:03:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:03:53', NULL, '2024-08-03 13:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15629, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:03:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:03:53', NULL, '2024-08-03 13:03:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15630, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:05:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:05:53', NULL, '2024-08-03 13:05:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15631, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:05:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:05:53', NULL, '2024-08-03 13:05:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15632, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:05:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:05:53', NULL, '2024-08-03 13:05:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15633, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:07:53', NULL, '2024-08-03 13:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15634, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:07:53', NULL, '2024-08-03 13:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15635, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:07:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:07:53', NULL, '2024-08-03 13:07:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15636, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:09:53', NULL, '2024-08-03 13:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15637, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:09:53', NULL, '2024-08-03 13:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15638, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:09:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:09:53', NULL, '2024-08-03 13:09:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15639, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:11:53', NULL, '2024-08-03 13:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15640, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:11:53', NULL, '2024-08-03 13:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15641, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:11:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:11:53', NULL, '2024-08-03 13:11:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15642, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:13:53', NULL, '2024-08-03 13:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15643, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:13:53', NULL, '2024-08-03 13:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15644, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:13:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:13:53', NULL, '2024-08-03 13:13:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15645, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:15:53', NULL, '2024-08-03 13:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15646, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:15:53', NULL, '2024-08-03 13:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15647, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:15:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:15:53', NULL, '2024-08-03 13:15:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15648, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:17:53', NULL, '2024-08-03 13:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15649, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:17:53', NULL, '2024-08-03 13:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15650, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:17:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:17:53', NULL, '2024-08-03 13:17:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15651, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:19:53', NULL, '2024-08-03 13:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15652, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:19:53', NULL, '2024-08-03 13:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15653, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:19:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:19:53', NULL, '2024-08-03 13:19:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15654, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:21:53', NULL, '2024-08-03 13:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15655, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:21:53', NULL, '2024-08-03 13:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15656, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:21:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:21:53', NULL, '2024-08-03 13:21:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15657, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:23:53', NULL, '2024-08-03 13:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15658, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:23:53', NULL, '2024-08-03 13:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15659, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:23:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:23:53', NULL, '2024-08-03 13:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15660, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:25:53', NULL, '2024-08-03 13:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15661, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:25:53', NULL, '2024-08-03 13:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15662, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:25:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:25:53', NULL, '2024-08-03 13:25:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15663, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:27:53', NULL, '2024-08-03 13:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15664, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:27:53', NULL, '2024-08-03 13:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15665, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:27:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:27:53', NULL, '2024-08-03 13:27:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15666, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:29:53', NULL, '2024-08-03 13:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15667, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:29:53', NULL, '2024-08-03 13:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15668, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:29:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:29:53', NULL, '2024-08-03 13:29:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15669, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:31:53', NULL, '2024-08-03 13:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15670, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:31:53', NULL, '2024-08-03 13:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15671, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:31:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:31:53', NULL, '2024-08-03 13:31:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15672, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:33:53', NULL, '2024-08-03 13:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15673, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:33:53', NULL, '2024-08-03 13:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15674, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:33:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:33:53', NULL, '2024-08-03 13:33:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15675, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:35:37', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:35:37', NULL, '2024-08-03 13:35:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15676, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"59694d8c51ea440fa3b8c3c6538d2238\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:35:37', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:35:37', NULL, '2024-08-03 13:35:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15677, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"1ef4b9fee7664210972f930b69e00e51\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 13:35:50', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 13:35:50', NULL, '2024-08-03 13:35:50', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15678, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0447a315dff8413fa9b7aaf949e57c0c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 14:08:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 14:08:53', NULL, '2024-08-03 14:08:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15679, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0447a315dff8413fa9b7aaf949e57c0c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 14:10:15', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 14:10:15', NULL, '2024-08-03 14:10:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15680, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0447a315dff8413fa9b7aaf949e57c0c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 14:11:59', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 14:11:59', NULL, '2024-08-03 14:11:59', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15681, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0447a315dff8413fa9b7aaf949e57c0c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 14:13:59', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 14:13:59', NULL, '2024-08-03 14:13:59', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15682, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0447a315dff8413fa9b7aaf949e57c0c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 14:16:00', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ef047397.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$31637afe.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:113)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 171 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 14:16:00', NULL, '2024-08-03 14:16:00', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15683, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/bpm/task-assign-rule/update', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"管理人员\\\",\\\"taskDefinitionKey\\\":\\\"Activity_0rteubl\\\",\\\"options\\\":101,\\\"type\\\":10,\\\"id\\\":281,\\\"modelId\\\":\\\"d49694a7-4eda-11ef-922a-d017c28703e7\\\",\\\"processDefinitionId\\\":\\\"\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 15:42:53', 'org.springframework.http.converter.HttpMessageNotReadableException', 'HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 87] (through reference chain: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO[\"options\"])', 'MismatchedInputException: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 87] (through reference chain: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO[\"options\"])', 'org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 87] (through reference chain: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO[\"options\"])\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.HashSet` from Integer value (token `JsonToken.VALUE_NUMBER_INT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 87] (through reference chain: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO[\"options\"])\r\n at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)\r\n at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1741)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515)\r\n at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1462)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:252)\r\n at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)\r\n at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:392)\r\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)\r\n at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)\r\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)\r\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)\r\n ... 135 more\r\n', 'org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter', 'AbstractJackson2HttpMessageConverter.java', 'readJavaType', 391, 0, NULL, 0, NULL, '2024-08-03 15:42:53', NULL, '2024-08-03 15:42:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15684, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"f03ed46a5cf647cb856ebfbff0f4476c\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 16:06:02', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$fe4da3df.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$9bb330a3.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:109)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 16:06:02', NULL, '2024-08-03 16:06:02', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15685, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"e787f6a599cd486e8b9e6137d2d4e2f7\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 16:56:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c5efe704.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f6c25d53.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:109)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 16:56:53', NULL, '2024-08-03 16:56:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15686, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"e787f6a599cd486e8b9e6137d2d4e2f7\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 16:58:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c5efe704.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f6c25d53.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:109)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 16:58:53', NULL, '2024-08-03 16:58:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15687, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"e787f6a599cd486e8b9e6137d2d4e2f7\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 17:00:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$c5efe704.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$f6c25d53.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:109)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 17:00:53', NULL, '2024-08-03 17:00:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15688, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"e787f6a599cd486e8b9e6137d2d4e2f7\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-03 17:02:53', 'org.mybatis.spring.MyBatisSystemException', 'MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]', 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:97)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy236.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$cba97b9e.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:206)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:108)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$1398331c.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'__frch_item_0\' not found. Available parameters are [coll, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:210)\r\n at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)\r\n at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)\r\n at com.baomidou.mybatisplus.core.MybatisParameterHandler.setParameters(MybatisParameterHandler.java:288)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:97)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:65)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy422.parameterize(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:91)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:109)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy386.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 173 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 97, 0, NULL, 0, NULL, '2024-08-03 17:02:53', NULL, '2024-08-03 17:02:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15689, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"0aefa304a9634ea4909bf634ff630ca2\"},\"body\":\"\"}', '192.168.5.13', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 10:45:48', 'java.lang.TypeNotPresentException', 'TypeNotPresentException: Type cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO not present', 'ClassNotFoundException: cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO', 'java.lang.TypeNotPresentException: Type cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO not present\r\n at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)\r\n at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)\r\n at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)\r\n at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)\r\n at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)\r\n at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)\r\n at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)\r\n at java.lang.reflect.Method.getGenericReturnType(Method.java:255)\r\n at org.hibernate.validator.internal.properties.javabean.JavaBeanMethod.(JavaBeanMethod.java:20)\r\n at org.hibernate.validator.internal.properties.javabean.JavaBeanGetter.(JavaBeanGetter.java:42)\r\n at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:128)\r\n at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:120)\r\n at org.hibernate.validator.internal.properties.javabean.JavaBeanHelper.executable(JavaBeanHelper.java:112)\r\n at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findExecutableMetaData(AnnotationMetaDataProvider.java:307)\r\n at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMetaData(AnnotationMetaDataProvider.java:292)\r\n at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMethodMetaData(AnnotationMetaDataProvider.java:279)\r\n at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:130)\r\n at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:120)\r\n at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.getBeanConfigurationForHierarchy(BeanMetaDataManagerImpl.java:234)\r\n at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.createBeanMetaData(BeanMetaDataManagerImpl.java:201)\r\n at org.hibernate.validator.internal.metadata.BeanMetaDataManagerImpl.getBeanMetaData(BeanMetaDataManagerImpl.java:165)\r\n at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:267)\r\n at org.hibernate.validator.internal.engine.ValidatorImpl.validateParameters(ValidatorImpl.java:235)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:110)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$e890ea63.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.ClassNotFoundException: cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthPermissionInfoRespVO\r\n at java.net.URLClassLoader.findClass(URLClassLoader.java:387)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:418)\r\n at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:351)\r\n at java.lang.Class.forName0(Native Method)\r\n at java.lang.Class.forName(Class.java:348)\r\n at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)\r\n ... 175 more\r\n', 'sun.reflect.generics.factory.CoreReflectionFactory', 'CoreReflectionFactory.java', 'makeNamedType', 117, 0, NULL, 0, NULL, '2024-08-06 10:45:48', NULL, '2024-08-06 10:45:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15690, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:40:37', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:40:37', NULL, '2024-08-06 14:40:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15691, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:40:39', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:40:39', NULL, '2024-08-06 14:40:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15692, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:40:41', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:40:41', NULL, '2024-08-06 14:40:41', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15693, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:45:28', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:45:28', NULL, '2024-08-06 14:45:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15694, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:45:33', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:45:33', NULL, '2024-08-06 14:45:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15695, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 14:45:38', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy351.selectBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$eac5650.getFormMap()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$3359c441.getModelPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$c5fb9563.getModelPage()\r\n at sun.reflect.GeneratedMethodAccessor834.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 14:45:38', NULL, '2024-08-06 14:45:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15696, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-instance/get', '{\"query\":{\"id\":\"1c395a78-e5c6-11ee-92d3-d017c28703e7\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-06 15:51:58', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 流程定义拓展(1c395a78-e5c6-11ee-92d3-d017c28703e7) 不存在', 'IllegalArgumentException: 流程定义拓展(1c395a78-e5c6-11ee-92d3-d017c28703e7) 不存在', 'java.lang.IllegalArgumentException: 流程定义拓展(1c395a78-e5c6-11ee-92d3-d017c28703e7) 不存在\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.getProcessInstanceVO(BpmProcessInstanceServiceImpl.java:147)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$4e8c7226.getProcessInstanceVO()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.getProcessInstance(BpmProcessInstanceController.java:49)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$8420d5de.getProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-08-06 15:51:58', NULL, '2024-08-06 15:51:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15697, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/task-assign-rule/create', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"开始\\\",\\\"taskDefinitionKey\\\":\\\"Event_031ywfu\\\",\\\"options\\\":null,\\\"formTypeName\\\":\\\"\\\",\\\"type\\\":null,\\\"jeelowcodeFormType\\\":\\\"form\\\",\\\"jeelowcodeDesformId\\\":\\\"1820725669344575489\\\",\\\"jeelowcodeDbformId\\\":\\\"1820725467384643585\\\",\\\"id\\\":null,\\\"modelId\\\":\\\"b460058b-53c1-11ef-901e-c22bf95b2d16\\\",\\\"processDefinitionId\\\":null,\\\"ruleModel\\\":\\\"startEvent\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:15:28', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 未知的规则类型(null)', 'IllegalArgumentException: 未知的规则类型(null)', 'java.lang.IllegalArgumentException: 未知的规则类型(null)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.validTaskAssignRuleOptions(BpmTaskAssignRuleServiceImpl.java:239)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.createTaskAssignRule(BpmTaskAssignRuleServiceImpl.java:137)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$87585530.createTaskAssignRule()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.createTaskAssignRule(BpmTaskAssignRuleController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$27491d74.createTaskAssignRule()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl', 'BpmTaskAssignRuleServiceImpl.java', 'validTaskAssignRuleOptions', 239, 0, NULL, 0, NULL, '2024-08-06 16:15:28', NULL, '2024-08-06 16:15:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15698, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/task-assign-rule/create', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"开始\\\",\\\"taskDefinitionKey\\\":\\\"Event_031ywfu\\\",\\\"options\\\":null,\\\"formTypeName\\\":\\\"\\\",\\\"type\\\":null,\\\"jeelowcodeFormType\\\":\\\"form\\\",\\\"jeelowcodeDesformId\\\":\\\"1820725669344575489\\\",\\\"jeelowcodeDbformId\\\":\\\"1820725467384643585\\\",\\\"id\\\":null,\\\"modelId\\\":\\\"b460058b-53c1-11ef-901e-c22bf95b2d16\\\",\\\"processDefinitionId\\\":null,\\\"ruleModel\\\":\\\"startEvent\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:15:46', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 未知的规则类型(null)', 'IllegalArgumentException: 未知的规则类型(null)', 'java.lang.IllegalArgumentException: 未知的规则类型(null)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.validTaskAssignRuleOptions(BpmTaskAssignRuleServiceImpl.java:239)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.createTaskAssignRule(BpmTaskAssignRuleServiceImpl.java:137)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$87585530.createTaskAssignRule()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.createTaskAssignRule(BpmTaskAssignRuleController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$27491d74.createTaskAssignRule()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl', 'BpmTaskAssignRuleServiceImpl.java', 'validTaskAssignRuleOptions', 239, 0, NULL, 0, NULL, '2024-08-06 16:15:46', NULL, '2024-08-06 16:15:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15699, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/task-assign-rule/create', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"开始\\\",\\\"taskDefinitionKey\\\":\\\"Event_031ywfu\\\",\\\"options\\\":null,\\\"formTypeName\\\":\\\"\\\",\\\"type\\\":null,\\\"jeelowcodeFormType\\\":\\\"form\\\",\\\"jeelowcodeDesformId\\\":\\\"1820725669344575489\\\",\\\"jeelowcodeDbformId\\\":\\\"1820725467384643585\\\",\\\"id\\\":null,\\\"modelId\\\":\\\"b460058b-53c1-11ef-901e-c22bf95b2d16\\\",\\\"processDefinitionId\\\":null,\\\"ruleModel\\\":\\\"startEvent\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:22:25', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value', 'SQLException: Field \'type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy329.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.createTaskAssignRule(BpmTaskAssignRuleServiceImpl.java:148)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$e0ccb7d.createTaskAssignRule()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.createTaskAssignRule(BpmTaskAssignRuleController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$1cbb8c1f.createTaskAssignRule()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy421.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy419.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:117)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-08-06 16:22:25', NULL, '2024-08-06 16:22:25', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15700, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/task-assign-rule/create', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"开始\\\",\\\"taskDefinitionKey\\\":\\\"Event_031ywfu\\\",\\\"options\\\":null,\\\"formTypeName\\\":\\\"\\\",\\\"type\\\":null,\\\"jeelowcodeFormType\\\":\\\"form\\\",\\\"jeelowcodeDesformId\\\":\\\"1820725669344575489\\\",\\\"jeelowcodeDbformId\\\":\\\"1820725467384643585\\\",\\\"id\\\":null,\\\"modelId\\\":\\\"b460058b-53c1-11ef-901e-c22bf95b2d16\\\",\\\"processDefinitionId\\\":null,\\\"ruleModel\\\":\\\"startEvent\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:22:32', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value', 'SQLException: Field \'type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy329.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.createTaskAssignRule(BpmTaskAssignRuleServiceImpl.java:148)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$e0ccb7d.createTaskAssignRule()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.createTaskAssignRule(BpmTaskAssignRuleController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$1cbb8c1f.createTaskAssignRule()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy421.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy419.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:117)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-08-06 16:22:32', NULL, '2024-08-06 16:22:32', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15701, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/task-assign-rule/create', '{\"query\":{},\"body\":\"{\\\"taskDefinitionName\\\":\\\"开始\\\",\\\"taskDefinitionKey\\\":\\\"Event_031ywfu\\\",\\\"options\\\":null,\\\"formTypeName\\\":\\\"\\\",\\\"type\\\":null,\\\"jeelowcodeFormType\\\":\\\"form\\\",\\\"jeelowcodeDesformId\\\":\\\"1820725669344575489\\\",\\\"jeelowcodeDbformId\\\":\\\"1820725467384643585\\\",\\\"id\\\":null,\\\"modelId\\\":\\\"b460058b-53c1-11ef-901e-c22bf95b2d16\\\",\\\"processDefinitionId\\\":null,\\\"ruleModel\\\":\\\"startEvent\\\"}\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:23:34', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'options\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'options\' doesn\'t have a default value\n; Field \'options\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'options\' doesn\'t have a default value', 'SQLException: Field \'options\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'options\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_task_assign_rule (model_id, process_definition_id, task_definition_key, jeelowcode_form_type, jeelowcode_dbform_id, jeelowcode_desform_id, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'options\' doesn\'t have a default value\n; Field \'options\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'options\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy329.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.createTaskAssignRule(BpmTaskAssignRuleServiceImpl.java:148)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$e0ccb7d.createTaskAssignRule()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.createTaskAssignRule(BpmTaskAssignRuleController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$1cbb8c1f.createTaskAssignRule()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLException: Field \'options\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy421.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy419.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:117)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-08-06 16:23:34', NULL, '2024-08-06 16:23:34', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15702, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:23:53', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$e0ccb7d.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$1cbb8c1f.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:23:53', NULL, '2024-08-06 16:23:53', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15703, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:25:26', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$e0ccb7d.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$1cbb8c1f.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:25:26', NULL, '2024-08-06 16:25:26', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15704, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:27:28', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$59d894d8.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$9b2685d2.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:27:28', NULL, '2024-08-06 16:27:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15705, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:28:22', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$59d894d8.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$9b2685d2.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:28:22', NULL, '2024-08-06 16:28:22', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15706, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:29:15', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$59d894d8.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$9b2685d2.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:29:15', NULL, '2024-08-06 16:29:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15707, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/task-assign-rule/list', '{\"query\":{\"processDefinitionId\":\"\",\"modelId\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:34:07', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO.setJeelowcodeFormType(Ljava/lang/String;)Lcn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvertImpl.convert(BpmTaskAssignRuleConvertImpl.java:33)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.lambda$convertList$0(BpmTaskAssignRuleConvert.java:28)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList(CollectionUtils.java:66)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert.convertList(BpmTaskAssignRuleConvert.java:27)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl.getTaskAssignRuleList(BpmTaskAssignRuleServiceImpl.java:131)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$FastClassBySpringCGLIB$$166c8c1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleServiceImpl$$EnhancerBySpringCGLIB$$59d894d8.getTaskAssignRuleList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController.getTaskAssignRuleList(BpmTaskAssignRuleController.java:41)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$FastClassBySpringCGLIB$$dcee02da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmTaskAssignRuleController$$EnhancerBySpringCGLIB$$9b2685d2.getTaskAssignRuleList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:34:07', NULL, '2024-08-06 16:34:07', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15708, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:52:39', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvertImpl.copyTo(BpmModelConvertImpl.java:42)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert.convert2(BpmModelConvert.java:88)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:164)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$38fd2146.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$6c0b8ca.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:52:39', NULL, '2024-08-06 16:52:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15709, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:52:50', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO.setFormType(Ljava/lang/Integer;)Lcn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvertImpl.copyTo(BpmModelConvertImpl.java:42)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert.convert2(BpmModelConvert.java:88)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:164)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$38fd2146.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$6c0b8ca.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:52:50', NULL, '2024-08-06 16:52:50', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15710, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 16:59:02', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO.getFormType()Ljava/lang/Integer;', 'NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO.getFormType()Ljava/lang/Integer;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO.getFormType()Ljava/lang/Integer;\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.NoSuchMethodError: cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO.getFormType()Ljava/lang/Integer;\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvertImpl.copyTo(BpmModelConvertImpl.java:42)\r\n at cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert.convert2(BpmModelConvert.java:88)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:164)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$782535f3.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$4692142a.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n ... 122 more\r\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1087, 0, NULL, 0, NULL, '2024-08-06 16:59:02', NULL, '2024-08-06 16:59:02', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15711, '', 1, 2, 'yudao-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"b460058b-53c1-11ef-901e-c22bf95b2d16\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:05:23', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_process_definition_ext (process_definition_id, model_id, description, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\n; Field \'form_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'form_type\' doesn\'t have a default value', 'SQLException: Field \'form_type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database. Cause: java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\r\n### The error may exist in cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO bpm_process_definition_ext (process_definition_id, model_id, description, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, 1)\r\n### Cause: java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\n; Field \'form_type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:248)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy134.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.createProcessDefinition(BpmProcessDefinitionServiceImpl.java:142)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$fa456923.createProcessDefinition()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:173)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$10099257.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$399560e2.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLException: Field \'form_type\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy421.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy419.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:117)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy383.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 195 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 248, 0, NULL, 0, NULL, '2024-08-06 17:05:23', NULL, '2024-08-06 17:05:23', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15712, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:17:46', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:17:46', NULL, '2024-08-06 17:17:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15713, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:17:56', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:17:56', NULL, '2024-08-06 17:17:56', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15714, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:18:37', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:18:37', NULL, '2024-08-06 17:18:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15715, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:18:50', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:18:50', NULL, '2024-08-06 17:18:50', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15716, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:18:54', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:18:54', NULL, '2024-08-06 17:18:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15717, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:09', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:09', NULL, '2024-08-06 17:19:09', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15718, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:17', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:17', NULL, '2024-08-06 17:19:17', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15719, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:28', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:28', NULL, '2024-08-06 17:19:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15720, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:37', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:37', NULL, '2024-08-06 17:19:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15721, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:39', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:39', NULL, '2024-08-06 17:19:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15722, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:47', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:47', NULL, '2024-08-06 17:19:47', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15723, '', 136, 2, 'yudao-server', 'GET', '/admin-api/bpm/process-definition/list', '{\"query\":{\"suspensionState\":\"1\"},\"body\":\"\"}', '192.168.5.6', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '2024-08-06 17:19:49', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:125)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper.selectListByProcessDefinitionIds(BpmProcessDefinitionExtMapper.java:15)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy350.selectListByProcessDefinitionIds(Unknown Source)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.getProcessDefinitionList(BpmProcessDefinitionServiceImpl.java:240)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$8e6210d4.getProcessDefinitionList()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController.getProcessDefinitionList(BpmProcessDefinitionController.java:48)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$FastClassBySpringCGLIB$$c90f3470.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmProcessDefinitionController$$EnhancerBySpringCGLIB$$d7ac78e8.getProcessDefinitionList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-06 17:19:49', NULL, '2024-08-06 17:19:49', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15724, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:02:31', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:02:31', NULL, '2024-08-08 17:02:31', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15725, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:02:40', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:02:40', NULL, '2024-08-08 17:02:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15726, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:02:48', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:02:48', NULL, '2024-08-08 17:02:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15727, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:03:00', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:03:00', NULL, '2024-08-08 17:03:00', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15728, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:03:16', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:03:16', NULL, '2024-08-08 17:03:16', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15729, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:03:27', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:03:27', NULL, '2024-08-08 17:03:27', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15730, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:04:07', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:04:07', NULL, '2024-08-08 17:04:07', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15731, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:04:54', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:04:54', NULL, '2024-08-08 17:04:54', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15732, '', 1, 2, 'yudao-server', 'PUT', '/admin-api/system/menu/update', '{\"query\":{},\"body\":\"{\\\"parentId\\\":1281,\\\"name\\\":\\\"Ureport2报表管理\\\",\\\"type\\\":2,\\\"sort\\\":0,\\\"icon\\\":\\\"mingcute:report-forms-fill\\\",\\\"path\\\":\\\"ureport-data\\\",\\\"permission\\\":\\\"\\\",\\\"component\\\":\\\"report/ureport/index\\\",\\\"componentName\\\":\\\"UReportData\\\",\\\"status\\\":0,\\\"visible\\\":true,\\\"alwaysShow\\\":true,\\\"keepAlive\\\":true,\\\"id\\\":2537,\\\"createTime\\\":1701838555000}\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-08 17:06:25', 'org.apache.ibatis.exceptions.TooManyResultsException', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2', 'org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:228)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:211)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectOne(BaseMapperX.java:88)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectOne(Unknown Source)\r\n at cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper.selectByParentIdAndName(MenuMapper.java:16)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy161.selectByParentIdAndName(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.validateMenu(MenuServiceImpl.java:195)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl.updateMenu(MenuServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$FastClassBySpringCGLIB$$e751d537.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.cache.interceptor.CacheInterceptor.lambda$invoke$0(CacheInterceptor.java:54)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.invokeOperation(CacheAspectSupport.java:366)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:420)\r\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\r\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.permission.MenuServiceImpl$$EnhancerBySpringCGLIB$$9ba30bce.updateMenu()\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuController.java:55)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$FastClassBySpringCGLIB$$e1865e50.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor214.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.permission.MenuController$$EnhancerBySpringCGLIB$$2378a432.updateMenu()\r\n at sun.reflect.GeneratedMethodAccessor613.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.baomidou.mybatisplus.core.mapper.BaseMapper', 'BaseMapper.java', 'selectOne', 228, 0, NULL, 0, NULL, '2024-08-08 17:06:25', NULL, '2024-08-08 17:06:25', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15733, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090b19) XWEB/11097 Flue', '2024-08-09 10:24:24', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy350.selectBatchIds(Unknown Source)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$2ff85740.getFormMap()\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$d2927bb3.getModelPage()\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$6809f928.getModelPage()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-09 10:24:24', NULL, '2024-08-09 10:24:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15734, '', 1, 2, 'yudao-server', 'GET', '/admin-api/bpm/model/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090b19) XWEB/11097 Flue', '2024-08-09 10:25:50', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:167)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy350.selectBatchIds(Unknown Source)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl.getFormList(BpmFormServiceImpl.java:83)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService.getFormMap(BpmFormService.java:80)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormService$$FastClassBySpringCGLIB$$c815a6ad.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmFormServiceImpl$$EnhancerBySpringCGLIB$$2ff85740.getFormMap()\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.getModelPage(BpmModelServiceImpl.java:84)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$d2927bb3.getModelPage()\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.getModelPage(BpmModelController.java:34)\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\n at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$6809f928.getModelPage()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\n', 'com.baomidou.mybatisplus.core.override.MybatisMapperMethod', 'MybatisMapperMethod.java', 'executeForMany', 167, 0, NULL, 0, NULL, '2024-08-09 10:25:50', NULL, '2024-08-09 10:25:50', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15735, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.43', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-21 17:39:26', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@645037309 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0073a4ec, L:/192.168.5.43:59681 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@645037309 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0073a4ec, L:/192.168.5.43:59681 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@645037309 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0073a4ec, L:/192.168.5.43:59681 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@645037309 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0073a4ec, L:/192.168.5.43:59681 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$e41687dc.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$ea66fd5c.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@645037309 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0073a4ec, L:/192.168.5.43:59681 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-21 17:39:26', NULL, '2024-08-21 17:39:26', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15736, '', 103, 2, 'yudao-server', 'PUT', '/admin-api/bpm/task/approve', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"9811cc7e-602e-11ef-a4cc-d017c28703e7\\\",\\\"processDefinitionId\\\":\\\"new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16\\\",\\\"definitionKey\\\":\\\"Activity_0i1dsu8\\\",\\\"variables\\\":{\\\"fields_7337406\\\":\\\"测试2\\\",\\\"fields_3190211\\\":\\\"110\\\",\\\"fields_8215121\\\":\\\"dic_2\\\",\\\"fields_6632076\\\":\\\"dic_1\\\",\\\"$fields_6632076\\\":\\\"字典1\\\",\\\"$fields_8215121\\\":\\\"字典2\\\"},\\\"jeelowcodeDbformId\\\":null,\\\"jeelowcodeDesformId\\\":\\\"1826445808547426305\\\",\\\"jeelowcodeFormType\\\":\\\"form\\\"}\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-22 16:08:52', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.insertProcessInstanceExtForm(BpmProcessInstanceServiceImpl.java:360)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$859d167c.insertProcessInstanceExtForm()\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl.approveTask(BpmTaskServiceImpl.java:258)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$FastClassBySpringCGLIB$$5c73399a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$EnhancerBySpringCGLIB$$36f38c95.approveTask()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController.approveTask(BpmTaskController.java:57)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$FastClassBySpringCGLIB$$5246e6e1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$EnhancerBySpringCGLIB$$b21d978e.approveTask()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl', 'BpmProcessInstanceServiceImpl.java', 'insertProcessInstanceExtForm', 360, 0, NULL, 0, NULL, '2024-08-22 16:08:52', NULL, '2024-08-22 16:08:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15737, '', 103, 2, 'yudao-server', 'PUT', '/admin-api/bpm/task/approve', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"9811cc7e-602e-11ef-a4cc-d017c28703e7\\\",\\\"processDefinitionId\\\":\\\"new_flow_test:1:85c3371b-53d4-11ef-9f4c-c22bf95b2d16\\\",\\\"definitionKey\\\":\\\"Activity_0i1dsu8\\\",\\\"variables\\\":{\\\"fields_7337406\\\":\\\"测试2\\\",\\\"fields_3190211\\\":\\\"110\\\",\\\"fields_8215121\\\":\\\"dic_2\\\",\\\"fields_6632076\\\":\\\"dic_1\\\",\\\"$fields_6632076\\\":\\\"字典1\\\",\\\"$fields_8215121\\\":\\\"字典2\\\"},\\\"jeelowcodeDbformId\\\":null,\\\"jeelowcodeDesformId\\\":\\\"1826445808547426305\\\",\\\"jeelowcodeFormType\\\":\\\"form\\\"}\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-22 16:09:39', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.insertProcessInstanceExtForm(BpmProcessInstanceServiceImpl.java:360)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$859d167c.insertProcessInstanceExtForm()\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl.approveTask(BpmTaskServiceImpl.java:258)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$FastClassBySpringCGLIB$$5c73399a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$EnhancerBySpringCGLIB$$36f38c95.approveTask()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController.approveTask(BpmTaskController.java:57)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$FastClassBySpringCGLIB$$5246e6e1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$EnhancerBySpringCGLIB$$b21d978e.approveTask()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl', 'BpmProcessInstanceServiceImpl.java', 'insertProcessInstanceExtForm', 360, 0, NULL, 0, NULL, '2024-08-22 16:09:39', NULL, '2024-08-22 16:09:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15738, '', 1, 2, 'yudao-server', 'DELETE', '/admin-api/bpm/process-instance/cancel', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"9808cbc2-602e-11ef-a4cc-d017c28703e7\\\",\\\"reason\\\":\\\"222\\\"}\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-22 16:27:55', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at org.flowable.engine.impl.util.TaskHelper.deleteTasksByProcessInstanceId(TaskHelper.java:494)\r\n at org.flowable.engine.impl.persistence.entity.ExecutionEntityManagerImpl.deleteProcessInstanceCascade(ExecutionEntityManagerImpl.java:523)\r\n at org.flowable.engine.impl.persistence.entity.ExecutionEntityManagerImpl.deleteProcessInstance(ExecutionEntityManagerImpl.java:454)\r\n at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:59)\r\n at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:30)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:57)\r\n at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:57)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.deleteProcessInstance(RuntimeServiceImpl.java:196)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.deleteProcessInstance(BpmProcessInstanceServiceImpl.java:299)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.cancelProcessInstance(BpmProcessInstanceServiceImpl.java:192)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$859d167c.cancelProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.cancelProcessInstance(BpmProcessInstanceController.java:56)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$b7a0bf4b.cancelProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:931)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:561)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'org.flowable.engine.impl.util.TaskHelper', 'TaskHelper.java', 'deleteTasksByProcessInstanceId', 494, 0, NULL, 0, NULL, '2024-08-22 16:27:55', NULL, '2024-08-22 16:27:55', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15739, '', 1, 2, 'yudao-server', 'DELETE', '/admin-api/bpm/process-instance/cancel', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"9808cbc2-602e-11ef-a4cc-d017c28703e7\\\",\\\"reason\\\":\\\"222\\\"}\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-22 16:28:00', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at org.flowable.engine.impl.util.TaskHelper.deleteTasksByProcessInstanceId(TaskHelper.java:494)\r\n at org.flowable.engine.impl.persistence.entity.ExecutionEntityManagerImpl.deleteProcessInstanceCascade(ExecutionEntityManagerImpl.java:523)\r\n at org.flowable.engine.impl.persistence.entity.ExecutionEntityManagerImpl.deleteProcessInstance(ExecutionEntityManagerImpl.java:454)\r\n at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:59)\r\n at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:30)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114)\r\n at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72)\r\n at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26)\r\n at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)\r\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:57)\r\n at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)\r\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:57)\r\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\r\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\r\n at org.flowable.engine.impl.RuntimeServiceImpl.deleteProcessInstance(RuntimeServiceImpl.java:196)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.deleteProcessInstance(BpmProcessInstanceServiceImpl.java:299)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.cancelProcessInstance(BpmProcessInstanceServiceImpl.java:192)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$859d167c.cancelProcessInstance()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.cancelProcessInstance(BpmProcessInstanceController.java:56)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$b7a0bf4b.cancelProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:931)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:561)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'org.flowable.engine.impl.util.TaskHelper', 'TaskHelper.java', 'deleteTasksByProcessInstanceId', 494, 0, NULL, 0, NULL, '2024-08-22 16:28:00', NULL, '2024-08-22 16:28:00', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15740, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/get-by-ip', '{\"query\":{\"ip\":\"223\"},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:20:38', 'java.lang.reflect.UndeclaredThrowableException', 'UndeclaredThrowableException: null', 'Exception: invalid ip address `223`', 'java.lang.reflect.UndeclaredThrowableException\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:779)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$EnhancerBySpringCGLIB$$ea9e5622.getAreaByIp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.Exception: invalid ip address `223`\r\n at org.lionsoul.ip2region.xdb.Searcher.checkIP(Searcher.java:256)\r\n at org.lionsoul.ip2region.xdb.Searcher.search(Searcher.java:75)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getAreaId(IPUtils.java:54)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getArea(IPUtils.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController.getAreaByIp(AreaController.java:43)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$FastClassBySpringCGLIB$$c1fccba6.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n ... 148 more\r\n', 'org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation', 'CglibAopProxy.java', 'proceed', 779, 0, NULL, 0, NULL, '2024-08-28 14:20:38', NULL, '2024-08-28 14:20:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15741, '', 1, 2, 'yudao-server', 'GET', '/admin-api/system/area/get-by-ip', '{\"query\":{\"ip\":\"110000\"},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:21:20', 'java.lang.reflect.UndeclaredThrowableException', 'UndeclaredThrowableException: null', 'Exception: invalid ip address `110000`', 'java.lang.reflect.UndeclaredThrowableException\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:779)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$EnhancerBySpringCGLIB$$ea9e5622.getAreaByIp()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.lang.Exception: invalid ip address `110000`\r\n at org.lionsoul.ip2region.xdb.Searcher.checkIP(Searcher.java:256)\r\n at org.lionsoul.ip2region.xdb.Searcher.search(Searcher.java:75)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getAreaId(IPUtils.java:54)\r\n at cn.iocoder.yudao.framework.ip.core.utils.IPUtils.getArea(IPUtils.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController.getAreaByIp(AreaController.java:43)\r\n at cn.iocoder.yudao.module.system.controller.admin.ip.AreaController$$FastClassBySpringCGLIB$$c1fccba6.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n ... 148 more\r\n', 'org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation', 'CglibAopProxy.java', 'proceed', 779, 0, NULL, 0, NULL, '2024-08-28 14:21:20', NULL, '2024-08-28 14:21:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15742, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:57:40', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757018709 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xc5957ae8, L:0.0.0.0/0.0.0.0:59493], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757018709 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xc5957ae8, L:0.0.0.0/0.0.0.0:59493], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757018709 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xc5957ae8, L:0.0.0.0/0.0.0.0:59493], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757018709 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xc5957ae8, L:0.0.0.0/0.0.0.0:59493], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757018709 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xc5957ae8, L:0.0.0.0/0.0.0.0:59493], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-28 14:57:40', NULL, '2024-08-28 14:57:40', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15743, '', 0, 2, 'yudao-server', 'GET', '/admin-api/infra/file-config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:58:37', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@507216423 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0d7f6f68, L:0.0.0.0/0.0.0.0:59496], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@507216423 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0d7f6f68, L:0.0.0.0/0.0.0.0:59496], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@507216423 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0d7f6f68, L:0.0.0.0/0.0.0.0:59496], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@507216423 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0d7f6f68, L:0.0.0.0/0.0.0.0:59496], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@507216423 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x0d7f6f68, L:0.0.0.0/0.0.0.0:59496], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-28 14:58:37', NULL, '2024-08-28 14:58:37', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15744, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:58:41', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2006456724 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x90883791, L:0.0.0.0/0.0.0.0:59502], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2006456724 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x90883791, L:0.0.0.0/0.0.0.0:59502], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2006456724 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x90883791, L:0.0.0.0/0.0.0.0:59502], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2006456724 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x90883791, L:0.0.0.0/0.0.0.0:59502], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@2006456724 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x90883791, L:0.0.0.0/0.0.0.0:59502], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-28 14:58:41', NULL, '2024-08-28 14:58:41', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15745, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36', '2024-08-28 14:59:49', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1955016498 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x72ffb85f, L:0.0.0.0/0.0.0.0:59503], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1955016498 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x72ffb85f, L:0.0.0.0/0.0.0.0:59503], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1955016498 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x72ffb85f, L:0.0.0.0/0.0.0.0:59503], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1955016498 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x72ffb85f, L:0.0.0.0/0.0.0.0:59503], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1955016498 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x72ffb85f, L:0.0.0.0/0.0.0.0:59503], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-28 14:59:49', NULL, '2024-08-28 14:59:49', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15746, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-08-29 10:04:28', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1154436301 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1c861d3b, L:/192.168.5.19:50250 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1154436301 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1c861d3b, L:/192.168.5.19:50250 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1154436301 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1c861d3b, L:/192.168.5.19:50250 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1154436301 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1c861d3b, L:/192.168.5.19:50250 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1154436301 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x1c861d3b, L:/192.168.5.19:50250 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-29 10:04:28', NULL, '2024-08-29 10:04:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15747, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.27', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-08-29 10:05:10', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1247818388 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x2199bcec, L:/192.168.5.19:50267 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1247818388 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x2199bcec, L:/192.168.5.19:50267 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1247818388 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x2199bcec, L:/192.168.5.19:50267 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1247818388 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x2199bcec, L:/192.168.5.19:50267 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$6bfd8ff7.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a5aa9f1e.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1247818388 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x2199bcec, L:/192.168.5.19:50267 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-29 10:05:10', NULL, '2024-08-29 10:05:10', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15748, '', 0, 2, 'yudao-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.111', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36', '2024-08-29 11:42:24', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@217715672 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x8d37e7c0, L:/192.168.5.111:52770 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@217715672 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x8d37e7c0, L:/192.168.5.111:52770 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@217715672 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x8d37e7c0, L:/192.168.5.111:52770 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@217715672 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x8d37e7c0, L:/192.168.5.111:52770 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$8d07b302.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3e8750f0.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@217715672 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x8d37e7c0, L:/192.168.5.111:52770 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-08-29 11:42:24', NULL, '2024-08-29 11:42:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15749, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-03 09:32:33', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-03 09:32:33', NULL, '2024-09-03 09:32:33', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15750, '', 0, 2, 'yudao-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-03 16:56:38', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-03 16:56:38', NULL, '2024-09-03 16:56:38', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15751, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/system/dict-type/create', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"\\\",\\\"name\\\":\\\"test性别\\\",\\\"type\\\":\\\"test_sex\\\",\\\"createTime\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"status\\\":0}\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-09 14:08:48', 'org.springframework.dao.DuplicateKeyException', 'DuplicateKeyException: \r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO system_dict_type (name, type, status, remark, deleted_time, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\n; Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'', 'SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'', 'org.springframework.dao.DuplicateKeyException: \r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO system_dict_type (name, type, status, remark, deleted_time, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\n; Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:244)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy255.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.dict.DictTypeServiceImpl.createDictType(DictTypeServiceImpl.java:66)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController.createDictType(DictTypeController.java:44)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$FastClassBySpringCGLIB$$a29e047a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$EnhancerBySpringCGLIB$$aa0485d7.createDictType()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy412.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy283.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 166 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 244, 0, NULL, 0, NULL, '2024-09-09 14:08:48', NULL, '2024-09-09 14:08:48', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15752, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/system/dict-type/create', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"\\\",\\\"name\\\":\\\"test性别\\\",\\\"type\\\":\\\"test_sex\\\",\\\"createTime\\\":\\\"\\\",\\\"remark\\\":\\\"\\\",\\\"status\\\":0}\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-09 14:09:15', 'org.springframework.dao.DuplicateKeyException', 'DuplicateKeyException: \r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO system_dict_type (name, type, status, remark, deleted_time, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\n; Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'', 'SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'', 'org.springframework.dao.DuplicateKeyException: \r\n### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO system_dict_type (name, type, status, remark, deleted_time, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\r\n### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\n; Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:244)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.insert(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy255.insert(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.dict.DictTypeServiceImpl.createDictType(DictTypeServiceImpl.java:66)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController.createDictType(DictTypeController.java:44)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$FastClassBySpringCGLIB$$a29e047a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$EnhancerBySpringCGLIB$$aa0485d7.createDictType()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry \'test_sex\' for key \'system_dict_type.dict_type\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy412.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy283.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at cn.mj.jeelowcode.module.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy282.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 165 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 244, 0, NULL, 0, NULL, '2024-09-09 14:09:15', NULL, '2024-09-09 14:09:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15753, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.62', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-10 14:50:52', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-10 14:50:52', NULL, '2024-09-10 14:50:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15754, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-12 10:44:57', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-12 10:44:57', NULL, '2024-09-12 10:44:57', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15755, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-type/list-all-simple', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0', '2024-09-13 11:01:38', 'org.springframework.jdbc.UncategorizedSQLException', 'UncategorizedSQLException: \r\n### Error querying database. Cause: java.sql.SQLException: connection closed\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.selectList\r\n### The error occurred while executing a query\r\n### SQL: SELECT id, name, type, status, remark, deleted_time, create_time, update_time, creator, updater, deleted FROM system_dict_type WHERE deleted = 0\r\n### Cause: java.sql.SQLException: connection closed\n; uncategorized SQLException; SQL state [null]; error code [0]; connection closed; nested exception is java.sql.SQLException: connection closed', 'SQLException: connection closed', 'org.springframework.jdbc.UncategorizedSQLException: \r\n### Error querying database. Cause: java.sql.SQLException: connection closed\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper.selectList\r\n### The error occurred while executing a query\r\n### SQL: SELECT id, name, type, status, remark, deleted_time, create_time, update_time, creator, updater, deleted FROM system_dict_type WHERE deleted = 0\r\n### Cause: java.sql.SQLException: connection closed\n; uncategorized SQLException; SQL state [null]; error code [0]; connection closed; nested exception is java.sql.SQLException: connection closed\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:93)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy131.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:164)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy256.selectList(Unknown Source)\r\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.selectList(BaseMapperX.java:110)\r\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:166)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy256.selectList(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.dict.DictTypeServiceImpl.getDictTypeList(DictTypeServiceImpl.java:92)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController.getSimpleDictTypeList(DictTypeController.java:86)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$FastClassBySpringCGLIB$$a29e047a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.dict.DictTypeController$$EnhancerBySpringCGLIB$$ff54e02e.getSimpleDictTypeList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLException: connection closed\r\n at com.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1178)\r\n at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1169)\r\n at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:356)\r\n at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:53)\r\n at com.sun.proxy.$Proxy416.prepareStatement(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:88)\r\n at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:90)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:60)\r\n at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy284.prepare(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:90)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:64)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:72)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy283.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy283.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy283.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 168 more\r\n', 'org.mybatis.spring.MyBatisExceptionTranslator', 'MyBatisExceptionTranslator.java', 'translateExceptionIfPossible', 93, 0, NULL, 0, NULL, '2024-09-13 11:01:38', NULL, '2024-09-13 11:01:38', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15756, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0', '2024-09-13 17:43:05', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:515)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)\r\n at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 127 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 137 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 151 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-13 17:43:05', NULL, '2024-09-13 17:43:05', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15757, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-14 10:24:32', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-14 10:24:32', NULL, '2024-09-14 10:24:32', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15758, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36', '2024-09-18 09:17:54', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-09-18 09:17:54', NULL, '2024-09-18 09:17:54', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15759, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-data/simple-list', '{\"query\":{},\"body\":\"\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-09-27 13:54:19', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$d3ac544.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3420b330.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xfe6e2063, L:/192.168.5.19:52432 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-09-27 13:54:19', NULL, '2024-09-27 13:54:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15760, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-09-27 13:54:36', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$d3ac544.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3420b330.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x19ea7239, L:/192.168.5.19:52431 ! R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-09-27 13:54:36', NULL, '2024-09-27 13:54:36', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15761, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-09-27 13:54:44', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1404094643 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xaf5c8184, L:/192.168.5.19:52428 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1404094643 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xaf5c8184, L:/192.168.5.19:52428 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1404094643 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xaf5c8184, L:/192.168.5.19:52428 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1404094643 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xaf5c8184, L:/192.168.5.19:52428 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$d3ac544.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3420b330.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1404094643 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0xaf5c8184, L:/192.168.5.19:52428 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-09-27 13:54:44', NULL, '2024-09-27 13:54:44', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15762, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-09-27 13:54:52', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757363404 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x519b0be5, L:/192.168.5.243:63963 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757363404 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x519b0be5, L:/192.168.5.243:63963 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757363404 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x519b0be5, L:/192.168.5.243:63963 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757363404 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x519b0be5, L:/192.168.5.243:63963 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$55e72b69.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$bf9fdf2c.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@757363404 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x519b0be5, L:/192.168.5.243:63963 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-09-27 13:54:52', NULL, '2024-09-27 13:54:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15763, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-08 09:13:54', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-10-08 09:13:54', NULL, '2024-10-08 09:13:54', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15764, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"1820bcf9-61b8-11ef-8830-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:18:28', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.isProcessDefinitionEquals(BpmProcessDefinitionServiceImpl.java:186)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$185ace0.isProcessDefinitionEquals()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:175)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$7a953a0a.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$3509def3.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl', 'BpmProcessDefinitionServiceImpl.java', 'isProcessDefinitionEquals', 186, 0, NULL, 0, NULL, '2024-10-18 11:18:28', NULL, '2024-10-18 11:18:28', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15765, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"1820bcf9-61b8-11ef-8830-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:18:39', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.isProcessDefinitionEquals(BpmProcessDefinitionServiceImpl.java:186)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$185ace0.isProcessDefinitionEquals()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:175)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$7a953a0a.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$3509def3.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl', 'BpmProcessDefinitionServiceImpl.java', 'isProcessDefinitionEquals', 186, 0, NULL, 0, NULL, '2024-10-18 11:18:39', NULL, '2024-10-18 11:18:39', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15766, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"1820bcf9-61b8-11ef-8830-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:19:06', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.isProcessDefinitionEquals(BpmProcessDefinitionServiceImpl.java:186)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$185ace0.isProcessDefinitionEquals()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:175)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$7a953a0a.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$3509def3.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl', 'BpmProcessDefinitionServiceImpl.java', 'isProcessDefinitionEquals', 186, 0, NULL, 0, NULL, '2024-10-18 11:19:06', NULL, '2024-10-18 11:19:06', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15767, '', 1, 2, 'jeelowcode-server', 'POST', '/admin-api/bpm/model/deploy', '{\"query\":{\"id\":\"1820bcf9-61b8-11ef-8830-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:19:46', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl.isProcessDefinitionEquals(BpmProcessDefinitionServiceImpl.java:186)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$FastClassBySpringCGLIB$$ff74f217.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl$$EnhancerBySpringCGLIB$$185ace0.isProcessDefinitionEquals()\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl.deployModel(BpmModelServiceImpl.java:175)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$FastClassBySpringCGLIB$$db1183b0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.definition.BpmModelServiceImpl$$EnhancerBySpringCGLIB$$7a953a0a.deployModel()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(BpmModelController.java:76)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$FastClassBySpringCGLIB$$1c466cb7.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController$$EnhancerBySpringCGLIB$$3509def3.deployModel()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionServiceImpl', 'BpmProcessDefinitionServiceImpl.java', 'isProcessDefinitionEquals', 186, 0, NULL, 0, NULL, '2024-10-18 11:19:46', NULL, '2024-10-18 11:19:46', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15768, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/bpm/process-instance/get', '{\"query\":{\"id\":\"caa2faca-61dd-11ef-a290-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:49:57', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在', 'IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在', 'java.lang.IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.getProcessInstanceVO(BpmProcessInstanceServiceImpl.java:147)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$95c7e7ef.getProcessInstanceVO()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.getProcessInstance(BpmProcessInstanceController.java:49)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$f32f1f6e.getProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-10-18 11:49:57', NULL, '2024-10-18 11:49:57', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15769, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/bpm/process-instance/get', '{\"query\":{\"id\":\"caa2faca-61dd-11ef-a290-d017c28703e7\"},\"body\":\"\"}', '192.168.5.4', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 11:50:01', 'java.lang.IllegalArgumentException', 'IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在', 'IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在', 'java.lang.IllegalArgumentException: 流程定义拓展(caa2faca-61dd-11ef-a290-d017c28703e7) 不存在\r\n at cn.hutool.core.lang.Assert.lambda$notNull$3(Assert.java:217)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:197)\r\n at cn.hutool.core.lang.Assert.notNull(Assert.java:217)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl.getProcessInstanceVO(BpmProcessInstanceServiceImpl.java:147)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$FastClassBySpringCGLIB$$670b387.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceServiceImpl$$EnhancerBySpringCGLIB$$95c7e7ef.getProcessInstanceVO()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController.getProcessInstance(BpmProcessInstanceController.java:49)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$FastClassBySpringCGLIB$$44f09b00.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor450.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmProcessInstanceController$$EnhancerBySpringCGLIB$$f32f1f6e.getProcessInstance()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.hutool.core.lang.Assert', 'Assert.java', 'lambda$notNull$3', 217, 0, NULL, 0, NULL, '2024-10-18 11:50:01', NULL, '2024-10-18 11:50:01', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15770, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-type/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 15:11:02', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 134 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-10-18 15:11:02', NULL, '2024-10-18 15:11:02', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15771, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/dict-type/list-all-simple', '{\"query\":{},\"body\":\"\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36', '2024-10-18 15:14:51', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 134 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-10-18 15:14:51', NULL, '2024-10-18 15:14:51', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15772, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/captcha/get', '{\"query\":{},\"body\":\"{\\\"captchaType\\\":\\\"blockPuzzle\\\"}\"}', '192.168.5.42', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-24 09:11:16', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeStringSegments(UTF8JsonGenerator.java:1313)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:511)\r\n at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)\r\n at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)\r\n at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\r\n at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)\r\n at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1518)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n Suppressed: org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:348)\r\n at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)\r\n at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)\r\n at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)\r\n at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)\r\n at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:638)\r\n at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2171)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1214)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\r\n ... 128 more\r\n Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 138 more\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:600)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:544)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:540)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:112)\r\n at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:193)\r\n at org.apache.coyote.Response.doWrite(Response.java:606)\r\n at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)\r\n ... 150 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'realWriteBytes', 348, 0, NULL, 0, NULL, '2024-10-24 09:11:16', NULL, '2024-10-24 09:11:16', 0, 0); +INSERT INTO `infra_api_error_log` VALUES (15773, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-30 15:51:12', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1474483079 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x3dfffe2a, L:/192.168.5.243:59964 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1474483079 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x3dfffe2a, L:/192.168.5.243:59964 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1474483079 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x3dfffe2a, L:/192.168.5.243:59964 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1474483079 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x3dfffe2a, L:/192.168.5.243:59964 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$e99f53f2.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$69f65fb0.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@1474483079 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x3dfffe2a, L:/192.168.5.243:59964 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-10-30 15:51:12', NULL, '2024-10-30 15:51:12', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15774, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:04:24', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:04:24', NULL, '2024-10-31 09:04:24', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15775, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:04:33', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:04:33', NULL, '2024-10-31 09:04:33', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15776, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:04:52', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:04:52', NULL, '2024-10-31 09:04:52', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15777, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.2', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:06:05', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:06:05', NULL, '2024-10-31 09:06:05', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15778, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.2', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:06:08', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 180 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:06:08', NULL, '2024-10-31 09:06:08', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15779, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.2', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:06:09', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:06:09', NULL, '2024-10-31 09:06:09', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15780, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.2', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:06:09', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:06:09', NULL, '2024-10-31 09:06:09', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15781, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/login', '{\"query\":{},\"body\":\"{\\\"tenantName\\\":\\\"000000\\\",\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"rememberMe\\\":false}\"}', '192.168.5.2', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 09:07:26', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper.getUserIp-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id FROM system_ip_region WHERE user_ip = ? AND tenant_id = 1\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy137.selectOne(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:87)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy280.getUserIp(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl.createLoginLog(LoginLogServiceImpl.java:38)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$FastClassBySpringCGLIB$$685e22bc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.service.logger.LoginLogServiceImpl$$EnhancerBySpringCGLIB$$16e7f491.createLoginLog()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createLoginLog(AdminAuthServiceImpl.java:149)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.createTokenAfterLoginSuccess(AdminAuthServiceImpl.java:202)\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.login(AdminAuthServiceImpl.java:109)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.login(AuthController.java:75)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$7656e8c4.login()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy464.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80)\r\n at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy302.query(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158)\r\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110)\r\n at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.core.framework.config.interceptor.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:70)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.github.yulichang.interceptor.MPJInterceptor.intercept(MPJInterceptor.java:90)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy301.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 179 more\r\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 236, 0, NULL, 0, NULL, '2024-10-31 09:07:26', NULL, '2024-10-31 09:07:26', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15782, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 17:49:44', 'java.lang.ArrayIndexOutOfBoundsException', 'ArrayIndexOutOfBoundsException: 0', 'ArrayIndexOutOfBoundsException: 0', 'java.lang.ArrayIndexOutOfBoundsException: 0\r\n at com.jeelowcode.core.framework.config.global.log.ApiLogAspect.around(ApiLogAspect.java:90)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyMessageController$$EnhancerBySpringCGLIB$$d65aaf9d.getUnreadNotifyMessageCount()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.jeelowcode.core.framework.config.global.log.ApiLogAspect', 'ApiLogAspect.java', 'around', 90, 0, NULL, 0, NULL, '2024-10-31 17:49:44', NULL, '2024-10-31 17:49:44', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15783, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 17:49:44', 'java.lang.ArrayIndexOutOfBoundsException', 'ArrayIndexOutOfBoundsException: 0', 'ArrayIndexOutOfBoundsException: 0', 'java.lang.ArrayIndexOutOfBoundsException: 0\r\n at com.jeelowcode.core.framework.config.global.log.ApiLogAspect.around(ApiLogAspect.java:90)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyMessageController$$EnhancerBySpringCGLIB$$d65aaf9d.getUnreadNotifyMessageCount()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.jeelowcode.core.framework.config.global.log.ApiLogAspect', 'ApiLogAspect.java', 'around', 90, 0, NULL, 0, NULL, '2024-10-31 17:49:44', NULL, '2024-10-31 17:49:44', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15784, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-10-31 17:53:25', 'java.lang.ArrayIndexOutOfBoundsException', 'ArrayIndexOutOfBoundsException: 0', 'ArrayIndexOutOfBoundsException: 0', 'java.lang.ArrayIndexOutOfBoundsException: 0\r\n at com.jeelowcode.core.framework.config.global.log.ApiLogAspect.around(ApiLogAspect.java:90)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.notify.NotifyMessageController$$EnhancerBySpringCGLIB$$30417011.getUnreadNotifyMessageCount()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:107)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'com.jeelowcode.core.framework.config.global.log.ApiLogAspect', 'ApiLogAspect.java', 'around', 90, 0, NULL, 0, NULL, '2024-10-31 17:53:25', NULL, '2024-10-31 17:53:25', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15785, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-01 12:07:18', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@446488987 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x404e7e72, L:/192.168.5.7:60700 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@446488987 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x404e7e72, L:/192.168.5.7:60700 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@446488987 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x404e7e72, L:/192.168.5.7:60700 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@446488987 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x404e7e72, L:/192.168.5.7:60700 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$70c94038.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2c0a3a2.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@446488987 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x404e7e72, L:/192.168.5.7:60700 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-11-01 12:07:18', NULL, '2024-11-01 12:07:18', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15786, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-01 12:07:18', 'org.springframework.data.redis.RedisConnectionFailureException', 'RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@96196935 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x85924dcc, L:/192.168.5.7:60698 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@96196935 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x85924dcc, L:/192.168.5.7:60698 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts', 'StacklessClosedChannelException: null', 'org.springframework.data.redis.RedisConnectionFailureException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@96196935 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x85924dcc, L:/192.168.5.7:60698 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts; nested exception is org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@96196935 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x85924dcc, L:/192.168.5.7:60698 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:40)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$70c94038.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$2c0a3a2.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. Node source: NodeSource [slot=0, addr=null, redisClient=null, redirect=null, entry=null], connection: RedisConnection@96196935 [redisClient=[addr=redis://27.39.248.16:63799], channel=[id: 0x85924dcc, L:/192.168.5.7:60698 ! R:27.39.248.16/27.39.248.16:63799], currentCommand=null, usage=1], command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]] after 3 retry attempts\r\n at org.redisson.command.RedisExecutor.checkWriteFuture(RedisExecutor.java:325)\r\n at org.redisson.command.RedisExecutor.lambda$execute$2(RedisExecutor.java:169)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)\r\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)\r\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)\r\n at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)\r\n at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:999)\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:860)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940)\r\n at io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173)\r\n at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166)\r\n at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\r\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\nCaused by: io.netty.channel.StacklessClosedChannelException\r\n at io.netty.channel.AbstractChannel$AbstractUnsafe.write(Object, ChannelPromise)(Unknown Source)\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 40, 0, NULL, 0, NULL, '2024-11-01 12:07:18', NULL, '2024-11-01 12:07:18', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15787, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_systemmonitor_server_information,example_systemmonitor_cpu_utilization,example_systemmonitor_memory_utilization,example_systemmonitor_server_traffic,example_systemmonitor_disk_io', '{\"query\":{},\"body\":\"\"}', '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-01 13:49:58', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$8e32ad79.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$4aedc1cd.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0xf3aed0de, L:/192.168.5.18:54388 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-11-01 13:49:58', NULL, '2024-11-01 13:49:58', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15788, '', 0, 2, 'jeelowcode-server', 'PUT', '/admin-api/jeelowcode/report/update', '{\"query\":{},\"body\":\"{\\\"report\\\":{\\\"reportName\\\":\\\"test_demo_test\\\",\\\"reportCode\\\":\\\"测试报表\\\",\\\"groupReportId\\\":\\\"\\\",\\\"javaConfig\\\":\\\"\\\",\\\"dataConfig\\\":\\\"page,authFalse\\\",\\\"tableConfig\\\":\\\"height,header,menu,index,border\\\",\\\"createTime\\\":1730709121000,\\\"custom_form\\\":\\\"\\\",\\\"custom_info\\\":\\\"\\\",\\\"id\\\":\\\"1853354498028896257\\\",\\\"createUser\\\":1,\\\"createDept\\\":101,\\\"updateUser\\\":1,\\\"updateTime\\\":1731132031000,\\\"isDeleted\\\":0,\\\"tenantId\\\":\\\"1\\\",\\\"$dataConfig\\\":\\\"分页 | authFalse\\\",\\\"$tableConfig\\\":\\\"固定表格高度 | header | menu | 序号列 | 纵向边框\\\",\\\"dataSourcesConfig\\\":\\\"{\\\\\\\"dataOrigin\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"executeSql\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"optionData\\\\\\\":{\\\\\\\"optionObj\\\\\\\":{\\\\\\\"select\\\\\\\":[{\\\\\\\"label\\\\\\\":\\\\\\\"type_index(首页类型)\\\\\\\",\\\\\\\"value\\\\\\\":\\\\\\\"type_index\\\\\\\",\\\\\\\"tableName\\\\\\\":\\\\\\\"example_report_data\\\\\\\",\\\\\\\"type\\\\\\\":\\\\\\\"field\\\\\\\",\\\\\\\"fieldType\\\\\\\":\\\\\\\"String\\\\\\\",\\\\\\\"prop\\\\\\\":\\\\\\\"option_6391400\\\\\\\",\\\\\\\"controlType\\\\\\\":\\\\\\\"text\\\\\\\",\\\\\\\"alias\\\\\\\":\\\\\\\"\\\\\\\"}],\\\\\\\"from\\\\\\\":[{\\\\\\\"tableName\\\\\\\":\\\\\\\"example_report_data\\\\\\\",\\\\\\\"type\\\\\\\":\\\\\\\"table\\\\\\\",\\\\\\\"prop\\\\\\\":\\\\\\\"option_8954790\\\\\\\",\\\\\\\"controlType\\\\\\\":\\\\\\\"text\\\\\\\",\\\\\\\"connectType\\\\\\\":\\\\\\\"INNER JOIN\\\\\\\"}],\\\\\\\"where\\\\\\\":[{\\\\\\\"label\\\\\\\":\\\\\\\"is_deleted(是否删除)\\\\\\\",\\\\\\\"value\\\\\\\":\\\\\\\"is_deleted\\\\\\\",\\\\\\\"tableName\\\\\\\":\\\\\\\"example_report_data\\\\\\\",\\\\\\\"type\\\\\\\":\\\\\\\"field\\\\\\\",\\\\\\\"fieldType\\\\\\\":\\\\\\\"Integer\\\\\\\",\\\\\\\"prop\\\\\\\":\\\\\\\"option_4358077\\\\\\\",\\\\\\\"controlType\\\\\\\":\\\\\\\"default\\\\\\\",\\\\\\\"conditionValue\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"condition\\\\\\\":\\\\\\\"EQ\\\\\\\",\\\\\\\"width_where\\\\\\\":\\\\\\\"44px\\\\\\\"}],\\\\\\\"groupBy\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"having\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"orderBy\\\\\\\":[]},\\\\\\\"aliasObj\\\\\\\":{\\\\\\\"example_report_data\\\\\\\":\\\\\\\"tbl_erd\\\\\\\",\\\\\\\"example_demo\\\\\\\":\\\\\\\"tbl_ed\\\\\\\",\\\\\\\"system_users\\\\\\\":\\\\\\\"tbl_su\\\\\\\",\\\\\\\"system_dept\\\\\\\":\\\\\\\"tbl_sd\\\\\\\"},\\\\\\\"typeKey\\\\\\\":\\\\\\\"option\\\\\\\"}}\\\"},\\\"fieldList\\\":[{\\\"fieldCode\\\":\\\"aaa\\\",\\\"fieldName\\\":\\\"首页类型\\\",\\\"fieldType\\\":\\\"String\\\",\\\"queryIsDb\\\":\\\"\\\",\\\"queryIsWeb\\\":\\\"\\\",\\\"queryMode\\\":\\\"\\\",\\\"dictCode\\\":\\\"\\\",\\\"isExport\\\":\\\"\\\",\\\"isShowSort\\\":\\\"\\\",\\\"sortNum\\\":1,\\\"id\\\":\\\"1854056999048843265\\\"}],\\\"delIdVo\\\":{\\\"fieldList\\\":[]}}\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-09 14:07:20', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$138de2e4.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$9fc9165f.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x15d06585, L:/192.168.5.243:51404 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-11-09 14:07:20', NULL, '2024-11-09 14:07:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15789, '', 0, 2, 'jeelowcode-server', 'GET', '/admin-api/system/notify-message/get-unread-count', '{\"query\":{},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-09 14:07:20', 'org.springframework.dao.QueryTimeoutException', 'QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]', 'RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]', 'org.springframework.dao.QueryTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]; nested exception is org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:48)\r\n at org.redisson.spring.data.connection.RedissonExceptionConverter.convert(RedissonExceptionConverter.java:35)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.redisson.spring.data.connection.RedissonConnection.transform(RedissonConnection.java:204)\r\n at org.redisson.spring.data.connection.RedissonConnection.syncFuture(RedissonConnection.java:199)\r\n at org.redisson.spring.data.connection.RedissonConnection.sync(RedissonConnection.java:369)\r\n at org.redisson.spring.data.connection.RedissonConnection.read(RedissonConnection.java:750)\r\n at org.redisson.spring.data.connection.RedissonConnection.get(RedissonConnection.java:484)\r\n at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:438)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:58)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:61)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:54)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO.get(OAuth2AccessTokenRedisDAO.java:32)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$FastClassBySpringCGLIB$$6ab43d57.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO$$EnhancerBySpringCGLIB$$1a31300.get()\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.getAccessToken(OAuth2TokenServiceImpl.java:91)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.checkAccessToken(OAuth2TokenServiceImpl.java:107)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$a1ce7100.checkAccessToken()\r\n at cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApiImpl.checkAccessToken(OAuth2TokenApiImpl.java:33)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.buildLoginUserByToken(TokenAuthenticationFilter.java:73)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:50)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms) occured after 3 retry attempts, is non-idempotent command: false Check connection with Redis node: 27.39.248.16/27.39.248.16:63799 for TCP packet drops. Try to increase nettyThreads and/or timeout settings. Command: (GET), params: [[111, 97, 117, 116, 104, 50, 95, 97, 99, 99, ...]], channel: [id: 0x77fdfbae, L:/192.168.5.18:63152 - R:27.39.248.16/27.39.248.16:63799]\r\n at org.redisson.command.RedisExecutor.lambda$scheduleResponseTimeout$8(RedisExecutor.java:387)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run(HashedWheelTimer.java:715)\r\n at io.netty.util.concurrent.ImmediateExecutor.execute(ImmediateExecutor.java:34)\r\n at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:703)\r\n at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:790)\r\n at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'org.redisson.spring.data.connection.RedissonExceptionConverter', 'RedissonExceptionConverter.java', 'convert', 48, 0, NULL, 0, NULL, '2024-11-09 14:07:20', NULL, '2024-11-09 14:07:20', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15790, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"96b120fc60a0474891b9261a5352833a\"},\"body\":\"\"}', '192.168.5.5', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-12 12:54:26', 'org.springframework.dao.RecoverableDataAccessException', 'RecoverableDataAccessException: \r\n### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper.deleteBatchIds-Inline\r\n### The error occurred while setting parameters\r\n### SQL: UPDATE system_oauth2_access_token SET deleted = 1 WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\n; Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.', 'SocketException: Connection reset', 'org.springframework.dao.RecoverableDataAccessException: \r\n### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\r\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java (best guess)\r\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper.deleteBatchIds-Inline\r\n### The error occurred while setting parameters\r\n### SQL: UPDATE system_oauth2_access_token SET deleted = 1 WHERE id IN (?) AND deleted = 0 AND tenant_id = 1\r\n### Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\n; Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\r\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:100)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439)\r\n at com.sun.proxy.$Proxy140.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:152)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy255.deleteBatchIds(Unknown Source)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:74)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$27b8a69b.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:212)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:110)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor285.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at com.jeelowcode.core.framework.config.global.log.ApiLogAspect.around(ApiLogAspect.java:107)\r\n at sun.reflect.GeneratedMethodAccessor241.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$1ae85811.refreshToken()\r\n at sun.reflect.GeneratedMethodAccessor718.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:108)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:175)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)\r\n at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:1374)\r\n at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:1359)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.checkReadOnlySafeStatement(ClientPreparedStatement.java:291)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:301)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3462)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:434)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3460)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:158)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:483)\r\n at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)\r\n at com.sun.proxy.$Proxy447.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)\r\n at sun.reflect.GeneratedMethodAccessor225.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy289.update(Unknown Source)\r\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy288.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.jeelowcode.framework.plus.component.JeelowCodePlusInterceptor.intercept(JeelowCodePlusInterceptor.java:72)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)\r\n at com.sun.proxy.$Proxy288.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy288.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor330.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425)\r\n ... 181 more\r\nCaused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure\n\nThe last packet successfully received from the server was 19,253 milliseconds ago. The last packet sent successfully to the server was 19,314 milliseconds ago.\r\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62)\r\n at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)\r\n at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:150)\r\n at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:166)\r\n at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:582)\r\n at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:762)\r\n at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:701)\r\n at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:156)\r\n at com.mysql.cj.NativeSession.queryServerVariable(NativeSession.java:589)\r\n at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:1366)\r\n ... 228 more\r\nCaused by: java.net.SocketException: Connection reset\r\n at java.net.SocketInputStream.read(SocketInputStream.java:210)\r\n at java.net.SocketInputStream.read(SocketInputStream.java:141)\r\n at com.mysql.cj.protocol.ReadAheadInputStream.fill(ReadAheadInputStream.java:107)\r\n at com.mysql.cj.protocol.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:150)\r\n at com.mysql.cj.protocol.ReadAheadInputStream.read(ReadAheadInputStream.java:180)\r\n at java.io.FilterInputStream.read(FilterInputStream.java:133)\r\n at com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:64)\r\n at com.mysql.cj.protocol.a.SimplePacketReader.readHeaderLocal(SimplePacketReader.java:81)\r\n at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)\r\n at com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)\r\n at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:52)\r\n at com.mysql.cj.protocol.a.TimeTrackingPacketReader.readHeader(TimeTrackingPacketReader.java:41)\r\n at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:54)\r\n at com.mysql.cj.protocol.a.MultiPacketReader.readHeader(MultiPacketReader.java:44)\r\n at com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:576)\r\n ... 233 more\r\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 100, 0, NULL, 0, NULL, '2024-11-12 12:54:26', NULL, '2024-11-12 12:54:26', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15791, '', 0, 0, 'jeelowcode-server', 'POST', '/admin/instances', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"jeelowcode-server\\\",\\\"managementUrl\\\":\\\"http://192.168.5.48:48080/actuator\\\",\\\"healthUrl\\\":\\\"http://192.168.5.48:48080/actuator/health\\\",\\\"serviceUrl\\\":\\\"http://192.168.5.48:48080/\\\",\\\"metadata\\\":{\\\"startup\\\":\\\"2024-11-14T15:19:28.173+08:00\\\"}}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.14 (Java/1.8.0_341)', '2024-11-14 15:28:38', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:87)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)\r\n at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:589)\r\n at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:558)\r\n at org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.run(AsyncContextImpl.java:569)\r\n at org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:339)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:237)\r\n at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:242)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 115 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-11-14 15:28:38', NULL, '2024-11-14 15:28:38', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15792, '', 1, 2, 'jeelowcode-server', 'GET', '/admin-api/bpm/task/todo-page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36', '2024-11-19 16:04:25', 'java.lang.NumberFormatException', 'NumberFormatException: For input string: \"dingding_1\"', 'NumberFormatException: For input string: \"dingding_1\"', 'java.lang.NumberFormatException: For input string: \"dingding_1\"\r\n at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\r\n at java.lang.Long.parseLong(Long.java:589)\r\n at java.lang.Long.valueOf(Long.java:803)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl.lambda$getTodoTaskPage$0(BpmTaskServiceImpl.java:122)\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1652)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet(CollectionUtils.java:104)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl.getTodoTaskPage(BpmTaskServiceImpl.java:122)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$FastClassBySpringCGLIB$$5c73399a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$EnhancerBySpringCGLIB$$d34d600.getTodoTaskPage()\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController.getTodoTaskPage(BpmTaskController.java:34)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$FastClassBySpringCGLIB$$5246e6e1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.GeneratedMethodAccessor330.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at com.jeelowcode.core.framework.config.global.log.ApiLogAspect.around(ApiLogAspect.java:107)\r\n at sun.reflect.GeneratedMethodAccessor328.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$EnhancerBySpringCGLIB$$6dbf4fa0.getTodoTaskPage()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:108)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'java.lang.NumberFormatException', 'NumberFormatException.java', 'forInputString', 65, 0, NULL, 0, NULL, '2024-11-19 16:04:25', NULL, '2024-11-19 16:04:25', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15793, '', 0, 0, 'jeelowcode-server', 'POST', '/admin/instances', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"jeelowcode-server\\\",\\\"managementUrl\\\":\\\"http://192.168.5.25:48080/actuator\\\",\\\"healthUrl\\\":\\\"http://192.168.5.25:48080/actuator/health\\\",\\\"serviceUrl\\\":\\\"http://192.168.5.25:48080/\\\",\\\"metadata\\\":{\\\"startup\\\":\\\"2024-11-19T16:44:08.049+08:00\\\"}}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.14 (Java/1.8.0_341)', '2024-11-19 16:55:07', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:87)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)\r\n at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:589)\r\n at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:558)\r\n at org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.run(AsyncContextImpl.java:569)\r\n at org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:339)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:237)\r\n at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:242)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 115 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-11-19 16:55:07', NULL, '2024-11-19 16:55:07', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15794, '', 0, 0, 'jeelowcode-server', 'POST', '/admin/instances', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"jeelowcode-server\\\",\\\"managementUrl\\\":\\\"http://192.168.5.45:48080/actuator\\\",\\\"healthUrl\\\":\\\"http://192.168.5.45:48080/actuator/health\\\",\\\"serviceUrl\\\":\\\"http://192.168.5.45:48080/\\\",\\\"metadata\\\":{\\\"startup\\\":\\\"2024-11-26T17:16:28.257+08:00\\\"}}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.14 (Java/1.8.0_341)', '2024-11-26 17:24:12', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:87)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)\r\n at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:589)\r\n at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:558)\r\n at org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.run(AsyncContextImpl.java:569)\r\n at org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:339)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:237)\r\n at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:242)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 115 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-11-26 17:24:12', NULL, '2024-11-26 17:24:12', 0, -1); +INSERT INTO `infra_api_error_log` VALUES (15795, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"5c45118c26494f82b5f74d69e2fcc7ec\"},\"body\":\"\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', '2024-11-30 16:08:19', 'cn.iocoder.yudao.framework.common.exception.ServiceExceptionCopy', 'ServiceExceptionCopy: 无效的刷新令牌', 'ServiceExceptionCopy: 无效的刷新令牌', 'ServiceExceptionCopy(super=cn.iocoder.yudao.framework.common.exception.ServiceExceptionCopy: 无效的刷新令牌, code=400, message=无效的刷新令牌)\r\n at cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception1(ServiceExceptionUtil.java:87)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:63)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$dd1456ad.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:212)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:110)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at com.jeelowcode.core.framework.config.log.ApiLogAspect.around(ApiLogAspect.java:107)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$9106a4c0.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:108)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil', 'ServiceExceptionUtil.java', 'exception1', 87, 0, NULL, 0, NULL, '2024-11-30 16:08:19', NULL, '2024-11-30 16:08:19', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15796, '', 0, 2, 'jeelowcode-server', 'POST', '/admin-api/system/auth/refresh-token', '{\"query\":{\"refreshToken\":\"5c45118c26494f82b5f74d69e2fcc7ec\"},\"body\":\"\"}', '192.168.5.243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', '2024-11-30 16:16:15', 'java.lang.NullPointerException', 'NullPointerException: null', 'NullPointerException: null', 'java.lang.NullPointerException\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl.refreshAccessToken(OAuth2TokenServiceImpl.java:69)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$FastClassBySpringCGLIB$$857f044a.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386)\r\n at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)\r\n at cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl$$EnhancerBySpringCGLIB$$3eb26d4f.refreshAccessToken()\r\n at cn.iocoder.yudao.module.system.service.auth.AdminAuthServiceImpl.refreshToken(AdminAuthServiceImpl.java:212)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController.refreshToken(AuthController.java:110)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$FastClassBySpringCGLIB$$f866d2e0.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:101)\r\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:78)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n at com.jeelowcode.core.framework.config.log.ApiLogAspect.around(ApiLogAspect.java:107)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)\r\n at cn.iocoder.yudao.module.system.controller.admin.auth.AuthController$$EnhancerBySpringCGLIB$$588910e9.refreshToken()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:114)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:108)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter.doFilterInternal(TokenAuthenticationFilter.java:68)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\n', 'cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenServiceImpl', 'OAuth2TokenServiceImpl.java', 'refreshAccessToken', 69, 0, NULL, 0, NULL, '2024-11-30 16:16:15', NULL, '2024-11-30 16:16:15', 0, 1); +INSERT INTO `infra_api_error_log` VALUES (15797, '', 0, 0, 'jeelowcode-server', 'POST', '/admin/instances', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"jeelowcode-server\\\",\\\"managementUrl\\\":\\\"http://192.168.5.106:48080/actuator\\\",\\\"healthUrl\\\":\\\"http://192.168.5.106:48080/actuator/health\\\",\\\"serviceUrl\\\":\\\"http://192.168.5.106:48080/\\\",\\\"metadata\\\":{\\\"startup\\\":\\\"2024-12-07T13:40:33.746+08:00\\\"}}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.14 (Java/1.8.0_341)', '2024-12-07 13:45:26', 'org.apache.catalina.connector.ClientAbortException', 'ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。', 'IOException: 你的主机中的软件中止了一个已建立的连接。', 'org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)\r\n at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:271)\r\n at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:120)\r\n at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:523)\r\n at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)\r\n at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1187)\r\n at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1009)\r\n at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)\r\n at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\r\n at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\r\n at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219)\r\n at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:87)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\r\n at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661)\r\n at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:589)\r\n at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:558)\r\n at org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.run(AsyncContextImpl.java:569)\r\n at org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:339)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:237)\r\n at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:242)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:750)\r\nCaused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。\r\n at sun.nio.ch.SocketDispatcher.write0(Native Method)\r\n at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)\r\n at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)\r\n at sun.nio.ch.IOUtil.write(IOUtil.java:65)\r\n at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469)\r\n at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:136)\r\n at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1431)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:775)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:739)\r\n at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:723)\r\n at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:566)\r\n at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157)\r\n at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:220)\r\n at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1244)\r\n at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:399)\r\n at org.apache.coyote.Response.action(Response.java:207)\r\n at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)\r\n ... 115 more\r\n', 'org.apache.catalina.connector.OutputBuffer', 'OutputBuffer.java', 'doFlush', 309, 0, NULL, 0, NULL, '2024-12-07 13:45:26', NULL, '2024-12-07 13:45:26', 0, -1); + +-- ---------------------------- +-- Table structure for infra_codegen_column +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_column`; +CREATE TABLE `infra_codegen_column` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_id` bigint(0) NOT NULL COMMENT '表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段名', + `data_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段类型', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段描述', + `nullable` bit(1) NULL DEFAULT NULL COMMENT '是否允许为空', + `primary_key` bit(1) NULL DEFAULT NULL COMMENT '是否主键', + `auto_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '是否自增', + `ordinal_position` int(0) NOT NULL COMMENT '排序', + `java_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Java 属性类型', + `java_field` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Java 属性名', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '字典类型', + `example` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '数据示例', + `create_operation` bit(1) NULL DEFAULT NULL COMMENT '是否为 Create 创建操作的字段', + `update_operation` bit(1) NULL DEFAULT NULL COMMENT '是否为 Update 更新操作的字段', + `list_operation` bit(1) NULL DEFAULT NULL COMMENT '是否为 List 查询操作的字段', + `list_operation_condition` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '=' COMMENT 'List 查询操作的条件类型', + `list_operation_result` bit(1) NULL DEFAULT NULL COMMENT '是否为 List 查询操作的返回字段', + `html_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '显示类型', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2297 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_codegen_column +-- ---------------------------- +INSERT INTO `infra_codegen_column` VALUES (2248, 171, 'id', 'BIGINT', '日志主键', b'0', b'1', '1', 1, 'Long', 'id', '', '1373', b'0', b'1', b'0', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2249, 171, 'trace_id', 'VARCHAR', '链路追踪编号', b'0', b'0', '0', 2, 'String', 'traceId', '', '15694', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2250, 171, 'user_id', 'BIGINT', '用户编号', b'0', b'0', '0', 3, 'Long', 'userId', '', '20359', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2251, 171, 'user_type', 'TINYINT', '用户类型', b'0', b'0', '0', 4, 'Integer', 'userType', '', '1', b'1', b'1', b'1', '=', b'1', 'select', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2252, 171, 'application_name', 'VARCHAR', '应用名', b'0', b'0', '0', 5, 'String', 'applicationName', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2253, 171, 'request_method', 'VARCHAR', '请求方法名', b'0', b'0', '0', 6, 'String', 'requestMethod', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2254, 171, 'request_url', 'VARCHAR', '请求地址', b'0', b'0', '0', 7, 'String', 'requestUrl', '', 'https://www.iocoder.cn', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2255, 171, 'request_params', 'VARCHAR', '请求参数', b'0', b'0', '0', 8, 'String', 'requestParams', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2256, 171, 'user_ip', 'VARCHAR', '用户 IP', b'0', b'0', '0', 9, 'String', 'userIp', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2257, 171, 'user_agent', 'VARCHAR', '浏览器 UA', b'0', b'0', '0', 10, 'String', 'userAgent', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2258, 171, 'begin_time', 'TIMESTAMP', '开始请求时间', b'0', b'0', '0', 11, 'LocalDateTime', 'beginTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2259, 171, 'end_time', 'TIMESTAMP', '结束请求时间', b'0', b'0', '0', 12, 'LocalDateTime', 'endTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2260, 171, 'duration', 'INTEGER', '执行时长', b'0', b'0', '0', 13, 'Integer', 'duration', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2261, 171, 'result_code', 'INTEGER', '结果码', b'0', b'0', '0', 14, 'Integer', 'resultCode', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2262, 171, 'result_msg', 'VARCHAR', '结果提示', b'1', b'0', '0', 15, 'String', 'resultMsg', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2263, 171, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 16, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2264, 171, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 17, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2265, 171, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 18, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2266, 171, 'update_time', 'TIMESTAMP', '更新时间', b'0', b'0', '0', 19, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2267, 171, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 20, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2268, 171, 'tenant_id', 'BIGINT', '租户编号', b'0', b'0', '0', 21, 'Long', 'tenantId', '', '21787', b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_column` VALUES (2269, 172, 'id', 'INTEGER', '编号', b'0', b'1', '1', 1, 'Integer', 'id', '', '16668', b'0', b'1', b'0', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2270, 172, 'trace_id', 'VARCHAR', '链路追踪编号\n *\n * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。', b'0', b'0', '0', 2, 'String', 'traceId', '', '5789', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2271, 172, 'user_id', 'INTEGER', '用户编号', b'0', b'0', '0', 3, 'Integer', 'userId', '', '26004', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2272, 172, 'user_type', 'TINYINT', '用户类型', b'0', b'0', '0', 4, 'Integer', 'userType', '', '2', b'1', b'1', b'1', '=', b'1', 'select', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2273, 172, 'application_name', 'VARCHAR', '应用名\n *\n * 目前读取 spring.application.name', b'0', b'0', '0', 5, 'String', 'applicationName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2274, 172, 'request_method', 'VARCHAR', '请求方法名', b'0', b'0', '0', 6, 'String', 'requestMethod', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2275, 172, 'request_url', 'VARCHAR', '请求地址', b'0', b'0', '0', 7, 'String', 'requestUrl', '', 'https://www.iocoder.cn', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2276, 172, 'request_params', 'VARCHAR', '请求参数', b'0', b'0', '0', 8, 'String', 'requestParams', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2277, 172, 'user_ip', 'VARCHAR', '用户 IP', b'0', b'0', '0', 9, 'String', 'userIp', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2278, 172, 'user_agent', 'VARCHAR', '浏览器 UA', b'0', b'0', '0', 10, 'String', 'userAgent', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2279, 172, 'exception_time', 'TIMESTAMP', '异常发生时间', b'0', b'0', '0', 11, 'LocalDateTime', 'exceptionTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2280, 172, 'exception_name', 'VARCHAR', '异常名\n *\n * {@link Throwable#getClass()} 的类全名', b'0', b'0', '0', 12, 'String', 'exceptionName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2281, 172, 'exception_message', 'LONGVARCHAR', '异常导致的消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getMessage(Throwable)}', b'0', b'0', '0', 13, 'String', 'exceptionMessage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2282, 172, 'exception_root_cause_message', 'LONGVARCHAR', '异常导致的根消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getRootCauseMessage(Throwable)}', b'0', b'0', '0', 14, 'String', 'exceptionRootCauseMessage', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2283, 172, 'exception_stack_trace', 'LONGVARCHAR', '异常的栈轨迹\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getServiceException(Exception)}', b'0', b'0', '0', 15, 'String', 'exceptionStackTrace', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2284, 172, 'exception_class_name', 'VARCHAR', '异常发生的类全名\n *\n * {@link StackTraceElement#getClassName()}', b'0', b'0', '0', 16, 'String', 'exceptionClassName', '', '王五', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2285, 172, 'exception_file_name', 'VARCHAR', '异常发生的类文件\n *\n * {@link StackTraceElement#getFileName()}', b'0', b'0', '0', 17, 'String', 'exceptionFileName', '', '张三', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2286, 172, 'exception_method_name', 'VARCHAR', '异常发生的方法名\n *\n * {@link StackTraceElement#getMethodName()}', b'0', b'0', '0', 18, 'String', 'exceptionMethodName', '', '李四', b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2287, 172, 'exception_line_number', 'INTEGER', '异常发生的方法所在行\n *\n * {@link StackTraceElement#getLineNumber()}', b'0', b'0', '0', 19, 'Integer', 'exceptionLineNumber', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2288, 172, 'process_status', 'TINYINT', '处理状态', b'0', b'0', '0', 20, 'Integer', 'processStatus', '', '2', b'1', b'1', b'1', '=', b'1', 'radio', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2289, 172, 'process_time', 'TIMESTAMP', '处理时间', b'1', b'0', '0', 21, 'LocalDateTime', 'processTime', '', NULL, b'1', b'1', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2290, 172, 'process_user_id', 'INTEGER', '处理用户编号', b'1', b'0', '0', 22, 'Integer', 'processUserId', '', '11993', b'1', b'1', b'1', '=', b'1', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2291, 172, 'creator', 'VARCHAR', '创建者', b'1', b'0', '0', 23, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2292, 172, 'create_time', 'TIMESTAMP', '创建时间', b'0', b'0', '0', 24, 'LocalDateTime', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2293, 172, 'updater', 'VARCHAR', '更新者', b'1', b'0', '0', 25, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2294, 172, 'update_time', 'TIMESTAMP', '更新时间', b'0', b'0', '0', 26, 'LocalDateTime', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2295, 172, 'deleted', 'BIT', '是否删除', b'0', b'0', '0', 27, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); +INSERT INTO `infra_codegen_column` VALUES (2296, 172, 'tenant_id', 'BIGINT', '租户编号', b'0', b'0', '0', 28, 'Long', 'tenantId', '', '30458', b'0', b'0', b'0', '=', b'0', 'input', '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); + +-- ---------------------------- +-- Table structure for infra_codegen_table +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_table`; +CREATE TABLE `infra_codegen_table` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `data_source_config_id` bigint(0) NOT NULL COMMENT '数据源配置的编号', + `scene` tinyint(0) NOT NULL DEFAULT 1 COMMENT '生成场景', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '表描述', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '类名称', + `class_comment` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类描述', + `author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作者', + `template_type` tinyint(0) NOT NULL DEFAULT 1 COMMENT '模板类型', + `front_type` tinyint(0) NOT NULL COMMENT '前端类型', + `parent_menu_id` bigint(0) NULL DEFAULT NULL COMMENT '父菜单编号', + `master_table_id` bigint(0) NULL DEFAULT NULL COMMENT '主表的编号', + `sub_join_column_id` bigint(0) NULL DEFAULT NULL COMMENT '子表关联主表的字段编号', + `sub_join_many` bit(1) NULL DEFAULT NULL COMMENT '主表与子表是否一对多', + `tree_parent_column_id` bigint(0) NULL DEFAULT NULL COMMENT '树表的父字段编号', + `tree_name_column_id` bigint(0) NULL DEFAULT NULL COMMENT '树表的名字字段编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 173 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_codegen_table +-- ---------------------------- +INSERT INTO `infra_codegen_table` VALUES (171, 0, 1, 'infra_api_access_log', 'API 访问日志表', NULL, 'infra', 'apiaccesslog', 'ApiAccessLog', 'API 访问日志', '芋道源码', 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-03-08 10:00:18', '1', '2024-03-08 10:00:18', 0); +INSERT INTO `infra_codegen_table` VALUES (172, 0, 1, 'infra_api_error_log', '系统异常日志', NULL, 'infra', 'apierrorlog', 'ApiErrorLog', '系统异常日志', '芋道源码', 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, '1', '2024-03-13 09:31:09', '1', '2024-03-13 09:31:09', 0); + +-- ---------------------------- +-- Table structure for infra_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_config`; +CREATE TABLE `infra_config` ( + `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数分组', + `type` tinyint(0) NOT NULL COMMENT '参数类型', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数名称', + `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数键名', + `value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '参数键值', + `visible` bit(1) NULL DEFAULT NULL COMMENT '是否可见', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_config +-- ---------------------------- +INSERT INTO `infra_config` VALUES (2, 'biz', 1, '用户管理-账号初始密码', 'sys.user.init-password', '123456', b'0', '初始化密码 123456', 'admin', '2021-01-05 17:03:48', '1', '2024-03-13 09:32:35', 0); +INSERT INTO `infra_config` VALUES (7, 'url', 2, 'MySQL 监控的地址', 'url.druid', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:33:38', 0); +INSERT INTO `infra_config` VALUES (8, 'url', 2, 'SkyWalking 监控的地址', 'url.skywalking', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:57:03', 0); +INSERT INTO `infra_config` VALUES (9, 'url', 2, 'Spring Boot Admin 监控的地址', 'url.spring-boot-admin', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:52:07', 0); +INSERT INTO `infra_config` VALUES (10, 'url', 2, 'Swagger 接口文档的地址', 'url.swagger', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:59:00', 0); +INSERT INTO `infra_config` VALUES (11, 'ui', 2, '腾讯地图 key', 'tencent.lbs.key', 'TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E', b'1', '腾讯地图 key', '1', '2023-06-03 19:16:27', '1', '2023-06-03 19:16:27', 0); +INSERT INTO `infra_config` VALUES (12, 'test2', 2, 'test3', 'test4', 'test5', b'1', 'test6', '1', '2023-12-03 09:55:16', '1', '2023-12-03 09:55:27', 0); + +-- ---------------------------- +-- Table structure for infra_data_source_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_data_source_config`; +CREATE TABLE `infra_data_source_config` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键编号', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数名称', + `url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据源连接', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '数据源配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_data_source_config +-- ---------------------------- + +-- ---------------------------- +-- Table structure for infra_file +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file`; +CREATE TABLE `infra_file` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '文件编号', + `config_id` bigint(0) NULL DEFAULT NULL COMMENT '配置编号', + `name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件名', + `path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径', + `url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件 URL', + `type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件类型', + `size` int(0) NOT NULL COMMENT '文件大小', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1743 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_file +-- ---------------------------- + +-- ---------------------------- +-- Table structure for infra_file_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_config`; +CREATE TABLE `infra_file_config` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置名', + `storage` tinyint(0) NOT NULL COMMENT '存储器', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `master` bit(1) NULL DEFAULT NULL COMMENT '是否为主配置', + `config` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '存储配置', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_file_config +-- ---------------------------- +INSERT INTO `infra_file_config` VALUES (26, 'minio', 20, '', b'1', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"oss.xxx.com\",\"domain\":\"http://oss.xxxxx.com/jeelowcode\",\"bucket\":\"jeelowcode\",\"accessKey\":\"minio\",\"accessSecret\":\"xxxxx\"}', '1', '2024-06-13 09:57:18', '1', '2024-12-11 09:59:40', 0); + +-- ---------------------------- +-- Table structure for infra_file_content +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_content`; +CREATE TABLE `infra_file_content` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `config_id` bigint(0) NOT NULL COMMENT '配置编号', + `path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径', + `content` mediumblob NOT NULL COMMENT '文件内容', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 276 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_file_content +-- ---------------------------- + +-- ---------------------------- +-- Table structure for infra_job +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job`; +CREATE TABLE `infra_job` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '任务编号', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', + `status` tinyint(0) NOT NULL COMMENT '任务状态', + `handler_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理器的名字', + `handler_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '处理器的参数', + `cron_expression` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'CRON 表达式', + `retry_count` int(0) NOT NULL DEFAULT 0 COMMENT '重试次数', + `retry_interval` int(0) NOT NULL DEFAULT 0 COMMENT '重试间隔', + `monitor_timeout` int(0) NOT NULL DEFAULT 0 COMMENT '监控超时时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_job +-- ---------------------------- +INSERT INTO `infra_job` VALUES (31, '定时清理Excel临时记录', 1, 'clearExcelDataJob', '', '0 0 0 * * ?', 0, 0, 0, '1', '2024-11-07 14:38:33', '1', '2024-11-07 14:38:34', 0); +INSERT INTO `infra_job` VALUES (32, '定时保存模块使用记录', 1, 'saveModelUsageRecordsJob', '', '0 0/10 * * * ?', 0, 0, 0, '1', '2024-11-07 14:39:51', '1', '2024-11-07 14:39:51', 0); + +-- ---------------------------- +-- Table structure for infra_job_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job_log`; +CREATE TABLE `infra_job_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '日志编号', + `job_id` bigint(0) NOT NULL COMMENT '任务编号', + `handler_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理器的名字', + `handler_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '处理器的参数', + `execute_index` tinyint(0) NOT NULL DEFAULT 1 COMMENT '第几次执行', + `begin_time` datetime(0) NOT NULL COMMENT '开始执行时间', + `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束执行时间', + `duration` int(0) NULL DEFAULT NULL COMMENT '执行时长', + `status` tinyint(0) NOT NULL COMMENT '任务状态', + `result` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5124 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of infra_job_log +-- ---------------------------- +INSERT INTO `infra_job_log` VALUES (5119, 32, 'saveModelUsageRecordsJob', '', 1, '2024-12-11 09:40:00', '2024-12-11 09:40:00', 244, 1, '*********** 保存模块使用记录完成,共保存了17条 ************', NULL, '2024-12-11 09:40:00', NULL, '2024-12-11 09:40:00', 0); +INSERT INTO `infra_job_log` VALUES (5120, 32, 'saveModelUsageRecordsJob', '', 1, '2024-12-11 09:50:00', '2024-12-11 09:50:00', 192, 1, '*********** 保存模块使用记录完成,共保存了18条 ************', NULL, '2024-12-11 09:50:00', NULL, '2024-12-11 09:50:00', 0); +INSERT INTO `infra_job_log` VALUES (5121, 32, 'saveModelUsageRecordsJob', '', 1, '2024-12-11 10:00:00', '2024-12-11 10:00:01', 608, 1, '*********** 保存模块使用记录完成,共保存了25条 ************', NULL, '2024-12-11 10:00:00', NULL, '2024-12-11 10:00:01', 0); +INSERT INTO `infra_job_log` VALUES (5122, 32, 'saveModelUsageRecordsJob', '', 1, '2024-12-28 13:46:26', '2024-12-28 13:46:27', 490, 1, '*********** 保存模块使用记录完成,共保存了19条 ************', NULL, '2024-12-28 13:46:26', NULL, '2024-12-28 13:46:27', 0); +INSERT INTO `infra_job_log` VALUES (5123, 31, 'clearExcelDataJob', '', 1, '2024-12-28 13:46:26', '2024-12-28 13:46:27', 48, 1, '*********** Excel Data日志清理完成,共清理了0条 ************', NULL, '2024-12-28 13:46:26', NULL, '2024-12-28 13:46:27', 0); + +-- ---------------------------- +-- Table structure for lowcode_config +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_config`; +CREATE TABLE `lowcode_config` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` int(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `config_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置名称', + `config_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置类型', + `config_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置key', + `config_val` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置值', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_type`(`config_type`) USING BTREE, + INDEX `ind_type_key`(`config_type`, `config_key`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '框架配置' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_config +-- ---------------------------- +INSERT INTO `lowcode_config` VALUES (1803991623952867329, '1', 1, '2024-06-21 11:21:34', NULL, NULL, NULL, 0, '自定义按钮实现类', 'btn_command', 'a_key', 'ADefinableButtonPlugin'); +INSERT INTO `lowcode_config` VALUES (1803991623952867330, '1', 1, '2024-08-14 15:57:00', NULL, NULL, NULL, 0, 'JAVA增强切面方法', 'enhance_code', 'enhance_code', '{\"savePublicData\":\"add\",\"getDataDetail\":\"detail\",\"editPublicData\":\"edit\",\"getExportDataList\":\"export\",\"saveImportData\":\"import\",\"getDataList\":\"list\",\"delData\":\"delete\",\"getDataSummaryList\":\"summary\"}'); +INSERT INTO `lowcode_config` VALUES (1803991623952867332, '1', 1, '2024-09-24 15:02:48', NULL, NULL, NULL, 0, 'Excel临时数据保留天数', 'excel_file_data_day', 'excel_file_data_day', '15'); + +-- ---------------------------- +-- Table structure for lowcode_dbform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform`; +CREATE TABLE `lowcode_dbform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名', + `table_describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表描述', + `table_type` int(0) NULL DEFAULT NULL COMMENT '表类型;1单表、2树表、3主表、4附表', + `table_classify` int(0) NULL DEFAULT NULL COMMENT '表分类', + `table_id_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主键类型', + `table_select` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格选择类型', + `is_db_sync` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '同步数据库状态;N=未同步 Y=已同步', + `is_des_form` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否用设计器表单;N=不 启用 Y=已启用', + `sub_table_mapping` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附表-映射关系', + `sub_table_sort` int(0) NULL DEFAULT NULL COMMENT '附表-排序序号', + `sub_table_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附表-Tab标题', + `theme_template` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主题模板', + `desform_web_id` bigint(0) NULL DEFAULT NULL COMMENT 'WEB表单设计ID', + `tree_style` varchar(126) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树表样式', + `tree_mode` varchar(126) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树表模式', + `tree_label_field` varchar(126) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树表展开字段', + `operate_menu_style` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作栏样式', + `form_style` int(0) NULL DEFAULT 1 COMMENT '表单风格', + `sub_table_list_str` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表列表', + `view_default_field` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否显示系统字段;N=不 启用 Y=已启用', + `group_dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发分组id', + `orderby_config` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '排序配置', + `where_config` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认条件配置', + `data_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据配置', + `basic_function` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '基础功能', + `basic_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '基础配置', + `table_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表格配置', + `data_sources_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表视图数据来源配置', + `table_style` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '单表样式', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_table_name`(`table_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform +-- ---------------------------- +INSERT INTO `lowcode_dbform` VALUES (1831577841380671489, '1', 1, '2024-09-05 14:19:21', 101, NULL, '2024-11-21 10:53:42', 0, 'example_single_table', '单表示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 3, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1831582331282440193, '1', 1, '2024-09-05 14:37:12', 101, NULL, '2024-11-13 17:03:04', 0, 'example_tree_table', '树表示例', 2, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', 'type_name', 'more', 2, '', 'N', 1814558316630147073, '[{\"order\":\"asc\",\"column\":\"id\"}]', '', 'initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn,addChild', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1831606724024909825, '1', 1, '2024-09-05 16:14:07', 101, 1, '2024-09-06 09:54:23', 0, 'example_main_table', '主附表示例-主表', 3, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, 'example_sub_more_table,example_sub_one_table', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831607480064983042, '1', 1, '2024-09-05 16:17:08', 101, 1, '2024-09-06 09:54:05', 0, 'example_sub_more_table', '主附表示例-附表', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'many', 1, '课程信息', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831608167414939649, '1', 1, '2024-09-05 16:19:51', 101, 1, '2024-09-06 09:54:19', 0, 'example_sub_one_table', '主附表示例-附表', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'one', 1, '学生详细信息', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831879666549944322, '1', 1, '2024-09-06 10:18:42', 101, 1, '2024-10-25 11:59:01', 0, 'example_main_erp_table', '主附表示例-主表(ERP)', 3, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'erp', NULL, 'default', 'default', '', 'more', 2, 'example_sub_erp_more_table,example_sub_erp_one_table', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1831881275090669569, '1', 1, '2024-09-06 10:25:05', 101, 1, '2024-09-06 10:27:35', 0, 'example_sub_erp_more_table', '主附表示例-附表(ERP)', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'many', 1, '课程信息', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831881397711147010, '1', 1, '2024-09-06 10:25:35', 101, 1, '2024-09-06 10:27:48', 0, 'example_sub_erp_one_table', '主附表示例-附表(ERP)', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'one', 1, '学生详细信息', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831883128176119810, '1', 1, '2024-09-06 10:32:27', 101, 1, '2024-09-06 10:38:07', 0, 'example_main_nq_table', '主附表示例-主表(内嵌)', 3, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'innerTable', NULL, 'default', 'default', '', 'more', 2, 'example_sub_nq_more_table,example_sub_nq_one_table', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831883200666275842, '1', 1, '2024-09-06 10:32:44', 101, 1, '2024-09-06 10:38:10', 0, 'example_sub_nq_more_table', '主附表示例-附表(内嵌)', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'many', 1, '课程信息', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831883388675952641, '1', 1, '2024-09-06 10:33:29', 101, 1, '2024-09-06 10:38:15', 0, 'example_sub_nq_one_table', '主附表示例-附表(内嵌)', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'one', 1, '学生详细信息', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1831939951830798338, '1', 1, '2024-09-06 14:18:15', 101, 1, '2024-11-02 14:20:07', 0, 'example_control_use', '控件使用示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1833031105253642242, '1', 1, '2024-09-09 14:34:06', 101, 1, '2024-09-14 09:23:33', 0, 'example_student', '学生', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1833055212327694337, '1', 1, '2024-09-09 16:09:54', 101, 1, '2024-09-09 17:36:35', 0, 'example_web_enhance', '前端增强示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 3, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1833320018125299714, '1', 1, '2024-09-10 09:42:08', 101, 1, '2024-09-10 10:55:38', 0, 'example_btn_enhance', '自定义按钮结合Js增强示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 3, NULL, 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1833323260582391810, '1', 1, '2024-09-10 09:55:01', 101, 1, '2024-10-30 09:45:47', 0, 'example_basics_form_design', '基础类型示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse,page', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'menu,border,header,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1833326225296814081, '1', 1, '2024-09-10 10:06:48', 101, 1, '2024-09-20 14:37:52', 0, 'example_visitor_record', '来访记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 1, '', 'N', 1814558316630147073, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn', 'return {\n option_str:`return {\n \"dialogType\":\'drawer\',\n \"dialogWidth\":\'40%\',\n}`,\n custom_str: `return {\n\n}`,\n }', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1834065859105136642, '1', 1, '2024-09-12 11:05:51', 101, 1, '2024-09-12 11:23:37', 0, 'example_score', '成绩', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1834136609367400450, '1', 1, '2024-09-12 15:46:59', 101, 1, '2024-12-03 13:59:14', 0, 'example_tabs_card', '标签页卡片风格类型示例', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"type\":\"Date\",\"order\":\"desc\",\"column\":\"tabs_card_date\"}]', '', 'initDataReq,authFalse', '', '', 'header,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1836298963389067265, '1', 1, '2024-09-18 14:59:24', 101, 1, '2024-09-19 14:01:51', 0, 'example_order_commodity', '订单详情-商品信息', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', '', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1836318516001189890, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:42:43', 0, 'example_order_record', '订单详情-操作记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'stripe', '', NULL); +INSERT INTO `lowcode_dbform` VALUES (1838141821641318402, '1', 1, '2024-09-23 17:02:16', 101, 1, '2024-10-23 14:56:00', 0, 'example_subject_list', '数据列表页(专题列表)', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',// 搜索按钮的文本\n emptyBtnText: \'重置\',//清空按钮的文本\n}`,\n }', 'height,header,menu,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838392378859741185, '1', 1, '2024-09-24 09:37:53', 101, NULL, '2024-11-14 14:29:15', 0, 'example_primordial_table', '通用页面-原生表格', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,batchDelBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchIcon: false,\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 4,\n searchGutter: 10\n}`,\n }', 'height,header,menu,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838494733815050242, '1', 1, '2024-09-24 16:24:37', 101, NULL, '2024-11-14 14:44:31', 0, 'example_tyym_dtsj', '通用页面-动态数据', 1, 1, 'NATIVE', 'multiple', 'Y', 'Y', '', 0, '', 'normal', 1839492236177883137, 'defalut', 'defalut', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n \"dialogWidth\":\'50%\',\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n border: false,\n searchGutter: 10\n}`,\n }', 'height,header,menu,stripe,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838505719016001538, '1', 1, '2024-09-24 17:08:16', 101, NULL, '2024-11-14 14:45:47', 0, 'example_fixed_list', '通用页面-固定表列', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn,batchDelBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchGutter:10\n}`,\n }', 'height,header,menu,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838748849153835009, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-11-14 14:47:16', 0, 'example_tyym_djbt', '通用页面-多级表头', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n border: false,\n searchGutter:10\n}`,\n }', 'height,header,menu,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838754174162501633, '1', 1, '2024-09-25 09:35:32', 101, NULL, '2024-11-14 14:49:15', 0, 'example_tree_grid', '通用页面-树形表格', 2, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', 'classification_name', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,delBtn,batchDelBtn,addChild', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n border: false,\n searchGutter:10\n}`,\n }', 'height,header,menu,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838824808796180481, '1', 1, '2024-09-25 14:16:13', 101, 1, '2024-10-24 15:39:21', 0, 'example_tyym_gjsx', '通用页面-高级筛选', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'height,header,menu,index,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1838855934516420610, '1', 1, '2024-09-25 16:19:54', 101, 1, '2024-11-09 09:18:57', 0, 'example_table_kplb', '数据表格页(卡片列表)', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1840268794366795777, '1', 1, '2024-09-29 13:54:06', 101, 1, '2024-09-29 14:20:01', 0, 'example_advanced_details_tabs', '通用页面-高级详情页-分类标签', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n menuWidth: \'120px\',\n border: false\n}`,\n }', 'header,menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1840577516125323266, '1', 1, '2024-09-30 10:20:51', 101, 1, '2024-09-30 10:53:10', 0, 'example_my_login_records', '通用页面-个人中心-登录记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'header,menu,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1840642756645044226, '1', 1, '2024-09-30 14:40:05', 101, 1, '2024-10-25 16:10:23', 0, 'example_my_system_notification', '通用页面-个人中心-系统通知', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border: false\n}`,\n }', 'header,menu', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1840646327436394498, '1', 1, '2024-09-30 14:54:17', 101, NULL, '2024-11-14 14:48:15', 0, 'example_expand_table', '数据表格页(可展开表格)', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchGutter:10\n}`,\n }', 'header,menu,border,height', '', '{\"singleStyle\":\"expand\",\"singleCardSpan\":\"\",\"expandShowNum\":6,\"expandMode\":\"accordion\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1843476389638443010, '1', 1, '2024-10-08 10:19:56', 101, 1, '2024-10-09 09:26:44', 0, 'example_my_message_settings', '通用页面-个人中心-消息设置', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,delBtn,batchDelBtn,viewBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border: false\n}`,\n }', 'header,menu', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1844275960258019330, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-11-11 10:44:17', 0, 'example_glmk_ddgl', '管理模块-订单管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchIcon: false,\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 4,\n searchGutter: 10\n}`,\n }', 'header,menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1844620967619866625, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-11-11 15:55:59', 0, 'example_ggmk_gdgl', '管理模块-工单管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'Y', '', 0, '', 'normal', 1844632600228409345, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchIndex: 4,\n searchIcon: false,\n searchMenuSpan: 4,\n searchGutter: 10\n}`,\n }', 'height,header,menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1845012516400803842, '1', 1, '2024-10-12 16:03:57', 101, 1, '2024-10-24 14:45:59', 0, 'example_glmk_gdgl_fjjl', '管理模块-工单管理-附件记录', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'delBtn', '', 'menu,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1845019389086736386, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 'example_user_management', '管理模块-用户管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'delBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchIcon: false,\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 4,\n searchGutter: 10\n}`,\n }', 'header,menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846009550756601857, '1', 1, '2024-10-15 10:05:49', 101, NULL, '2024-11-12 14:38:42', 0, 'example_glmk_bmgl', '管理模块-部门管理', 2, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', 'name', 'normal', 1, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', '', 'initDataReq,authFalse', 'editBtn,delBtn,addBtn', 'return {\n option_str:`return {\n \"showHeader\":true,\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n dialogWidth: \'40%\',\n menuWidth: \'300\',\n border: false,\n addTitle: \'新建部门\',\n editTitle: \'编辑部门\'\n}`,\n }', 'height,menu,border,header', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846073998846337026, '1', 1, '2024-10-15 14:21:54', 101, 1, '2024-10-15 14:34:47', 0, 'example_user_management_address', '用户管理-收货地址', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,delBtn,batchDelBtn,viewBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border: false,\n menu:false\n}`,\n }', 'header,menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846083503466356737, '1', 1, '2024-10-15 14:59:40', 101, NULL, '2024-11-12 15:13:20', 0, 'example_glmk_zwgl', '管理模块-职务管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 1, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n dialogWidth: \'40%\',\n menuWidth: \'480\',\n border: false,\n addTitle: \'新建职务\',\n editTitle: \'编辑职务\'\n}`,\n }', 'height,header,menu,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846095079682482177, '1', 1, '2024-10-15 15:45:40', 101, 1, '2024-10-15 16:03:59', 0, 'example_user_management_points', '用户管理-积分记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,batchDelBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border:false\n}`,\n }', 'stripe,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846100518918823938, '1', 1, '2024-10-15 16:07:17', 101, 1, '2024-10-15 16:12:54', 0, 'example_user_management_console', '用户管理-登录日志', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,batchDelBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border:false\n}`,\n }', 'stripe,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846103236139950082, '1', 1, '2024-10-15 16:18:05', 101, 1, '2024-10-15 16:26:06', 0, 'example_user_management_czjl', '用户管理-操作记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'delBtn,batchDelBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border:false\n}`,\n }', 'stripe,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846121741006647298, '1', 1, '2024-10-15 17:31:37', 101, 1, '2024-10-25 16:58:14', 0, 'example_staff_management', '管理模块-员工管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'importBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchIcon: false,\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 5,\n border: false,\n searchGutter: 10,\n menuWidth: \'350\',\n}`,\n }', 'header,menu,border,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846429439782793217, '1', 1, '2024-10-16 13:54:18', 101, NULL, '2024-11-13 09:23:59', 0, 'example_zwgl_cylb', '职务管理-成员列表', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'delBtn', '', 'menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846734665412726786, '1', 1, '2024-10-17 10:07:10', 101, 1, '2024-10-17 10:49:22', 0, 'example_staff_management_console', '员工管理-登录日志', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,batchDelBtn,addBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border:false\n}`,\n }', 'stripe,border,header,menu', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1846747363458351106, '1', 1, '2024-10-17 10:57:37', 101, 1, '2024-10-17 11:06:08', 0, 'example_staff_management_czjl', '员工管理-操作记录', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,batchDelBtn,addBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border:false\n}`,\n }', 'stripe,border,header,menu', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847094468974710786, '1', 1, '2024-10-18 09:56:53', 101, NULL, '2024-11-15 15:38:40', 0, 'example_glmk_xmgl', '管理模块-项目管理', 1, 1, 'NATIVE', 'disabled', 'Y', 'Y', '', 0, '', 'normal', 1847173437702934530, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'header,menu', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847103675560071169, '1', 1, '2024-10-18 10:33:28', 101, 1, '2024-10-26 17:04:05', 0, 'example_task_management_list', '任务管理-列表显示', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,exportBtn,importBtn', '', 'header,menu,index,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847167244620152834, '1', 1, '2024-10-18 14:46:04', 101, 1, '2024-10-22 14:29:35', 0, 'example_report_data', '报表数据', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847456813371498498, '1', 1, '2024-10-19 09:56:43', 101, 1, '2024-10-19 10:02:15', 0, 'example_order_pending_orders', '订单管理-待处理订单', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847472439438737409, '1', 1, '2024-10-19 10:58:49', 101, 1, '2024-10-26 17:09:56', 0, 'example_xmgl_rwlb', '项目管理-任务列表', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse,page', 'editBtn,delBtn', '', 'index,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1847537155101040642, '1', 1, '2024-10-19 15:15:58', 101, 1, '2024-10-21 09:44:34', 0, 'example_trader_dealing_amount', '商户统计-成交金额趋势', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1848301752228683777, '1', 1, '2024-10-21 17:54:12', 101, NULL, '2024-11-15 17:36:29', 0, 'example_xmgl_cylb', '项目管理-成员列表', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'delBtn,addBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n}`,\n }', 'menu,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1848631600935510017, '1', 1, '2024-10-22 15:44:54', 101, 1, '2024-10-22 15:52:24', 0, 'example_grzx_yy', '个人中心-应用', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1848637143087489025, '1', 1, '2024-10-22 16:06:56', 101, 1, '2024-10-22 16:31:45', 0, 'example_grzx_xm', '个人中心-项目', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'viewBtn', '', 'height,menu,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1848649270435160066, '1', 1, '2024-10-22 16:55:07', 101, 1, '2024-10-23 14:31:40', 0, 'example_grzx_wz', '个人中心-文章', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'viewBtn,addBtn', '', 'height,menu,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850061360061427714, '1', 1, '2024-10-26 14:26:15', 101, 1, '2024-10-26 14:28:01', 0, 'example_sjhy_tjsj', '数据会员-统计数据', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850092582611345409, '1', 1, '2024-10-26 16:30:19', 101, 1, '2024-10-26 16:30:25', 0, 'example_sjhy_ssfkl', '数据会员-实时访客量', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850094920386371586, '1', 1, '2024-10-26 16:39:37', 101, 1, '2024-10-26 16:40:40', 0, 'example_sjhy_xse', '数据会员-销售额', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850109346514632706, '1', 1, '2024-10-26 17:36:56', 101, 1, '2024-10-29 10:40:44', 0, 'example_sjhy_gplzb', '数据会员-各品类占比', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850723645460291586, '1', 1, '2024-10-28 10:17:57', 101, 1, '2024-12-10 17:08:45', 0, 'example_main_date', '日程管理', 3, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, 'example_sub_more_date,text_subject', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1850724499567386625, '1', 1, '2024-10-28 10:21:20', 101, 1, '2024-10-29 14:12:57', 0, 'example_sub_more_date', '日历管理附表', 4, 1, 'NATIVE', 'multiple', 'Y', 'N', 'many', 1, '日程信息', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1851205230887346177, '1', 1, '2024-10-29 18:11:35', 101, 1, '2024-11-02 15:53:05', 0, 'example_team_management', '管理模版-团队管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'Y', '', 0, '', 'normal', 1852168337334951938, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn', '', 'header,menu,border,rollBottom', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":3,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1851509263837597697, '1', 1, '2024-10-30 14:19:43', 101, 1, '2024-10-30 14:19:49', 0, 'example_sjbb_hkje', '数据报表-回款金额', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1851796249232203778, '1', 1, '2024-10-31 09:20:05', 101, NULL, '2024-11-20 16:19:22', 0, 'example_xcgl', '管理模块-相册管理', 1, 1, 'NATIVE', 'disabled', 'Y', 'Y', '', 0, '', 'normal', 1851890190622343169, 'default', 'default', '', 'more', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n dialogWidth: \'40%\',\n menuWidth: \'480\',\n border: false,\n \n}`,\n }', 'height,border,header', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1852234473116233730, '1', 1, '2024-11-01 14:21:26', 101, 1, '2024-11-01 17:00:24', 0, 'example_tdgl_sjtj', '团队管理-数据统计', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,batchDelBtn', '', 'header,menu,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1852241979997646849, '1', 1, '2024-11-01 14:51:16', 101, 1, '2024-11-01 15:08:53', 0, 'example_xcgl_view', '管理模块-相册管理_详情', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, NULL, 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'editBtn,delBtn,addBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n dialogWidth: \'40%\',\n menuWidth: \'480\',\n border: false,\n}`,\n }', 'height,border', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1852624838914699265, '1', 1, '2024-11-02 16:12:36', 101, 1, '2024-11-04 17:03:15', 0, 'example_contact_manager', '管理模块-联系人管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'Y', '', 0, '', 'normal', 1853285742086909953, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,delBtn,batchDelBtn,exportBtn', 'return {\n option_str:`return {\n \"dialogWidth\":\'720px\',\n}`,\n custom_str: `return {\n searchGutter: 20,\n addTitle: \'添加联系人\',\n editTitle: \'修改联系人\',\n}`,\n }', 'header,menu,rollBottom', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":3,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1853269839533273090, '1', 1, '2024-11-04 10:55:36', 101, 1, '2024-11-07 11:54:31', 0, 'example_mkgl_gzbg', '模块管理-工作报告', 1, 1, 'NATIVE', 'disabled', 'Y', 'Y', '', 0, '', 'normal', 1853325190400012289, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,delBtn,editBtn,viewBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchIcon: false,\n searchMenuSpan: 4,\n searchGutter: 20,\n addTitle: \'新增报告\',\n}`,\n }', 'header,rollBottom,menu,stripe', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854048263491252226, '1', 1, '2024-11-06 14:28:47', 101, NULL, '2024-11-20 15:14:26', 0, 'example_mkgl_gggl', '模块管理-公告管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'Y', '', 0, '', 'normal', 1854359628093304834, 'default', 'default', '', 'normal', 1, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authTrue', 'addBtn,delBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchLabelWidth: 20,\n searchMenuSpan: 4,\n searchGutter: 20\n}`,\n }', 'header,menu,rollBottom,stripe', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854067250698612737, '1', 1, '2024-11-06 15:44:14', 101, NULL, '2024-11-20 13:57:11', 0, 'example_mkgl_rzgl', '模块管理-日志管理', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'viewBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchGutter: 20,\n searchMenuSpan: 4\n}`,\n }', 'height,menu,rollBottom,stripe,header', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854331399533998082, '1', 1, '2024-11-07 09:13:52', 101, NULL, '2024-11-20 14:02:40', 0, 'example_mkgl_sprz', '模块管理-审批日志', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'viewBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 4,\n searchGutter: 20\n}`,\n }', 'height,menu,rollBottom,stripe,header', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854341001851940865, '1', 1, '2024-11-07 09:52:01', 101, NULL, '2024-11-20 14:07:10', 0, 'example_mkgl_dlrz', '模块管理-登录日志', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, NULL, 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'viewBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n searchBtnText: \'查询\',\n emptyBtnText: \'重置\',\n searchMenuSpan: 4,\n searchGutter: 20\n}`,\n }', 'height,rollBottom,stripe,header', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854408557228961794, '1', 1, '2024-11-07 14:20:28', 101, 1, '2024-11-07 16:31:54', 0, 'example_jllt_tlbk', '交流论坛-讨论板块', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n border: false\n}`,\n }', 'header,menu,rollBottom', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854438272522235905, '1', 1, '2024-11-07 16:18:33', 101, 1, '2024-11-08 16:17:44', 0, 'example_mkgl_tdzsk', '模版管理-团队知识库', 1, 1, 'NATIVE', 'disabled', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'initDataReq,authFalse', 'addBtn,editBtn,delBtn', '', 'height,rollBottom', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":4,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1854716968965484545, '1', 1, '2024-11-08 10:45:59', 101, 1, '2024-11-08 14:51:19', 0, 'example_jllt_htlb', '交流论坛-话题列表', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'normal', 2, '', 'Y', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"card\",\"singleCardSpan\":1,\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); +INSERT INTO `lowcode_dbform` VALUES (1872882476103290882, '1', 1, '2024-12-28 13:49:13', 101, 1, '2024-12-28 13:49:19', -1, 'test_demo', '测试', 1, 1, 'NATIVE', 'multiple', 'Y', 'N', '', 0, '', 'normal', NULL, 'default', 'default', '', 'more', 2, '', 'N', NULL, '[{\"order\":\"desc\",\"column\":\"id\"}]', NULL, 'page,initDataReq,authFalse', 'addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn', '', 'height,header,menu,index,border,rollBottom', '', '{\"singleStyle\":\"default\",\"singleCardSpan\":\"\",\"expandShowNum\":null,\"expandMode\":\"\",\"searchStyle\":\"default\"}'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_button +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_button`; +CREATE TABLE `lowcode_dbform_button` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `button_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮名称', + `button_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮编码', + `button_icon` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮图标', + `button_location` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮位置', + `button_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮类型', + `button_sort` int(0) NULL DEFAULT NULL COMMENT '按钮排序', + `button_exp` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '按钮显隐增强', + `button_show` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮显示', + `button_auth` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限控制', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-自定义按钮' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_button +-- ---------------------------- +INSERT INTO `lowcode_dbform_button` VALUES (1833323835374006274, '1', 1, '2024-09-10 09:57:18', 101, 1, '2024-09-10 09:59:37', 0, 1833320018125299714, '添加来访记录', 'addVisitor', 'CirclePlus', 'menu', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1834413092543549441, '1', 1, '2024-09-13 10:05:38', 101, 1, '2024-09-13 10:06:02', 0, 1834136609367400450, '导出数据', 'dc_btn', 'ep:upload', 'header', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1838396966958555137, '1', 1, '2024-09-24 09:56:07', 101, 1, '2024-09-24 09:56:36', 0, 1838392378859741185, '新建客户', 'add_customer', 'ep:plus', 'header', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1839509608267902977, '1', 1, '2024-09-27 11:37:22', 101, NULL, '2024-09-27 11:46:32', 1, 1838494733815050242, '新增', 'xzBtn', '', 'header', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1844283450915864577, '1', 1, '2024-10-10 15:46:54', 101, 1, '2024-10-10 15:51:18', 0, 1844275960258019330, '详情', 'xqBtn', 'ep:view', 'menu', 'primary', 1, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1844582733275738114, '1', 1, '2024-10-11 11:36:09', 101, 1, '2024-10-26 14:37:25', 0, 1844275960258019330, '备注', 'bzBtn', 'ep:document', 'menu', 'primary', 2, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1844582962205044737, '1', 1, '2024-10-11 11:37:04', 101, 1, '2024-10-26 14:36:44', 0, 1844275960258019330, '关闭', 'gbBtn', 'ep:remove-filled', 'menu', 'warning', 3, 'return {\r\n // color: \'#626aef\',\r\n plain: true,\r\n text: false,\r\n size: \"small\",\r\n}', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1844646504631382017, '1', 1, '2024-10-11 15:49:33', 101, 1, '2024-10-11 15:49:41', 0, 1844620967619866625, '分配工单', 'fpgdBtn', 'ep:switch', 'header', '', 20, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1844651235890180097, '1', 1, '2024-10-11 16:08:21', 101, 1, '2024-10-11 16:09:13', 0, 1844620967619866625, '详情', 'xqBtn', 'ep:view', 'menu', 'primary', 1, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1845038803504930817, '1', 1, '2024-10-12 17:48:25', 101, NULL, NULL, 0, 1845019389086736386, '添加标签', 'tjbqBtn', 'ic:baseline-add', 'header', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1845642803988156417, '1', 1, '2024-10-14 09:48:29', 101, 1, '2024-10-24 13:53:15', 0, 1845019389086736386, '编辑', 'bjBtn', 'mage:pen-fill', 'menu', '', 2, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1845652289691865090, '1', 1, '2024-10-14 10:26:11', 101, 1, '2024-10-14 10:28:12', 0, 1845019389086736386, '详情', 'xqBtn', 'icon-park-solid:right-c', 'menu', 'primary', 1, 'return {\r\n size: \'small\',\r\n plain: true,\r\n text: false,\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846026273790500866, '1', 1, '2024-10-15 11:12:16', 101, 1, '2024-10-15 11:15:00', 0, 1846009550756601857, '设置状态', 'szztBtn', 'ep:setting', 'menu', 'primary', 8, '', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1846035957704433665, '1', 1, '2024-10-15 11:50:45', 101, 1, '2024-10-15 14:14:28', 0, 1846009550756601857, '全部展开', 'qbzkBtn', '', 'header', '', 20, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846036092219957249, '1', 1, '2024-10-15 11:51:17', 101, 1, '2024-10-15 11:52:12', 0, 1846009550756601857, '全部折叠', 'qbzdBtn', '', 'header', '', 21, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846087408904445954, '1', 1, '2024-10-15 15:15:12', 101, NULL, NULL, 0, 1846083503466356737, '设置权限', 'szqxBtn', 'ep:setting', 'menu', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846087572058677249, '1', 1, '2024-10-15 15:15:50', 101, 1, '2024-10-15 15:19:53', 0, 1846083503466356737, '添加人员', 'userBtn', 'ep:circle-plus-filled', 'menu', 'primary', 8, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846087790498029570, '1', 1, '2024-10-15 15:16:43', 101, 1, '2024-10-15 15:20:11', 0, 1846083503466356737, '设置状态', 'szztBtn', 'ep:setting', 'menu', 'primary', 9, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846087954763751426, '1', 1, '2024-10-15 15:17:22', 101, 1, '2024-10-15 15:20:16', 0, 1846083503466356737, '复制', 'fzBtn', 'ep:document-copy', 'menu', 'primary', 10, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846095090075967490, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:54:49', 1, 1846095079682482177, '新建客户', 'add_customer', 'ep:plus', 'header', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846377762430103553, '1', 1, '2024-10-16 10:28:57', 101, NULL, NULL, 0, 1846121741006647298, '重置密码', 'czmmBtn', 'foundation:lock', 'header', '', 5, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846377987118968833, '1', 1, '2024-10-16 10:29:51', 101, 1, '2024-10-16 10:31:23', 0, 1846121741006647298, '设置状态', 'szztBtn', 'ic:baseline-settings', 'header', '', 4, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846379689322721281, '1', 1, '2024-10-16 10:36:37', 101, 1, '2024-10-16 10:36:56', 0, 1846121741006647298, '修改职务', 'xgzwBtn', 'dashicons:update-alt', 'header', '', 3, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846379840560934913, '1', 1, '2024-10-16 10:37:13', 101, NULL, NULL, 0, 1846121741006647298, '修改部门', 'xgbmBtn', 'dashicons:update-alt', 'header', '', 2, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846380337963446273, '1', 1, '2024-10-16 10:39:11', 101, 1, '2024-10-16 10:40:07', 0, 1846121741006647298, '新增员工', 'xzygBtn', 'ep:plus', 'header', '', 1, 'return {\r\n type:\"primary\"\r\n}\r\n', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846381279303675905, '1', 1, '2024-10-16 10:42:56', 101, 1, '2024-10-25 16:26:57', 0, 1846121741006647298, '设置', 'szBtn', 'ic:baseline-settings', 'menu', 'primary', 3, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846381420626554882, '1', 1, '2024-10-16 10:43:29', 101, 1, '2024-10-25 16:26:51', 0, 1846121741006647298, '编辑', 'bjBtn', 'material-symbols:edit', 'menu', 'primary', 2, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1846381567049707521, '1', 1, '2024-10-16 10:44:04', 101, NULL, '2024-10-25 16:39:28', 1, 1846121741006647298, '详情', 'xqBtn', 'icon-park-solid:right-c', 'menu', 'primary', 1, 'return {\r\n plain:true\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1847205027749433345, '1', 1, '2024-10-18 17:16:13', 101, NULL, NULL, 0, 1847094468974710786, '详情', 'xqBtn', 'ep:view', 'menu', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1847523426450931713, '1', 1, '2024-10-19 14:21:25', 101, NULL, '2024-10-19 14:49:19', 1, 1838392378859741185, '测试按钮', 'test_btn', '', 'menu', '', 1, 'return {\r\n text: false,\r\n plain: true,\r\n size:\'small\'\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848899104144531458, '1', 1, '2024-10-23 09:27:52', 101, NULL, NULL, 0, 1848649270435160066, '文章标签一', 'wz1_btn', '', 'menu', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848900214192250882, '1', 1, '2024-10-23 09:32:17', 101, NULL, NULL, 0, 1848649270435160066, '文章标签二', 'wz2_btn', '', 'menu', '', 2, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848900362037272578, '1', 1, '2024-10-23 09:32:52', 101, 1, '2024-10-23 09:34:19', 0, 1848649270435160066, '文章标签三', 'wz3_btn', '', 'menu', '', 1, 'return {\r\n color: \'#626aef\',\r\n handleShow: (row) => { //按钮显隐增强 row:当前行数据(row 仅操作列按钮可用)\r\n return true //true 显示 false 隐藏\r\n }\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848915036577374210, '1', 1, '2024-10-23 10:31:11', 101, 1, '2024-10-23 10:31:34', 0, 1838392378859741185, '确认', 'qrBtn', 'ep:circle-check-filled', 'menu', 'success', 10, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848934789362655233, '1', 1, '2024-10-23 11:49:40', 101, 1, '2024-10-23 11:49:48', 0, 1838494733815050242, '确认', 'qrBtn', 'ep:circle-check-filled', 'menu', 'success', 8, 'return {\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848969279652929538, '1', 1, '2024-10-23 14:06:43', 101, NULL, NULL, 0, 1838505719016001538, '开通', 'ktBtn', 'ep:circle-check-filled', 'menu', 'success', 8, 'return {\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1848972631954595842, '1', 1, '2024-10-23 14:20:02', 101, NULL, NULL, 0, 1840646327436394498, '确认', 'qrBtn', 'ep:circle-check-filled', 'menu', 'success', 8, 'return {\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1849355446588186626, '1', 1, '2024-10-24 15:41:12', 101, 1, '2024-10-24 15:46:01', 0, 1838824808796180481, '确认', 'qrBtn', 'ep:circle-check-filled', 'menu', '', 8, 'return {\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1849732468857225217, '1', 1, '2024-10-25 16:39:21', 101, 1, '2024-10-25 16:45:29', 0, 1846121741006647298, '详情', 'xqBtn', 'icon-park-solid:right-c', 'menu', 'primary', 1, 'return {\r\n plain: true,\r\n text: false,\r\n size: \"small\"\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1852173973896519682, '1', 1, '2024-11-01 10:21:02', 101, NULL, '2024-11-01 11:29:36', 1, 1851205230887346177, '创建团队', 'cjtd_btn', 'ep:plus', 'header', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1852187827644882946, '1', 1, '2024-11-01 11:16:05', 101, 1, '2024-11-01 11:16:50', 0, 1851205230887346177, '详情', 'xq_btn', 'icon-park-solid:right-c', 'menu', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1852250931858731010, '1', 1, '2024-11-01 15:26:50', 101, 1, '2024-11-01 15:29:05', 0, 1851796249232203778, '上传图片', 'sctpBtn', 'ep:message-box', 'header', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1852651526273798145, '1', 1, '2024-11-02 17:58:39', 101, NULL, NULL, 0, 1852624838914699265, '电话', 'dh_btn', 'iconamoon:phone-light', 'menu', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1852651964775698434, '1', 1, '2024-11-02 18:00:24', 101, 1, '2024-11-02 18:05:45', 0, 1852624838914699265, '消息', 'xx_btn', 'lineicons:message-2', 'menu', '', 2, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853249940137078786, '1', 1, '2024-11-04 09:36:32', 101, NULL, NULL, 0, 1852624838914699265, '邮件', 'yj_btn', 'mingcute:mail-line', 'menu', '', 3, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853250447740137473, '1', 1, '2024-11-04 09:38:33', 101, 1, '2024-11-04 09:49:52', 0, 1852624838914699265, '标记', 'bj_btn', 'streamline:star-1', 'menu', '', 4, 'return {\r\n handleShow: (row) => { //按钮显隐增强 row:当前行数据(row 仅操作列按钮可用)\r\n if(row.lx == \'1\' || !row.lx){\r\n return true\r\n }else{\r\n return false\r\n }\r\n // return true //true 显示 false 隐藏\r\n }\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853253734736490498, '1', 1, '2024-11-04 09:51:37', 101, 1, '2024-11-04 09:54:14', 0, 1852624838914699265, '标记', 'bj_two_btn', 'streamline:star-1-solid', 'menu', '', 4, 'return {\r\n handleShow: (row) => { //按钮显隐增强 row:当前行数据(row 仅操作列按钮可用)\r\n return row.lx == \'2\' ? true : false\r\n // return true //true 显示 false 隐藏\r\n }\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853678913237192706, '1', 1, '2024-11-05 14:01:07', 101, NULL, NULL, 0, 1853269839533273090, '新建报告', 'xjbg_btn', 'ep:plus', 'header', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853679722167439362, '1', 1, '2024-11-05 14:04:20', 101, 1, '2024-11-05 14:05:50', 0, 1853269839533273090, '编辑', 'bj_btn', 'uil:pen', 'menu', 'primary', 10, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1853703435008045058, '1', 1, '2024-11-05 15:38:34', 101, 1, '2024-11-05 15:38:45', 0, 1853269839533273090, '详情', 'xq_btn', 'icon-park-outline:right-c', 'menu', 'primary', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1854403667601633281, '1', 1, '2024-11-07 14:01:02', 101, NULL, NULL, 0, 1854048263491252226, '详情', 'xqBtn', 'ep:arrow-right-bold', 'menu', 'primary', 1, '', 'Y', 'Y'); +INSERT INTO `lowcode_dbform_button` VALUES (1854695849298472962, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854695846278574082, '文章标签一', 'wz1_btn', '', 'menu', '', 1, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1854695849306861570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854695846278574082, '文章标签二', 'wz2_btn', '', 'menu', '', 2, '', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1854695849306861571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854695846278574082, '文章标签三', 'wz3_btn', '', 'menu', '', 1, 'return {\r\n color: \'#626aef\',\r\n handleShow: (row) => { //按钮显隐增强 row:当前行数据(row 仅操作列按钮可用)\r\n return true //true 显示 false 隐藏\r\n }\r\n}', 'Y', 'N'); +INSERT INTO `lowcode_dbform_button` VALUES (1866661316941139970, '1', 1, '2024-12-11 09:48:33', 101, NULL, '2024-12-11 09:48:41', 1, 1831577841380671489, 'cs', 'cs', '', 'menu', '', 1, '', 'Y', 'N'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_enhance_java +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_enhance_java`; +CREATE TABLE `lowcode_dbform_enhance_java` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `button_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮编码', + `java_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'java类型;spring class http online_edit', + `java_class_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'java类路径', + `online_script` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '在线脚本', + `active_status` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生效状态;N=不生效 Y=生效', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `list_result_handle_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '结果处理类型', + `sort` int(0) NULL DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_button_code`(`button_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-JAVA增强' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_enhance_java +-- ---------------------------- +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833035675606355971, '1', 1, '2024-09-09 14:52:16', 101, NULL, '2024-09-14 11:11:40', 1, 1833031105253642242, 'page', 'spring', 'studentAfterEnhancePage', '', 'N', '分页-后置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833035807039066114, '1', 1, '2024-09-09 14:52:47', 101, NULL, '2024-09-14 11:11:38', 1, 1833031105253642242, 'page', 'spring', 'studentBeforeEnhancePage', '', 'Y', '分页-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833036056218472451, '1', 1, '2024-09-09 14:53:47', 101, NULL, '2024-09-14 11:11:37', 1, 1833031105253642242, 'page', 'spring', 'studentAroundEnhancePage', '', 'N', '分页-环绕增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833389110298140675, '1', 1, '2024-09-10 14:16:41', 101, NULL, '2024-09-14 11:11:35', 1, 1833031105253642242, 'add', 'spring', 'studentBeforeEnhanceAdd', '', 'Y', '新增-后置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833389368671461377, '1', 1, '2024-09-10 14:17:43', 101, NULL, '2024-09-14 11:11:33', 1, 1833031105253642242, 'edit', 'spring', 'studentBeforeEnhanceEdit', '', 'Y', '编辑-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833389499495997442, '1', 1, '2024-09-10 14:18:14', 101, NULL, '2024-09-14 11:11:31', 1, 1833031105253642242, 'detail', 'spring', 'studentAfterEnhanceDetail', '', 'N', '详情-后置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833389642022641667, '1', 1, '2024-09-10 14:18:48', 101, NULL, '2024-09-14 11:11:30', 1, 1833031105253642242, 'delete', 'spring', 'studentAfterEnhanceDelete', '', 'Y', '删除-后置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833389774365515778, '1', 1, '2024-09-10 14:19:20', 101, NULL, '2024-09-14 11:11:28', 1, 1833031105253642242, 'list', 'spring', 'studentBeforeEnhanceList', '', 'Y', '不分页-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833390033032437762, '1', 1, '2024-09-10 14:20:21', 101, NULL, '2024-09-14 11:11:27', 1, 1833031105253642242, 'import', 'spring', 'studentBeforeEnhanceImport', '', 'Y', '导入-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833390170890821634, '1', 1, '2024-09-10 14:20:54', 101, NULL, '2024-09-14 11:11:25', 1, 1833031105253642242, 'export', 'spring', 'studentBeforeEnhanceExport', '', 'Y', '导出-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833390308086505475, '1', 1, '2024-09-10 14:21:27', 101, NULL, '2024-09-14 11:11:23', 1, 1833031105253642242, 'summary', 'spring', 'studentBeforeEnhanceSummary', '', 'Y', '统计-前置置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1833781066052399106, '1', 1, '2024-09-11 16:14:11', 101, NULL, '2024-09-14 11:11:21', 1, 1833031105253642242, 'detail', 'spring', 'studentAroundEnhanceDetail', '', 'N', '详情-环绕增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834424732110442498, '1', 1, '2024-09-13 10:51:53', 101, NULL, '2024-09-13 10:54:34', 1, 1833031105253642242, 'throw', 'spring', 'studentThrowEnhancePage', '', 'Y', '分页-异常增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834424786133078018, '1', 1, '2024-09-13 10:52:06', 101, NULL, '2024-09-13 10:54:36', 1, 1833031105253642242, 'throw', 'spring', 'studentThrowEnhancePage', '', 'Y', '分页-异常增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834425288719839234, '1', 1, '2024-09-13 10:54:05', 101, NULL, '2024-09-13 10:54:41', 1, 1833031105253642242, 'throw', 'spring', 'studentThrowEnhancePage', '', 'Y', '分页-异常增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834431240382619649, '1', 1, '2024-09-13 11:17:44', 101, NULL, '2024-09-14 11:11:19', 1, 1833031105253642242, 'page', 'spring', 'studentThrowEnhancePage', '', 'Y', '分页-异常增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834530746730246145, '1', 1, '2024-09-13 17:53:09', 101, NULL, '2024-09-13 17:55:57', 1, 1833031105253642242, 'detail', 'spring', 'studentBeforeEnhanceDetail', '', 'Y', '详情-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834531535334834178, '1', 1, '2024-09-13 17:56:17', 101, NULL, '2024-09-14 11:11:18', 1, 1833031105253642242, 'detail', 'spring', 'studentBeforeEnhanceDetail', '', 'N', '详情-前置增强', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834845471322083330, '1', 1, '2024-09-14 14:43:45', 101, NULL, '2024-09-14 15:26:21', 1, 1833031105253642242, 'page', 'spring', 'studentBeforeEnhancePage', '', 'Y', '分页前置', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1834857090940833793, '1', 1, '2024-09-14 15:29:55', 101, NULL, '2024-09-14 16:24:20', 1, 1833031105253642242, 'page', 'spring', 'studentBeforeEnhancePage', '', 'Y', '', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1838844046221701122, '1', 1, '2024-09-25 15:32:39', 101, 1, '2024-09-25 15:33:46', 0, 1833031105253642242, 'page', 'spring', 'studentAfterEnhancePage', '', 'N', '', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1840227339311656962, '1', 1, '2024-09-29 11:09:22', 101, 1, '2024-09-29 14:58:18', 0, 1833031105253642242, 'import', 'spring', 'studentBeforeEnhanceImport', '', 'N', '', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1850780528742133762, '1', 1, '2024-10-28 14:03:59', 101, NULL, '2024-10-30 11:57:59', 1, 1850723645460291586, 'list', 'spring', 'exampleMainDateAfterEnhanceList', '', 'Y', '后置', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1851199590198628354, '1', 1, '2024-10-29 17:49:11', 101, NULL, '2024-10-30 11:57:57', 1, 1850723645460291586, 'list', 'spring', 'exampleMainDateBeforeEnhanceList', '', 'Y', '前置', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1851202631190618114, '1', 1, '2024-10-29 18:01:16', 101, 1, '2024-10-29 18:12:49', 0, 1850723645460291586, 'list', 'spring', 'exampleMainDateAroundEnhanceList', '', 'Y', '环绕', '0', 1); +INSERT INTO `lowcode_dbform_enhance_java` VALUES (1853331117661413378, '1', 1, '2024-11-04 14:59:06', 101, NULL, NULL, 0, 1833031105253642242, 'list', 'spring', 'studentAroundEnhancePage', '', 'Y', '环绕', '0', 1); + +-- ---------------------------- +-- Table structure for lowcode_dbform_enhance_js +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_enhance_js`; +CREATE TABLE `lowcode_dbform_enhance_js` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `js_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'js增强类型;list form', + `js_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'js增强内容', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_js_type`(`js_type`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-JS增强' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_enhance_js +-- ---------------------------- +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833053739351044097, '1', 1, '2024-09-09 16:04:03', 101, 1, '2024-10-30 14:26:19', 0, 1851509263837597697, 'js', 'return {\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833057424873385985, '1', 1, '2024-09-09 16:18:41', 101, 1, '2024-09-10 10:07:07', 0, 1833055212327694337, 'js', ''); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833320023661780994, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:13:06', 0, 1833320018125299714, 'js', '\n//初始化来访记录表\n\n//初始化控件\nuseFun.controlInit(\'TableView\', \'tableView_visitor\', {\n tableId: \'1833326225296814081\', //表单开发id\n fixedSearch: {}, //固定表格搜索值(不会被覆盖)\n enhanceData: {}, //传递给表格js增强内部调用配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n enhanceData: {}, //传递给表格js增强内部调用配置\n popOption: { //弹窗配置\n title: \'测试控件\', //标题\n width: \'60%\', //弹窗宽度\n fullscreen: false, //是否全屏\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { tableView_visitor } = Vue.toRefs(rendControlData.value)\n\n\nreturn {\n addVisitor(row) {\n const controlData = tableView_visitor.value.params //TableView的配置\n controlData.fixedSearch.user_id = row.id\n tableView_visitor.value.show = true //显示TableView\n }\n}\n\n\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833326383283662850, '1', 1, '2024-09-10 10:07:26', 101, 1, '2024-12-03 11:42:45', 0, 1833055212327694337, 'js', '\nreturn {\n initOption() { //表格显示前执行\n //禁用年龄\n useFun.setPropConfig(\'age\', { disabled: true, controls: false })\n //选择出生日期后自动填写年龄\n useFun.setPropConfig(\'birth_date\', {\n change: ({ value, column }) => { //监听值变化\n let age = null\n if (value) {\n const currDate = new Date()\n const birthDate = new Date(value)\n age = currDate.getFullYear() - birthDate.getFullYear();\n if (currDate.getMonth() < birthDate.getMonth() ||\n (currDate.getMonth() === birthDate.getMonth() && currDate.getDate() < birthDate.getDate())) {\n age--;\n }\n }\n tableForm.value.age = age\n },\n })\n },\n cellStyle({ row, column, rowIndex, columnIndex }) { //列样式\n //设置姓名列字体颜色、鼠标样式\n if (column.columnKey == \'name\') {\n return {\n color: \'#409EFF\',\n cursor: \'pointer\',\n }\n }\n },\n cellClick(row, column, cell, event) { //单元格单击\n //点击姓名打开详情\n if (column.columnKey == \'name\') {\n crudRef.value.rowEdit(row, row.$index)\n }\n },\n selectable(row, index) { //控制行是否可勾选\n //小于30岁的不能勾选\n if (row.age < 30) return false\n return true\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833331785496858626, '1', 1, '2024-09-10 10:28:54', 101, NULL, NULL, 0, 1833326225296814081, 'js', 'return {\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if ([\'add\', \'edit\'].includes(type)) apiData.user_id = props.fixedSearch.user_id\n resolve(apiData)\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1833347204588834817, '1', 1, '2024-09-10 11:30:10', 101, 1, '2024-10-30 09:42:59', 0, 1833323260582391810, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.hideHeader == \'disabled\') {\n tableOption.value.header = false\n tableOption.value.border = false\n tableOption.value.selection = false\n buttonObj.value.menu[\'delBtn\'].display = false\n buttonObj.value.menu[\'editBtn\'].display = false\n buttonObj.value.menu[\'viewBtn\'].label = \'详情\'\n }\n\n useFun.setPropConfig(\'client_status\', {\n render: (optins) => {\n let { row, column } = optins //row是当行数据 column是字典数据\n let statusTitle = \'\'\n let status = row.client_status\n if (status && column.dicData[status - 1]) {\n statusTitle = column.dicData[status - 1].label\n let bgColor = \'#52C1F5\'\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: bgColor, marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, statusTitle])\n }\n return \'\'\n\n }\n })\n },\n}\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1834136631567851522, NULL, NULL, NULL, NULL, 1, '2024-09-13 18:03:42', 0, 1834136609367400450, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.hideHeader == \'disabled\') {\n tableOption.value.selection = false\n }\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n if (data.length > 0) {\n data.forEach(ele => {\n ele.tabs_card_percentage_complete = ele.tabs_card_percentage_complete + \'%\'\n ele.tabs_card_target_money = \'¥\' + this.changeTwoDecimal_f(ele.tabs_card_target_money)\n ele.tabs_card_accomplish_money = \'¥\' + this.changeTwoDecimal_f(ele.tabs_card_accomplish_money)\n ele.tabs_card_average_price = \'¥\' + this.changeTwoDecimal_f(ele.tabs_card_average_price)\n })\n }\n resolve(data)\n })\n },\n changeTwoDecimal_f(x) {\n var f_x = parseFloat(x);\n if (isNaN(f_x)) {\n return false;\n }\n var f_x = Math.round(x * 100) / 100;\n var s_x = f_x.toString();\n var pos_decimal = s_x.indexOf(\'.\');\n if (pos_decimal < 0) {\n pos_decimal = s_x.length;\n s_x += \'.\';\n }\n while (s_x.length <= pos_decimal + 2) {\n s_x += \'0\';\n }\n return s_x;\n },\n sjcToDate(date) {\n var newDate = new Date(date);\n let nian = newDate.getFullYear();\n let yue = (newDate.getMonth() + 1 < 10 ? \'0\' + (newDate.getMonth() + 1) : newDate.getMonth() + 1);\n return nian + \'年\' + yue + \'月\'\n },\n summaryTopFormatting(data) { //表格头部统计格式化\n if (data[0] && data[0].chartOption) {\n\n let echartData = data[0].chartOption\n echartData.xAxis.data = echartData.xAxis.data.map(item => {\n return this.sjcToDate(parseInt(item))\n })\n let legendDataList = []\n\n let seriesToLegend = echartData.series[0].data;\n if (seriesToLegend.length > 0) {\n legendDataList = seriesToLegend[0].split(\' \')\n }\n echartData.legend = {\n data: legendDataList,\n }\n\n echartData.series = []\n\n let targetList = []\n let accomplishList = []\n\n if (data[0].rawData) {\n data[0].rawData.forEach(rawEle => {\n targetList.push(rawEle.target)\n accomplishList.push(rawEle.accomplish)\n })\n }\n\n legendDataList.forEach(ele => {\n let sData = {\n name: ele,\n type: \'bar\',\n data: []\n }\n echartData.series.push(sData)\n })\n\n echartData.series[0].data = targetList\n echartData.series[0].color = \'#26A8FF\'\n echartData.series[1].data = accomplishList\n echartData.series[1].color = \'#FF8E9D\'\n\n data[0].chartStyle.height = \'380px\'\n }\n return data\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1834409013264142338, '1', 1, '2024-09-13 09:49:25', 101, NULL, NULL, 0, 1834136609367400450, 'scss', '// 表格样式\n.low-table__1834136609367400450 {\n\n .summary-top-content {\n .content-item {\n .item-title {\n display: none;\n }\n }\n }\n \n}\n\n// 表单弹窗样式\n.low-table__dialog__1834136609367400450 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1836304148777742338, '1', 1, '2024-09-18 15:20:01', 101, 1, '2024-09-19 14:33:01', 0, 1836298963389067265, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.hideHeader == \'disabled\') {\n tableOption.value.selection = false\n }\n },\n summaryBottomFormatting(sums, columns, tableData) { //表格底部统计格式化\n let newSums = sums.map(item => {\n if (item == \'-\') {\n return \'\'\n } else {\n\n let je = item.children[0].children[1].children\n if (isNaN(parseFloat(je))) return false\n let newJe = Math.round(je * 100) / 100\n let newJeString = newJe.toString()\n let newJeLength = newJeString.indexOf(\'.\')\n if (newJeLength < 0) {\n newJeLength = newJeString.length;\n newJeString += \'.\'\n }\n while (newJeString.length <= newJeLength + 2) {\n newJeString += \'0\'\n }\n item.children[0].children[1].children = \'¥\' + newJeString\n return item\n }\n })\n console.log(newSums, tableData, \'ahgahgi\')\n\n return newSums\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1836318545076105218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1836318516001189890, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.hideHeader == \'disabled\') {\n tableOption.value.selection = false\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1836649648873832449, '1', 1, '2024-09-19 14:12:54', 101, 1, '2024-11-11 15:18:27', 0, 1836298963389067265, 'scss', '// 表格样式\n.low-table__1836298963389067265 {\n padding: 0 20px;\n\n .el-form {\n border: 1px solid #f2f2f2;\n\n .el-table__inner-wrapper {\n &::before {\n height: 0;\n }\n\n .el-table__footer-wrapper {\n .el-table__footer {\n height: 55px;\n background-color: rgba(245, 245, 245, 1);\n\n td {\n border-right: none;\n }\n\n td:last-child {\n span {\n font-size: 16px;\n\n &:last-child {\n color: red;\n font-weight: bold;\n }\n }\n }\n }\n }\n\n .el-table__row {\n height: 80px;\n }\n }\n }\n\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1836298963389067265 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1837028238614335490, '1', 1, '2024-09-20 15:17:17', 101, 1, '2024-11-11 15:20:58', 0, 1836318516001189890, 'scss', '// 表格样式\n.low-table__1836318516001189890 {\n padding: 0 20px;\n\n .el-form {\n border: 1px solid #f2f2f2;\n\n .el-table__inner-wrapper {\n &::before {\n height: 0;\n }\n\n .el-table__row {\n height: 55px;\n }\n }\n }\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1836318516001189890 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838397485169008642, '1', 1, '2024-09-24 09:58:11', 101, 1, '2024-10-23 10:58:18', 0, 1838392378859741185, 'js', '//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_61357\', {\n controlName: \'stepverticalform\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowexample/form/step/StepVerticalForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'新增客户\', //标题\n width: \'\', //弹窗宽度\n fullscreen: true, //是否全屏\n footerBtn: [ //底部按钮配置\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\nlet Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\nreturn {\n\n initOption() { //表格显示前执行\n useFun.setPropConfig(\'customer_status\', {\n render: (optins) => {\n let { row, column } = optins\n let status = \'\'\n let customer_status = row.customer_status\n column.dicData.some(item => {\n if (item.value == customer_status) {\n status = item.label\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: \'#52C1F5\', marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, status])\n }\n })\n },\n\n add_customer() {\n //控件调用\n const { controlView_61357 } = Vue.toRefs(rendControlData.value)\n controlView_61357.value.show = true //显示ControlView\n const controlData = controlView_61357.value.params //ControlView的配置\n controlData.controlParams = {\n addFun: (formData) => {\n useFun.requestApi(\'post\', \'/jeelowcode/dbform-data/save/1838392378859741185\', {\n data: formData\n }).then(res => {\n message.success(\'保存成功\')\n controlView_61357.value.show = false\n useFun.refreshChange()\n })\n }\n }\n },\n qrBtn() {\n message.success(\'已确认\')\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise(async (resolve, reject) => {\n if (type == \'edit\') {\n await useFun.dynamicImport(\'store/modules/user\').then(module => {\n if (module) {\n const userStore = module.useUserStoreWithOut()\n apiData.update_user = userStore.user.id\n }\n })\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}\n\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838494758125236225, NULL, NULL, NULL, NULL, 1, '2024-10-24 15:45:16', 0, 1838494733815050242, 'js', 'return {\n initOption() { //表格显示前执行\n buttonObj.value.header.addBtn.label = \'新建\'\n buttonObj.value.menu.delBtn.params.size = \"small\"\n buttonObj.value.menu.editBtn.params.size = \"small\"\n\n useFun.setPropConfig(\'xs\', {\n cell: true,\n dicData: [\n { label: \'关\', value: 0 },\n { label: \'开\', value: 1 }\n ]\n })\n\n useFun.setPropConfig(\'zt\', {\n render: (optins) => {\n let { row, column } = optins\n let status = \'\'\n let zt = row.zt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == zt) {\n status = item.label\n zt == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (status) return h(\'span\', { style: { display: \'flex\', color: \'#999999\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, status])\n }\n })\n\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n data.map(item => {\n item.$cellEdit = true\n })\n resolve(data)\n })\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.xs = \'1\'\n apiData.zt = \'1\'\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838510799928754177, '1', 1, '2024-09-24 17:28:27', 101, 1, '2024-10-23 14:19:11', 0, 1838505719016001538, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n buttonObj.value.header.addBtn.label = \'新建\'\n buttonObj.value.menu.delBtn.params.size = \"small\"\n buttonObj.value.menu.editBtn.params.size = \"small\"\n useFun.setPropConfig(\'bh\', { fixed: true })\n useFun.setPropConfig(\'company_name\', { fixed: true })\n\n useFun.setPropConfig(\'customer_star\', {\n render: ({ row }) => {\n if (Icon) {\n const starList = []\n for (let index = 0; index < 5; index++) {\n starList.push(h(Icon, { size: 14, color: row.customer_star > index ? \'#F56C6C\' : \'#999\', icon: row.customer_star > index ? \'streamline:star-1-solid\' : \'streamline:star-1\', style: { marginLeft: \'1px\' } }))\n }\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, starList)\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'customer_status\', {\n render: (optins) => {\n let { row, column } = optins\n let status = \'\'\n let customer_status = row.customer_status\n column.dicData.some(item => {\n if (item.value == customer_status) {\n status = item.label\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: \'#52C1F5\', marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, status])\n }\n })\n\n },\n ktBtn() {\n message.success(\'已开通\')\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise(async (resolve, reject) => {\n if (type == \'add\') {\n apiData.bh = \'202410001\'\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838749951945408514, '1', 1, '2024-09-25 09:18:46', 101, 1, '2024-10-23 14:16:50', 0, 1838748849153835009, 'js', 'return {\n initOption() { //表格显示前执行\n buttonObj.value.menu.delBtn.params.size = \"small\"\n buttonObj.value.menu.editBtn.params.size = \"small\"\n //多级表头处理\n const children = []\n const props = [\'khzt\', \'hylx\', \'khly\']\n for (const prop in tableOption.value.column) {\n if (props.includes(prop)) {\n const column = tableOption.value.column[prop]\n column.hide = false\n children.push(column)\n delete tableOption.value.column[prop]\n }\n }\n useFun.setPropConfig(\'djbt\', { children })\n\n //自定义渲染\n useFun.setPropConfig(\'khzt\', {\n render: (optins) => {\n let { row, column } = optins\n let status = \'\'\n let khzt = row.khzt\n column.dicData.some(item => {\n if (item.value == khzt) {\n status = item.label\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: \'#52C1F5\', marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, status])\n }\n })\n console.log(tableOption.value)\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.bh = \'202010001\'\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838756731131854849, '1', 1, '2024-09-25 09:45:42', 101, 1, '2024-10-24 09:39:35', 0, 1838754174162501633, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.defaultExpandAll = true\n tableOption.value.menuWidth = 250\n buttonObj.value.menu.addChild.label = \'添加\'\n buttonObj.value.header.addBtn.label = \'新建\'\n useFun.setPropConfig(\'status\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.status\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\' } }, [radius, reStatus])\n }\n })\n },\n\n\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise(async (resolve, reject) => {\n if (type == \'add\') {\n apiData.classification_number = \'202410001\'\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838824839188107265, NULL, NULL, NULL, NULL, 1, '2024-10-25 13:47:41', 0, 1838824808796180481, 'js', 'return {\n initOption() { //表格显示前执行\n buttonObj.value.menu.qrBtn.type = \'success\'\n buttonObj.value.header.addBtn.label = \'新建客户\'\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838827089096658945, '1', 1, '2024-09-25 14:25:16', 101, 1, '2024-10-30 17:16:42', 0, 1838141821641318402, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n buttonObj.value.menu.viewBtn.label = \"详情\"\n buttonObj.value.header.addBtn.label = \'新建专题\'\n //点赞等图标的点击事件\n const clickFun = (row, type) => {\n tableData.value[row.$index][type] = (row[type] || 0) + 1\n }\n\n tableOption.value.column.num_list = {\n label: \'\',\n display:false,\n render: ({ row }) => {\n if (Icon) {\n const opData = [\n { key: \'dz_num\', icon: \'uiw:like-o\' },\n { key: \'sc_num\', icon: \'solar:star-outline\' },\n { key: \'pl_num\', icon: \'fluent:comment-16-regular\' },\n ]\n const hList = opData.map(item => {\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', cursor: \'pointer\' }, onClick: () => clickFun(row, item.key) },\n [\n h(Icon, { icon: item.icon, size: 12 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row[item.key] || 0),\n ])\n })\n\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', columnGap: \'15px\', fontSize: \'12px\', color: \'#999\' },\n }, hList)\n }\n return \'\'\n }\n }\n tableOption.value.column.time_test = {\n display:false,\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, useFun.formatPast(row.create_time, \'YYYY-MM-DD\')),\n ])\n }\n return \'\'\n }\n }\n useFun.setPropConfig(\'zt_title\', {\n searchLabel: \'\',\n searchLabelWidth: 1,\n searchSpan: 5,\n searchPlaceholder: \'输入搜索关键字\',\n })\n useFun.setPropConfig(\'zt_type\', {\n searchLabel: \'\',\n searchLabelWidth: 10,\n searchSpan: 5,\n searchPlaceholder: \'分类名称\',\n dicData: [\n { label: \'设计方案\', value: \'1\' },\n { label: \'模板示例\', value: \'2\' },\n ]\n })\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838830826053750785, '1', 1, '2024-09-25 14:40:07', 101, 1, '2024-10-23 15:09:23', 0, 1838141821641318402, 'scss', '// 表格样式\n.low-table__1838141821641318402 {\n .avue-crud__grid__content {\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n\n &.zt_img {\n width: 100%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n margin-top: 10px;\n font-size: 14px;\n color: #333;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n position: absolute;\n left: 16px;\n bottom: 5px;\n width: 94px;\n }\n\n &.menu {\n margin-top: 4px;\n .el-button {\n color: #999999;\n\n &:hover {\n color: #666666;\n background-color: rgba(255, 255, 255, 0);\n }\n }\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838141821641318402 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1838857897740099586, '1', 1, '2024-09-25 16:27:42', 101, 1, '2024-10-23 15:23:06', 0, 1838855934516420610, 'scss', '// 表格样式\n.low-table__1838855934516420610 {\n .avue-crud__grid__content {\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n font-family: \'微软雅黑\';\n\n &.crad_img {\n position: absolute;\n left: 16px;\n top: 16px;\n width: calc(100% - 16px);\n\n img {\n width: 60px;\n height: 60px;\n }\n }\n\n &.crad_title,\n &.card_describe {\n padding-left: 80px;\n }\n\n &.crad_title {\n .avue-crud__grid__value {\n font-size: 16px;\n font-weight: bold;\n color: #666;\n }\n }\n\n &.card_describe {\n margin-top: 5px;\n color: #999;\n\n .avue-crud__grid__value {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n }\n }\n\n &.menu {\n padding: 0;\n\n .avue-crud__grid__value {\n width: 100%;\n\n .avue-crud__menu {\n width: 100%;\n\n .table-button {\n\n .menu-button {\n height: 40px;\n justify-content: space-around;\n\n .el-button {\n font-size: 12px;\n color: #999999;\n\n &:hover {\n color: #666666;\n background-color: rgba(255, 255, 255, 0);\n }\n }\n }\n\n\n }\n\n\n }\n }\n\n\n\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838855934516420610 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1839483468484493314, '1', 1, '2024-09-27 09:53:29', 101, NULL, '2024-11-14 14:32:08', 0, 1838392378859741185, 'scss', '// 表格样式\n.low-table__1838392378859741185 {\n\n .avue-crud__search {\n .avue-form__group {\n .no-print {\n margin-top: 0px;\n }\n }\n }\n\n .el-card__body {\n .avue-crud__header {\n .avue-crud__right {\n .avue-crud__searchBtn {\n display: none;\n }\n }\n }\n\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n .el-table__header {\n .el-table__cell {\n height: 55px;\n background-color: #F2F2F2;\n\n span {\n color: #666666;\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n height: 55px;\n }\n\n .cell>span {\n color: #666666;\n }\n }\n }\n }\n\n .avue-crud__pagination {\n span {\n color: #999999;\n }\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838392378859741185 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1839486029383909377, '1', 1, '2024-09-27 10:03:40', 101, 1, '2024-10-24 15:43:38', 0, 1838494733815050242, 'scss', '// 表格样式\n.low-table__1838494733815050242 {\n\n .el-card__body {\n\n .avue-crud__tip,\n .avue-crud__header .avue-crud__right {\n display: none;\n }\n\n .el-table--fit {\n border: 1px solid #ebeef5;\n }\n\n .el-form {\n .el-table__header {\n .el-table__cell {\n height: 55px;\n background-color: #F9F9F9;\n\n span {\n color: #666666;\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__row--striped {\n .el-table__cell {\n background-color: #F5F5F5;\n }\n }\n\n .el-table__row {\n .el-table__cell {\n height: 70px;\n padding: 0;\n\n .cell {\n .table-cell-upload {\n .avue-crud__img {\n width: 55px;\n height: 55px;\n border-radius: 50%;\n }\n }\n\n .el-button--primary {\n border: 1px solid #409EFF;\n background-color: #40a0ff1f;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #409EFF;\n color: #fff;\n }\n }\n\n .el-button--success {\n border: 1px solid #67C23A;\n background-color: #67c23a1d;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #67C23A;\n color: #fff;\n }\n }\n\n .el-button--danger {\n border: 1px solid #F67E7E;\n background-color: #f67e7e15;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #F67E7E;\n color: #fff;\n }\n }\n }\n\n }\n }\n\n .cell>span {\n color: #666666;\n }\n }\n }\n }\n\n .avue-crud__pagination {\n span {\n color: #999999;\n }\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838494733815050242 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1839543591135473665, '1', 1, '2024-09-27 13:52:24', 101, 1, '2024-10-23 14:41:01', 0, 1838505719016001538, 'scss', '// 表格样式\n.low-table__1838505719016001538 {\n .el-card__body {\n\n .avue-crud__tip,\n .avue-crud__header .avue-crud__right .avue-crud__searchBtn {\n display: none;\n }\n\n .el-form {\n\n .el-table__header {\n .el-table__cell {\n height: 55px;\n background-color: #F9F9F9;\n\n span {\n color: #666666;\n }\n }\n\n }\n\n\n .el-table__body-wrapper {\n\n .el-table__row--striped {\n .el-table__cell {\n background-color: #F5F5F5;\n }\n }\n\n .el-table__row {\n .el-table__cell {\n height: 55px;\n padding: 0;\n\n .cell {\n .el-button--primary {\n border: 1px solid #409EFF;\n background-color: #40a0ff1f;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #409EFF;\n color: #fff;\n }\n }\n\n .el-button--success {\n border: 1px solid #67C23A;\n background-color: #67c23a1d;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #67C23A;\n color: #fff;\n }\n }\n\n .el-button--danger {\n border: 1px solid #F67E7E;\n background-color: #f67e7e15;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #F67E7E;\n color: #fff;\n }\n }\n }\n\n .cell>span {\n color: #666666;\n }\n }\n }\n }\n }\n }\n\n\n\n\n .avue-crud__pagination {\n span {\n color: #999999;\n }\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838505719016001538 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1839544988077780993, '1', 1, '2024-09-27 13:57:57', 101, 1, '2024-10-23 14:15:13', 0, 1838748849153835009, 'scss', '// 表格样式\n.low-table__1838748849153835009 {\n .el-card__body {\n .avue-crud__tip,\n .avue-crud__header .avue-crud__right .avue-crud__searchBtn {\n display: none;\n }\n\n .el-form {\n .el-table__header {\n .el-table__cell {\n span {\n color: #666666;\n }\n }\n\n }\n\n\n .el-table__body-wrapper {\n .el-table__row--striped {\n .el-table__cell {\n background-color: #F5F5F5;\n }\n }\n\n .el-table__row {\n .el-table__cell {\n .cell {\n .el-button--primary {\n border: 1px solid #409EFF;\n background-color: #40a0ff1f;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #409EFF;\n color: #fff;\n }\n }\n\n .el-button--success {\n border: 1px solid #67C23A;\n background-color: #67c23a1d;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #67C23A;\n color: #fff;\n }\n }\n\n .el-button--danger {\n border: 1px solid #F67E7E;\n background-color: #f67e7e15;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #F67E7E;\n color: #fff;\n }\n }\n }\n\n .cell>span {\n color: #666666;\n }\n }\n }\n }\n }\n }\n\n .avue-crud__pagination {\n span {\n color: #999999;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838748849153835009 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1839558426837397505, '1', 1, '2024-09-27 14:51:21', 101, 1, '2024-10-23 14:49:38', 0, 1838754174162501633, 'scss', '// 表格样式\n.low-table__1838754174162501633 {\n\n .avue-crud__tip,\n .avue-crud__header .avue-crud__right .avue-crud__searchBtn {\n display: none;\n }\n\n .el-table--fit {\n border: 1px solid #ebeef5;\n }\n\n .avue-crud .el-button.is-text {\n height: 25px;\n border: 1px solid;\n font-size: 12px;\n padding: 0px 8px;\n background: #f0f7ff;\n }\n\n .avue-crud .el-button.is-text:frist-child {\n margin-left: 0;\n }\n\n .avue-crud .el-button.is-text:hover {\n background: #409eff;\n color: #fff;\n }\n\n .avue-crud .el-button.is-text:last-child {\n background: #fef3f3;\n }\n\n .avue-crud .el-button.is-text:last-child:hover {\n background: #f56c6c;\n color: #fff;\n }\n\n .justify-center {\n gap: 5px;\n justify-content: flex-start;\n }\n\n th {\n height: 55px;\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n font-size: 14px;\n background: #ccc;\n\n .cell {\n text-align: left;\n }\n }\n\n .avue-crud .el-table th.el-table__cell {\n color: #666;\n }\n\n td {\n height: 55px;\n font-family: \'MicrosoftYaHei\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n font-style: normal;\n // text-align: left;\n color: #666;\n font-size: 14px;\n\n .cell {\n text-align: left;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838754174162501633 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840271788504260610, '1', 1, '2024-09-29 14:06:00', 101, 1, '2024-10-19 09:32:25', 0, 1840268794366795777, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.buttonType == \'hidden\') {\n tableOption.value.header = false\n buttonObj.value.menu.delBtn.display = false\n buttonObj.value.menu.editBtn.display = false\n buttonObj.value.menu.viewBtn.label = \'详情\'\n }\n useFun.setPropConfig(\'approval_status\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.approval_status\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840274927278104578, '1', 1, '2024-09-29 14:18:28', 101, 1, '2024-10-30 10:29:35', 0, 1840268794366795777, 'scss', '// 表格样式\n.low-table__1840268794366795777 {\n .el-table--fit {\n border: 1px solid #ebeef5;\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1840268794366795777 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840578167198744577, '1', 1, '2024-09-30 10:23:26', 101, 1, '2024-10-30 11:48:02', 0, 1840577516125323266, 'scss', '// 表格样式\n.low-table__1840577516125323266 {\n\n .el-checkbox-group>.el-row>.el-col {\n padding-bottom: 0;\n }\n\n .avue-crud__grid__content {\n height: 38px;\n padding: 25px;\n flex-wrap: nowrap;\n border-radius: 0;\n\n &::before {\n display: none;\n }\n\n .avue-crud__grid__item {\n margin-bottom: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__img {\n border-radius: 50%;\n border: 2px solid rgba(240, 242, 245, 1);\n height: 50px;\n width: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n height: 31px;\n\n }\n }\n }\n\n span {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n\n .login_tp {\n width: 75px;\n padding-right: 25px;\n display: flex;\n align-items: center;\n }\n\n .login_address {\n position: absolute;\n left: 100px;\n top: 46px;\n\n span {\n font-weight: 400;\n font-size: 14px;\n color: #999999;\n }\n }\n\n .login_system {\n position: relative;\n top: -5px;\n\n span {\n font-size: 18px;\n font-weight: 700;\n }\n\n }\n\n\n .login_ip {\n position: absolute;\n top: 46px;\n left: 190px;\n\n span {\n font-weight: 400;\n font-size: 14px;\n color: #999999;\n }\n }\n\n .create_time {\n display: flex;\n justify-content: right;\n position: absolute;\n top: 50%;\n right: 15px;\n transform: translate(0, -50%);\n\n span {\n font-weight: 400;\n font-size: 14px;\n color: #999999;\n }\n }\n\n }\n\n .avue-crud__pagination {\n padding-right: 6px;\n\n .el-pagination__total,\n .el-pagination__sizes,\n .el-pagination__jump {\n display: none;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1840577516125323266 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840583515909423105, '1', 1, '2024-09-30 10:44:41', 101, 1, '2024-10-30 11:19:55', 0, 1840577516125323266, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\nreturn {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.header = false\n buttonObj.value.menu.delBtn.display = false\n buttonObj.value.menu.editBtn.display = false\n buttonObj.value.menu.viewBtn.display = false\n tableOption.value.selection = false\n }\n useFun.setPropConfig(\'create_time\', {\n render: ({ row }) => {\n if (Icon) {\n let jssjTitle = useFun.formatPast(row.create_time, \'YYYY-MM-DD HH:mm\')\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'11px\' },\n }, [\n h(Icon, { icon: \'icon-park-outline:time\', size: 14, color: \'#999999\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, jssjTitle),\n ])\n }\n return \'\'\n }\n })\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840643697989468161, '1', 1, '2024-09-30 14:43:50', 101, 1, '2024-09-30 17:13:31', 0, 1840642756645044226, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.menu = false\n buttonObj.value.menu.delBtn.display = false\n buttonObj.value.menu.editBtn.display = false\n buttonObj.value.menu.viewBtn.display = false\n tableOption.value.selection = false\n }\n useFun.setPropConfig(\'status\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.status\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n },\n rowClick(row, column, event) { //行单击\n props.enhanceData.rowClick(row)\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1840644083169181697, '1', 1, '2024-09-30 14:45:22', 101, 1, '2024-10-30 11:49:24', 0, 1840642756645044226, 'scss', '// 表格样式\n.low-table__1840642756645044226 {\n .el-table--fit {\n border: 1px solid #ebeef5;\n }\n\n .el-table__inner-wrapper {\n .el-table__header-wrapper {\n .el-table__header {\n .el-table__cell {\n height: 56px;\n color: #666666;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n background-color: #F2F2F2;\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n height: 55px;\n color: #666666;\n }\n }\n\n &::before {\n height: 0;\n }\n }\n\n .avue-crud__pagination {\n padding-right: 0;\n\n .el-pagination__total,\n .el-pagination__sizes,\n .el-pagination__jump {\n display: none;\n }\n\n .btn-next {\n margin-right: 0;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1840642756645044226 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1843476655385350146, '1', 1, '2024-10-08 10:20:59', 101, 1, '2024-10-30 13:47:52', 0, 1843476389638443010, 'scss', '// 表格样式\n.low-table__1843476389638443010 {\n\n\n .el-checkbox-group>.el-row>.el-col {\n padding-bottom: 0;\n }\n\n .avue-crud__grid__content {\n height: 38px;\n padding: 25px;\n flex-wrap: nowrap;\n border: none;\n border-bottom: 1px solid #e4e7ed;\n border-radius: inherit;\n\n &::before {\n display: none;\n }\n\n .avue-crud__grid__item {\n margin-bottom: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__img {\n border-radius: 50%;\n border: 2px solid rgba(240, 242, 245, 1);\n height: 48px;\n width: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n height: 22px;\n margin-right: 0px !important;\n }\n }\n }\n\n\n .selection,\n .menu {\n display: none;\n }\n\n .title {\n position: absolute;\n left: 85px;\n top: 20px;\n\n .avue-crud__grid__value {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-size: 14px;\n color: #666666;\n font-weight: 700;\n }\n }\n\n .introduce {\n position: absolute;\n left: 85px;\n top: 45px;\n\n .avue-crud__grid__value {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n color: #999999;\n font-size: 14px;\n }\n\n }\n\n .switch {\n position: absolute;\n right: 0px;\n top: 50%;\n transform: translate(0, -50%);\n flex-direction: row-reverse;\n\n .el-form-item {\n margin-bottom: 0;\n\n .el-switch {\n height: revert-layer;\n\n .el-switch__core {\n width: 46px !important;\n height: 23px;\n border-radius: 23px;\n\n // display: flex;\n // align-items: center;\n // justify-content: space-around;\n\n .el-switch__inner {\n justify-content: left;\n }\n }\n }\n }\n }\n }\n}\n\n\n// 表单弹窗样式\n.low-table__dialog__1843476389638443010 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1843476895865769986, '1', 1, '2024-10-08 10:21:57', 101, 1, '2024-10-08 11:36:05', 0, 1843476389638443010, 'js', 'return {\n initOption() { //表格显示前执行\n useFun.setPropConfig(\'switch\', {\n cell: true,\n dicData: [\n { label: \'关\', value: 0 },\n { label: \'开\', value: 1 }\n ]\n })\n\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.selection = false\n }\n\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n data.map(item => {\n item.$cellEdit = true\n })\n resolve(data)\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1844279292464775170, '1', 1, '2024-10-10 15:30:23', 101, NULL, '2024-11-13 15:25:39', 0, 1844275960258019330, 'js', '\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_77755\', {\n controlName: \'OrderFormView\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowexample/form/OrderFormView.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'订单详情\', //标题\n width: \'90%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],//底部按钮配置\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_84087\', {\n formId: \'1844612970545950722\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'returnData\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1844275960258019330\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'测试表单\', //标题\n width: \'40%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],//底部按钮配置\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n\n//控件调用\nconst { controlView_77755, formView_84087 } = Vue.toRefs(rendControlData.value)\n\n// componentRef.value.controlView_77755 ControlView的Ref控件引用\n\nreturn {\n initOption() {\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n tableOption.value.searchShowBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.menuWidth = 250\n useFun.setPropConfig(\'ddje\', {\n formatter: (val, value, label) => {\n return \'¥\' + value\n }\n })\n useFun.setPropConfig(\'ddzt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.ddzt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'#ff9900\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n // useFun.setPropConfig(\'ddje\', {\n // search: true\n // })\n\n\n if (props.enhanceData && props.enhanceData.type && props.enhanceData.type == \'view\') {\n buttonObj.value.menu.bzBtn.display = false\n buttonObj.value.menu.gbBtn.display = false\n tableOption.value.header = false\n tableOption.value.searchBtn = false\n tableOption.value.menuWidth = 100\n tableOption.value.emptyBtn = false\n tableOption.value.column.ddbh.search = false\n tableOption.value.column.ddzt.search = false\n tableOption.value.column.ddlx.search = false\n tableOption.value.column.ddly.search = false\n tableOption.value.column.tjsj.search = false\n\n }\n\n },\n xqBtn() {\n controlView_77755.value.show = true //显示ControlView\n const controlData = controlView_77755.value.params //ControlView的配置\n },\n bzBtn(row) {\n const controlData = formView_84087.value.params //FormView的配置\n controlData.defaultData.type = \'bz\'\n controlData.popOption.title = \'备注订单\'\n formView_84087.value.show = true //显示FormView\n },\n gbBtn(row) {\n const controlData = formView_84087.value.params //FormView的配置\n controlData.defaultData.type = \'gbyy\'\n controlData.popOption.title = \'关闭订单\'\n formView_84087.value.show = true //显示FormView\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1844645372781670401, '1', 1, '2024-10-11 15:45:03', 101, NULL, '2024-11-12 15:32:12', 0, 1844620967619866625, 'js', '\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_84087\', {\n formId: \'1844646887256764417\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'returnData\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1844620967619866625\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'测试表单\', //标题\n width: \'40%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],//底部按钮配置\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_77755\', {\n controlName: \'WorkOrderForm\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowexample/form/WorkOrderForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'工单详情\', //标题\n width: \'90%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],//底部按钮配置\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { formView_84087, controlView_77755 } = Vue.toRefs(rendControlData.value)\n\nreturn {\n initOption() {\n tableOption.value.menuWidth = 250\n buttonObj.value.menu.editBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n buttonObj.value.menu.delBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n buttonObj.value.header.addBtn.label = \'新建工单\'\n tableOption.value.searchShowBtn = false\n tableOption.value.columnBtn = false\n useFun.setPropConfig(\'tjsj\', {\n width: 180\n })\n useFun.setPropConfig(\'gdzt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.gdzt\n let color = \'#cccccc\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status = status == \'1\' ? color = \'#ff9900\' : status == \'2\' ? color = \'#19be6b\' : status == \'3\' ? color = \'#f56c6c\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n },\n xqBtn(row) {\n if (row.gdzt == 1) {\n const controlData = formView_84087.value.params //FormView的配置\n controlData.popOption.title = \'人员处理\'\n controlData.formId = \'1844666969680785410\'\n controlData.defaultData = {\n ...row,\n }\n formView_84087.value.show = true //显示FormView\n } else {\n controlView_77755.value.show = true //显示ControlView\n const controlData = controlView_77755.value.params //ControlView的配置\n controlData.controlParams = {\n obj: row,\n type: row.gdzt == 1 ? \'dcl\' : row.gdzt == 2 ? \'ywj\' : row.gdzt == 3 ? \'yth\' : row.gdzt == 4 ? \'ycx\' : \'\',\n }\n }\n\n\n },\n fpgdBtn() {\n const controlData = formView_84087.value.params //FormView的配置\n controlData.popOption.title = \'分配工单\'\n formView_84087.value.show = true //显示FormView\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1845016912551550977, '1', 1, '2024-10-12 16:21:25', 101, 1, '2024-11-12 09:50:22', 0, 1845012516400803842, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData && props.enhanceData.hideHeader == \'disabled\') {\n tableOption.value.selection = false\n for (let key in buttonObj.value.menu) {\n buttonObj.value.menu[key].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n }\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1845028903412375553, '1', 1, '2024-10-12 17:09:04', 101, NULL, '2024-11-13 18:01:56', 0, 1845019389086736386, 'js', '//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_user_xq\', {\n controlName: \'userManagement\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/userManagement/index.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {\n\n }, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'用户管理\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {\n\n }, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\nreturn {\n\n initOption() { //表格显示前执行\n tableOption.value.menuWidth = 250\n\n let arr = [\'bjBtn\', \'delBtn\', \'xqBtn\']\n arr.map(item => {\n buttonObj.value.menu[item].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n })\n\n buttonObj.value.header.exportBtn.params = {\n plain: true,\n text: false,\n }\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n buttonObj.value.header.exportBtn.type = \'\'\n\n buttonObj.value.menu.bjBtn.type = \'primary\'\n useFun.setPropConfig(\'user_type\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.user_type\n let color = \'#cccccc\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status = status == \'1\' ? color = \'#16A95F\' : color == \'red\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n useFun.setPropConfig(\'order_record\', {\n render: (optins) => {\n let { row } = optins\n let str = row.order_record\n return h(\'span\', { style: { color: \'#409EFF\' } }, str)\n }\n })\n\n useFun.setPropConfig(\'consumption_amount\', {\n render: (optins) => {\n let { row } = optins\n let str = \'¥\' + row.consumption_amount\n return str\n }\n })\n\n\n },\n tjbqBtn() {\n //初始化控件\n useFun.controlInit(\'FormView\', \'formView_tjbq\', {\n formId: \'1845041920745218050\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: false, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'标签设置\', //标题\n width: \'35%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n {\n params: {\n }, //el-button 其他参数\n name: \'取消\', //按钮名称\n display: true, //是否显示\n loading: true, //点击时是否有loading\n icon: \'\', //图标\n clickFun: (loading) => {\n //点击事件\n formView_tjbq.value.show = false\n if (loading) loading() //关闭loading\n }\n },\n {\n params: {\n type: \'primary\'\n }, //el-button 其他参数\n name: \'确定\', //按钮名称\n display: true, //是否显示\n loading: true, //点击时是否有loading\n icon: \'\', //图标\n clickFun: (loading) => {\n //点击事件\n formView_tjbq.value.show = false\n message.success(\'添加成功\')\n if (loading) loading() //关闭loading\n }\n }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n console.log(\'表单数据\', type, formData)\n // if (type == \'submit\') {\n // console.log(\'表单数据\', formData)\n // }\n done()\n }\n })\n\n //控件调用\n const { formView_tjbq } = Vue.toRefs(rendControlData.value)\n formView_tjbq.value.show = true //显示FormView\n },\n bjBtn(row) {\n //初始化控件\n useFun.controlInit(\'FormView\', \'formView_xgzl\', {\n formId: \'1845639851059728386\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: row, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'标签设置\', //标题\n width: \'580px\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n console.log(\'表单数据\', type, formData)\n if (type == \'submit\') {\n useFun.refreshChange()\n }\n done()\n }\n })\n\n //控件调用\n const { formView_xgzl } = Vue.toRefs(rendControlData.value)\n formView_xgzl.value.show = true //显示FormView\n\n },\n\n xqBtn(row) {\n //控件调用\n const { controlView_user_xq } = Vue.toRefs(rendControlData.value)\n controlView_user_xq.value.show = true //显示ControlView\n const controlData = controlView_user_xq.value.params //ControlView的配置\n controlData.controlParams = { data: row }\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1845033165957701634, '1', 1, '2024-10-12 17:26:00', 101, NULL, '2024-11-13 14:26:18', 0, 1845019389086736386, 'scss', '// 表格样式\n.low-table__1845019389086736386 {\n\n .avue-crud {\n\n .avue-crud__body {\n .el-card__body {\n .avue-crud__header {\n .avue-crud__left {\n .el-button {\n // background-color: rgba(255, 255, 255, 0);\n // color: #999999;\n // border: 1px solid #E4E4E4;\n // font-size: 14px;\n\n &:hover {\n background-color: #40a0ff2e;\n color: #409EFF;\n border: 1px solid #409EFF;\n }\n }\n }\n\n .avue-crud__right {\n .avue-crud__searchBtn {\n display: none;\n }\n }\n }\n\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n border-left: 1px solid #E9E9E9;\n border-right: 1px solid #E9E9E9;\n }\n }\n }\n\n .el-table__cell {\n border-right: none;\n }\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n }\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1845019389086736386 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846015584845914114, '1', 1, '2024-10-15 10:29:47', 101, NULL, '2024-11-12 14:17:05', 0, 1846009550756601857, 'js', '\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_72662\', {\n formId: \'1846027395603243010\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1846009550756601857\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {\n zt: 1\n }, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'设置状态\', //标题\n width: \'40%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n//控件调用\nconst { formView_72662 } = Vue.toRefs(rendControlData.value)\n\n// componentRef.value.formView_72662 FormView的Ref控件引用\n\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.defaultExpandAll = true\n tableOption.value.menuWidth = 350\n buttonObj.value.header.addBtn.label = \'新建部门\'\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n let arr = [\'addChild\', \'delBtn\', \'editBtn\', \'szztBtn\']\n arr.map(item => {\n buttonObj.value.menu[item].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n })\n\n useFun.setPropConfig(\'time\', {\n width: 180,\n })\n useFun.setPropConfig(\'zt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.zt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.zt = 1\n apiData.cysl = 100\n apiData.time = useFun.formatDate(new Date, \'YYYY-MM-DD HH:mm:ss\')\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n cellStyle({ row, column, rowIndex, columnIndex }) { //列样式\n if (columnIndex == 3) {\n return {\n color: \'#409eff\'\n }\n }\n },\n szztBtn(row) {\n formView_72662.value.show = true //显示FormView\n const controlData = formView_72662.value.params //FormView的配置\n },\n qbzkBtn() {\n tableOption.value.defaultExpandAll = true\n crudRef.value.refreshTable()\n },\n qbzdBtn() {\n tableOption.value.defaultExpandAll = false\n crudRef.value.refreshTable()\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846074006584827906, NULL, NULL, NULL, NULL, NULL, '2024-11-13 16:22:42', 0, 1846073998846337026, 'scss', '// 表格样式\n.low-table__1846073998846337026 {\n\n .el-form {\n border: 1px solid #E9E9E9;\n border-bottom: none;\n margin-bottom: 15px;\n\n .el-table__inner-wrapper {\n\n .el-table__header {\n .el-table__cell {\n height: 55px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n }\n }\n\n}\n\n\n// 表单弹窗样式\n.low-table__dialog__1846073998846337026 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846074006593216513, NULL, NULL, NULL, NULL, 1, '2024-10-15 14:47:55', 0, 1846073998846337026, 'js', 'return {\n initOption() { //表格显示前执行\n useFun.setPropConfig(\'default_address\', {\n cell: true,\n dicData: [\n { label: \'关\', value: 0 },\n { label: \'开\', value: 1 }\n ]\n })\n\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.selection = false\n }\n\n useFun.setPropConfig(\'default_address\', {\n change: ({ row, value, column }) => {\n if (row.default_address == \'1\') {\n tableData.value.forEach(ele => {\n if (ele.id !== row.id) {\n ele.default_address = \'0\'\n }\n })\n }\n }\n })\n\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n data.map(item => {\n item.$cellEdit = true\n })\n resolve(data)\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846086136306475010, '1', 1, '2024-10-15 15:10:08', 101, 1, '2024-11-06 09:59:06', 0, 1846083503466356737, 'js', '\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_8174\', {\n formId: \'1846092785716961282\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1846083503466356737\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'测试表单\', //标题\n width: \'40%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_94665\', {\n controlName: \'postForm\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/post/postForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'职务详情\', //标题\n width: \'90%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'保存\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { formView_8174, controlView_94665 } = Vue.toRefs(rendControlData.value)\n// componentRef.value.formView_8174 FormView的Ref控件引用\n\n\nreturn {\n initOption() { //表格显示前执行\n console.log(\'6666\',buttonObj.value)\n let arr = [\'fzBtn\', \'delBtn\', \'editBtn\', \'szqxBtn\', \'szztBtn\', \'userBtn\']\n arr.map(item => {\n buttonObj.value.menu[item].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n })\n tableOption.value.menuWidth = 580\n tableOption.value.refreshBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.columnBtn = false\n buttonObj.value.header.addBtn.label = \'新建职务\'\n buttonObj.value.menu.editBtn.label = \'编辑职务\'\n useFun.setPropConfig(\'time\', {\n width: 180,\n })\n useFun.setPropConfig(\'zt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.zt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.zt = 1\n apiData.cysl = 100\n apiData.bmms = \'暂无相关描述\'\n apiData.time = useFun.formatDate(new Date, \'YYYY-MM-DD HH:mm:ss\')\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n cellStyle({ row, column, rowIndex, columnIndex }) { //列样式\n if (columnIndex == 3) {\n return {\n color: \'#409eff\'\n }\n }\n },\n szqxBtn(row) {\n controlView_94665.value.show = true //显示FormView\n const controlData = controlView_94665.value.params //FormView的配置\n },\n userBtn(row) {\n formView_8174.value.show = true //显示FormView\n const controlData = formView_8174.value.params //FormView的配置\n controlData.defaultData.type = \'tjry\'\n controlData.defaultData.zwmc = row.zwmc\n controlData.popOption.title = \'添加人员\'\n },\n szztBtn(row) {\n formView_8174.value.show = true //显示FormView\n const controlData = formView_8174.value.params //FormView的配置\n controlData.defaultData.type = \'szzt\'\n controlData.popOption.title = \'设置状态\'\n },\n fzBtn(row) {\n formView_8174.value.show = true //显示FormView\n const controlData = formView_8174.value.params //FormView的配置\n controlData.defaultData.type = \'fz\'\n controlData.popOption.title = \'复制职务\'\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846092931460636674, '1', 1, '2024-10-15 15:37:08', 101, NULL, '2024-11-13 15:08:16', 0, 1844275960258019330, 'scss', '// 表格样式\n.low-table__1844275960258019330 {\n padding: 13px 10px;\n\n .avue-crud__tip {\n display: none;\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n\n .el-form {\n border-left: 1px solid #E9E9E9;\n border-right: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1844275960258019330 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846095089572651010, NULL, NULL, NULL, NULL, 1, '2024-10-24 14:07:26', 0, 1846095079682482177, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n\n useFun.setPropConfig(\'points_change\', {\n render: (optins) => {\n let { row, column } = optins\n let color = \'red\'\n row.points_change.indexOf(\'-\') == \'-1\' ? color = \'#19BE6B\' : color = \'red\'\n return h(\'span\', { style: { color: color } }, row.points_change)\n }\n })\n },\n}\n\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846095089576845313, NULL, NULL, NULL, NULL, NULL, '2024-11-13 15:30:53', 0, 1846095079682482177, 'scss', '// 表格样式\n.low-table__1846095079682482177 {\n padding: 13px 10px;\n\n .el-form {\n border-left: 1px solid #E9E9E9;\n border-right: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n\n .el-table__header {\n .el-table__cell {\n height: 50px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n span {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846095079682482177 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846100525407412226, NULL, NULL, NULL, NULL, 1, '2024-10-15 16:09:42', 0, 1846100518918823938, 'js', ''); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846100525407412227, NULL, NULL, NULL, NULL, NULL, '2024-11-13 15:04:10', 0, 1846100518918823938, 'scss', '// 表格样式\n.low-table__1846100518918823938 {\n padding: 13px 10px;\n\n .el-form {\n border-left: 2px solid #E9E9E9;\n border-right: 2px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n\n .el-table__header {\n .el-table__cell {\n height: 50px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n span {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846100518918823938 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846102826197065730, '1', 1, '2024-10-15 16:16:27', 101, NULL, '2024-11-13 15:03:53', 0, 1846100518918823938, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n },\n}\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846103244293677058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'js', ''); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846103244293677059, NULL, NULL, NULL, NULL, NULL, '2024-11-13 14:51:31', 0, 1846103236139950082, 'scss', '// 表格样式\n.low-table__1846103236139950082 {\n padding: 13px 10px;\n\n .el-form {\n border-left: 2px solid #E9E9E9;\n border-right: 2px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n .el-table__header {\n .el-table__cell {\n height: 50px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n span {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n .el-table__cell {\n background: #f2f2f2;\n }\n\n }\n\n .justify-center {\n gap: 5px;\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846103236139950082 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846103244293677060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n },\n}\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846122054275018754, '1', 1, '2024-10-15 17:32:52', 101, NULL, '2024-11-13 17:58:58', 0, 1846121741006647298, 'scss', '// 表格样式\n.low-table__1846121741006647298 {\n .avue-crud__body {\n .avue-crud__header {\n .avue-crud__left {\n .el-button {\n font-size: 14px;\n color: #999999;\n\n &.el-button--primary {\n color: white;\n }\n }\n\n\n }\n\n .avue-crud__right {\n .el-button {\n border: none;\n color: #999999;\n\n &.avue-crud__searchBtn {\n display: none;\n }\n }\n }\n }\n\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n border-right: 1px solid #ebeef5;\n\n .el-table__inner-wrapper {\n\n .el-table__header {\n border-top: 1px solid #ebeef5;\n border-left: 1px solid #ebeef5;\n\n .el-table__cell {\n height: 55px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__body {\n border-left: 1px solid #ebeef5;\n\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n\n .cell>span {\n font-size: 14px;\n }\n }\n }\n\n }\n\n }\n }\n }\n }\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846121741006647298 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846359234339647489, '1', 1, '2024-10-16 09:15:20', 101, NULL, '2024-11-14 09:53:42', 0, 1846121741006647298, 'js', '//初始化控件 新增员工\nuseFun.controlInit(\'FormView\', \'formView_xzyg\', {\n formId: \'1846388549542457346\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: false, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'\', //标题\n width: \'840px\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n formView_xzyg.value.show = false\n }\n done()\n }\n})\n\n\n//初始化控件 设置重置修改\nuseFun.controlInit(\'FormView\', \'formView_general\', {\n formId: \'1846435324265476097\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'\', //标题\n width: \'40%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n }\n done()\n }\n})\n\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_staff_view\', {\n controlName: \'\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/staffManagement/staffView.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'员工详情\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\nconst { formView_xzyg, formView_general, controlView_staff_view } = Vue.toRefs(rendControlData.value)\n\n\nreturn {\n initOption() { //表格显示前执行\n buttonObj.value.menu.delBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n buttonObj.value.header.importBtn.label = \'导入数据\'\n buttonObj.value.header.importBtn.type = \'\'\n buttonObj.value.header.importBtn.icon = \'material-symbols:download\'\n useFun.setPropConfig(\'zhzt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.zhzt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n useFun.setPropConfig(\'zxzt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.zxzt\n let color = \'#4BD863\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status == \'2\' ? color = \'red\' : \'\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n },\n xzygBtn() {\n //控件调用\n formView_xzyg.value.show = true //显示FormView\n const controlData = formView_xzyg.value.params //FormView的配置\n // componentRef.value.formView_xzyg FormView的Ref控件引用\n controlData.enhanceData = formView_xzyg.value\n controlData.popOption.title = \'新增员工\'\n },\n xgbmBtn() {\n formView_general.value.show = true //显示FormView\n const controlData = formView_general.value.params //FormView的配置\n controlData.enhanceData.type = \'xgbm\'\n controlData.popOption.title = \'修改部门\'\n },\n xgzwBtn() {\n formView_general.value.show = true //显示FormView\n const controlData = formView_general.value.params //FormView的配置\n controlData.enhanceData.type = \'xgzw\'\n controlData.popOption.title = \'修改职务\'\n },\n szztBtn() {\n formView_general.value.show = true //显示FormView\n const controlData = formView_general.value.params //FormView的配置\n controlData.enhanceData.type = \'szzt\'\n controlData.popOption.title = \'设置状态\'\n },\n czmmBtn() {\n formView_general.value.show = true //显示FormView\n const controlData = formView_general.value.params //FormView的配置\n controlData.enhanceData.type = \'czmm\'\n controlData.popOption.title = \'重置密码\'\n },\n xqBtn(row) {\n controlView_staff_view.value.show = true //显示ControlView\n const controlData = controlView_staff_view.value.params //ControlView的配置\n controlData.controlParams.data = row\n controlData.controlParams.controlView = controlView_staff_view.value\n\n\n },\n bjBtn(row) {\n formView_xzyg.value.show = true //显示FormView\n const controlData = formView_xzyg.value.params //FormView的配置\n controlData.defaultData = row\n controlData.enhanceData = formView_xzyg.value\n controlData.popOption.title = \'编辑\'\n },\n szBtn() {\n formView_general.value.show = true //显示FormView\n const controlData = formView_general.value.params //FormView的配置\n controlData.enhanceData.type = \'szzt\'\n controlData.popOption.title = \'设置\'\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846479386355912706, '1', 1, '2024-10-16 17:12:46', 101, NULL, '2024-11-12 14:55:23', 0, 1846009550756601857, 'scss', '// 表格样式\n.low-table__1846009550756601857 {\n .avue-crud__body {\n .avue-crud__tip {\n display: none;\n }\n\n\n .el-form {\n border-left: 1px solid #E9E9E9;\n border-right: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n\n\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n color: #666;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .el-table__cell {\n color: #666;\n }\n }\n\n }\n\n // .cell>span {\n // color: #666;\n // }\n }\n }\n }\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846009550756601857 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846482253745704962, '1', 1, '2024-10-16 17:24:10', 101, NULL, '2024-11-12 15:05:45', 0, 1846083503466356737, 'scss', '// 表格样式\n.low-table__1846083503466356737 {\n\n .avue-crud__body {\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n border-left: 1px solid #F0F7FF;\n border-right: 1px solid #F0F7FF;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n color: #666;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .el-table__cell {\n color: #666;\n }\n\n }\n\n }\n\n // .cell>span {\n // color: #666;\n // }\n }\n }\n }\n\n\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846083503466356737 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846483087401373698, '1', 1, '2024-10-16 17:27:29', 101, 1, '2024-11-11 15:56:47', 0, 1844620967619866625, 'scss', '// 表格样式\n.low-table__1844620967619866625 {\n\n .avue-crud__body {\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n border: 1px solid #f2f2f2;\n\n .el-table__inner-wrapper {\n &::before {\n height: 0;\n }\n\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n\n }\n\n\n\n\n\n\n .header-button {\n .el-button--small {\n padding: 15px 15px;\n color: #999;\n font-family: 微软雅黑, sans-serif;\n font-weight: 400;\n font-size: 14px;\n }\n\n .el-button--small:hover {\n color: #409eff;\n }\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1844620967619866625 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846734672610152449, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'js', ''); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846734672610152450, NULL, NULL, NULL, NULL, NULL, '2024-11-14 11:54:29', 0, 1846734665412726786, 'scss', '// 表格样式\n.low-table__1846734665412726786 {\n padding: 12px 10px;\n\n .el-form {\n border: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n .el-table__header {\n .el-table__cell {\n height: 50px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n span {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n .el-table__inner-wrapper {\n // border: 1px solid #E9E9E9;\n\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846100518918823938 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846734672610152451, NULL, NULL, NULL, NULL, 1, '2024-10-17 10:52:18', 0, 1846734665412726786, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n if (props.enhanceData?.type && props.enhanceData?.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.menu = false\n }\n },\n}\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846747373512097794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'js', ''); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846747373516292098, NULL, NULL, NULL, NULL, NULL, '2024-11-14 11:54:54', 0, 1846747363458351106, 'scss', '// 表格样式\n.low-table__1846747363458351106 {\n padding: 12px 10px;\n\n .el-form {\n border: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n .el-table__header {\n .el-table__cell {\n height: 50px;\n\n .cell {\n span {\n color: #666666;\n font-size: 14px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n }\n }\n }\n\n }\n\n .el-table__body-wrapper {\n .el-table__cell {\n span {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n .el-table__inner-wrapper {\n // border: 1px solid #E9E9E9;\n\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846100518918823938 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1846747373516292099, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n if (props.enhanceData?.type && props.enhanceData?.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.menu = false\n }\n },\n}\n'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847096134377639938, '1', 1, '2024-10-18 10:03:30', 101, NULL, '2024-11-15 15:49:23', 0, 1847094468974710786, 'js', '\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_71572\', {\n controlName: \'projectForm\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/project/projectForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'项目详情\', //标题\n width: \'90%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { controlView_71572 } = Vue.toRefs(rendControlData.value)\n\n// componentRef.value.controlView_71572 ControlView的Ref控件引用\n\n\nreturn {\n summaryTopFormatting(data) { //表格头部统计格式化\n console.log(\'======增强====\', data)\n return data\n },\n initOption() {\n let arr = [\'xqBtn\', \'delBtn\', \'editBtn\']\n arr.map(item => {\n buttonObj.value.menu[item].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n })\n\n buttonObj.value.header.addBtn.label = \'创建项目\'\n useFun.setPropConfig(\'zt\', {\n render: ({ row }) => {\n let text = row.zt == 1 ? \'正常\' : \'异常\'\n return h(\'div\', { style: { width: \'50px\', height: \'20px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\', color: \'#fff\', background: \'#51d351\', borderRadius: \'5px\', fontFamily: \'MicrosoftYaHei, 微软雅黑, sans-serif\', fontSize: \'12px\' } }, text)\n }\n })\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n tableOption.value.menuWidth = 250\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.headerAlign = \'left\'\n tableOption.value.menuHeaderAlign = \'left\'\n tableOption.value.align = \'center\'\n\n useFun.setPropConfig(\'zhgx\', {\n // width: 180\n })\n useFun.setPropConfig(\'xmcy\', {\n // width: 150\n })\n const arr = [\'jbxx\', \'zt\', \'xmjd\']\n arr.forEach(key => {\n useFun.setPropConfig(key, {\n html: true,\n // width: key == \'jbxx\' ? 350 : key == \'zt\' ? 100 : key == \'xmjd\' ? 300 : \'\',\n })\n })\n if (data) {\n data.map(item => {\n item.jbxx = `\n
\n
\n // \n \n
\n
\n

${item.title || \'\'}

\n

${item.content || \'\'}

\n
\n
\n `\n // item.zt = `${item.zt == 1 ? \'正常\' : \'异常\'}`\n item.xmjd = item.xmjd ? `\n
\n
\n
\n
\n

${item.xmjd}%

\n
\n `: \'\'\n return item\n })\n }\n\n resolve(data)\n })\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.zt = 1\n apiData.xmjd = 50\n apiData.zhgx = useFun.formatDate(new Date, \'YYYY-MM-DD HH:mm:ss\')\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n xqBtn(row) {\n controlView_71572.value.show = true //显示ControlView\n const controlData = controlView_71572.value.params //ControlView的配置\n controlData.controlParams = { data: row }\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847109679396827138, '1', 1, '2024-10-18 10:57:20', 101, 1, '2024-10-29 09:46:12', 0, 1847103675560071169, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'rwxq\', {\n formId: \'1850013430948507650\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: false, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'详情\', //标题\n width: \'60%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\nlet clickIdList = []\n\nreturn {\n initOption() { //表格显示前执行\n\n if (props.enhanceData && props.enhanceData.type && props.enhanceData.type == \'view\') {\n tableOption.value.menu = false\n tableOption.value.header = false\n\n }\n\n useFun.setPropConfig(\'title\', {\n render: (data) => {\n return h(\'div\', { style: { fontFamily: \'MicrosoftYaHei, 微软雅黑, sans-serif\', fontSize: \'14px\', color: \'#666666\', } }, `${data.row.title},点击查看详情`)\n }\n })\n\n\n useFun.setPropConfig(\'jzsj\', {\n render: ({ row }) => {\n if (Icon) {\n let jssjTitle = \'\'\n if (row.jzsj) {\n jssjTitle = useFun.formatPast(row.jzsj, \'YYYY-MM-DD\') + \' 截止\'\n } else {\n jssjTitle = \' 截止\'\n }\n\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'11px\' },\n }, [\n h(Icon, { icon: \'icon-park-outline:alarm-clock\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, jssjTitle),\n ])\n }\n return \'\'\n }\n })\n useFun.setPropConfig(\'status\', {\n render: (optins) => {\n let { row, column } = optins //row是当行数据 column是字典数据\n let statusTitle = \'\'\n let status = row.status\n let bgColorList = [\'#409EFF\', \'#19BE6B\', \'#F56C6C\']\n if (status && column.dicData[status - 1]) {\n statusTitle = column.dicData[status - 1].label\n let bgColor = bgColorList[status - 1]\n const radius = h(\'div\', { style: { width: \'5px\', height: \'5px\', borderRadius: \'50%\', backgroundColor: bgColor, marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\', fontSize: \'11px\' } }, [radius, statusTitle])\n }\n return \'\'\n\n }\n })\n\n\n\n useFun.setPropConfig(\'urgent_relief\', {\n render: (optins) => {\n let { row, column } = optins //row是当行数据 column是字典数据\n let statusTitle = \'\'\n let urgent_relief = row.urgent_relief\n if (urgent_relief && column.dicData[urgent_relief - 1]) {\n statusTitle = column.dicData[urgent_relief - 1].label\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'subway:mark-2\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, statusTitle),\n ])\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'xmmc\', {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'mage:box-3d\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row.xmmc),\n ])\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'fj\', {\n render: ({ row }) => {\n let num = 0\n if (row.fj) {\n if (row.fj.indexOf(\',\') == -1) {\n num = 1\n } else {\n num = row.fj.split(\',\').length\n }\n }\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'line-md:link\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, num)\n ])\n }\n })\n\n useFun.setPropConfig(\'lys\', {\n render: ({ row }) => {\n let num = 0\n row.lys ? num = row.lys : num = 0\n\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'mage:message\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, num)\n ])\n }\n })\n\n },\n\n cellClick(row, column, cell, event) { //单元格单击\n if (column.type == \'selection\') {\n let index = clickIdList.indexOf(row.id);\n if (index === -1) {\n clickIdList.push(row.id);\n } else {\n clickIdList.splice(index, 1);\n }\n\n if (clickIdList) {\n useFun.setPropConfig(\'title\', {\n render: (data) => {\n if (clickIdList.indexOf(data.row.id) !== -1) {\n return h(\'div\', { style: { textDecoration: \'line-through\', fontFamily: \'MicrosoftYaHei, 微软雅黑, sans-serif\', fontSize: \'14px\', color: \'#666666\', } }, `${data.row.title},点击查看详情`)\n } else {\n return h(\'div\', { style: { fontFamily: \'MicrosoftYaHei, 微软雅黑, sans-serif\', fontSize: \'14px\', color: \'#666666\', } }, `${data.row.title},点击查看详情`)\n }\n }\n })\n }\n }\n\n\n if (column.prop == \'title\') {\n const { rwxq } = Vue.toRefs(rendControlData.value)\n rwxq.value.show = true //显示FormView\n const controlData = rwxq.value.params //FormView的配置\n // componentRef.value.rwxq FormView的Ref控件引用\n controlData.enhanceData.icon = Icon\n controlData.defaultData = row\n\n }\n },\n cellStyle({ row, column, rowIndex, columnIndex }) { //列样式\n if (column.prop == \'color\') {\n let bgColor = row[column.prop]\n return { background: bgColor }\n }\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847169474640420866, '1', 1, '2024-10-18 14:54:56', 101, 1, '2024-10-29 17:38:47', 0, 1847103675560071169, 'scss', '// 表格样式\n.low-table__1847103675560071169 {\n\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n .el-checkbox-group>.el-row {\n .avue-crud__grid__content {\n position: relative;\n height: 69px;\n padding: 0;\n\n .selection {\n position: absolute;\n top: 50%;\n left: 20px;\n transform: translateY(-50%);\n }\n\n .index {\n display: none;\n }\n\n .avue-crud__grid__item {\n .avue-crud__grid__label {\n display: none;\n }\n\n .control-input {\n font-size: 12px;\n }\n }\n\n .title,\n .status,\n .jzsj,\n .urgent_relief,\n .xmmc,\n .lys,\n .fj {\n span {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-size: 12px !important;\n color: #666666;\n font-weight: 400;\n }\n }\n\n .title {\n width: 225px;\n position: absolute;\n top: 50%;\n left: 50px;\n transform: translateY(-50%);\n cursor: pointer;\n\n span {\n font-size: 14px !important;\n }\n }\n\n .status {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 40%;\n transform: translateY(-50%);\n\n\n }\n\n .jzsj {\n width: 170px;\n position: absolute;\n top: 50%;\n left: 48%;\n transform: translateY(-50%);\n }\n\n .urgent_relief {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 62%;\n transform: translateY(-50%);\n }\n\n .xmmc {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 70%;\n transform: translateY(-50%);\n }\n\n .lys {\n width: 40px;\n position: absolute;\n top: 50%;\n left: 81%;\n transform: translateY(-50%);\n\n span {\n color: #999999;\n }\n }\n\n .fj {\n width: 55px;\n position: absolute;\n top: 50%;\n left: 85%;\n transform: translateY(-50%);\n\n span {\n color: #999999;\n }\n }\n\n .tx {\n width: 40px;\n position: absolute;\n top: 50%;\n left: 93%;\n transform: translateY(-50%);\n\n .avue-crud__img {\n width: 35px;\n height: 35px;\n\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n }\n }\n\n .color {\n width: 5px;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n }\n\n &::before {\n height: 0;\n }\n }\n\n\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1847103675560071169 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847170514759585793, '1', 1, '2024-10-18 14:59:04', 101, NULL, '2024-11-15 15:45:06', 0, 1847094468974710786, 'scss', '// 表格样式\n.low-table__1847094468974710786 {\n .avue-crud__header {\n justify-content: end;\n\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: white;\n // background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 100px;\n\n\n .control-image {\n .cell {\n // padding: 0;\n\n .avue-crud__img {\n margin-left: -17px;\n }\n }\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1847094468974710786 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847472453682593793, NULL, NULL, NULL, NULL, 1, '2024-10-26 17:35:01', 0, 1847472439438737409, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n if (props.enhanceData && props.enhanceData.type && props.enhanceData.type == \'view\') {\n tableOption.value.menu = false\n tableOption.value.header = false\n\n }\n useFun.setPropConfig(\'title\', {\n html: true,\n formatter: (val) => {\n // return `${val.title},点击查看详情`;\n return val.title;\n },\n })\n\n useFun.setPropConfig(\'jzsj\', {\n render: ({ row }) => {\n if (Icon) {\n let jssjTitle = \'\'\n if (row.jzsj) {\n jssjTitle = useFun.formatDate(row.jzsj, \'YYYY年MM月DD日\') + \' 截止\'\n } else {\n jssjTitle = \' 截止\'\n }\n\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'11px\' },\n }, [\n h(Icon, { icon: \'icon-park-outline:alarm-clock\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, jssjTitle),\n ])\n }\n return \'\'\n }\n })\n useFun.setPropConfig(\'status\', {\n render: (optins) => {\n let { row, column } = optins //row是当行数据 column是字典数据\n let statusTitle = \'\'\n let status = row.status\n let bgColorList = [\'#409EFF\', \'#19BE6B\', \'#F56C6C\']\n if (status && column.dicData[status - 1]) {\n statusTitle = column.dicData[status - 1].label\n let bgColor = bgColorList[status - 1]\n const radius = h(\'div\', { style: { width: \'5px\', height: \'5px\', borderRadius: \'50%\', backgroundColor: bgColor, marginRight: \'5px\' } }, \'\')\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\', fontSize: \'11px\' } }, [radius, statusTitle])\n }\n return \'\'\n\n }\n })\n\n\n\n useFun.setPropConfig(\'urgent_relief\', {\n render: (optins) => {\n let { row, column } = optins //row是当行数据 column是字典数据\n let statusTitle = \'\'\n let urgent_relief = row.urgent_relief\n if (urgent_relief && column.dicData[urgent_relief - 1]) {\n statusTitle = column.dicData[urgent_relief - 1].label\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'subway:mark-2\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, statusTitle),\n ])\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'xmmc\', {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'mage:box-3d\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row.xmmc),\n ])\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'fj\', {\n render: ({ row }) => {\n let num = 0\n if (row.fj) {\n if (row.fj.indexOf(\',\') == -1) {\n num = 1\n } else {\n num = row.fj.split(\',\').length\n }\n }\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'line-md:link\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, num)\n ])\n }\n })\n\n useFun.setPropConfig(\'lys\', {\n render: ({ row }) => {\n let num = 0\n row.lys ? num = row.lys : num = 0\n\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' },\n }, [\n h(Icon, { icon: \'mage:message\', size: 14, color: \'#CCCCCC\' }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, num)\n ])\n }\n })\n\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n\n if (data) {\n data.map(item => {\n item.zw = `
6666
`\n return item\n })\n }\n resolve(data)\n })\n },\n\n cellStyle({ row, column, rowIndex, columnIndex }) { //列样式\n if (column.prop == \'color\') {\n let bgColor = row[column.prop]\n return { background: bgColor }\n }\n\n },\n\n cellClick(row, column, cell, event) { //单元格单击row, , cell, event,\n let arr = []\n setTimeout(() => {\n tableSelect.value.map(key => {\n arr.push(key.id)\n })\n tableData.value.map(item => {\n if(arr.join().includes(item.id)){\n item.title = `${item.title_copy}`\n } else {\n item.title = `${item.title_copy}`\n }\n })\n }, 600)\n\n },\n\n\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1847472453690982402, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:24:10', 0, 1847472439438737409, 'scss', '// 表格样式\n.low-table__1847472439438737409 {\n padding: 5px 8px;\n \n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n .el-checkbox-group>.el-row {\n .avue-crud__grid__content {\n position: relative;\n height: 69px;\n padding: 0;\n\n .selection {\n position: absolute;\n top: 50%;\n left: 20px;\n transform: translateY(-50%);\n }\n\n .index {\n display: none;\n }\n\n .avue-crud__grid__item {\n .avue-crud__grid__label {\n display: none;\n }\n\n .control-input {\n font-size: 12px;\n }\n }\n\n .title,\n .status,\n .jzsj,\n .urgent_relief,\n .xmmc,\n .lys,\n .fj {\n span {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-size: 12px !important;\n color: #666666;\n font-weight: 400;\n }\n }\n\n .title {\n width: 225px;\n position: absolute;\n top: 50%;\n left: 50px;\n transform: translateY(-50%);\n\n span {\n font-size: 14px !important;\n }\n }\n\n .status {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 40%;\n transform: translateY(-50%);\n\n\n }\n\n .jzsj {\n width: 170px;\n position: absolute;\n top: 50%;\n left: 48%;\n transform: translateY(-50%);\n }\n\n .urgent_relief {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 62%;\n transform: translateY(-50%);\n }\n\n .xmmc {\n width: 115px;\n position: absolute;\n top: 50%;\n left: 70%;\n transform: translateY(-50%);\n }\n\n .lys {\n width: 40px;\n position: absolute;\n top: 50%;\n left: 81%;\n transform: translateY(-50%);\n\n span {\n color: #999999;\n }\n }\n\n .fj {\n width: 55px;\n position: absolute;\n top: 50%;\n left: 85%;\n transform: translateY(-50%);\n\n span {\n color: #999999;\n }\n }\n\n .tx {\n width: 40px;\n position: absolute;\n top: 50%;\n left: 93%;\n transform: translateY(-50%);\n\n .avue-crud__img {\n width: 35px;\n height: 35px;\n\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n }\n }\n\n .color {\n width: 5px;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n }\n\n &::before {\n height: 0;\n }\n }\n }\n }\n\n .text>span {\n text-decoration: none !important;\n }\n\n .texts>span {\n text-decoration: line-through;\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1847472439438737409 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848607411398680578, '1', 1, '2024-10-22 14:08:47', 101, NULL, '2024-11-15 17:39:37', 0, 1848301752228683777, 'scss', '// 表格样式\n.low-table__1848301752228683777 {\n padding: 5px 8px;\n\n .avue-crud__body {\n .el-form {\n border-left: 1px solid #E9E9E9;\n border-right: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n // &.el-table__row--striped {\n\n // .el-table__cell {\n // font-family: \'微软雅黑\', sans-serif;\n // font-weight: 400;\n // background: #f2f2f2;\n // }\n // }\n\n .justify-center {\n gap: 5px;\n\n // .el-button--primary {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #f0f7ff;\n\n // &:hover {\n // color: #fff;\n // background: #409eff;\n // }\n // }\n\n // .el-button--warning {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fff7eb;\n\n // &:hover {\n // color: #fff;\n // background: #ff9900;\n // }\n // }\n\n // .el-button--danger {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fef3f3;\n\n // &:hover {\n // color: #fff;\n // background: #f56c6c;\n // }\n // }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n }\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1848301752228683777 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848631609567387649, NULL, NULL, NULL, NULL, 1, '2024-10-22 15:56:18', 0, 1848631600935510017, 'scss', '// 表格样式\n.low-table__1848631600935510017 {\n .avue-crud__grid__content {\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n font-family: \'微软雅黑\';\n\n &.crad_img {\n position: absolute;\n left: 16px;\n top: 16px;\n width: calc(100% - 16px);\n\n img {\n width: 60px;\n height: 60px;\n }\n }\n\n &.crad_title,\n &.card_describe {\n padding-left: 80px;\n }\n\n &.crad_title {\n .avue-crud__grid__value {\n font-size: 16px;\n font-weight: bold;\n color: #666;\n }\n }\n\n &.card_describe {\n margin-top: 5px;\n color: #999;\n\n .avue-crud__grid__value {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n }\n }\n }\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n .avue-crud__grid .avue-crud__grid__content{\n padding: 16px;\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1848631600935510017 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848637153338368002, NULL, NULL, NULL, NULL, 1, '2024-11-04 11:31:38', 0, 1848637143087489025, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n buttonObj.value.menu.viewBtn.icon = \'icon-park-solid:right-c\'\n\n //点赞等图标的点击事件\n // const clickFun = (row, type) => {\n // tableData.value[row.$index][type] = (row[type] || 0) + 1\n // }\n\n // tableOption.value.column.num_list = {\n // label: \'\',\n // render: ({ row }) => {\n // if (Icon) {\n // const opData = [\n // { key: \'dz_num\', icon: \'uiw:like-o\' },\n // { key: \'sc_num\', icon: \'solar:star-outline\' },\n // { key: \'pl_num\', icon: \'fluent:comment-16-regular\' },\n // ]\n // const hList = opData.map(item => {\n // return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', cursor: \'pointer\' }, onClick: () => clickFun(row, item.key) },\n // [\n // h(Icon, { icon: item.icon, size: 12 }),\n // h(\'span\', { style: { marginLeft: \'2px\' } }, row[item.key] || 0),\n // ])\n // })\n\n // return h(\'div\', {\n // style: { display: \'flex\', alignItems: \'center\', columnGap: \'15px\', fontSize: \'12px\', color: \'#999\' },\n // }, hList)\n // }\n // return \'\'\n // }\n // }\n tableOption.value.column.time_test = {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, useFun.formatPast(row.create_time, \'YYYY-MM-DD\')),\n ])\n }\n return \'\'\n }\n }\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848637153338368003, NULL, NULL, NULL, NULL, 1, '2024-10-23 10:17:26', 0, 1848637143087489025, 'scss', '// 表格样式\n.low-table__1848637143087489025 {\n .avue-crud__grid__content {\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n\n &.zt_img {\n width: 100%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n margin-top: 10px;\n font-size: 14px;\n color: #333;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n position: absolute;\n left: 16px;\n bottom: 5px;\n width: 94px;\n }\n\n &.menu {\n margin-top: 4px;\n }\n }\n }\n\n .avue-crud__grid__value {\n white-space: normal;\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n\n // .el-button:last-child {\n // // position: absolute;\n // // right: 20px;\n // // border: none;\n\n // >span {\n // flex-direction: row-reverse;\n // }\n // }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1848637143087489025 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848649279071232001, NULL, NULL, NULL, NULL, 1, '2024-10-23 14:36:04', 0, 1848649270435160066, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n\n buttonObj.value.menu.viewBtn.label = \'查看详情\'\n buttonObj.value.menu.viewBtn.icon = \'formkit:right\'\n\n tableOption.value.column.content = {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { width: \'100%\', display: \'flex\', justifyContent: \'space-between\', marginTop: \'10px\' },\n }, [\n h(\'div\', {\n style: { width: \'80%\', fontFamily: `\'MicrosoftYaHei\', \'微软雅黑\', sans-serif`, color: \'#999999 !important\', fontSize: \'14px\', textAlign: \'left\', },\n }, row.content),\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\', marginTop: \'-26px\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row.time),\n ])\n ])\n }\n return \'\'\n }\n }\n\n\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.time = useFun.formatDate(new Date, \'YYYY-MM-DD HH:mm\')\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848649279075426306, NULL, NULL, NULL, NULL, 1, '2024-10-23 10:16:11', 0, 1848649270435160066, 'scss', '// 表格样式\n.low-table__1848649270435160066 {\n .avue-crud__grid__content {\n width: 400%;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n\n &.zt_img {\n width: 100%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n margin-top: 10px;\n font-size: 14px;\n color: #333;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n position: absolute;\n left: 16px;\n bottom: 5px;\n width: 94px;\n }\n\n &.menu {\n margin-top: 4px;\n }\n }\n }\n\n .avue-crud__grid__value {\n white-space: normal;\n }\n\n .avue-crud__grid .avue-crud__grid__content {\n padding: 16px;\n border: none;\n border-bottom: 1px solid #f2f2f2;\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n\n .el-row {\n display: flex;\n flex-direction: column;\n }\n\n .avue-crud__grid .title .avue-crud__grid__value {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n font-style: normal;\n font-size: 16px;\n text-align: left;\n color: #666666;\n }\n\n\n .avue-crud__grid .menu {\n justify-content: start;\n\n .el-button {\n border: 1px solid #e4e4e4;\n }\n\n .el-button:last-child {\n position: absolute;\n right: 20px;\n border: none;\n\n >span {\n flex-direction: row-reverse;\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1848649270435160066 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848934692071579649, '1', 1, '2024-10-23 11:49:17', 101, 1, '2024-10-23 14:28:57', 0, 1840646327436394498, 'scss', '// 表格样式\n.low-table__1840646327436394498 {\n .el-card__body {\n\n .avue-crud__tip,\n .avue-crud__header .avue-crud__right .avue-crud__searchBtn {\n display: none;\n }\n\n .el-form {\n .el-table__header {\n .el-table__cell {\n height: 55px;\n background-color: #F9F9F9;\n\n span {\n color: #666666;\n }\n }\n\n }\n\n\n .el-table__body-wrapper {\n .el-table__row {\n .el-table__cell {\n height: 55px;\n padding: 0;\n\n .cell {\n .el-button--primary {\n border: 1px solid #409EFF;\n background-color: #40a0ff1f;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #409EFF;\n color: #fff;\n }\n }\n\n .el-button--success {\n border: 1px solid #67C23A;\n background-color: #67c23a1d;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #67C23A;\n color: #fff;\n }\n }\n\n .el-button--danger {\n border: 1px solid #F67E7E;\n background-color: #f67e7e15;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #F67E7E;\n color: #fff;\n }\n }\n }\n\n .cell>span {\n color: #666666;\n }\n }\n }\n\n .expand-table-box {\n .el-form-item__label,\n .el-form-item__content {\n color: #999999;\n }\n }\n }\n }\n }\n\n .avue-crud__pagination {\n span {\n color: #999999;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1840646327436394498 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848936255477424130, '1', 1, '2024-10-23 11:55:30', 101, 1, '2024-10-24 10:11:19', 0, 1840646327436394498, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.defaultExpandAll = true\n buttonObj.value.header.addBtn.label = \'新建\'\n buttonObj.value.menu.delBtn.params.size = \"small\"\n buttonObj.value.menu.editBtn.params.size = \"small\"\n useFun.setPropConfig(\'stature\', {\n width: 120\n })\n },\n qrBtn() {\n message.success(\'已确认\')\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1848985908415733761, '1', 1, '2024-10-23 15:12:48', 101, NULL, NULL, 0, 1838855934516420610, 'js', 'return {\n initOption() { //表格显示前执行\n buttonObj.value.menu.viewBtn.params.size = \"small\"\n buttonObj.value.menu.editBtn.params.size = \"small\"\n buttonObj.value.menu.delBtn.params.size = \"small\"\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1849326303708356609, '1', 1, '2024-10-24 13:45:24', 101, NULL, '2024-11-13 13:52:23', 0, 1846429439782793217, 'scss', '// 表格样式\n.low-table__1846429439782793217 {\n padding: 13px 10px;\n\n .avue-crud__body {\n .avue-crud__tip {\n display: none;\n }\n\n .el-form {\n border-right: 1px solid #E9E9E9;\n border-left: 1px solid #E9E9E9;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n\n // .el-button--primary {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #f0f7ff;\n\n // &:hover {\n // color: #fff;\n // background: #409eff;\n // }\n // }\n\n // .el-button--warning {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fff7eb;\n\n // &:hover {\n // color: #fff;\n // background: #ff9900;\n // }\n // }\n\n // .el-button--danger {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fef3f3;\n\n // &:hover {\n // color: #fff;\n // background: #f56c6c;\n // }\n // }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n }\n\n\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1846429439782793217 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1849341458542403586, '1', 1, '2024-10-24 14:45:37', 101, 1, '2024-11-12 10:07:00', 0, 1845012516400803842, 'scss', '// 表格样式\n.low-table__1845012516400803842 {\n padding: 10px !important;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n\n // .el-button--primary {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #f0f7ff;\n\n // &:hover {\n // color: #fff;\n // background: #409eff;\n // }\n // }\n\n // .el-button--warning {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fff7eb;\n\n // &:hover {\n // color: #fff;\n // background: #ff9900;\n // }\n // }\n\n // .el-button--danger {\n // height: 25px;\n // border: 1px solid;\n // padding: 0px 8px;\n // font-size: 12px;\n // font-family: 微软雅黑, sans-serif;\n // font-weight: 400;\n // line-height: 25px;\n // border-radius: 5px;\n // background: #fef3f3;\n\n // &:hover {\n // color: #fff;\n // background: #f56c6c;\n // }\n // }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1845012516400803842 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1849353633709334530, '1', 1, '2024-10-24 15:34:00', 101, 1, '2024-10-30 10:02:48', 0, 1833323260582391810, 'scss', '// 表格样式\n.low-table__1833323260582391810 {\n\n .avue-crud__body {\n border: 1px solid #ebeef5;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n }\n\n }\n\n\n }\n\n .cell>span {\n color: #666;\n }\n\n &::before {\n height: 0;\n }\n }\n }\n\n\n\n .el-pagination {\n\n .el-pagination__total,\n .el-pagination__sizes,\n .el-pagination__jump {\n display: none;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1833323260582391810 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1849354533353988097, '1', 1, '2024-10-24 15:37:35', 101, 1, '2024-10-24 15:47:33', 0, 1838824808796180481, 'scss', '// 表格样式\n.low-table__1838824808796180481 {\n .avue-crud__tip {\n display: none;\n }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n .justify-center {\n gap: 5px;\n\n .el-button--primary {\n height: 25px;\n border: 1px solid;\n padding: 0px 8px;\n font-size: 12px;\n font-family: 微软雅黑, sans-serif;\n font-weight: 400;\n line-height: 25px;\n border-radius: 5px;\n background: #f0f7ff;\n\n &:hover {\n color: #fff;\n background: #409eff;\n }\n }\n\n .el-button--success {\n border: 1px solid #67C23A;\n background-color: #67c23a1d;\n border-radius: 6px;\n padding: 5px 9px;\n\n &:hover {\n background: #67C23A;\n color: #fff;\n }\n }\n\n\n .el-button--warning {\n height: 25px;\n border: 1px solid;\n padding: 0px 8px;\n font-size: 12px;\n font-family: 微软雅黑, sans-serif;\n font-weight: 400;\n line-height: 25px;\n border-radius: 5px;\n background: #fff7eb;\n\n &:hover {\n color: #fff;\n background: #ff9900;\n }\n }\n\n .el-button--danger {\n height: 25px;\n border: 1px solid;\n padding: 0px 8px;\n font-size: 12px;\n font-family: 微软雅黑, sans-serif;\n font-weight: 400;\n line-height: 25px;\n border-radius: 5px;\n background: #fef3f3;\n\n &:hover {\n color: #fff;\n background: #f56c6c;\n }\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1838824808796180481 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1850741461957713921, '1', 1, '2024-10-28 11:28:44', 101, 1, '2024-10-28 17:13:59', 0, 1850723645460291586, 'js', 'return {\n initOption() { //表格显示前执行\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1851137650784915457, '1', 1, '2024-10-29 13:43:03', 101, 1, '2024-10-29 14:07:19', 0, 1850724499567386625, 'js', 'return {\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1851524923179270145, '1', 1, '2024-10-30 15:21:56', 101, 1, '2024-11-02 14:58:56', 0, 1851205230887346177, 'js', '//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_xq\', {\n controlName: \'\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/teamDetails/index.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'详情\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { controlView_xq } = Vue.toRefs(rendControlData.value)\nconst controlData = controlView_xq.value.params //ControlView的配置\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.selection = false\n tableOption.value.dialogWidth = \'45%\'\n buttonObj.value.header.addBtn.label = \'创建团队\'\n buttonObj.value.menu.viewBtn.display = false\n useFun.setPropConfig(\'cy\', {\n render: ({ row }) => {\n let val = 0\n if (row.cy) {\n val = row.cy.split(\',\').length\n }\n return val\n }\n })\n\n },\n xq_btn(row) {\n controlData.controlParams = {\n data: row\n }\n controlView_xq.value.show = true //显示ControlView\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1851525945729613826, '1', 1, '2024-10-30 15:26:00', 101, 1, '2024-11-02 15:50:44', 0, 1851205230887346177, 'scss', '// 表格样式\n.low-table__1851205230887346177 {\n\n .avue-crud__header {\n .avue-crud__right {\n display: none;\n }\n }\n\n .el-form>.avue-crud__grid {\n .avue-crud__grid__content {\n height: 263px;\n\n &::before {\n height: 0;\n }\n\n .avue-crud__grid__item {\n width: auto;\n }\n\n .tx,\n .name,\n .tdjs,\n .cytx {\n .avue-crud__grid__label {\n display: none;\n }\n }\n\n .tx {\n .avue-crud__img {\n width: 60px;\n height: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n height: 100%;\n margin: 0 !important;\n border-radius: 50%;\n\n }\n }\n }\n\n .name {\n position: absolute;\n top: 10px;\n left: 90px;\n font-weight: 700;\n\n .control-input {\n color: #666666;\n font-size: 16px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑\', sans-serif;\n }\n }\n\n .tdjs {\n position: absolute;\n top: 40px;\n left: 90px;\n\n .control-input {\n color: #999999;\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: initial;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n }\n\n\n .cytx {\n position: absolute;\n top: 100px;\n left: 90px;\n\n .avue-crud__img {\n margin-left: -5px;\n\n &:first-child {\n margin-left: 0;\n }\n\n img {\n height: 28px;\n width: 28px;\n border-radius: 50%;\n margin-right: 0 !important;\n }\n }\n\n .el-tag {\n margin-left: 5px;\n }\n }\n\n\n\n .cy,\n .xm,\n .rw {\n position: absolute;\n top: 155px;\n display: block;\n width: 33.3%;\n padding-right: 0;\n\n\n\n .avue-crud__grid__label,\n .avue-crud__grid__value {\n height: 28px;\n line-height: 28px;\n text-align: center;\n }\n\n .avue-crud__grid__label {\n display: block;\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n color: #999999;\n margin: 0 auto;\n\n &::after {\n content: \'\';\n }\n }\n\n .avue-crud__grid__value {\n width: 100%;\n font-size: 20px;\n font-family: \'微软雅黑 Bold\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n color: #666666;\n }\n }\n\n .cy {\n left: 0;\n }\n\n .xm {\n left: 33.3%;\n }\n\n .rw {\n left: 66.6%;\n }\n\n .menu {\n position: absolute;\n top: 210px;\n left: 0;\n width: 100%;\n\n .avue-crud__grid__value {\n width: 100%;\n\n .el-button {\n width: 33.3%;\n height: 25px;\n font-size: 12px;\n color: #999999;\n border-left: 1px solid rgba(233, 233, 233, 1);\n border-radius: 0;\n margin-left: 0;\n padding: 0;\n\n &:hover {\n background-color: white;\n }\n\n &:first {\n border-left: none;\n }\n }\n }\n }\n\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1851205230887346177 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1851796251979472897, NULL, NULL, NULL, NULL, 1, '2024-11-04 10:50:20', 0, 1851796249232203778, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_80779\', {\n formId: \'1851890190622343169\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1851796249232203778\', //表单开发id\n dataId: \'\',//数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'创建相册\', //标题\n width: \'35%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_53120\', {\n controlName: \'albumForm\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/album/albumForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'相册详情\', //标题\n width: \'90%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n\n\n//控件调用\nconst { formView_80779, controlView_53120 } = Vue.toRefs(rendControlData.value)\n// componentRef.value.formView_80779 FormView的Ref控件引用\n\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.columnBtn = false\n buttonObj.value.header.addBtn.label = \'新建相册\'\n buttonObj.value.header.addBtn.type = \'\'\n buttonObj.value.header.addBtn.params = {\n plain: true,\n text: false,\n }\n\n tableOption.value.column.zt_img = {\n render: ({ row }) => {\n return h(\'img\', {\n style: {\n width: \'100%\',\n height: \'100%\',\n },\n src: row.zt_img,\n onMouseenter: () => mouseEnter(row.id, \'block\'),\n }, [])\n }\n }\n tableOption.value.column.zt_box = {\n render: ({ row }) => {\n return row.zt_box\n }\n }\n\n //遮罩层\n const mouseEnter = (id, type) => {\n let widthStr = window.screen.width > 1536 ? 68.8 : \'62.8\'\n if (type == \'block\') {\n tableData.value.map(item => {\n if (id == item.id) {\n item.zt_box =\n h(\'div\', {\n style: { width: \'100%\', height: `${widthStr}%`, background: \'red\', position: \'absolute\', top: 0 }\n }, [\n h(\'img\', {\n style: {\n width: \'100%\',\n height: \'100%\',\n position: \'absolute\', top: 0\n },\n src: item.zt_img,\n },),\n h(\'div\', {\n style: {\n width: \'100%\',\n height: \'100%\',\n position: \'absolute\',\n top: 0,\n zIndex: \'99\',\n background: \'rgba(0, 0, 0, 0.5)\',\n },\n onMouseleave: () => mouseEnter(id, \'none\')\n }, [\n h(\'div\', {\n style: { height: \'30px\', display: \'flex\', justifyContent: \'end\', padding: \'10px 20px 0px 20px\' },\n }, [\n h(Icon, { icon: \'bytesize:edit\', size: 20, color: \'#fff\', style: { cursor: \'pointer\' }, onClick: () => clickFun() }),\n h(Icon, { icon: \'bitcoin-icons:copy-outline\', size: 20, color: \'#fff\', style: { padding: \'0px 20px\', cursor: \'pointer\' }, onClick: () => clickFun() }),\n h(Icon, { icon: \'ic:outline-delete\', size: 20, color: \'#fff\', style: { cursor: \'pointer\' }, onClick: () => clickFun(\'del\') }),\n ]),\n h(\'div\', {\n style: {\n width: \'100%\',\n height: \'82%\',\n display: \'flex\', justifyContent: \'center\', alignItems: \'center\',\n },\n }, [\n h(\'div\', { class: \'btn\', style: { cursor: \'pointer\' }, onClick: () => viewFun() }, \'查看相册\'),\n ])\n ])\n ])\n }\n\n return item\n })\n } else {\n tableData.value.map(item => {\n if (id == item.id) {\n item.zt_box = \'\'\n }\n })\n }\n\n }\n\n //创建相册点击事件\n const clickFun = (date) => {\n if (date) {\n message.confirm(\'是否确定删除数据?\', \'操作确认\', { type: \'warning\' })\n return false\n }\n formView_80779.value.show = true //显示FormView\n const controlData = formView_80779.value.params //FormView的配置\n }\n\n //查看相册\n const viewFun = () => {\n controlView_53120.value.show = true //显示ControlView\n const controlData = controlView_53120.value.params //ControlView的配置\n }\n\n tableOption.value.column.time_test = {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', justifyContent: \'space-between\', width: \'100%\', height: \'40px\', fontFamily: `\'MicrosoftYaHei\', \'微软雅黑\', sans-serif`, fontWeight: 400 }\n }, [\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\', },\n }, [\n h(Icon, { icon: \'ic:baseline-photo-library\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row.num),\n ]),\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, useFun.formatPast(row.create_time, \'YYYY-MM-DD\')),\n ]),\n ])\n }\n return \'\'\n }\n }\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n // tableData.value.map()\n resolve(data)\n })\n },\n sctpBtn() {\n formView_80779.value.show = true //显示FormView\n const controlData = formView_80779.value.params //FormView的配置\n controlData.formId = \'1852253282782900226\'\n controlData.formType = \'edit\'\n controlData.popOption.title = \'上传到相册\'\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1851796251979472898, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:23:04', 0, 1851796249232203778, 'scss', '// 表格样式\n.low-table__1851796249232203778 {\n .avue-crud__grid__content {\n padding: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n padding: 0;\n\n &.zt_img {\n width: 100%;\n height: 56%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n margin:10px 12px 0px 17px;\n font-size: 14px;\n color: #666;\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n width: 100%;\n padding: 0px 17px;\n margin-top: 15px;\n }\n\n &.menu {\n margin-top: 4px;\n }\n }\n }\n\n .avue-crud__grid__value {\n width: 100%;\n white-space: normal;\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n\n .btn {\n color: #fff;\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 500;\n font-size: 12px;\n padding: 5px 20px;\n border: 1px solid #fff;\n border-radius: 5px;\n margin-top: -50px;\n }\n\n .btn:hover {\n color: #666;\n background: #fff;\n }\n\n .avue-crud__grid__item.zt_img {\n // height: 210px;\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1851796249232203778 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852237382402928641, '1', 1, '2024-11-01 14:33:00', 101, NULL, '2024-11-14 15:28:40', 0, 1852234473116233730, 'js', 'return {\n initOption() { //表格显示前执行\n if (props.enhanceData.type && props.enhanceData.type == \'view\') {\n tableOption.value.header = false\n tableOption.value.selection = false\n tableOption.value.menu = false\n tableOption.value.border = false\n }\n\n\n useFun.setPropConfig(\'cyxm_name\', {\n render: ({ row }) => {\n\n let text = row.cyxm_name\n let imgH = h(\'img\', { style: { borderRadius: \'50%\', width: \'23px\', height: \'23px\', marginRight: \'5px\' }, src: \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/f0ee8a3c7c9638a54940382568c9dpng_2.png\', })\n\n return h(\'div\', { class: [\'h-100%\', \'flex\', \'items-center\', \'justify-center\'] }, [imgH, h(\'span\', { style: { fontSize: \'12px\' } }, text)])\n }\n })\n\n\n\n useFun.setPropConfig(\'yql\', {\n render: ({ row }) => {\n let val = \'\'\n let val1 = row.yyq | 0\n let val2 = row.rwzs | 0\n val = val2 == 0 ? \'0%\' : (val1 / val2) * 100 + \'%\'\n return val\n }\n })\n\n useFun.setPropConfig(\'wcl\', {\n render: ({ row }) => {\n let val = \'\'\n let val1 = row.ywc | 0\n let val2 = row.rwzs | 0\n val = val2 == 0 ? \'0%\' : (val1 / val2) * 100 + \'%\'\n\n // let greenH = h(\'div\', { class: [\'bg-#51D351\', `w-${val}`, \'h-100%\', \'rounded-2xl\'] }, \'\')\n // let huiH = h(\'div\', { class: [\'bg-#E9E9E9\', \'w-100px\', \'h-8px\', \'rounded-2xl\', \'mr-10px\'] }, greenH)\n\n let greenH = h(\'div\', { style: { backgroundColor: \'#51D351\', width: val, height: \'100%\', borderRadius: \'5px\' } }, \'\')\n let huiH = h(\'div\', { style: { backgroundColor: \'#E9E9E9\', width: \'100px\', height: \'8px\', borderRadius: \'5px\', marginRight: \'10px\' } }, greenH)\n\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\' } }, [huiH, val])\n }\n })\n\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852241982870745089, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:44:25', 0, 1852241979997646849, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_80779\', {\n formId: \'1851890190622343169\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1851796249232203778\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'创建相册\', //标题\n width: \'35%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_53120\', {\n controlName: \'albumForm\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/album/albumForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'相册详情\', //标题\n width: \'60%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n\n\n//控件调用\nconst { formView_80779, controlView_53120 } = Vue.toRefs(rendControlData.value)\n// componentRef.value.formView_80779 FormView的Ref控件引用\n\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.columnBtn = false\n\n tableOption.value.column.zt_img = {\n render: ({ row }) => {\n return h(\'img\', {\n style: { width: \'100%\', height: \'50%\' },\n src: row.zt_img\n }, [])\n }\n }\n\n tableOption.value.column.time_test = {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: {\n display: \'flex\',\n justifyContent: \'space-between\',\n fontFamily: `\'MicrosoftYaHei\', \'微软雅黑\', sans-serif`,\n fontWeight: 400,\n width: \'100%\',\n height: \'40px\',\n }\n }, [\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#666\', marginLeft: \'17px\', },\n }, [\n h(\'span\', { style: { marginLeft: \'2px\', fontFamily: `\'MicrosoftYaHei\', \'微软雅黑\', sans-serif`, fontWeight: 400, } }, row.name),\n ]),\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\', marginRight: \'17px\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, useFun.formatPast(row.create_time, \'YYYY-MM-DD\')),\n ]),\n ])\n }\n return \'\'\n }\n }\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n // tableData.value.map()\n resolve(data)\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852241982870745090, NULL, NULL, NULL, NULL, 1, '2024-11-02 11:34:59', 0, 1852241979997646849, 'scss', '// 表格样式\n.low-table__1852241979997646849 {\n .avue-crud__tip {\n display: none;\n }\n\n .avue-crud__grid__content {\n \n padding: 0;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n padding: 0;\n\n &.zt_img {\n width: 100%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n // margin-top: 10px;\n margin-left: 17px;\n font-size: 14px;\n color: #666;\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n // width: 100%;\n // padding: 5px 17px;\n // margin-top: 5px;\n }\n\n &.menu {\n margin-top: 4px;\n }\n }\n }\n\n .avue-crud__grid__value {\n width: 100%;\n white-space: normal;\n // padding: 0 17px;\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n\n .btn {\n color: #fff;\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 500;\n font-size: 12px;\n padding: 5px 20px;\n border: 1px solid #fff;\n border-radius: 5px;\n margin-top: -55px;\n }\n\n .btn:hover {\n color: #666;\n background: #fff;\n }\n\n .avue-crud__grid__item.zt_img {\n // height: 210px;\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1852241979997646849 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852269629856247809, '1', 1, '2024-11-01 16:41:08', 101, NULL, '2024-11-14 15:39:35', 0, 1852234473116233730, 'scss', '// 表格样式\n.low-table__1852234473116233730 {\n\n .el-table__cell {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n color: #666666 !important;\n height: 55px;\n }\n\n .el-table__inner-wrapper {\n .el-table__header-wrapper {\n .el-table__cell {\n background-color: white;\n }\n }\n\n &::before {\n height: 0;\n }\n }\n\n .avue-crud__pagination {\n\n .btn-prev,\n .btn-next {\n margin: 0;\n padding: 0;\n }\n\n .btn-prev,\n .btn-next,\n .number {\n width: 35px;\n height: 35px;\n }\n\n\n .el-pagination__total,\n .el-pagination__sizes,\n .el-pagination__jump {\n display: none;\n }\n }\n\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1852234473116233730 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852630516890824705, '1', 1, '2024-11-02 16:35:10', 101, 1, '2024-11-04 15:48:42', 0, 1852624838914699265, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n\nreturn {\n initOption() { //表格显示前执行\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n buttonObj.value.header.exportBtn.params = {\n text: false,\n type: \'default\'\n }\n\n tableOption.value.selection = false\n buttonObj.value.header.addBtn.label = \'添加联系人\'\n useFun.setPropConfig(\'color\', {\n render: ({ row }) => {\n let color = row.color\n return h(\'div\', { style: { widht: \'inherit\', height: \'60px\', backgroundColor: color } }, \'\')\n }\n })\n\n let arr = [\n { key: \'sj\', icon: \'lineicons:phone\' },\n { key: \'yx\', icon: \'mingcute:mail-line\' },\n { key: \'dh\', icon: \'iconamoon:phone-light\' },\n { key: \'dz\', icon: \'mdi:address-marker-outline\' },\n ]\n arr.forEach(ele => {\n useFun.setPropConfig(ele.key, {\n render: ({ row }) => {\n let text = row[ele.key]\n if (Icon) {\n return h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', },\n }, [\n h(Icon, { icon: ele.icon, size: 18, style: { color: \'#CCCCCC\', marginRight: \'5px\' } }),\n h(\'div\', text)\n ])\n }\n return text\n }\n })\n })\n },\n\n beforeSearch(search) { //搜索前执行\n return new Promise(resolve => {\n if (search.lx == \'1\') {\n resolve({\n \'pageNo\': 1,\n \'pageSize\': 12\n })\n }\n resolve(search)\n })\n },\n beforeData(data) { //表格赋值前执行\n return new Promise(resolve => {\n data.forEach(ele => {\n if (!ele.tx) ele.tx = \'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png\'\n })\n resolve(data)\n })\n },\n yj_btn(row) {\n // 定义邮件收件人、主题和正文内容\n const recipients = [\'recipient1@example.com\', \'recipient2@example.com\'];\n const subject = \'这是邮件的主题\';\n const body = \'这是邮件的正文内容\';\n\n // 拼接 `mailto` 链接\n const to = recipients.join(\',\');\n const mailtoLink = `mailto:${to}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n\n // 打开系统默认的邮件客户端,并预填写相应信息\n window.open(mailtoLink);\n },\n bj_btn(row) {\n let data = {}\n for (let key in row) {\n if (key.indexOf(\'$\') == -1) data[key] = row[key]\n }\n data.lx = 2\n useFun.requestApi(\'put\', \'/jeelowcode/dbform-data/edit/1852624838914699265\', {\n data\n }).then(res => {\n useFun.refreshChange()\n })\n\n },\n bj_two_btn(row) {\n\n let data = {}\n for (let key in row) {\n if (key.indexOf(\'$\') == -1) data[key] = row[key]\n }\n data.lx = 1\n useFun.requestApi(\'put\', \'/jeelowcode/dbform-data/edit/1852624838914699265\', {\n data\n }).then(res => {\n useFun.refreshChange()\n })\n\n\n\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1852637672214065153, '1', 1, '2024-11-02 17:03:36', 101, 1, '2024-11-04 17:09:00', 0, 1852624838914699265, 'scss', '// 表格样式\n.low-table__1852624838914699265 {\n\n .el-card__body {\n .avue-crud__header {\n .avue-crud__right {\n display: none;\n }\n }\n\n .el-form {\n .avue-crud__grid__content {\n height: 250px;\n display: block;\n\n .avue-crud__grid__item {\n .avue-crud__grid__label {\n display: none;\n\n &::after {\n content: \'\';\n }\n }\n }\n\n .tx {\n position: absolute;\n top: 0px;\n left: 20px;\n z-index: 1;\n height: 60px;\n display: flex;\n align-items: center;\n\n img {\n height: 35px;\n border-radius: 50%;\n margin: 0 !important;\n }\n }\n\n .xm,\n .zw {\n position: absolute;\n top: 0px;\n z-index: 1;\n height: 60px;\n display: flex;\n align-items: center;\n\n .avue-crud__grid__value {\n color: white;\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n }\n\n }\n\n .xm {\n width: 65px;\n left: 65px;\n\n }\n\n .zw {\n width: 60px;\n left: 125px;\n\n .avue-crud__grid__value {\n font-size: 12px;\n }\n }\n\n .color {\n position: absolute;\n top: 0;\n width: 100%;\n left: 0;\n padding-right: 0;\n\n .avue-crud__grid__value {\n width: inherit;\n }\n\n }\n\n .gs,\n .sj,\n .yx,\n .dh,\n .dz {\n width: 100%;\n margin-left: 10px;\n height: 32px;\n line-height: 32px;\n margin-bottom: 0;\n\n .avue-crud__grid__value {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n\n }\n\n }\n\n .sj,\n .yx,\n .dh,\n .dz {\n .avue-crud__grid__value {\n font-size: 12px;\n }\n }\n\n .gs {\n margin-top: 64px;\n }\n\n .menu {\n position: absolute;\n top: 0px;\n z-index: 1;\n right: 10px;\n height: 60px;\n display: flex;\n align-items: center;\n margin-top: 0;\n\n .avue-crud__grid__value {\n .el-button {\n color: white;\n width: 35px;\n height: 24px;\n border-right: 1px solid #ffffff38;\n padding: 0;\n margin: 0;\n border-radius: 0;\n\n svg {\n font-size: 18px;\n }\n\n &>span>span {\n display: none;\n }\n\n &:last-child {\n border-right: none;\n }\n\n &:hover {\n background-color: initial;\n }\n }\n }\n }\n\n &::before {\n height: 0;\n }\n }\n }\n }\n\n .avue-crud__pagination {\n\n .btn-prev,\n .btn-next {\n margin: 0;\n padding: 0;\n }\n\n .btn-prev,\n .btn-next,\n .number {\n width: 35px;\n height: 35px;\n }\n\n .btn-prev {\n margin-left: 10px;\n }\n\n\n .el-pagination__total,\n .el-pagination__jump {\n display: none;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1852624838914699265 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1853271618111107073, '1', 1, '2024-11-04 11:02:41', 101, 1, '2024-11-05 14:07:39', 0, 1853269839533273090, 'scss', '// 表格样式\n.low-table__1853269839533273090 {\n .avue-crud__grid {\n .el-checkbox-group {\n .el-row {\n\n .avue-crud__grid__content::before {\n height: 0;\n }\n\n\n &>.el-col:nth-child(2n) {\n .avue-crud__grid__content {\n background-color: #F5F5F5 !important;\n }\n }\n\n .avue-crud__grid__content {\n height: 72px;\n padding: 13.5px;\n padding-left: 30px;\n\n .avue-crud__grid__item {\n width: calc(100% / 7);\n flex-direction: column;\n font-family: \'微软雅黑\', sans-serif;\n line-height: 36px;\n text-align: left;\n color: #666;\n\n .avue-crud__grid__label {\n color: #999;\n font-size: 12px;\n\n &::after {\n content: \'\';\n }\n }\n\n .avue-crud__grid__value {\n height: 36px;\n line-height: 36px;\n }\n\n\n }\n\n .create_user {\n .avue-crud__grid__value {\n display: flex;\n align-items: center;\n\n img {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n }\n }\n }\n\n .menu {\n margin: 0;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .avue-crud__grid__value {\n height: auto;\n\n .el-button {\n width: 25px;\n height: 25px;\n color: white;\n border-radius: 50%;\n\n &>span {\n width: 100%;\n height: 100%;\n position: relative;\n\n .el-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n &>span{\n display: none;\n }\n }\n\n\n svg {\n font-size: 16px;\n }\n\n\n &.el-button--primary {\n background-color: rgb(64, 158, 255);\n margin-right: 5px;\n }\n\n &.el-button--danger {\n background-color: rgb(245, 108, 108);\n }\n }\n }\n\n // height: 67px;\n }\n }\n }\n }\n }\n\n // .low-field__tjry>span::before{\n // width: 21px;\n // height: 21px;\n // background: #cccccc;\n // border-radius: 50%;\n // display: inline-block;\n // content: \'\';\n // background-image: url(../../../../../public/img/user.jpg);\n // background-repeat: no-repeat;\n // background-size: 100% 100%;\n // margin-right:3px;\n // }\n\n .low-field__pyzt>span::before {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #fec03d;\n display: inline-block;\n content: \'\';\n margin-right: 5px;\n }\n\n // .low-field__tjry>span,.low-field__pyzt>span{\n // display: flex;\n // align-items: center;\n // }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1853269839533273090 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1853283093823320066, '1', 1, '2024-11-04 11:48:17', 101, 1, '2024-11-07 09:30:15', 0, 1853269839533273090, 'js', 'let Icon = \'\'\nlet lowStore = null\nlet username = \'\'\n\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\nuseFun.dynamicImport(\'store/modules/low\').then(module => {\n if (module) {\n lowStore = module.useLowStoreWithOut()\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_gzbg\', {\n formId: \'1853325190400012289\', //表单设计id\n formType: \'add\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: false, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'新增报告\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n useFun.resetChange()\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_bgxq\', {\n controlName: \'\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/workReport/components/index.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'报告详情\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { formView_gzbg, controlView_bgxq } = Vue.toRefs(rendControlData.value)\nconst controlData = formView_gzbg.value.params //FormView的配置\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n\n buttonObj.value.header.addBtn.display = false\n buttonObj.value.menu.editBtn.display = false\n buttonObj.value.menu.viewBtn.display = false\n buttonObj.value.menu.delBtn.label = \'\'\n buttonObj.value.menu.delBtn.icon = \'mingcute:delete-line\'\n\n useFun.setPropConfig(\'create_user\', {\n render: ({ row }) => {\n let defaultImg = \'http://oss.yckxt.com/chatgpt/upload/1/2024-11-02/1/f0ee8a3c7c9638a54940382568c9dpng_2.png\'\n username = lowStore.dicObj.userSelect?.[row.create_user] || row.create_user\n\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' }, }, [\n h(\'img\', { src: defaultImg, style: { marginRight: \'5px\' } }),\n h(\'div\', username)\n ])\n }\n })\n },\n xjbg_btn() {\n controlData.formType = \'add\'\n controlData.popOption.title = \'新增报告\'\n controlData.defaultData = {}\n formView_gzbg.value.show = true //显示FormView\n },\n bj_btn(row) {\n controlData.formType = \'edit\'\n controlData.popOption.title = \'编辑报告\'\n controlData.defaultData = row\n formView_gzbg.value.show = true //显示FormView\n },\n xq_btn(row) {\n //控件调用\n controlView_bgxq.value.show = true //显示ControlView\n const bgxq = controlView_bgxq.value.params //ControlView的配置\n\n bgxq.controlParams = {\n data: {\n ...row,\n username: username\n },\n stepList: props.enhanceData.stepList,\n form2Data: props.enhanceData.form2Data\n }\n\n }\n\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854096209561759746, '1', 1, '2024-11-06 17:39:18', 101, NULL, '2024-11-20 13:57:00', 0, 1854067250698612737, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.searchIndex = 5\n\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n buttonObj.value.header.exportBtn.params = {\n text: false,\n type: \'default\'\n }\n buttonObj.value.menu.viewBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') apiData.czbh = useFun.formatDate(new Date(), \'YYYYMMDD\')\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854099929380925441, '1', 1, '2024-11-06 17:54:05', 101, NULL, '2024-11-20 11:18:57', 0, 1854067250698612737, 'scss', '// 表格样式\n.low-table__1854067250698612737 {\n .avue-crud__body {\n .avue-crud__tip {\n display: none;\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n .el-form {\n border-left: 1px solid #ebeef5;\n border-right: 1px solid #ebeef5;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n\n\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854067250698612737 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854331402176409602, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:03:10', 0, 1854331399533998082, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.searchIndex = 5\n\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n buttonObj.value.header.exportBtn.params = {\n text: false,\n type: \'default\'\n }\n buttonObj.value.menu.viewBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.spbh = useFun.formatDate(new Date(), \'YYYYMMDD\')\n apiData.ywbh = \'HT\' + useFun.formatDate(new Date(), \'YYYYMMDD\')\n apiData.tjsj = useFun.formatDate(new Date(), \'YYYY-MM-DD HH:mm:ss\')\n }\n\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854331402184798209, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:04:17', 0, 1854331399533998082, 'scss', '// 表格样式\n.low-table__1854331399533998082 {\n .avue-crud__body {\n\n .avue-crud__tip {\n display: none;\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n .el-form {\n border-left: 1px solid #ebeef5;\n border-right: 1px solid #ebeef5;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854331399533998082 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854341004418854914, NULL, NULL, NULL, NULL, 1, '2024-11-07 10:06:22', 0, 1854341001851940865, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.searchIndex = 5\n\n buttonObj.value.header.exportBtn.label = \'导出数据\'\n buttonObj.value.header.exportBtn.params = {\n text: false,\n type: \'default\'\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854341004418854915, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:08:24', 0, 1854341001851940865, 'scss', '// 表格样式\n.low-table__1854341001851940865 {\n\n .avue-crud__body {\n\n\n .avue-crud__tip {\n display: none;\n }\n\n .avue-crud__header {\n .el-button--primary {\n background: #ffffff;\n color: #999;\n border-color: #e4e4e4;\n\n &:hover {\n border-color: #7bbbff;\n color: #7bbbff;\n background: #f0f7ff;\n }\n }\n }\n\n .el-form {\n border-left: 1px solid #ebeef5;\n border-right: 1px solid #ebeef5;\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n }\n\n &.el-table__row--striped {\n\n .el-table__cell {\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854341001851940865 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854351931109257218, '1', 1, '2024-11-07 10:35:27', 101, 1, '2024-11-07 15:01:53', 0, 1854048263491252226, 'js', '\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_95659\', {\n formId: \'1854399122108559362\', //表单设计id\n formType: \'view\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'1854048263491252226\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'公告详情\', //标题\n width: \'\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [ //底部按钮配置\n // {\n // params: {}, //el-button 其他参数\n // name: \'测试按钮\', //按钮名称\n // display: true, //是否显示\n // loading: true, //点击时是否有loading\n // icon: \'\', //图标\n // clickFun: (loading) => {\n // //点击事件\n // if (loading) loading() //关闭loading\n // }\n // }\n ],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n//控件调用\nconst { formView_95659 } = Vue.toRefs(rendControlData.value)\n\n\nreturn {\n initOption() { //表格显示前执行\n tableOption.value.refreshBtn = false\n tableOption.value.columnBtn = false\n tableOption.value.searchShowBtn = false\n tableOption.value.searchIndex = 5\n\n useFun.setPropConfig(\'ggzt\', {\n render: (optins) => {\n let { row, column } = optins\n let reStatus = \'\'\n let status = row.ggzt\n let color = \'#19be6b\'\n column.dicData.some(item => {\n if (item.value == status) {\n reStatus = item.label\n status = status == \'1\' ? color : \'red\'\n return true\n }\n })\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: color, marginRight: \'5px\' } }, \'\')\n if (reStatus) return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [radius, reStatus])\n }\n })\n\n let arr = [\'xqBtn\', \'delBtn\']\n arr.map(item => {\n buttonObj.value.menu[item].params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n })\n buttonObj.value.menu.xqBtn.icon = \'icon-park-outline:right-c\'\n },\n xqBtn(row) {\n formView_95659.value.show = true //显示FormView\n const controlData = formView_95659.value.params //FormView的配置\n controlData.defaultData = row\n }\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854359437000814594, '1', 1, '2024-11-07 11:05:17', 101, 1, '2024-11-07 13:38:15', 0, 1854048263491252226, 'scss', '// 表格样式\n.low-table__1854048263491252226 {\n .avue-crud__tip {\n display: none;\n }\n\n // .avue-crud__header {\n // .el-button--primary {\n // background: #ffffff;\n // color: #999;\n // border-color: #e4e4e4;\n\n // &:hover {\n // border-color: #7bbbff;\n // color: #7bbbff;\n // background: #f0f7ff;\n // }\n // }\n // }\n\n .el-table__inner-wrapper {\n .el-table__header {\n height: 55px;\n\n .el-table__cell {\n background: #f2f2f2;\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n }\n }\n\n .el-table__body-wrapper {\n .el-table__row {\n height: 55px;\n\n &.el-table__row--striped {\n\n .el-table__cell {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n background: #f2f2f2;\n }\n }\n\n }\n\n }\n\n .cell>span {\n color: #666;\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854048263491252226 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854409482811191298, '1', 1, '2024-11-07 14:24:09', 101, 1, '2024-11-08 15:11:46', 0, 1854408557228961794, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_htlb\', {\n controlName: \'\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/riendshipForum/components/topicList.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'drawer\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'话题列表\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n//控件调用\nconst { controlView_htlb } = Vue.toRefs(rendControlData.value)\n\nreturn {\n initOption() { //表格显示前执行\n // 点击用抽屉 80% ,后面用弹窗,编辑时先关闭弹窗\n useFun.setPropConfig(\'htsl\', {\n render: ({ row }) => {\n const numH = h(\'div\', { style: { fontSize: \'18px\', color: \'#666666\', fontFamily: \'微软雅黑, sans-serif\' } }, row.htsl)\n const iconTitH = h(\'div\', { style: { color: \'#999999\', fontSize: \'12px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [h(Icon, { icon: \'mynaui:message\', size: \'18\', style: { marginRight: \'3px\' } }), \'话题\'])\n return h(\'div\', { style: { height: \'56px\', lineHeight: \'28px\' } }, [numH, iconTitH])\n }\n })\n\n useFun.setPropConfig(\'hfsl\', {\n render: ({ row }) => {\n const numH = h(\'div\', { style: { fontSize: \'18px\', color: \'#666666\', fontFamily: \'微软雅黑, sans-serif\' } }, row.hfsl)\n const iconTitH = h(\'div\', { style: { color: \'#999999\', fontSize: \'12px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [h(Icon, { icon: \'ri:wechat-pay-line\', size: \'18\', style: { marginRight: \'3px\' } }), \'回复\'])\n return h(\'div\', { style: { height: \'56px\', lineHeight: \'28px\' } }, [numH, iconTitH])\n }\n })\n\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.menu = false\n tableOption.value.selection = false\n tableOption.value.header = false\n }\n },\n\n cellClick(row, column, cell, event) { //单元格单击\n\n if (column.prop == \'htbk\' || column.prop == \'bkjs\') {\n controlView_htlb.value.show = true //显示ControlView\n const controlData = controlView_htlb.value.params //ControlView的配置\n // componentRef.value.controlView_htlb ControlView的Ref控件引用\n\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854417850556723202, '1', 1, '2024-11-07 14:57:24', 101, 1, '2024-11-08 15:03:32', 0, 1854408557228961794, 'scss', '// 表格样式\n.low-table__1854408557228961794 {\n .el-checkbox-group {\n &>.el-row>.el-col {\n padding: 0;\n padding-top: 10px;\n border-bottom: 1px solid #e9e9e9;\n\n\n .avue-crud__grid__content {\n margin: 10px 30px;\n padding: 0 16px;\n height: 70px;\n border: none;\n border-radius: 0;\n display: flex;\n align-items: center;\n\n &::before {\n\n height: 0;\n }\n\n .avue-crud__grid__item {\n width: auto;\n\n .avue-crud__grid__label {\n display: none;\n }\n }\n\n .bktx {\n .avue-crud__img {\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background-color: rgba(204, 204, 204, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n height: 28px;\n margin-right: 0 !important;\n }\n }\n }\n\n .htbk {\n position: absolute;\n top: 6px;\n left: 95px;\n\n .avue-crud__grid__value {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n font-size: 18px;\n }\n }\n\n .bkjs {\n position: absolute;\n top: 35px;\n left: 95px;\n\n .avue-crud__grid__value {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n color: #999999;\n }\n\n }\n\n .htbk,\n .bkjs {\n cursor: pointer;\n }\n\n .create_user {\n margin-left: 555px;\n margin-right: 10px;\n\n .avue-crud__grid__value {\n font-family: \'微软雅黑\', sans-serif;\n font-weight: 400;\n font-size: 12px;\n color: #999999;\n }\n\n }\n\n .cytx {\n .upload-show-box {\n .avue-crud__img {\n margin-right: -11px;\n\n img {\n height: 35px;\n width: 35px;\n border-radius: 50%;\n margin-right: 0 !important;\n }\n\n\n }\n\n .el-tag {\n margin-left: 15px;\n }\n }\n }\n\n .htsl {\n margin-left: auto;\n width: 120px;\n display: flex;\n justify-content: center;\n }\n\n .hfsl {\n width: 120px;\n display: flex;\n justify-content: center;\n }\n\n\n }\n }\n }\n\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854408557228961794 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854447544547127297, '1', 1, '2024-11-07 16:55:23', 101, 1, '2024-11-08 11:41:30', 0, 1854438272522235905, 'js', 'return {\n initOption() { //表格显示前执行\n tableOption.value.column.cp_title = {\n render: ({ row }) => {\n return h(\'div\', {\n style: {\n width: \'100%\',\n cursor: \'pointer\'\n // height: \'100%\',\n },\n onClick: () => clickFun()\n }, row.cp_title)\n }\n }\n tableOption.value.column.cp_text = {\n render: ({ row }) => {\n return h(\'div\', {\n style: {\n width: \'100%\',\n cursor: \'pointer\'\n // height: \'100%\',\n },\n onClick: () => clickFun()\n }, row.cp_text)\n }\n }\n tableOption.value.column.num = {\n render: ({ row }) => {\n return h(\'div\', {\n style: {\n width: \'100%\',\n cursor: \'pointer\'\n // height: \'100%\',\n },\n onClick: () => clickFun()\n }, `${row.num}条知识`)\n }\n }\n\n const clickFun = () => {\n props.enhanceData.clickFun()\n }\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if(type == \'add\'){\n apiData.llcs = 0\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854448815274438657, '1', 1, '2024-11-07 17:00:26', 101, NULL, '2024-11-20 15:41:07', 0, 1854438272522235905, 'scss', '// 表格样式\n.low-table__1854438272522235905 {\n\n .avue-crud__grid__content::before {\n display: none;\n }\n\n .avue-crud__grid__content {\n flex-direction: column;\n padding: 30px 0;\n\n .avue-crud__grid__item {\n margin: auto;\n justify-content: center;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n &.img {\n margin-bottom: 15px;\n\n .avue-crud__img {\n img {\n height: 70px;\n margin-right: 0 !important;\n }\n }\n }\n\n &.cp_title,\n &.cp_text,\n &.num {\n height: 28px;\n line-height: 28px;\n }\n\n &.cp_title {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n color: #666;\n height: 28px;\n line-height: 28px;\n\n .avue-crud__grid__value {\n font-size: 16px;\n }\n }\n\n &.cp_text {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n color: #999999;\n font-size: 14px;\n\n }\n\n &.num {\n .avue-crud__grid__value {\n color: #409eff;\n }\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854438272522235905 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854695848728047618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854695846278574082, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\nreturn {\n initOption() { //表格显示前执行\n\n buttonObj.value.menu.viewBtn.label = \'查看详情\'\n buttonObj.value.menu.viewBtn.icon = \'formkit:right\'\n\n tableOption.value.column.content = {\n render: ({ row }) => {\n if (Icon) {\n return h(\'div\', {\n style: { width: \'100%\', display: \'flex\', justifyContent: \'space-between\', marginTop: \'10px\' },\n }, [\n h(\'div\', {\n style: { width: \'80%\', fontFamily: `\'MicrosoftYaHei\', \'微软雅黑\', sans-serif`, color: \'#999999 !important\', fontSize: \'14px\', textAlign: \'left\', },\n }, row.content),\n h(\'div\', {\n style: { display: \'flex\', alignItems: \'center\', fontSize: \'14px\', color: \'#999\', marginTop: \'-26px\' },\n }, [\n h(Icon, { icon: \'mingcute:time-line\', size: 14 }),\n h(\'span\', { style: { marginLeft: \'2px\' } }, row.time),\n ])\n ])\n }\n return \'\'\n }\n }\n\n\n },\n beforeRequest(type, apiData) { //新增、修改、删除请求接口前执行\n return new Promise((resolve, reject) => {\n if (type == \'add\') {\n apiData.time = useFun.formatDate(new Date, \'YYYY-MM-DD HH:mm\')\n }\n resolve(apiData)\n // reject() 可以停止当前请求台的操作\n })\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854695848728047619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854695846278574082, 'scss', '// 表格样式\n.low-table__1848649270435160066 {\n .avue-crud__grid__content {\n width: 400%;\n\n .avue-crud__grid__label {\n display: none;\n }\n\n .avue-crud__grid__item {\n width: 100%;\n\n &.zt_img {\n width: 100%;\n aspect-ratio: 1 / 0.56; //保持元素纵横比\n }\n\n .low-field__zt_img {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n\n .avue-crud__img {\n width: 100%;\n\n img {\n width: 100%;\n height: 56%;\n margin-right: 0 !important;\n object-fit: cover\n }\n }\n }\n\n &.zt_title {\n margin-top: 10px;\n font-size: 14px;\n color: #333;\n }\n\n &.zt_type {\n font-size: 14px;\n color: #999;\n }\n\n &.time_test {\n position: absolute;\n left: 16px;\n bottom: 5px;\n width: 94px;\n }\n\n &.menu {\n margin-top: 4px;\n }\n }\n }\n\n .avue-crud__grid__value {\n white-space: normal;\n }\n\n .avue-crud__grid .avue-crud__grid__content {\n padding: 16px;\n border: none;\n border-bottom: 1px solid #f2f2f2;\n }\n\n .avue-crud__grid .avue-crud__grid__content::before {\n background: none;\n }\n\n .el-row {\n display: flex;\n flex-direction: column;\n }\n\n .avue-crud__grid .title .avue-crud__grid__value {\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\n font-weight: 700;\n font-style: normal;\n font-size: 16px;\n text-align: left;\n color: #666666;\n }\n\n\n .avue-crud__grid .menu {\n justify-content: start;\n\n .el-button {\n border: 1px solid #e4e4e4;\n }\n\n .el-button:last-child {\n position: absolute;\n right: 20px;\n border: none;\n\n >span {\n flex-direction: row-reverse;\n }\n }\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1848649270435160066 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854720471423234050, '1', 1, '2024-11-08 10:59:54', 101, 1, '2024-11-09 09:27:46', 0, 1854716968965484545, 'js', 'let Icon = \'\'\nconst h = Vue.h\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\n if (module) {\n Icon = module.default\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'ControlView\', \'controlView_article\', {\n controlName: \'\', //控件名称(全局注册的控件使用,例:el-transfer )\n controlPath: \'views/lowTemplate/generalPage/riendshipForum/components/article.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\n controlParams: {}, //控件配置\n showType: \'dialog\', //弹窗类型 dialog | drawer\n popOption: { //弹窗配置\n title: \'话题详情\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {}, //弹窗其他配置\n handleClose: (done) => { //关闭弹窗前的回调\n done()\n }\n }\n})\n\n\n//初始化控件\nuseFun.controlInit(\'FormView\', \'formView_htbj\', {\n formId: \'1854442042421391362\', //表单设计id\n formType: \'edit\', //表单类型 add | edit | view\n handleType: \'\', //处理类型 default | returnData\n showType: \'dialog\', //弹窗类型 dialog | drawer\n showButton: true, //是否显示底部默认操作按钮\n dataOption: { //数据配置 \n tableId: \'\', //表单开发id\n dataId: \'\' //数据id\n },\n defaultData: {}, //默认表单数据\n enhanceData: {}, //传递给表单js增强内部调用配置\n popOption: { //弹窗配置\n title: \'话题编辑\', //标题\n width: \'80%\', //弹窗宽度\n fullscreen: false, //是否全屏\n footerBtn: [],\n headerBtn: [], //顶部按钮配置(配置同上)\n dialogParams: {} //弹窗其他配置\n },\n beforeClose: (type, done, formData, loading) => {\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\n if (type == \'submit\') {\n useFun.refreshChange()\n console.log(\'表单数据\', formData)\n }\n done()\n }\n})\n\n\n//控件调用\nconst { controlView_article, formView_htbj } = Vue.toRefs(rendControlData.value)\n\n\nreturn {\n initOption() { //表格显示前执行\n\n useFun.setPropConfig(\'sd\', {\n render: ({ row }) => {\n if (row.sd && row.sd == \'1\') {\n return h(Icon, { icon: \'solar:lock-linear\', size: \'17\', style: { color: \'#999999\', } })\n }\n return \'\'\n }\n })\n\n useFun.setPropConfig(\'zdrm_tit\', {\n render: ({ row }) => {\n let h1 = \'\'\n let h2 = \'\'\n if (row.zd && row.zd == \'1\') {\n h1 = h(\'div\', { style: { width: \'52px\', height: \'20px\', borderRadius: \'26px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\', fontSize: \'12px\', backgroundColor: \'#0099FF\', color: \'white\', marginRight: \'8px\' } }, \'置顶\')\n }\n if (row.rm && row.rm == \'1\') {\n h2 = h(\'div\', { style: { width: \'52px\', height: \'20px\', borderRadius: \'26px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\', fontSize: \'12px\', backgroundColor: \'#FF7A8C\', color: \'white\' } }, \'热门\')\n }\n\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [h1, h2])\n }\n })\n\n useFun.setPropConfig(\'create_time\', {\n render: ({ row }) => {\n const numH = h(\'span\', { style: { fontSize: \'14px\', color: \'#999999\', fontFamily: \'MicrosoftYaHei, 微软雅黑, sans-serif\', marginRight: \'5px\' } }, row.create_time)\n const iconTitH = h(Icon, { icon: \'mingcute:time-line\', size: \'17\', style: { marginRight: \'3px\', color: \'#999999\', } })\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\', height: \'28px\' } }, [iconTitH, numH])\n }\n })\n\n useFun.setPropConfig(\'lll\', {\n render: ({ row }) => {\n const numH = h(\'span\', { style: { fontSize: \'12px\', color: \'#999999\', fontFamily: \'微软雅黑, sans-serif\', marginRight: \'5px\' } }, row.lll)\n const iconTitH = h(\'span\', { style: { color: \'#999999\', fontSize: \'12px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [h(Icon, { icon: \'lsicon:view-outline\', size: \'20\', style: { marginRight: \'3px\' } }), \'浏览\'])\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\', height: \'36.8px\' } }, [iconTitH, numH])\n }\n })\n\n useFun.setPropConfig(\'hfl\', {\n render: ({ row }) => {\n const numH = h(\'span\', { style: { fontSize: \'12px\', color: \'#999999\', fontFamily: \'微软雅黑, sans-serif\', marginRight: \'5px\' } }, row.hfl)\n const iconTitH = h(\'span\', { style: { color: \'#999999\', fontSize: \'12px\', display: \'flex\', alignItems: \'center\', justifyContent: \'center\' } }, [h(Icon, { icon: \'ri:wechat-pay-line\', size: \'20\', style: { marginRight: \'3px\' } }), \'回复\'])\n return h(\'div\', { style: { display: \'flex\', alignItems: \'center\', justifyContent: \'center\', height: \'36.8px\' } }, [iconTitH, numH])\n }\n })\n\n if (props.enhanceData && props.enhanceData.type == \'view\') {\n tableOption.value.menu = false\n tableOption.value.selection = false\n tableOption.value.header = false\n tableOption.value.index = false\n\n }\n\n },\n\n\n cellClick(row, column, cell, event) { //单元格单击\n if (column.prop == \'htbt\') {\n controlView_article.value.show = true //显示ControlView\n const controlData = controlView_article.value.params //ControlView的配置\n controlData.controlParams = {\n data: row,\n hideFun: () => {\n controlView_article.value.show = false\n //控件调用\n formView_htbj.value.show = true //显示FormView\n const controlData = formView_htbj.value.params //FormView的配置\n\n controlData.defaultData = row\n controlData.enhanceData = {\n type:\'update\'\n }\n }\n }\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1854727383615254530, '1', 1, '2024-11-08 11:27:22', 101, 1, '2024-11-08 15:01:38', 0, 1854716968965484545, 'scss', '// 表格样式\n.low-table__1854716968965484545 {\n\n .avue-crud__grid {\n .el-checkbox-group {\n .avue-crud__grid__content {\n height: 90px;\n padding: 0 16px;\n align-items: center;\n border: none;\n border-radius: 0;\n border-bottom: 1px solid #e4e7ed;\n\n &::before {\n height: 0;\n }\n\n .avue-crud__grid__item {\n width: auto;\n\n .avue-crud__grid__label {\n display: none;\n }\n }\n\n .cytx {\n .avue-crud__img {\n img {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n }\n }\n }\n\n .htbt {\n position: absolute;\n top: 15px;\n left: 75px;\n width: 350px;\n\n .avue-crud__grid__value {\n font-family: \"微软雅黑 Bold\", \"微软雅黑 Regular\", 微软雅黑, sans-serif;\n font-weight: 700;\n font-size: 16px;\n color: rgb(102, 102, 102);\n cursor: pointer;\n height: 28px;\n line-height: 28px;\n\n &:hover {\n color: rgb(64, 158, 255);\n }\n }\n\n }\n\n .sd,\n .zdrm_tit {\n position: absolute;\n top: 15px;\n margin-bottom: 0;\n\n .avue-crud__grid__value {\n height: 28px;\n display: flex;\n align-items: center;\n }\n }\n\n .sd {\n left: 435px;\n }\n\n .zdrm_tit {\n left: 460px;\n }\n\n .create_user,\n .create_time {\n position: absolute;\n top: 43px;\n\n\n .avue-crud__grid__value {\n font-family: \'MicrosoftYaHei\', \'微软雅黑\', sans-serif;\n font-weight: 400;\n color: #999999;\n }\n }\n\n .create_user {\n left: 75px;\n }\n\n .create_time {\n left: 155px;\n }\n\n .lll {\n margin-left: auto;\n }\n\n .hfl {\n padding-right: 4px;\n }\n }\n\n }\n }\n\n .avue-crud__pagination {\n margin-bottom: 40px;\n }\n}\n\n// 表单弹窗样式\n.low-table__dialog__1854716968965484545 {}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1856505240385429506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1856505236472143874, 'js', 'return {\n initOption() { //表格显示前执行\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1856507867009589250, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:33', 0, 1846429439782793217, 'js', 'return {\n initOption() { //表格显示前执行\n buttonObj.value.menu.delBtn.params = {\n plain: true,\n text: false,\n size: \"small\"\n }\n },\n}'); +INSERT INTO `lowcode_dbform_enhance_js` VALUES (1857356499465154561, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:14', 0, 1848301752228683777, 'js', 'return {\n initOption() { //表格显示前执行\n // buttonObj.value.menu.delBtn.params = {\n // plain: true,\n // text: false,\n // size: \"small\"\n // }\n },\n}'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_enhance_sql +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_enhance_sql`; +CREATE TABLE `lowcode_dbform_enhance_sql` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `button_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮编码', + `execute_sql` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '执行SQL', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `list_result_handle_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '结果处理类型', + `sort` int(0) NULL DEFAULT NULL COMMENT '排序', + `active_status` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '生效状态;N=不生效 Y=生效', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-SQL增强' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_enhance_sql +-- ---------------------------- +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1798562530591322113, '1', 1, '2024-06-06 11:48:18', NULL, NULL, NULL, 0, NULL, 'add', 'SELECT * FROM table_test_3', '1111', NULL, NULL, 'Y'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1834497496137732097, '1', 1, '2024-09-13 15:41:01', 101, 1, '2024-09-13 15:41:10', 0, 1833031105253642242, 'page', 'SELECT\r\n stu.*,\r\n sco.score_test \r\nFROM\r\n example_student stu\r\n LEFT JOIN example_score sco ON stu.id = sco.student_id AND sco.is_deleted = 0 \r\nWHERE\r\n #{jeelowcode_auto_where}', '1', '0', 1, 'N'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1834511320169517057, '1', 1, '2024-09-13 16:35:57', 101, NULL, '2024-09-13 16:44:08', 1, 1833031105253642242, 'add', 'INSERT INTO example_score \r\n(\r\n id,\r\n student_id,\r\n course_id,\r\n tenant_id,\r\n create_user,\r\n create_time,\r\n create_dept,\r\n update_user,\r\n update_time,\r\n is_deleted,\r\n score_test\r\n)\r\nVALUES\r\n(\r\n #{jeelowcode_id},\r\n #{jeelowcode_main_id},\r\n 1,\r\n #{jeelowcode_tenant_id},\r\n #{jeelowcode_user_id},\r\n #{jeelowcode_date_time},\r\n NULL,\r\n NULL,\r\n null,\r\n 0,\r\n 100\r\n)', '', '0', 1, 'Y'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1834529741871390722, '1', 1, '2024-09-13 17:49:09', 101, NULL, '2024-09-14 16:24:34', 1, 1833031105253642242, 'detail', 'SELECT\r\n stu.*,\r\n sco.score_test \r\nFROM\r\n example_student stu\r\n LEFT JOIN example_score sco ON stu.id = sco.student_id AND sco.is_deleted = 0 \r\nWHERE\r\n stu.is_deleted = 0\r\nLIMIT 1', '111', '0', 1, 'N'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1838823625136988161, '1', 1, '2024-09-25 14:11:31', 101, 1, '2024-09-25 14:12:53', 0, 1833031105253642242, 'detail', 'SELECT\r\n * \r\nFROM\r\n example_student \r\nWHERE\r\n is_deleted = 0 \r\n LIMIT 1', '', '0', 1, 'N'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1838825741943459841, '1', 1, '2024-09-25 14:19:55', 101, 1, '2024-09-25 14:22:19', 0, 1833031105253642242, 'detail', 'SELECT\r\n * \r\nFROM\r\n example_student \r\nWHERE\r\n is_deleted = 0\r\n LIMIT 1', '', '0', 1, 'N'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1838838230861131778, '1', 1, '2024-09-25 15:09:33', 101, 1, '2024-09-25 15:18:07', 0, 1833031105253642242, 'detail', 'SELECT\r\n * \r\nFROM\r\n example_student \r\nWHERE\r\n is_deleted = 0\r\n LIMIT 1', '', '0', 1, 'N'); +INSERT INTO `lowcode_dbform_enhance_sql` VALUES (1854460727014854657, '1', 1, '2024-11-07 17:47:46', 101, NULL, '2024-11-07 17:48:47', 1, 1854438272522235905, 'detail', 'SELECT COUNT(id) AS num FROM example_mkgl_tdzsk WHERE is_deleted = 0', '', '0', 1, 'Y'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field`; +CREATE TABLE `lowcode_dbform_field` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `field_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段名称', + `field_len` int(0) NULL DEFAULT NULL COMMENT '字段长度', + `field_point_len` int(0) NULL DEFAULT NULL COMMENT '小数位数', + `field_default_val` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '默认值', + `field_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段类型', + `field_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `is_primary_key` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否主键;N=否 Y=是', + `is_null` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否允许为空;N=否 Y=是', + `sort_num` int(0) NULL DEFAULT NULL COMMENT '排序', + `is_db` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否同步到数据库 N=否 Y=是', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_fieldcode`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-数据库字段表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field +-- ---------------------------- +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532289, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:14', 0, 1831577841380671489, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532290, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:14', 0, 1831577841380671489, 'name', '姓名', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532291, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:14', 0, 1831577841380671489, 'age', '年龄', 32, 0, '', 'Integer', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532292, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:14', 0, 1831577841380671489, 'birth_date', '出生日期', 32, 0, '', 'Date', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532293, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:14', 0, 1831577841380671489, 'interest', '爱好', 200, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532294, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532295, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532296, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532297, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532298, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532299, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831577842219532300, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093377, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093378, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'pid', '父级节点', 128, 0, '0', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093379, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'type_name', '分类名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093380, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'type_code', '分类编号', 32, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093381, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'type_state', '状态', 2, 0, '1', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093382, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'remark', '备注', 500, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093383, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093384, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093385, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093386, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093387, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093388, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831582331685093389, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:44', 0, 1831582331282440193, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724792467457, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', '学生名字', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', '出生日期', 128, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', '性别', 2, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', '邮箱', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856072, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831606724800856075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664705, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664706, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664707, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'course_name', '课程名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664708, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'credits', '学分', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664709, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'grade', '成绩', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664710, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664711, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664712, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664713, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664714, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664715, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831607480446664716, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:05', 0, 1831607480064983042, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123842, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123843, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123844, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'emergency_contact', '紧急联系人', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123845, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'contact_phone', '联系人电话', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123846, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'address', '住址', 300, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123847, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123848, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123849, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123850, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123851, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123852, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831608167721123853, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:19', 0, 1831608167414939649, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597506, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597507, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'first_name', '学生名字', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597508, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'birth_date', '出生日期', 128, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597509, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'sex', '性别', 2, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597510, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'email', '邮箱', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597511, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597512, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597513, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597514, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597515, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597516, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831879666952597517, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:57', 0, 1831879666549944322, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198721, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198722, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198723, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'course_name', '课程名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198724, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'credits', '学分', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198725, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'grade', '成绩', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198726, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198727, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198728, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198729, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198730, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198731, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881275879198732, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079938, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079939, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079940, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'emergency_contact', '紧急联系人', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079941, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'contact_phone', '联系人电话', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079942, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'address', '住址', 300, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079943, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079944, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079945, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079946, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079947, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079948, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831881398055079949, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:48', 0, 1831881397711147010, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412866, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412867, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'first_name', '学生名字', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412868, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'birth_date', '出生日期', 128, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412869, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'sex', '性别', 2, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412870, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'email', '邮箱', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412871, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412872, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412873, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412874, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412875, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412876, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883128549412877, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:58', 0, 1831883128176119810, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540417, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540418, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540419, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'course_name', '课程名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540420, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'credits', '学分', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540421, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'grade', '成绩', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540422, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540423, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540424, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540425, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540426, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540427, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883201060540428, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:15', 0, 1831883200666275842, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885570, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885571, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'main_id', '主表id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885572, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'emergency_contact', '紧急联系人', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885573, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'contact_phone', '联系人电话', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885574, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'address', '住址', 300, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885575, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885576, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885577, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885578, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885579, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885580, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831883389019885581, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304066, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304067, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_input', '文本输入框', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304068, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_password', '密码输入框', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304069, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_number', '数字输入框', 128, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304070, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_textarea', '多行文本框', 200, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304071, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_select', '下拉选择框', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304072, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_tree', '树型选择框', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304073, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_cascader', 'Cascader级联选择框', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304074, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_table', '表格选择框', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304075, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_user', '用户选择框', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304076, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_dept', '部门选择框', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304077, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_region', '地区选择框', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304078, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_radio', '单选框', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304079, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_checkbox', '多选框', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304080, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_date', '日期', 128, 0, '', 'Date', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304081, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_time', '时间', 128, 0, '', 'Time', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304082, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_datetime', '日期时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304083, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_file', '文件上传', 500, 0, '', 'String', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304084, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_image', '图片上传', 500, 0, '', 'String', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304085, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_code', '代码编辑器', 128, 0, '', 'LongText', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304086, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_custom', '自定义控件', 128, 0, '', 'String', '', 'N', 'Y', 21, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304087, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_ueditor', '富文本', 128, 0, '', 'LongText', '', 'N', 'Y', 22, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304088, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 23, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304089, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 24, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304090, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 25, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304091, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 26, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304092, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 27, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304093, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 28, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1831939952489304094, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 29, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769473, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:33', 0, 1833031105253642242, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769474, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:33', 0, 1833031105253642242, 'sno', '学号', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769475, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:33', 0, 1833031105253642242, 'name', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769476, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'sex', '性别', 0, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769477, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'birthday', '出生日期', 0, 0, '', 'Date', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769478, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769479, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769480, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769481, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769482, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769483, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833031105601769484, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497665, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497666, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'name', '姓名', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497667, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'age', '年龄', 32, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497668, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'birth_date', '出生日期', 32, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497669, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'interest', '爱好', 200, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497670, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497671, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497672, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497673, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497674, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497675, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833055215712497676, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833058198729404417, NULL, NULL, NULL, NULL, NULL, '2024-09-09 16:24:33', 1, 1833031105253642242, 'flag', '标志', 0, 0, '0', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833058223232528386, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', '标志', 0, 0, '0', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833059183140941826, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'flag', '标记', 0, 0, '0', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918849, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918850, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'name', '姓名', 32, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918851, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'birth_date', '出生日期', 32, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918852, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'age', '年龄', 32, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918853, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'interest', '爱好', 200, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918854, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918855, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918856, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918857, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918858, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918859, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833320021203918860, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027458, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:45', 0, 1833323260582391810, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027459, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:45', 0, 1833323260582391810, 'client_name', '客户名称', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027460, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:45', 0, 1833323260582391810, 'client_type', '客户类型', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027461, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:45', 0, 1833323260582391810, 'client_status', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027462, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:45', 0, 1833323260582391810, 'client_head_contact', '首联系人', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027463, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'phone_number', '手机号码', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027464, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_affiliation', '客户归属', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027465, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027466, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027467, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027468, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027469, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027470, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833323264827027471, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984450, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984451, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'user_id', '用户id', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984452, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'visitor_time', '来访时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984453, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'goods_name', '携带物品', 300, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984454, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984455, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984456, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984457, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984458, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984459, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833326227674984460, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1833341745725865986, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'classe', '班级', 128, 0, '', 'String', '', 'N', 'Y', 7, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903234, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903235, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'student_id', '学生', 0, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903236, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'course_id', '课程', 0, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903237, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', '成绩', 128, 0, '', 'BigDecimal', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903238, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903239, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903240, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903241, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903242, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903243, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834065861927903244, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834066111180402689, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', 'ddd', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834066736295301122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'aa', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834067120823083010, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score_test', '分数', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834067852469084161, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score_test', '分数', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834067961191436290, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'aa', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834068799590862850, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:18:08', 1, 1834065859105136642, 'aab', 'aab', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834070266312089601, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'score_test', '分数', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996673, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:09', 0, 1834136609367400450, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996674, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:09', 0, 1834136609367400450, 'tabs_card_date', '时间', 128, 0, '', 'Date', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996675, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:09', 0, 1834136609367400450, 'tabs_card_target_money', '目标金额', 128, 2, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996676, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:09', 0, 1834136609367400450, 'tabs_card_accomplish_money', '成交金额', 128, 2, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996677, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_accomplish_form', '成交订单', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996678, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_percentage_complete', '完成率', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996679, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_average_price', '平均客单价', 128, 2, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996680, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_department', '部门', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996681, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_personnel', '人员', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996682, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996683, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996684, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996685, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996686, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996687, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834136609811996688, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1834523622176362497, '1', 1, '2024-09-13 17:24:50', 101, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'score_test', '成绩', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 8, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298963816886273, '1', 1, '2024-09-18 14:59:24', 101, NULL, NULL, 0, 1836298963389067265, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298964089516033, '1', 1, '2024-09-18 14:59:24', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', '商品图片', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298964336979970, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', '商品名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298964592832513, '1', 1, '2024-09-18 14:59:25', 101, 1, '2024-09-18 15:05:07', 0, 1836298963389067265, 'price', '价格', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298964848685057, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'hh', '货号', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298965096148994, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', '规格', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298965356195841, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'num', '数量', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298965612048386, '1', 1, '2024-09-18 14:59:25', 101, 1, '2024-09-19 12:00:32', 0, 1836298963389067265, 'subtotal', '小计', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298965872095234, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298966123753473, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298966392188930, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298966656430082, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298966916476929, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298967168135170, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836298967419793410, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318516433203201, '1', 1, '2024-09-18 16:17:06', 101, NULL, NULL, 0, 1836318516001189890, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318516697444353, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:48', 0, 1836318516001189890, 'time', '操作时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318516953296897, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:48', 0, 1836318516001189890, 'manipulator', '操作者', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318517221732353, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:48', 0, 1836318516001189890, 'order_status', '订单状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318517481779202, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'payment_status', '付款状态', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318517750214658, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'delivery_status', '发货状态', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318518006067201, '1', 1, '2024-09-18 16:17:06', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'view', '操作详情', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318518274502657, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', '小计', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318518538743809, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318518807179266, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318519067226113, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318519331467266, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318519599902721, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318519859949569, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1836318520128385025, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141822094303234, '1', 1, '2024-09-23 17:02:16', 101, NULL, NULL, 0, 1838141821641318402, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141822345961474, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141822593425409, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141822840889345, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141823092547586, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141823344205826, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141823583281154, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838141823830745089, '1', 1, '2024-09-23 17:02:16', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392379270782977, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392379518246913, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'bh', '编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392379774099457, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'company_name', '公司名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392380025757698, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392380273221633, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392380529074178, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', '客户来源', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392380772343810, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'add_people', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392381028196354, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 0, 1838392378859741185, 'customer_star', '客户星级', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392381279854594, '1', 1, '2024-09-24 09:37:54', 101, NULL, NULL, 1, 1838392378859741185, 'update_date', '更新时间', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392381535707138, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392381778976769, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392382030635010, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392382282293250, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392382533951490, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392382781415426, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838392383020490754, '1', 1, '2024-09-24 09:37:54', 101, NULL, '2024-11-14 14:28:25', 0, 1838392378859741185, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494734175760385, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494734381281281, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'sr', '生日', 128, 0, '', 'Date', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494734570024962, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'tx', '头像', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494734767157249, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'name', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494734968483841, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'sg', '身高', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494735169810433, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'tz', '体重', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494735366942721, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'sj', '手机', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494735564075010, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'dz', '地址', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494735757012993, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'xs', '显示', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494735949950978, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'zt', '状态', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494736147083265, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494736344215554, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494736549736450, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494736746868737, '1', 1, '2024-09-24 16:24:37', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494736939806721, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494737141133314, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838494737338265602, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505719481569281, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505719750004737, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'bh', '编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505720014245889, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'company_name', '公司名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505720270098434, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505720530145282, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505720785997825, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', '客户来源', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505721041850369, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', '客户星级', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505721322868738, '1', 1, '2024-09-24 17:08:16', 101, NULL, NULL, 1, 1838505719016001538, 'add_people', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505721582915585, '1', 1, '2024-09-24 17:08:16', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'attributable_person', '归属人员', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505721847156738, '1', 1, '2024-09-24 17:08:17', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505722107203585, '1', 1, '2024-09-24 17:08:17', 101, 1, '2024-09-27 13:45:35', 0, 1838505719016001538, 'create_user', '添加人员', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505722363056129, '1', 1, '2024-09-24 17:08:17', 101, 1, '2024-09-27 13:45:35', 0, 1838505719016001538, 'create_time', '添加时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505722623102977, '1', 1, '2024-09-24 17:08:17', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505722904121346, '1', 1, '2024-09-24 17:08:17', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505723155779586, '1', 1, '2024-09-24 17:08:17', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838505723420020737, '1', 1, '2024-09-24 17:08:17', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838508236328210433, '1', 1, '2024-09-24 17:18:16', 101, 1, '2024-09-24 17:44:18', 1, 1838505719016001538, 'add_date', '添加时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838508236588257281, '1', 1, '2024-09-24 17:18:16', 101, 1, '2024-09-24 17:44:18', 1, 1838505719016001538, 'update_date', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748849560682497, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 0, 1838748849153835009, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748849812340738, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 0, 1838748849153835009, 'bh', '编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748850068193282, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', '公司名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748850319851521, '1', 1, '2024-09-25 09:14:23', 101, 1, '2024-09-25 09:27:10', 1, 1838748849153835009, 'khzt', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748850571509761, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748850814779393, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 0, 1838748849153835009, 'khly', '客户来源', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748851070631937, '1', 1, '2024-09-25 09:14:23', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748851322290178, '1', 1, '2024-09-25 09:14:23', 101, 1, '2024-09-25 09:34:06', 1, 1838748849153835009, 'gxsj', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748851561365506, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748851817218050, '1', 1, '2024-09-25 09:14:23', 101, 1, '2024-09-27 14:14:47', 0, 1838748849153835009, 'create_user', '添加人员', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748852064681986, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748852312145921, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748852559609858, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748852811268098, '1', 1, '2024-09-25 09:14:23', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838748853067120642, '1', 1, '2024-09-25 09:14:24', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838750709780643842, '1', 1, '2024-09-25 09:21:46', 101, 1, '2024-09-27 15:16:36', 0, 1838748849153835009, 'djbt', '客户信息', 128, 0, '', 'String', '', 'N', 'Y', 4, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1838752954639253505, '1', 1, '2024-09-25 09:30:41', 101, 1, '2024-09-27 14:36:11', 0, 1838748849153835009, 'khzt', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838752954890911746, '1', 1, '2024-09-25 09:30:41', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'hylx', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754174531600386, '1', 1, '2024-09-25 09:35:32', 101, NULL, NULL, 0, 1838754174162501633, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754174749704194, '1', 1, '2024-09-25 09:35:32', 101, NULL, NULL, 0, 1838754174162501633, 'pid', '父级节点', 128, 0, '0', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754174980390913, '1', 1, '2024-09-25 09:35:32', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', '分类名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754175198494722, '1', 1, '2024-09-25 09:35:32', 101, NULL, NULL, 0, 1838754174162501633, 'classification_number', '分类编号', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754175420792834, '1', 1, '2024-09-25 09:35:32', 101, NULL, NULL, 0, 1838754174162501633, 'status', '状态', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754175643090945, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', '商品数量', 128, 0, '', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754175869583362, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 1, 1838754174162501633, 'add_people', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754176083492866, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 1, 1838754174162501633, 'update_date', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754176305790978, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', '备注信息', 128, 0, '', 'Text', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754176528089089, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754176750387201, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'create_user', '添加人员', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754176968491009, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754177186594818, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754177413087233, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754177626996737, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838754177853489153, '1', 1, '2024-09-25 09:35:33', 101, NULL, '2024-10-23 14:33:10', 0, 1838754174162501633, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824809236582401, '1', 1, '2024-09-25 14:16:13', 101, NULL, NULL, 0, 1838824808796180481, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824809509212162, '1', 1, '2024-09-25 14:16:13', 101, NULL, NULL, 0, 1838824808796180481, 'bh', '编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824809769259010, '1', 1, '2024-09-25 14:16:13', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', '公司名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824810033500162, '1', 1, '2024-09-25 14:16:13', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', '多级表头', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824810297741314, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'khzt', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824810557788161, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'khly', '客户来源', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824810826223618, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'hylx', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824811086270466, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'tjry', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824811337928705, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'gxsj', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824811602169858, '1', 1, '2024-09-25 14:16:13', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824811878993922, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824812134846465, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824812403281921, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824812667523073, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824812923375618, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838824813187616769, '1', 1, '2024-09-25 14:16:14', 101, NULL, '2024-10-24 15:37:42', 0, 1838824808796180481, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826567581093890, '1', 1, '2024-09-25 14:23:12', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826567853723649, '1', 1, '2024-09-25 14:23:12', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'zt_title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826568113770497, '1', 1, '2024-09-25 14:23:12', 101, NULL, '2024-10-23 13:51:10', 0, 1838141821641318402, 'zt_type', '分类', 2, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826568373817345, '1', 1, '2024-09-25 14:23:12', 101, NULL, '2024-10-23 13:51:10', 0, 1838141821641318402, 'dz_num', '点赞数', 32, 0, '', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826568629669889, '1', 1, '2024-09-25 14:23:12', 101, NULL, '2024-10-23 13:51:10', 0, 1838141821641318402, 'sc_num', '收藏数', 32, 0, '', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838826568898105346, '1', 1, '2024-09-25 14:23:12', 101, NULL, '2024-10-23 13:51:10', 0, 1838141821641318402, 'pl_num', '评论数', 32, 0, '', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855934969405442, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855935246229506, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855935506276353, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855935757934593, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', '描述', 300, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855936022175746, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855936282222594, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855936542269442, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855936802316290, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855937058168834, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855937318215682, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1838855937578262529, '1', 1, '2024-09-25 16:19:54', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1839512444535959554, '1', 1, '2024-09-27 11:48:38', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'xb', '性别', 128, 0, '', 'String', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268794803003394, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268795075633153, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', '订单标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268795331485697, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', '订单总金额', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268795587338241, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'approval_status', '审批状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268795838996482, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', '已回款金额', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268796090654722, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', '已开票金额', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268796338118658, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268796593971202, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268796849823746, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268797101481986, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268797344751618, '1', 1, '2024-09-29 13:54:06', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268797600604161, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840268797852262401, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577516519587842, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577516758663169, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', '图片', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577516976766977, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', '系统', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577517199065090, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', '登录地址', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577517425557505, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', 'ip', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577517656244226, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577517874348034, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577518100840449, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577518327332866, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577518549630978, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577518771929090, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840577518998421505, '1', 1, '2024-09-30 10:20:51', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642757433573377, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642757702008834, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'title', '通知标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642757966249986, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'status', '状态', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642758243074050, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'type', '类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642758507315201, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642758775750658, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642759044186113, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_time', '发布时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642759312621570, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642759576862722, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642759845298178, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840642760109539330, '1', 1, '2024-09-30 14:40:06', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646327839047681, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646328082317313, '1', 1, '2024-09-30 14:54:17', 101, NULL, '2024-10-23 14:24:56', 0, 1840646327436394498, 'name', '姓名', 32, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646328325586946, '1', 1, '2024-09-30 14:54:17', 101, NULL, '2024-10-23 14:24:56', 0, 1840646327436394498, 'birthday', '生日', 32, 0, '', 'Date', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646328564662274, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'sex', '性别', 32, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646328807931906, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'stature', '身高(cm)', 32, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646329055395841, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'weight', '体重(kg)', 32, 0, '', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646329294471169, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'address', '地址', 300, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646329541935105, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'contact_type', '联系方式', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646329781010434, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', '兴趣爱好', 300, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646330028474369, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'educational', '教育背景', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646330275938306, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', '主修课程', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646330523402242, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', '软件技能', 500, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646330766671873, '1', 1, '2024-09-30 14:54:17', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', '个人介绍', 500, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646331009941505, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646331253211137, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646331496480770, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646331735556097, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646331974631426, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646332213706753, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840646332456976385, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1840670040101777410, '1', 1, '2024-09-30 16:28:30', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'rich_text', '富文本', 128, 0, '', 'Text', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476390288560130, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476390523441154, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'icon', '图标', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476390733156354, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476390951260161, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', '介绍', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476391169363970, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'switch', '开关', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476391387467778, '1', 1, '2024-10-08 10:19:56', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476391601377281, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476391811092481, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476392037584898, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476392264077313, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476392482181122, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1843476392696090625, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960396431361, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960429985793, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', '订单编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960455151617, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', '订单金额', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960488706049, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddzt', '订单状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960513871873, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:26:05', 0, 1844275960258019330, 'zfss', '支付方式', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960543232001, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:26:05', 0, 1844275960258019330, 'ddly', '订单来源', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960568397826, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:26:05', 0, 1844275960258019330, 'yhzh', '用户账号', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960601952257, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:26:05', 0, 1844275960258019330, 'tjsj', '提交时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960622923778, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960652283906, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960681644033, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960706809857, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960731975681, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960765530113, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844275960786501633, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844278208476266497, '1', 1, '2024-10-10 15:26:05', 101, NULL, NULL, 0, 1844275960258019330, 'ddlx', '订单类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844582485409148930, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', '备注', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844582485589504001, '1', 1, '2024-10-11 11:35:10', 101, 1, '2024-10-11 11:35:23', 0, 1844275960258019330, 'gbyy', '关闭原因', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967754084354, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967783444481, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbh', '工单编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967804416001, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', '工单标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967837970433, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdlx', '工单类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967858941954, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', '处理人员', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967892496385, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdzt', '工单状态', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967913467906, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 14:34:01', 0, 1844620967619866625, 'jycd', '紧要程度', 128, 0, '1', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967942828034, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', '提交时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967972188162, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620967997353985, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620968022519810, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620968051879938, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620968081240065, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620968102211586, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:09', 0, 1844620967619866625, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844620968131571713, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 15:03:09', 0, 1844620967619866625, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 21, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844624184659423233, '1', 1, '2024-10-11 14:20:52', 101, NULL, NULL, 0, 1844620967619866625, 'ddsc', '等待时长', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844626317882437633, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'glkh', '关联客户', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844626318050209794, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 14:33:21', 0, 1844620967619866625, 'gldd', '关联订单', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844626318071181314, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 14:34:01', 0, 1844620967619866625, 'gdms', '工单描述', 128, 0, '', 'LongText', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844626318104735746, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 14:34:02', 0, 1844620967619866625, 'csry', '抄送人员', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1844626318129901570, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 15:03:08', 0, 1844620967619866625, 'scfj', '上传附件', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516509855745, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516539215873, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', '文件名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516564381697, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'dx', '大小', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516593741825, '1', 1, '2024-10-12 16:03:57', 101, 1, '2024-10-12 16:04:48', 0, 1845012516400803842, 'scsj', '上传时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516618907649, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'scry', '上传人员', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516648267778, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', '备注内容', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516677627905, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516702793730, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516761513985, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516790874114, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516816039938, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516845400066, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845012516874760193, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389233537025, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389267091457, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389292257282, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389325811713, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389350977537, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389376143361, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389405503490, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389430669314, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'id', 'ID编号', 128, 0, '', 'BigInt', '', 'Y', 'N', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389460029441, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', '用户账号', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389489389569, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'membership_level', '会员等级', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389514555394, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_type', '用户状态', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389539721218, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', '订单记录', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389569081346, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', '消费金额', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389594247169, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', '可用积分', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389631995905, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_label', '用户标签', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845019389661356034, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'registration_channel', '注册渠道', 128, 0, '', 'String', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1845023446291521538, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', '注册时间', 128, 0, '', 'Date', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', '父级节点', 128, 0, '0', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'name', '部门名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'sjbm', '上级部门', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zt', '状态', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'cysl', '成员数量', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zgry', '主管人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340488, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:24:51', 0, 1846009550756601857, 'bmms', '部门描述', 128, 0, '', 'Text', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340495, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846009551096340496, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492738, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492739, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'name', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492740, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'phone', '手机号码', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492741, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'address', '详细地址', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492742, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'default_address', '默认地址', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492743, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492744, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492745, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492746, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492747, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492748, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846073999173492749, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:35', 0, 1846073998846337026, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846074925502308353, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', '邮政编码', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261186, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261187, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', '职务名称', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261188, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwms', '职务描述', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261189, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', '状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261190, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', '成员数量', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261191, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', '部门描述', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261192, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261193, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261195, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261196, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261197, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261198, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846083503831261199, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026497, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026498, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'sj', '事件', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026499, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'points_change', '积分变化', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026500, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', '客户状态', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026501, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', '行业类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026502, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', '客户来源', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026503, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', '添加人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026504, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', '客户星级', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026505, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026506, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026507, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'create_time', '记录时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026508, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026509, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026510, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846095080018026511, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846096151092273154, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:58:48', 0, 1846095079682482177, 'points_balance', '积分余额', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842306, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:07', 0, 1846100518918823938, 'create_time', '登录时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842307, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842308, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:07', 0, 1846100518918823938, 'ip', 'IP地址', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842309, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:07', 0, 1846100518918823938, 'address', '地址', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842310, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:07', 0, 1846100518918823938, 'dlfs', '登录方式', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842311, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842312, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842313, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842314, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842315, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846100519199842316, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465922, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'create_time', '操作时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465923, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465924, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czz', '操作者', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465925, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'cz_type', '操作类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465926, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czxq', '操作详情', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465927, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465928, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465930, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465931, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846103236496465932, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'xm', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357443, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'bm', '部门', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357444, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357445, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357446, NULL, NULL, NULL, NULL, NULL, '2024-10-15 17:50:50', 0, 1846121741006647298, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357447, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357448, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357449, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846121741367357450, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846124099778359298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zw', '职务', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846124099778359299, NULL, NULL, NULL, NULL, NULL, '2024-10-15 17:50:50', 0, 1846121741006647298, 'zhzt', '账号状态', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846126575772479490, NULL, NULL, NULL, NULL, NULL, '2024-10-15 17:54:34', 0, 1846121741006647298, 'phone', '手机', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846126575772479491, NULL, NULL, NULL, NULL, NULL, '2024-10-15 17:57:54', 0, 1846121741006647298, 'zxzt', '在线状态', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846126575772479492, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:30:58', 0, 1846121741006647298, 'zhdl', '最后登录', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783105, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783106, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783107, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', '部门', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783108, NULL, NULL, NULL, NULL, NULL, '2024-10-16 13:54:42', 0, 1846429439782793217, 'tjsj', '添加时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783109, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783110, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783111, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783112, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846429440084783115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825537, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:29:01', 0, 1846734665412726786, 'create_time', '登录时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825538, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:24', 0, 1846734665412726786, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825539, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:24', 0, 1846734665412726786, 'ip', '登录IP', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825540, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:24', 0, 1846734665412726786, 'address', '所在地区', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825541, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:29:01', 0, 1846734665412726786, 'zdlx', '终端类型', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825542, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825543, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825544, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825545, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825546, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846734665781825547, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846739002964770817, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', '浏览器/终端版本', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846739002964770818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', '操作系统', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846739002964770819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', '设备名称', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846739002964770820, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'macdz', 'MAC地址', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809986, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809987, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_time', '操作时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809988, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'czlx', '操作类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809989, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'czxq', '操作详情', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809990, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', '操作系统', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809991, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', '设备名称', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809992, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', 'MAC地址', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809993, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809994, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_user', '操作者', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809995, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809996, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809997, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809998, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856809999, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', '登录IP', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846747363856810000, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', '所在地区', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506882, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506883, NULL, NULL, NULL, NULL, NULL, '2024-10-17 18:04:10', 1, 1846853872583327745, 'turnover', '交易额', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506884, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', '订单量', 128, 0, '', 'Integer', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506885, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', '浏览量', 128, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506886, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', '访问用户', 128, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506887, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:23:39', 1, 1846853872583327745, 'registered_users', '注册用户', 128, 0, '', 'Integer', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506888, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'members', '新增会员', 128, 0, '', 'Integer', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506889, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'day', '日期', 0, 0, '', 'Date', '具体哪天', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506890, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506891, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506892, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506893, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506894, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506895, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1846853873040506896, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889922, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889923, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jbxx', '基本信息', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889924, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889925, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', '内容', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889926, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zt', '状态', 128, 0, '1', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889927, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmjd', '项目进度', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889928, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:18:03', 0, 1847094468974710786, 'zhgx', '最后更新', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmcy', '项目成员', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889930, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:46:17', 0, 1847094468974710786, 'xmzs', '项目总数', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889931, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:46:17', 0, 1847094468974710786, 'jxz', '进行中', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889932, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:46:17', 0, 1847094468974710786, 'ywc', '已完成', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889933, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:46:17', 0, 1847094468974710786, 'yyq', '已延期', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889934, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889935, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 21, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889936, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 22, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889937, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 23, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889938, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 24, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889939, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 25, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847094469431889940, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 26, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752833, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752834, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752835, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'status', '状态', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752836, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'jzsj', '截止时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752837, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'urgent_relief', '急缓', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752838, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', '项目名称', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752839, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', '留言数', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752840, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', '附件', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752841, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', '头像', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752842, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'kssj', '开始时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752843, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwtx', '任务提醒', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752844, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', '任务描述', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752845, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'cyry', '参与人员', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752846, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752847, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752848, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752849, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752850, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752851, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 21, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847103675941752852, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:01:14', 0, 1847103675560071169, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 22, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847104933704470530, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', '测试', 128, 0, '', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223105, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223106, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:52:04', 0, 1847167244620152834, 'table_type', '报表类型', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223107, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:05:45', 0, 1847167244620152834, 'value', 'json数据', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223108, NULL, NULL, NULL, NULL, NULL, '2024-10-18 15:52:04', 0, 1847167244620152834, 'type_index', '首页类型', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223109, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223110, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223111, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223112, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847167245010223115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847169696783343618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'color', '任务标注颜色', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847171060515151873, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', '提醒方式', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847183464090177538, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:56:23', 0, 1847094468974710786, 'fj', '附件', 128, 0, '', 'String', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847197496780132354, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', '开始时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847197496780132355, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', '结束时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847198271640047617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fzr', '负责人', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847198271640047618, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:51:42', 0, 1847094468974710786, 'cyry', '参与人员', 128, 0, '', 'String', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847198271640047619, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:53:25', 0, 1847094468974710786, 'rwbj', '任务标记', 128, 0, '', 'String', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847198271640047620, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:54:59', 0, 1847094468974710786, 'kxfw', '可选范围', 128, 0, '', 'String', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957377, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957378, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', '订单编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957379, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', '商品名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957380, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', '下单时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957381, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'num', '数量', 0, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957382, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'money', '金额', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957383, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', '状态', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957384, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957385, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957386, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957387, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957388, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957389, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847456813769957390, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779201, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779202, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779203, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'status', '状态', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779204, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'jzsj', '截止时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779205, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'urgent_relief', '急缓', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779206, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'xmmc', '项目名称', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779207, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'lys', '留言数', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779208, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'fj', '附件', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779209, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'tx', '头像', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779210, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'kssj', '开始时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779211, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'rwtx', '任务提醒', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779212, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'rwms', '任务描述', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779213, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'cyry', '参与人员', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779214, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'color', '任务标注颜色', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779215, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:20:47', 0, 1847472439438737409, 'txfs', '提醒方式', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779216, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779217, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779218, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779219, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779220, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 21, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779221, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 22, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847472439849779222, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 23, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847478144417792002, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847472439438737409, 'zw', '站位', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859651, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'ranking', '排名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859652, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'name', '商户名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859653, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'visit', '访问量', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859654, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'quantity', '订单量', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859655, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'cancel', '取消量', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859656, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'pj', '综合评分', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859657, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'money', '成交金额', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859658, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859659, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859660, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859661, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859662, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859663, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1847537155528859664, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:23', 0, 1847537155101040642, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848178483270971394, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', '评分数', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848178483270971395, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', '趋势增', 128, 0, '', 'String', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848178483270971396, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', '趋势减', 128, 0, '', 'String', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848263863924097025, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', '访问会员用户', 128, 0, '', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848268293314641922, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', '会员付费数', 128, 0, '', 'Integer', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919875, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', '成员姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919876, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', '加入时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919877, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', '部门', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919878, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', '角色', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919879, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919880, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919881, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919882, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919883, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919884, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848301752643919885, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357507, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357508, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357509, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', '描述', 300, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357510, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357511, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357512, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357514, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357515, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848631601342357516, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142211, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142212, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:08:30', 0, 1848637143087489025, 'zt_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142213, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142214, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:11:55', 0, 1848637143087489025, 'zt_title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142215, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142216, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:52', 0, 1848637143087489025, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142217, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142218, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'dz_num', '点赞数', 32, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142219, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142220, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'sc_num', '收藏数', 32, 0, '', 'Integer', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142221, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142222, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'pl_num', '评论数', 32, 0, '', 'Integer', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848637143490142223, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:22:09', 0, 1848637143087489025, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007554, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007555, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007556, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:56:30', 0, 1848649270435160066, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007557, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007558, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007559, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007560, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007561, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007562, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848649270842007563, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:58:53', 0, 1848649270435160066, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1848665315719946242, NULL, NULL, NULL, NULL, NULL, '2024-10-23 09:15:43', 0, 1848649270435160066, 'time', '时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351489, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351490, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351491, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', '年龄', 128, 0, '', 'Integer', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351492, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351493, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351494, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351495, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351496, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351497, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1849365535660351498, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052419, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrfks', '今日访客数', 128, 0, '', 'Integer', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052420, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrhyfws', '今日会员访问数', 128, 0, '', 'Integer', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052421, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrhyffs', '今日会员付费数', 128, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052422, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'xzhys', '新增会员数', 128, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052428, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850061360485052429, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804291, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', '访客量', 128, 0, '', 'Integer', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804292, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', '时间', 128, 0, '', 'Time', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804294, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804295, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804296, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804297, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850092583009804299, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579201, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579202, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'xse', '销售额', 0, 0, '', 'BigDecimal', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579203, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', '日期', 128, 0, '', 'Date', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579204, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579205, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579206, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579207, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579208, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579209, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850094920822579210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850102549808586753, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', '标题', 128, 0, '', 'String', '', 'N', 'Y', 16, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480195, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:39', 0, 1850109346514632706, 'sm', '数码', 10, 2, '', 'BigDecimal', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480196, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:41:23', 0, 1850109346514632706, 'nz', '男装', 10, 2, '', 'BigDecimal', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480197, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:41:23', 0, 1850109346514632706, 'my', '母婴', 10, 2, '', 'BigDecimal', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480198, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:41:23', 0, 1850109346514632706, 'xb', '鞋包', 10, 2, '', 'BigDecimal', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480199, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', '日期', 128, 0, '', 'Date', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480200, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:41:23', 0, 1850109346514632706, 'je', '金额', 10, 2, '', 'BigDecimal', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480201, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480202, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480203, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480204, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480205, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480206, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850109346921480207, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110594, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:46:29', 0, 1850723645460291586, 'kssj', '开始时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110595, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110596, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110597, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110598, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110599, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110600, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850723645888110601, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873986, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873987, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', '日程标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873988, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873989, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873990, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873991, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873992, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873993, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850724499944873994, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850726014533214210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'rl_id', '日历id', 128, 0, '', 'BigInt', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850780440347176961, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'sub_more_date', '日历管理附表数据json', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1850780487485988866, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:46:29', 0, 1850723645460291586, 'jssj', '结束时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1850819895644786689, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:46', 1, 1849365535287058433, 'aaa', 'aaa', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925634, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'bbb', 'bbb', 66, 29, '', 'BigDecimal', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925635, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:44:10', 1, 1849365535287058433, 'ccc', 'ccc', 0, 0, '', 'Date', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925636, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:45:40', 1, 1849365535287058433, 'ddd', 'ddd', 0, 0, '', 'Time', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925637, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:46:09', 1, 1849365535287058433, 'eee', 'eee', 0, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925638, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:46:46', 1, 1849365535287058433, 'fff', 'fff', 128, 0, '', 'Text', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925639, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:11', 1, 1849365535287058433, 'ggg', 'ggg', 128, 0, '', 'LongText', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851092531385925640, NULL, NULL, NULL, NULL, NULL, '2024-10-29 11:47:41', 1, 1849365535287058433, 'hhh', 'hhh', 1, 0, '', 'Blob', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851137191743508482, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1850724499567386625, 'time', '时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851137191751897090, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:57', 0, 1850724499567386625, 'ms', '描述', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828483, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:07:40', 0, 1851205230887346177, 'tx', '团队头像', 128, 0, '', 'Text', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', '团队名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', '团队介绍', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828486, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:07:40', 0, 1851205230887346177, 'cytx', '成员头像', 128, 0, '', 'Text', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828487, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828488, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828489, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828490, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828491, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828492, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851205231415828493, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919234, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919235, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', '时间', 128, 0, '', 'Date', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919236, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', '目标金额', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919237, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', '成交金额', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919238, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', '成交订单', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919239, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', '完成率', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919240, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', '平均客单价', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919241, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', '部门', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919242, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', '人员', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919243, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919244, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919245, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919246, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919247, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919248, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851509264189919249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851511406938198017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', '成员', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851511406938198018, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:07:40', 0, 1851205230887346177, 'xm', '项目', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851511406938198019, NULL, NULL, NULL, NULL, NULL, '2024-10-30 15:21:29', 0, 1851205230887346177, 'rw', '任务', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382915, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382916, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382917, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382918, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382919, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382920, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382921, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382922, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382923, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851796249689382924, NULL, NULL, NULL, NULL, NULL, '2024-10-31 15:04:25', 0, 1851796249232203778, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851802080086495233, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'time_test', '时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851882902587129858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'num', '图片数量', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1851921953549664258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', '复制图片', 128, 0, '', 'String', '', 'N', 'Y', 14, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1852169865454116865, NULL, NULL, NULL, NULL, NULL, '2024-11-01 13:42:04', 0, 1851796249232203778, 'zt_box', '遮罩层', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024259, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm_name', '成员姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024260, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm', '参与项目', 128, 0, '', 'Integer', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024261, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'rwzs', '任务总数', 128, 0, '', 'Integer', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024262, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'ywc', '已完成', 128, 0, '', 'Integer', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024263, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'dwc', '待完成', 128, 0, '', 'Integer', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024264, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yyq', '已延期', 128, 0, '', 'Integer', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yql', '延期率', 128, 0, '', 'String', '', 'N', 'Y', 8, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'wcl', '完成率', 128, 0, '', 'String', '', 'N', 'Y', 9, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024268, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024269, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024270, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024271, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024272, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852234473565024273, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', '图片', 300, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214595, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'name', '图片名称', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214596, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214597, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'time_test', '时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214598, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'num', '图片数量', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214599, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214600, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214601, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214602, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214603, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214604, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214605, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852241980463214606, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'zt_box', '遮罩层', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920833, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920834, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920835, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920836, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920837, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920838, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920839, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920840, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920841, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', '头像', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920842, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920843, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', '事件', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852557613100920844, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sjlx', '事件类型', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'xm', '姓名', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', '头像', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', '职务', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798021, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', '公司', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798022, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', '手机', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798023, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', '邮箱', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798024, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', '电话', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', '地址', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798026, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'color', '标记', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798027, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:30:05', 0, 1852624838914699265, 'lx', '类型', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798028, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798029, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798030, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798031, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798032, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798033, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1852624839283798034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgbt', '报告标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594628, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjry', '提交人员', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594629, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'bglx', '报告类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594630, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'ssbm', '所属部门', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594631, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'pyzt', '批阅状态', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594632, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjsj', '提交时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594633, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594634, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'create_user', '提交人员', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594635, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'create_time', '提交时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594636, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'create_dept', '所属部门', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594637, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:26', 0, 1853269839533273090, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594638, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:26', 0, 1853269839533273090, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853269839885594639, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:26', 0, 1853269839533273090, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853285290514542594, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'bgrq', '报告日期', 128, 0, '', 'Date', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853285290514542595, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'gzzj', '工作总结', 128, 0, '', 'LongText', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853285290514542596, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'gzjh', '工作计划', 128, 0, '', 'LongText', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853285290514542597, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'fj', '附件', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853285290514542598, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'pyry', '批阅人员', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853327905112944642, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:42:10', 0, 1853269839533273090, 'csry', '抄送人员', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1853337380939067393, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', '操作图标', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654146, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654147, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654148, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654149, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654150, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654151, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:30:01', 0, 1854048263491252226, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654152, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:34:34', 0, 1854048263491252226, 'ggbt', '公告标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654153, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:34:44', 0, 1854048263491252226, 'ggzt', '公告状态', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654154, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:36:55', 0, 1854048263491252226, 'gglx', '公告类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654155, NULL, NULL, NULL, NULL, NULL, '2024-11-07 15:17:18', 0, 1854048263491252226, 'jsry', '接收人员', 128, 0, '', 'String', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654156, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:40:06', 0, 1854048263491252226, 'create_time', '发布时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854048263931654157, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:40:06', 0, 1854048263491252226, 'create_user', '发布人员', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czbh', '操作编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czsj', '操作时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071620, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', '操作人员', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071621, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'ssmk', '所属模块', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071622, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', '操作对象', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071623, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czlx', '操作类型', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071624, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071628, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071629, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854067251097071630, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371522, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371523, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spbh', '审批编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371524, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spsj', '审批时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371525, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spry', '审批人员', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371526, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'splx', '审批类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371527, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'ywbh', '业务编号', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371528, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'tjsj', '提交时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371529, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371530, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371531, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371532, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371533, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371534, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854331399995371535, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854332937090347010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'spjg', '审批结果', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480130, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480131, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', '审批编号', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480132, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'dlsj', '登录时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480133, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', '审批人员', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480134, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'zdlx', '终端类型', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480135, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'llq', '浏览器/终端版本', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480136, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'czxt', '操作系统', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480137, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'sbmc', '设备名称', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480138, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480139, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480140, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480141, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480142, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480143, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854341002338480144, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854344151786827777, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', '搜索', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854344151786827778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', 'MAC地址', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854344151786827779, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', '登录IP ', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854344151786827780, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:05:17', 0, 1854341001851940865, 'szdq', '所在地区', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854344151786827781, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'dlry', '登录人员', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854350560519761921, NULL, NULL, NULL, NULL, NULL, '2024-11-07 15:01:33', 0, 1854048263491252226, 'ggxq', '公告详情', 128, 0, '', 'Text', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854350560519761922, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:57', 1, 1854048263491252226, 'fbsj', '发布时间', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854350560519761923, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:34:34', 1, 1854048263491252226, 'fbry', '发布人员', 128, 0, '', 'String', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854353314101309441, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:30:59', 0, 1854048263491252226, 'fj', '附件', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854353314101309442, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 0, 1854048263491252226, 'plsz', '评论设置', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854353314101309443, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:30:59', 0, 1854048263491252226, 'txfs', '提醒方式', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854365904395284482, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 1, 1854048263491252226, 'fbry', '发布人员', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060547, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060551, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060552, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060553, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060554, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'bktx', '板块头像', 128, 0, '', 'Text', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060555, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'htbk', '话题版块', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060556, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:44:11', 0, 1854408557228961794, 'bkjs', '板块介绍', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060557, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:42:45', 0, 1854408557228961794, 'cytx', '成员头像', 128, 0, '', 'Text', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060558, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', '话题数量', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854408557598060559, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', '回复数量', 128, 0, '', 'String', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854422860116922370, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', '发布人员', 128, 0, '', 'String', '', 'N', 'Y', 16, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917569, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:45:14', 0, 1854438272522235905, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917570, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:45:14', 0, 1854438272522235905, 'img', '图片', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917571, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:26:34', 0, 1854438272522235905, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917572, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:27:46', 0, 1854438272522235905, 'text', '问题标题', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917573, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917574, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917575, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917576, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917577, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917578, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854438272903917579, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:11:39', 0, 1854438272522235905, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854440293157548034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', '产品标题', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854440293157548035, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', '产品问题', 128, 0, '', 'String', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854440293157548036, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:40:37', 0, 1854438272522235905, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854451636573024257, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:49:45', 0, 1854438272522235905, 'num', '知识条数', 128, 0, '', 'String', '', 'N', 'Y', 8, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615874, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615875, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', '标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615876, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', '内容', 128, 0, '', 'Text', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615877, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', '时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615878, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615879, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615880, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615881, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615882, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615883, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854695846689615884, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554821, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554822, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'create_time', '发布时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554823, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554824, NULL, NULL, NULL, NULL, NULL, '2024-11-08 11:27:18', 0, 1854716968965484545, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554825, NULL, NULL, NULL, NULL, NULL, '2024-11-08 11:27:18', 0, 1854716968965484545, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554826, NULL, NULL, NULL, NULL, NULL, '2024-11-08 11:27:18', 0, 1854716968965484545, 'cytx', '成员头像', 128, 0, '', 'Text', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554827, NULL, NULL, NULL, NULL, NULL, '2024-11-08 11:27:18', 0, 1854716968965484545, 'htbt', '话题标题', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554828, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'lll', '浏览量', 128, 0, '', 'String', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854716969355554829, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'hfl', '回复量', 128, 0, '', 'String', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854727996843470849, NULL, NULL, NULL, NULL, NULL, '2024-11-08 11:41:43', 0, 1854438272522235905, 'llcs', '浏览次数', 128, 0, '', 'Integer', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854766850346561537, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'sd', '是否锁定', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854766850346561538, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'zd', '置顶', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854766850346561539, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854716968965484545, 'rm', '是否热门', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854777969924616194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'rm', '热门', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1854777969924616195, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', '置顶热门标注', 128, 0, '', 'String', '', 'N', 'Y', 12, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716673, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716674, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:21:20', 1, 1856505236472143874, 'kssj', '开始时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716675, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:21:20', 1, 1856505236472143874, 'jssj', '结束时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716676, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', '日历管理附表数据json', 128, 0, '', 'Text', '', 'N', 'Y', 4, 'N'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716677, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 14, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716678, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 15, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716679, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 16, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716680, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 17, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716681, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 18, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716682, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 19, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856505236786716683, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 20, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173506, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'title', '日程标题', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173507, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sjlx', '事件类型', 128, 0, '', 'String', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173508, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:22:54', 1, 1856505236472143874, 'cfrc', '重复日程', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173509, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:28:29', 1, 1856505236472143874, 'cyry', '参与人员', 128, 0, '', 'String', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173510, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:30:48', 1, 1856505236472143874, 'kjcd', '可见程度', 128, 0, '', 'String', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173511, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:31:13', 1, 1856505236472143874, 'rcbj', '日程标记', 128, 0, '', 'String', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173512, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:32:25', 1, 1856505236472143874, 'rctx', '日程提醒', 128, 0, '', 'String', '', 'N', 'Y', 10, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173513, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'txfs', '提醒方式', 128, 0, '', 'String', '', 'N', 'Y', 11, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173514, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:39:26', 1, 1856505236472143874, 'rcms', '日程描述', 128, 0, '', 'Text', '', 'N', 'Y', 12, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1856507606497173515, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:12', 1, 1856505236472143874, 'fj', '上传附件', 128, 0, '', 'String', '', 'N', 'Y', 13, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1859429351017349121, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', 'a', 128, 0, '', 'String', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', '主键', 128, 0, '', 'BigInt', '', 'Y', 'N', 1, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', '名称', 128, 0, '', 'String', '', 'N', 'Y', 2, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', '年龄', 128, 0, '', 'String', '', 'N', 'Y', 3, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', '租户编号', 128, 0, '', 'BigInt', '', 'N', 'Y', 4, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', '创建人', 128, 0, '', 'BigInt', '', 'N', 'Y', 5, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', '创建时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 6, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', '创建部门id', 128, 0, '', 'BigInt', '', 'N', 'Y', 7, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565576, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', '更新人', 128, 0, '', 'BigInt', '', 'N', 'Y', 8, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', '更新时间', 128, 0, '', 'DateTime', '', 'N', 'Y', 9, 'Y'); +INSERT INTO `lowcode_dbform_field` VALUES (1872882476195565578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', '是否删除', 2, 0, '0', 'Integer', '', 'N', 'Y', 10, 'Y'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field_dict +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field_dict`; +CREATE TABLE `lowcode_dbform_field_dict` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `dict_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典类型', + `dict_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典code', + `dict_table` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典表', + `dict_text` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典Text', + `dict_table_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格字典显示列', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_field_code`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-页面字典配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field_dict +-- ---------------------------- +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858369, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858370, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858371, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'age', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858372, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858373, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'interest', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858374, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858375, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858376, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858377, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858378, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858379, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831577844924858380, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025794, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025795, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'pid', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025796, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025797, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_code', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025798, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_state', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025799, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'remark', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025800, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025801, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025802, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025803, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025804, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025805, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831582334533025806, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272641, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272643, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272644, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272645, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272646, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272647, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272648, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272649, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272651, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831606727292272652, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469890, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469891, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469892, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'course_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469893, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'credits', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469894, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'grade', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469895, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469896, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469897, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469898, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469899, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469900, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831607482946469901, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641026, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641027, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641028, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'emergency_contact', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641029, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'contact_phone', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641030, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641031, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641032, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641033, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641034, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641035, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641036, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831608169696641037, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607105, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607106, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'first_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607107, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607108, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'sex', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607109, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'email', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607110, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607111, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607112, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607113, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607114, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607115, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831879669154607116, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975426, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975427, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975428, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'course_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975429, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'credits', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975430, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'grade', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975431, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975432, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975433, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975434, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975435, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975436, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881278399975437, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:35', 0, 1831881275090669569, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364226, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364227, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364228, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'emergency_contact', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364229, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'contact_phone', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364230, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364231, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364232, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364233, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364234, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364235, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364236, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831881400349364237, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132610, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132611, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'first_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132612, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132613, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'sex', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132614, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'email', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132615, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132616, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132617, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132618, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132619, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132620, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883131112132621, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648769, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648770, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648771, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'course_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648772, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'credits', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648773, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'grade', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648774, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648775, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648776, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648777, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648778, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648779, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883203631648780, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391398055937, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444546, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'main_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444547, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'emergency_contact', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444548, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'contact_phone', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444549, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444550, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444551, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444552, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444553, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444554, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444555, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831883391406444556, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:46', 0, 1831883388675952641, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279617, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279618, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_input', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279619, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_password', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279620, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_number', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279621, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_textarea', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279622, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_select', 'dict', 'system_social_type', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279623, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_tree', 'table', 'id', '1831582331282440193', 'type_name', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279624, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_cascader', 'table', 'id', '1831582331282440193', 'type_name', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279625, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_table', 'table', 'id', '1831577841380671489', 'name', 'name,age,interest'); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279626, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279627, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279628, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_region', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279629, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_radio', 'dict', 'system_user_sex', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279630, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_checkbox', 'dict', 'user_type', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279631, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279632, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279633, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_datetime', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279634, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_file', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279635, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_image', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279636, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_code', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279637, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_custom', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279638, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_ueditor', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279639, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279640, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279641, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279642, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279643, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279644, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1831939957367279645, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224642, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224643, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'sno', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224644, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224645, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'sex', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224646, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'birthday', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224647, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224648, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224649, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224650, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224651, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224652, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833031107770224653, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504578, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504579, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504580, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'age', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504581, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504582, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'interest', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504583, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504584, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504585, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504586, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504587, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504588, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833055214676504589, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833058201308901382, NULL, NULL, NULL, NULL, NULL, '2024-09-09 16:24:33', 1, 1833031105253642242, 'flag', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833059185661718535, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'flag', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696577, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696578, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696579, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'age', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696580, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'birth_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696581, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'interest', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696582, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696583, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696584, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696585, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696586, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696587, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833320018716696588, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471682, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471683, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471684, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_type', 'dict', 'type_of_industry', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471685, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_status', 'dict', 'customer_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471686, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_head_contact', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471687, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'phone_number', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471688, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'client_affiliation', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471689, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471690, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471691, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471692, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471693, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:46', 0, 1833323260582391810, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471694, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833323263174471695, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354690, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354691, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'user_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354692, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'visitor_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354693, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'goods_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354694, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354695, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354696, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354697, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354698, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354699, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833326227402354700, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1833341748447969288, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'classe', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675906, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675907, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'student_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675908, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'course_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675909, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675910, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675911, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675912, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675913, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675914, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675915, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834065859591675916, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834066013958840325, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:08:07', 0, 1834065859105136642, 'score', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834066115483758596, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834066736211415056, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834067118960812048, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:13:46', 1, 1834065859105136642, 'score_test', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834067985426124805, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834068007863853060, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:22', 0, 1834065859105136642, 'score_test', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834068584448233476, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:17:09', 1, 1834065859105136642, 'aab', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834068824584720389, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468353, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468354, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468355, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468356, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468357, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468358, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468359, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468360, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468361, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468362, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_target_money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468363, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_accomplish_money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468364, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_accomplish_form', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468365, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_percentage_complete', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468366, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_average_price', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468367, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_department', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834136613146468368, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:10', 0, 1834136609367400450, 'tabs_card_personnel', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1834523625376616450, '1', 1, '2024-09-13 17:24:51', 101, 1, '2024-09-14 09:23:34', 0, 1833031105253642242, 'score_test', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298968195739649, '1', 1, '2024-09-18 14:59:25', 101, NULL, NULL, 0, 1836298963389067265, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298968455786498, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298968720027650, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298968963297282, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'price', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298969227538433, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'hh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298969483390977, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298969743437825, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298969990901761, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'subtotal', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298970250948610, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298970498412545, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298970758459394, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298971010117633, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298971261775873, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298971513434114, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836298971769286658, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318520942080001, '1', 1, '2024-09-18 16:17:07', 101, NULL, NULL, 0, 1836318516001189890, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318521206321153, '1', 1, '2024-09-18 16:17:07', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318521474756610, '1', 1, '2024-09-18 16:17:07', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'manipulator', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318521734803458, '1', 1, '2024-09-18 16:17:07', 101, 1, '2024-09-18 16:25:14', 0, 1836318516001189890, 'order_status', 'dict', 'order_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318522007433218, '1', 1, '2024-09-18 16:17:07', 101, 1, '2024-09-18 16:25:31', 0, 1836318516001189890, 'payment_status', 'dict', 'payment_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318522267480066, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:25:31', 0, 1836318516001189890, 'delivery_status', 'dict', 'delivery_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318522535915521, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'view', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318522800156674, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318523064397826, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318523324444673, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318523588685826, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318523857121281, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318524125556738, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318524398186497, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1836318524670816257, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141824623468545, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141824870932482, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141825114202114, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141825361666049, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141825604935681, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141825852399618, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141826091474945, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838141826334744577, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392383800631298, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392384048095233, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'bh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392384295559170, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'company_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392384547217410, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', 'dict', 'customer_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392384794681346, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', 'dict', 'type_of_industry', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392385046339585, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', 'dict', 'crm_customer_source', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392385289609218, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'add_people', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392385528684545, '1', 1, '2024-09-24 09:37:55', 101, 1, '2024-09-24 09:40:15', 0, 1838392378859741185, 'customer_star', 'dict', 'customer_star', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392385776148481, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 1, 1838392378859741185, 'update_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392386023612417, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392386271076353, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392386514345986, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392386761809921, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392387005079554, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392387252543490, '1', 1, '2024-09-24 09:37:55', 101, NULL, NULL, 0, 1838392378859741185, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838392387495813121, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494738009354242, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494738206486529, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'sr', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494738412007425, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494738600751105, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494738797883393, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'sg', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739003404290, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'tz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739200536577, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'sj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739397668866, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'dz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739594801154, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'xs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739791933441, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'zt', 'dict', 'type', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494739997454338, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494740202975234, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494740400107522, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494740593045505, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494740794372098, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494740987310082, '1', 1, '2024-09-24 16:24:38', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838494741184442369, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505724317601793, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505724586037250, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'bh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505724846084097, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'company_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505725101936641, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', 'dict', 'customer_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505725353594882, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', 'dict', 'type_of_industry', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505725609447425, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', 'dict', 'crm_customer_source', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505725869494274, '1', 1, '2024-09-24 17:08:17', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', 'dict', 'customer_star', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505726125346818, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 1, 1838505719016001538, 'add_people', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505726389587969, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'attributable_person', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505726666412033, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505726918070274, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505727169728513, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505727429775361, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505727685627906, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505727949869057, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838505728197332994, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838508237347426305, '1', 1, '2024-09-24 17:18:16', 101, NULL, NULL, 1, 1838505719016001538, 'add_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838508237582307329, '1', 1, '2024-09-24 17:18:16', 101, NULL, NULL, 1, 1838505719016001538, 'update_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748853838872577, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748854086336514, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'bh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748854333800450, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748854593847297, '1', 1, '2024-09-25 09:14:24', 101, 1, '2024-09-25 09:27:11', 1, 1838748849153835009, 'khzt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748854845505537, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748855092969474, '1', 1, '2024-09-25 09:14:24', 101, 1, '2024-09-27 14:17:54', 0, 1838748849153835009, 'khly', 'dict', 'crm_customer_source', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748855344627713, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748855596285954, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 1, 1838748849153835009, 'gxsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748855843749890, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748856087019521, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748856334483457, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748856581947393, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748856833605634, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748857081069569, '1', 1, '2024-09-25 09:14:24', 101, NULL, NULL, 0, 1838748849153835009, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838748857336922114, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838750710544007169, '1', 1, '2024-09-25 09:21:46', 101, NULL, NULL, 0, 1838748849153835009, 'djbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838752955666857985, '1', 1, '2024-09-25 09:30:42', 101, 1, '2024-09-27 14:17:54', 0, 1838748849153835009, 'khzt', 'dict', 'customer_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838752955905933314, '1', 1, '2024-09-25 09:30:42', 101, 1, '2024-09-27 14:17:54', 0, 1838748849153835009, 'hylx', 'dict', 'type_of_industry', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754178558132225, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754178780430337, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'pid', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754178994339841, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754179216637953, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'classification_number', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754179447324673, '1', 1, '2024-09-25 09:35:33', 101, 1, '2024-09-25 09:35:53', 0, 1838754174162501633, 'status', 'dict', 'tree_grid_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754179669622786, '1', 1, '2024-09-25 09:35:33', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754179887726593, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 1, 1838754174162501633, 'add_people', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754180110024705, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 1, 1838754174162501633, 'update_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754180328128514, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754180546232322, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754180768530434, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754180990828546, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754181213126658, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754181435424770, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754181653528577, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838754181875826689, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824813976145922, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824814248775681, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'bh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824814504628225, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824814768869377, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'khly', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824815028916225, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'tjry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824815284768769, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'gxsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824815549009921, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824815813251074, '1', 1, '2024-09-25 14:16:14', 101, NULL, NULL, 0, 1838824808796180481, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824816064909313, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824816324956161, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824816585003009, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824816845049858, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824817105096706, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824817360949249, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824817625190402, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'khzt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838824817885237250, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'hylx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826569678245889, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826569934098434, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826570194145282, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_type', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826570462580737, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'dz_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826570726821889, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'sc_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838826570986868738, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'pl_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855938412929026, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855938677170178, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855938933022721, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855939193069570, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855939453116417, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855939704774657, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855939960627201, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855940203896833, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855940463943681, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855940719796225, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1838855940971454466, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1839512445328683009, '1', 1, '2024-09-27 11:48:38', 101, NULL, NULL, 0, 1838494733815050242, 'xb', 'dict', 'system_user_sex', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268798632402945, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268798896644098, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268799139913730, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268799391571969, '1', 1, '2024-09-29 13:54:07', 101, 1, '2024-09-29 13:54:34', 0, 1840268794366795777, 'approval_status', 'dict', 'gjxqy_flbq_spzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268799643230210, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268799894888450, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268800146546689, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268800398204930, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268800645668866, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268800897327106, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268801153179649, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268801396449281, '1', 1, '2024-09-29 13:54:07', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840268801648107522, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577519715647489, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577519942139906, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577520160243713, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577520390930434, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577520617422850, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577520835526657, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577521053630465, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577521275928578, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577521494032386, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577521716330498, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577521959600129, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840577522177703937, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642760960983041, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642761233612801, '1', 1, '2024-09-30 14:40:06', 101, NULL, NULL, 0, 1840642756645044226, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642761502048258, '1', 1, '2024-09-30 14:40:06', 101, 1, '2024-09-30 14:42:54', 0, 1840642756645044226, 'status', 'dict', 'grzx_xttz_zt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642761766289409, '1', 1, '2024-09-30 14:40:07', 101, 1, '2024-09-30 14:42:54', 0, 1840642756645044226, 'type', 'dict', 'grzx_xttz_lx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642762026336258, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642762294771713, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642762567401473, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642762831642626, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642763100078081, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642763360124929, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840642763641143298, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646333216145409, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646333455220737, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646333698490370, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'birthday', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646333941760002, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'sex', 'dict', 'system_user_sex', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646334180835329, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'stature', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646334424104961, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'weight', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646334671568898, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646334910644225, '1', 1, '2024-09-30 14:54:18', 101, NULL, NULL, 0, 1840646327436394498, 'contact_type', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646335149719554, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646335392989185, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'educational', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646335627870210, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646335866945538, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646336110215170, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646336353484801, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646336592560129, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646336827441153, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646337074905089, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646337318174721, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646337553055746, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840646337796325378, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1840670040798031873, '1', 1, '2024-09-30 16:28:30', 101, NULL, NULL, 0, 1840642756645044226, 'rich_text', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476393400733698, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476393623031810, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'icon', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476393832747010, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476394042462210, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476394260566017, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'switch', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476394478669826, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476394692579330, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476394906488833, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476395124592642, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476395342696450, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476395552411649, '1', 1, '2024-10-08 10:19:57', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1843476395766321153, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961046548481, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961075908609, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961101074434, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961130434561, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:17:25', 0, 1844275960258019330, 'ddzt', 'dict', 'ddgl-zt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961155600386, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:22:10', 0, 1844275960258019330, 'zfss', 'dict', 'ddgl-zffs', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961180766209, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:20:25', 0, 1844275960258019330, 'ddly', 'dict', 'order_source', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961214320642, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'yhzh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961235292161, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tjsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961260457985, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961285623809, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961314983937, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961340149762, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961365315585, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961386287105, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844275961411452930, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844278208916668418, '1', 1, '2024-10-10 15:26:05', 101, NULL, NULL, 0, 1844275960258019330, 'ddlx', 'dict', 'ddgl-ddlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844582485866328065, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844582485899882497, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'gbyy', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968391618562, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968425172994, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968458727425, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968488087553, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 14:20:52', 0, 1844620967619866625, 'gdlx', 'dict', 'gdlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968517447682, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968542613506, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 14:20:52', 0, 1844620967619866625, 'gdzt', 'dict', 'gdzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968567779330, '1', 1, '2024-10-11 14:08:05', 101, 1, '2024-10-11 14:20:52', 0, 1844620967619866625, 'jycd', 'dict', 'jycd', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968597139457, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968630693889, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968655859714, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968689414145, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968714579969, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968748134402, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968773300226, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844620968798466049, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844624185070465026, '1', 1, '2024-10-11 14:20:52', 101, 1, '2024-10-11 14:21:41', 0, 1844620967619866625, 'ddsc', 'dict', 'ddsc', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844626318385754113, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 14:33:21', 0, 1844620967619866625, 'glkh', 'dict', 'xx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844626318406725634, '1', 1, '2024-10-11 14:29:20', 101, 1, '2024-10-11 14:33:21', 0, 1844620967619866625, 'gldd', 'dict', 'xx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844626318440280065, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'gdms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844626318461251586, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'csry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1844626318486417410, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'scfj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517122224129, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517151584258, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517180944385, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'dx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517201915905, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'scsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517235470337, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'scry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517256441857, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517289996290, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517310967809, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517344522242, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517365493761, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517394853889, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517420019713, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845012517453574145, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019389917208578, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019389950763009, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019389980123138, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390005288962, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390030454785, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390059814914, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390084980737, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390110146561, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390135312385, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390164672513, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'membership_level', 'dict', 'user_management-level', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390194032641, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:34', 0, 1845019389086736386, 'user_type', 'dict', 'user_management_type', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390215004162, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390248558594, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390273724418, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390303084545, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'user_label', 'dict', 'user_management_label', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845019390328250369, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'registration_channel', 'dict', 'user_management_registration_channel', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1845023446618677249, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782339, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782340, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782341, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'sjbm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782342, NULL, NULL, NULL, NULL, NULL, '2024-10-15 11:24:39', 0, 1846009550756601857, 'zt', 'dict', 'bmzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782343, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'cysl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782344, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zgry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782345, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'bmms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782346, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782347, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782348, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782349, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782350, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782351, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782352, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846009552832782353, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115587, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115588, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'phone', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115589, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115590, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'default_address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115591, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115592, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074000482115597, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846074927112921089, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537217, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537219, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537220, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', 'dict', 'bmzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537221, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537222, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537223, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537224, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537225, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537226, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537227, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537228, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537229, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846083505542537230, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805058, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'sj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805059, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'points_change', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805060, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', 'dict', 'customer_status', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805061, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', 'dict', 'type_of_industry', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805062, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', 'dict', 'crm_customer_source', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805063, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805064, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', 'dict', 'customer_star', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846095081653805071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846096152618999810, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'points_balance', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721474, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'ip', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721475, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721477, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721478, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721479, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721480, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846100520319721483, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'dlfs', 'dict', 'user_management_registration_channel', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780545, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780546, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780547, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:42', 0, 1846103236139950082, 'cz_type', 'dict', 'user_management_czlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780551, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780552, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846103237884780555, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czxq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'xm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'bm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482821, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482822, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482823, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482824, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482825, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482826, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846121742600482827, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846124100948570113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zw', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846124100948570114, NULL, NULL, NULL, NULL, NULL, '2024-10-15 17:50:50', 0, 1846121741006647298, 'zhzt', 'dict', 'zhzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846126577127239682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'phone', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846126577127239683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zxzt', 'dict', 'zxzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846126577127239684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhdl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548354, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548355, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548356, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548357, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tjsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548358, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548359, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548360, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548361, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846429441288548364, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088257, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'ip', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088259, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088260, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088261, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088262, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088263, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088264, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846734667061088267, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:37', 0, 1846734665412726786, 'zdlx', 'dict', 'ygxq_zdlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846739004638298114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846739004638298115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846739004638298116, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846739004638298117, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'macdz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668930, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668931, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668932, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668933, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668934, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668935, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668936, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668937, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668938, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668939, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czlx', 'dict', 'ygxq_czzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668940, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czxq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668941, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668942, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846747365580668943, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498114, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498115, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'turnover', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498116, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498117, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498118, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498119, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'registered_users', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498120, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'members', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498121, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'day', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498123, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498124, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498125, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498126, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498127, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1846853874961498128, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552705, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552706, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jbxx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552707, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552708, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552709, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zt', 'dict', 'user_management_type', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552710, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmjd', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552711, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zhgx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552712, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmcy', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552713, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmzs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jxz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'ywc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552716, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'yyq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552717, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552718, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552719, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552720, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552721, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552722, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847094472036552723, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151041, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151042, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151043, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:34:34', 0, 1847103675560071169, 'status', 'dict', 'rwgl_zt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151044, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'jzsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151045, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:34:34', 0, 1847103675560071169, 'urgent_relief', 'dict', 'rwgl_jycd', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151046, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151047, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151048, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151049, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'kssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151051, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:34:34', 0, 1847103675560071169, 'rwtx', 'dict', 'rwgl_rwtx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'cyry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151055, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151056, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151059, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847103678152151060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847104935126339586, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760514, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'table_type', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760515, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'value', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760516, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'type_index', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760517, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760518, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760519, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760520, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760521, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760522, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847167246381760523, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847169698079383554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'color', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847171061614059521, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', 'dict', 'rwgl_txfs', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847183465121976321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847197498336219137, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847197498336219138, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847198272965447681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fzr', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847198272965447682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'cyry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847198272965447683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'rwbj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847198272965447684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kxfw', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186562, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186563, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186564, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186565, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186566, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186567, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186568, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847456815221186575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'status', 'dict', 'rwgl_zt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755268, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'jzsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755269, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'urgent_relief', 'dict', 'rwgl_jycd', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755270, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'xmmc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755271, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'lys', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755272, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755273, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755274, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'kssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755275, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwtx', 'dict', 'rwgl_rwtx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755276, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755277, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'cyry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755278, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755279, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755280, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'color', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847472442223755286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'txfs', 'dict', 'rwgl_txfs', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847478146783379457, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847472439438737409, 'zw', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211011, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'ranking', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211012, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211013, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'visit', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211014, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'quantity', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211015, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'cancel', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211016, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'pj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211017, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211021, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211022, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211023, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1847537157479211024, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848178486928404481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848178486928404482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848178486928404483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848263865606012930, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848268294681985025, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698434, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698435, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698436, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698437, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698438, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698439, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698440, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698443, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698444, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848301754279698445, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667076, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667077, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667078, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667079, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667080, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667081, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667082, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848631602881667083, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749894, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749895, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749896, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749900, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:52', 0, 1848637143087489025, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749901, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'dz_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749902, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'sc_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848637145251749903, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'pl_num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122817, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122821, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122822, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122823, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122824, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122825, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122826, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848649272377122827, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1848665317087289345, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719874, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719875, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719876, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719877, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719878, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719879, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719880, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719881, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719882, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1849365536272719883, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306881, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306882, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrfks', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306883, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyfws', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306884, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyffs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306885, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'xzhys', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306886, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306887, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306888, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306889, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850061361181306892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892930, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892931, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892932, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892933, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892934, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892935, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892936, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892937, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892938, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850092583680892939, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250755, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'xse', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250756, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250757, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250758, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250759, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250760, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850094921506250763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850102550798442497, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'sm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'nz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'my', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'xb', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'je', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317576, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317581, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850109347630317582, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753665, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753666, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:03:49', 0, 1850723645460291586, 'kssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753667, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753668, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753669, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753670, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753671, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753672, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850723646592753673, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630977, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630978, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630979, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630980, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630981, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630982, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630983, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630984, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850724500565630985, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850726015426600962, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'rl_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850780441299283970, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'sub_more_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850780488605868034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'jssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1850819896626253825, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:46', 1, 1849365535287058433, 'aaa', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307329, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'bbb', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307330, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ccc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307331, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ddd', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307332, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'eee', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307333, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'fff', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307334, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ggg', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851092532430307335, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'hhh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851137192859193345, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1850724499567386625, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851137192859193346, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'ms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cytx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689287, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689288, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689289, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689291, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689292, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851205232254689293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282562, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282563, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282564, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282565, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282566, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282567, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282568, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282576, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851509264953282577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851511408049688577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851511408049688578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'xm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851511408049688579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'rw', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912072, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851796250477912075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851802083219640321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'time_test', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851882903686037506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1851921954027814914, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852169866171342849, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_box', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695809, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695810, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm_name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695811, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695812, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'rwzs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695813, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'ywc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695814, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'dwc', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695815, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yyq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695816, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yql', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695817, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'wcl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695821, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695822, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695823, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852234474248695824, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383620, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383621, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383622, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383623, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383624, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383626, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383628, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'time_test', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383629, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852241981222383630, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_box', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786690, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786691, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786692, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786693, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786694, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786695, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786696, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786697, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786698, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786699, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786700, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852557613788786701, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'sjlx', 'dict', 'tddt_sjlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749313, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749314, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'xm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749315, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749316, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749317, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749318, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749319, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749320, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749322, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'color', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749323, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:30:06', 0, 1852624838914699265, 'lx', 'dict', 'lxrgl_xbss', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749324, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749325, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749326, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749327, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749328, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749329, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1852624839908749330, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408580, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408581, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:26:42', 0, 1853269839533273090, 'bglx', 'dict', 'bglx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408582, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'ssbm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408583, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:26:42', 0, 1853269839533273090, 'pyzt', 'dict', 'pyzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408584, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408585, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408587, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408588, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408589, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408590, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853269840464408591, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853285291630227458, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgrq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853285291630227459, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzzj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853285291630227460, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzjh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853285291630227461, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853285291630227462, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853327906220240897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'csry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1853337382042169345, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486465, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486467, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486468, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486469, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486470, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486471, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486472, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:38:01', 0, 1854048263491252226, 'ggzt', 'dict', 'gggl_ggzt', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486473, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:22', 0, 1854048263491252226, 'gglx', 'dict', 'gggl_gglx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'jsry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854048264791486476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315969, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315970, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315971, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315972, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315973, NULL, NULL, NULL, NULL, NULL, '2024-11-06 15:56:31', 0, 1854067250698612737, 'ssmk', 'dict', 'rzgl_ssmk', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315974, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315975, NULL, NULL, NULL, NULL, NULL, '2024-11-06 15:56:31', 0, 1854067250698612737, 'czlx', 'dict', 'rzgl_czlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315976, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315977, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315978, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315979, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315980, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315981, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854067252095315982, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208899, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208900, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208901, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208902, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:30:47', 0, 1854331399533998082, 'splx', 'dict', 'rzgl_splx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208903, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'ywbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208904, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'tjsj', 'dict', 'rzgl_czlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208908, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208909, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208910, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854331400704208911, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854332938247974913, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:30:47', 0, 1854331399533998082, 'spjg', 'dict', 'rzgl_spjg', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985859, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985860, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'dlsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985861, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985862, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:05:17', 0, 1854341001851940865, 'zdlx', 'dict', 'dllx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985863, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'llq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985864, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'czxt', 'dict', 'rzgl_czlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985869, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985870, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985871, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854341002996985872, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:33', 0, 1854341001851940865, 'sbmc', 'dict', 'rzgl_spjg', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854344155381346306, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854344155381346307, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854344155381346308, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854344155381346309, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'szdq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854344155381346310, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854350562465918977, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggxq', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854350562465918978, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbsj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854350562465918979, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854353315003084801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854353315003084802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'plsz', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854353315003084803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'txfs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854365905519357954, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846021, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846022, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846023, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846024, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846026, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bktx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846027, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htbk', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846028, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bkjs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846029, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'cytx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846030, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854408558197846031, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854422860754456577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063169, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063170, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'img', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063171, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063172, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'text', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063173, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063174, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063175, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063176, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063177, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063178, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854438273533063179, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854440295242117122, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854440295242117123, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854440295242117124, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854451637613211650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'num', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258945, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258946, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258947, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258948, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258949, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258950, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258951, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258952, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258953, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258954, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854695847394258955, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671938, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671939, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671940, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671941, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671942, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671943, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671944, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671945, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671946, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'cytx', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671947, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'htbt', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671948, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'lll', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854716970005671949, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'hfl', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854727997476810754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'llcs', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854766851365777410, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:06:12', 0, 1854716968965484545, 'sd', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854766851365777411, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'zd', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854766851365777412, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:06:12', 1, 1854716968965484545, 'rm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854777970998358017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'rm', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1854777970998358018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108481, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108482, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108483, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108484, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108485, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108486, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108487, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108488, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108489, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108490, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856505237529108491, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'jssj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881794, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'title', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881795, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:28:30', 1, 1856505236472143874, 'sjlx', 'dict', 'sjlx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881796, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:30:48', 1, 1856505236472143874, 'cfrc', 'dict', 'cfrc', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881797, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cyry', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881798, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:28:30', 1, 1856505236472143874, 'kjcd', 'dict', 'kjcd', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881799, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:30:48', 1, 1856505236472143874, 'rcbj', 'dict', 'rwgl_txfs', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881800, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:30:48', 1, 1856505236472143874, 'rctx', 'dict', 'rwgl_rwtx', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881801, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:31:13', 1, 1856505236472143874, 'txfs', 'dict', 'rwgl_txfs', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881802, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcms', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1856507607742881803, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'fj', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1859429351231258626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418116, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418117, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418118, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418119, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418120, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418121, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_dict` VALUES (1872882476451418122, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', '', '', '', '', ''); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field_export +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field_export`; +CREATE TABLE `lowcode_dbform_field_export` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `is_export` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否导出;N=否 Y=是', + `import_example_txt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '导出示例文本', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_field_code`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-导出配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field_export +-- ---------------------------- +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839490, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839491, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839492, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'age', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839493, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839494, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'interest', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839495, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839496, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839497, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839498, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839499, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839500, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831577847147839501, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:15', 0, 1831577841380671489, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224641, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224642, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'pid', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224643, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224644, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_code', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224645, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_state', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224646, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'remark', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224647, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224648, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224649, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224650, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224651, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224652, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831582336890224653, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069576, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831606729209069580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290242, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290243, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290244, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'course_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290245, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'credits', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290246, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'grade', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290247, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290248, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290249, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290250, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290251, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290252, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831607484993290253, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:06', 0, 1831607480064983042, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893634, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893635, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893636, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'emergency_contact', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893637, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'contact_phone', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893638, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893639, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893640, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893641, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893642, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893643, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893644, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831608171277893645, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:20', 0, 1831608167414939649, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077441, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077442, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'first_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077443, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077444, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'sex', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077445, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'email', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077446, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077447, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077448, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077449, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077450, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077451, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831879670870077452, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:58', 0, 1831879666549944322, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909697, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909698, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909699, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'course_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909700, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'credits', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909701, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'grade', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909702, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909703, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909704, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909705, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909706, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909707, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881280362909708, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909890, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909891, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909892, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'emergency_contact', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909893, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'contact_phone', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909894, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909895, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909896, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909897, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909898, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909899, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909900, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831881402303909901, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:49', 0, 1831881397711147010, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673217, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673218, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'first_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673219, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673220, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'sex', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673221, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'email', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673222, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673223, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673224, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673225, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673226, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673227, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883133217673228, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:59', 0, 1831883128176119810, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189377, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189378, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189379, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'course_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189380, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'credits', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189381, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'grade', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189382, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189383, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189384, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189385, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189386, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189387, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883205737189388, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:16', 0, 1831883200666275842, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459201, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459202, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'main_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459203, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'emergency_contact', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459204, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'contact_phone', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459205, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459206, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459207, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459208, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459209, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459210, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459211, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831883393457459212, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270338, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270339, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_input', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270340, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_password', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270341, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_number', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270342, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_textarea', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270343, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_select', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270344, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_tree', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270345, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_cascader', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270346, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_table', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270347, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_user', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270348, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_dept', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270349, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_region', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270350, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_radio', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270351, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_checkbox', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270352, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270353, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270354, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_datetime', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270355, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_file', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270356, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_image', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270357, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_code', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270358, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_custom', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270359, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'text_ueditor', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270360, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270361, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270362, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270363, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270364, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270365, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1831939961792270366, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:17', 0, 1831939951830798338, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946242, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946243, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'sno', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946244, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946245, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'sex', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946246, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'birthday', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946247, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946248, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946249, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946250, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946251, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946252, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833031109447946253, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868417, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868418, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868419, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'age', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868420, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868421, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'interest', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868422, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868423, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868424, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868425, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868426, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868427, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833055212935868428, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833058203347333124, NULL, NULL, NULL, NULL, NULL, '2024-09-09 16:24:34', 1, 1833031105253642242, 'flag', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833059187758870535, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'flag', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587714, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587715, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587716, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'age', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587717, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'birth_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587718, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'interest', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587719, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587720, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587721, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587722, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587723, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587724, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833320018649587725, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234241, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234242, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234243, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234244, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234245, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_head_contact', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234246, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'phone_number', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234247, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_affiliation', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234248, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234249, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234250, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234251, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234252, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234253, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833323261140234254, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438786, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438787, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'user_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438788, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'visitor_time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438789, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'goods_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438790, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438791, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438792, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438793, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438794, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438795, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833326225720438796, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1833341750826139656, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'classe', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017154, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017155, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'student_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017156, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'course_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017157, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017158, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017159, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017160, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017161, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017162, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'update_user', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017163, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834065861844017164, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834066013723959300, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:08:07', 0, 1834065859105136642, 'score', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834066117736099844, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834066736052031493, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834067118960812037, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:13:46', 1, 1834065859105136642, 'score_test', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834067985686171652, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834068007800938501, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'score_test', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834068582128783364, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:17:08', 1, 1834065859105136642, 'aab', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834068820033900549, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680513, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680514, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680515, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680516, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680517, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680518, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680519, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680520, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680521, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680522, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_target_money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680523, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_accomplish_money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680524, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_accomplish_form', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680525, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_percentage_complete', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680526, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_average_price', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680527, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_department', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834136615935680528, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:11', 0, 1834136609367400450, 'tabs_card_personnel', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1834523628232937474, '1', 1, '2024-09-13 17:24:51', 101, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'score_test', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298972016750594, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298972293574657, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298972545232897, '1', 1, '2024-09-18 14:59:26', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298972796891138, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'price', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298973048549377, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'hh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298973304401921, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298973556060161, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298973807718401, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'subtotal', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298974050988033, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298974306840577, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298974566887425, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298974826934273, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298975082786817, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298975338639361, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836298975598686210, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318524930863105, '1', 1, '2024-09-18 16:17:08', 101, NULL, NULL, 0, 1836318516001189890, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318525190909954, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318525484511234, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'manipulator', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318525748752386, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'order_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318526012993537, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'payment_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318526277234689, '1', 1, '2024-09-18 16:17:08', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'delivery_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318526533087234, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'view', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318526797328386, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318527069958145, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318527330004993, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318527594246146, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318527858487297, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318528126922753, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318528386969601, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1836318528655405057, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141826578014210, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141826821283842, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141827068747777, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141827303628802, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141827551092737, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141827794362370, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141828033437697, '1', 1, '2024-09-23 17:02:17', 101, NULL, NULL, 0, 1838141821641318402, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838141828272513026, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392387747471361, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392387990740993, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'bh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392388238204929, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'company_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392388485668866, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392388733132801, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392388976402433, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392389219672065, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'add_people', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392389546827777, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'customer_star', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392389798486017, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 1, 1838392378859741185, 'update_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392390041755650, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392390289219585, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392390545072130, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392390792536065, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392391040000001, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392391291658242, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838392391547510785, '1', 1, '2024-09-24 09:37:56', 101, NULL, NULL, 0, 1838392378859741185, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494741381574657, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494741578706946, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'sr', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494741775839234, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494741964582913, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494742161715201, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'sg', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494742354653185, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'tz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494742547591170, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'sj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494742744723458, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'dz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494742937661442, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'xs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494743134793730, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'zt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494743327731714, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494743524864002, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494743713607681, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494743906545665, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494744099483649, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494744300810242, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838494744489553922, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505728457379841, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505728713232385, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'bh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505728969084929, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'company_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505729220743169, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505729472401409, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505729728253954, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505729984106497, '1', 1, '2024-09-24 17:08:18', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505730235764737, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 1, 1838505719016001538, 'add_people', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505730495811585, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'attributable_person', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505730747469826, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505730999128066, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505731259174914, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505731510833154, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505731762491393, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505732022538241, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838505732274196482, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838508237825576962, '1', 1, '2024-09-24 17:18:16', 101, NULL, NULL, 1, 1838505719016001538, 'add_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838508238068846594, '1', 1, '2024-09-24 17:18:16', 101, NULL, NULL, 1, 1838505719016001538, 'update_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748857588580353, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748857827655682, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'bh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748858083508225, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748858326777857, '1', 1, '2024-09-25 09:14:25', 101, 1, '2024-09-25 09:27:11', 1, 1838748849153835009, 'khzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748858578436097, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748858830094338, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'khly', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748859077558273, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748859320827906, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 1, 1838748849153835009, 'gxsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748859572486145, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748859819950081, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748860084191234, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748860331655170, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748860583313409, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748860830777345, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838748861078241281, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838750710799859714, '1', 1, '2024-09-25 09:21:46', 101, NULL, NULL, 0, 1838748849153835009, 'djbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838752956157591553, '1', 1, '2024-09-25 09:30:42', 101, NULL, NULL, 0, 1838748849153835009, 'khzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838752956405055489, '1', 1, '2024-09-25 09:30:42', 101, NULL, NULL, 0, 1838748849153835009, 'hylx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754182098124801, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754182316228609, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'pid', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754182530138114, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754182752436225, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'classification_number', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754182970540033, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754183188643841, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754183419330561, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 1, 1838754174162501633, 'add_people', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754183633240065, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 1, 1838754174162501633, 'update_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754183855538178, '1', 1, '2024-09-25 09:35:34', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754184077836290, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754184295940098, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754184514043905, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754184723759105, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754184950251522, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754185172549634, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838754185382264833, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824818141089794, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824818405330945, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'bh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824818665377794, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824818925424641, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'khly', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824819185471490, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'tjry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824819441324034, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'gxsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824819705565186, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824819965612034, '1', 1, '2024-09-25 14:16:15', 101, NULL, NULL, 0, 1838824808796180481, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824820221464577, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824820485705730, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824820741558274, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824820997410817, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824821253263362, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824821517504513, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824821769162754, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'khzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838824822037598209, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'hylx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826571251109889, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826571511156738, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826571767009282, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826572043833346, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'dz_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826572303880194, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'sc_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838826572568121346, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'pl_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855941227307010, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855941487353857, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855941734817794, '1', 1, '2024-09-25 16:19:55', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855941994864641, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855942246522882, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855942510764034, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855942770810882, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855943022469122, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855943278321666, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855943538368514, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1838855943785832449, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1839512445609701377, '1', 1, '2024-09-27 11:48:38', 101, NULL, NULL, 0, 1838494733815050242, 'xb', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268801895571457, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268802155618306, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268802403082241, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268802654740481, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'approval_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268802902204418, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268803158056962, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268803409715202, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268803657179137, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268803913031681, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268804160495618, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268804416348161, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268804672200706, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840268804919664642, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577522408390658, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577522622300161, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577522840403969, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577523066896386, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577523285000193, '1', 1, '2024-09-30 10:20:52', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577523507298306, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577523729596417, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577523947700226, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577524165804034, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577524388102145, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577524614594562, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840577524836892673, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642763901190146, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642764178014209, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642764442255362, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642764706496513, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642764970737665, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642765234978818, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642765499219969, '1', 1, '2024-09-30 14:40:07', 101, NULL, NULL, 0, 1840642756645044226, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642765767655426, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642766031896578, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642766300332033, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840642766560378881, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646338043789313, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646338278670337, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646338517745666, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'birthday', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646338761015298, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'sex', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646338995896322, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'stature', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646339247554562, '1', 1, '2024-09-30 14:54:19', 101, NULL, NULL, 0, 1840646327436394498, 'weight', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646339490824193, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646339729899522, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'contact_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646339973169153, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646340216438785, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'educational', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646340455514113, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646340698783746, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646340942053377, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646341176934402, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646341420204033, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646341659279361, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646341902548994, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646342145818626, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646342384893954, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840646342619774978, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1840670041011941378, '1', 1, '2024-09-30 16:28:30', 101, NULL, NULL, 0, 1840642756645044226, 'rich_text', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476395984424961, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476396206723073, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'icon', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476396420632578, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476396634542082, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476396852645889, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'switch', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476397074944001, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476397284659201, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476397502763009, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476397729255426, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476397938970625, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476398157074433, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1843476398370983937, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961440813057, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961470173186, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961495339010, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961524699137, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961549864961, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'zfss', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961579225089, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddly', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961600196609, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'yhzh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961621168129, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tjsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961646333954, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961671499778, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961696665602, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961726025729, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961755385858, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961780551682, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844275961805717505, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844278208937639938, '1', 1, '2024-10-10 15:26:05', 101, NULL, NULL, 0, 1844275960258019330, 'ddlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844582485925048321, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844582485962797058, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'gbyy', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968823631873, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968857186306, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968882352130, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968911712258, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968936878082, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968970432513, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620968995598338, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'jycd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969020764162, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969054318594, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969079484418, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969108844546, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969138204673, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969163370498, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969192730625, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844620969222090754, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844624185104019457, '1', 1, '2024-10-11 14:20:52', 101, NULL, NULL, 0, 1844620967619866625, 'ddsc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844626318515777538, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'glkh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844626318545137666, '1', 1, '2024-10-11 14:29:20', 101, NULL, NULL, 0, 1844620967619866625, 'gldd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844626318566109186, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gdms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844626318595469313, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'csry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1844626318620635137, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'scfj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517474545665, '1', 1, '2024-10-12 16:03:57', 101, NULL, NULL, 0, 1845012516400803842, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517503905793, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517533265922, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'dx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517554237442, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517587791874, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517608763394, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517638123522, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517663289346, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517696843778, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517717815297, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517751369729, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517780729858, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845012517805895682, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390353416194, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390382776321, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390407942145, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390437302273, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390462468097, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390487633921, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390516994049, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390550548481, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390579908610, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390609268737, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'membership_level', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390630240257, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390663794689, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390688960514, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390785429505, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390869315585, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_label', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845019390890287106, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'registration_channel', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1845023446643843074, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765313, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765314, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765315, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765316, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'sjbm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765317, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765318, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'cysl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765319, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zgry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765320, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'bmms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765322, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765323, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765324, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765325, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765326, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765327, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846009554170765328, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971330, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971331, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971332, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'phone', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971333, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971334, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'default_address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971335, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971336, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971337, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971339, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971340, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074001471971341, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846074927725289473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937287, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937288, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937289, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937291, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937292, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937294, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846083506867937295, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456386, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456387, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'sj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456388, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:56', 0, 1846095079682482177, 'points_change', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456389, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456390, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456391, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456392, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456393, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456394, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456395, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456396, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456397, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456398, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456399, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846095082941456400, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846096153218785281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'points_balance', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610755, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'ip', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610756, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610757, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610758, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610759, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610760, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846100521137610764, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'dlfs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773633, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773634, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773635, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'cz_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773636, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773637, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773638, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773639, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773640, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773641, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846103238920773643, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czxq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'xm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'bm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983495, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983496, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983497, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846121743409983498, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846124101179256833, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zw', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846124101179256834, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846126577752190978, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'phone', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846126577752190979, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zxzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846126577752190980, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhdl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935106, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935107, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935108, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935109, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tjsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935110, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935111, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935112, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846429442181935116, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086402, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086403, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'ip', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086404, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086405, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086406, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086407, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086408, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086409, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086411, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846734667946086412, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:24', 0, 1846734665412726786, 'zdlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846739005145808897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846739005145808898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846739005145808899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846739005145808900, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'macdz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320259, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320261, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320262, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320263, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320264, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320268, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320269, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czxq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320270, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320271, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846747366868320272, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035521, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035522, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'turnover', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035523, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035524, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035525, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035526, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'registered_users', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035527, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'members', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035528, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'day', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035529, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035530, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035531, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035532, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035533, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035534, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1846853876333035535, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jbxx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344581, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344582, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344583, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmjd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344584, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zhgx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344585, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmcy', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmzs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344587, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jxz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344588, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'ywc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344589, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'yyq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344590, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344591, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344592, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847094474104344596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'jzsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815686, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'urgent_relief', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815687, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815688, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815691, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'kssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815692, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwtx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815693, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815694, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'cyry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815695, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815696, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815699, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815700, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847103679871815701, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847104935315083265, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284610, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284611, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'table_type', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284612, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'value', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284613, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'type_index', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284614, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284615, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284616, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847167247321284620, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847169698230378497, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'color', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847171061765054465, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847183465256194049, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847197498554322945, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847197498554322946, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847198273300992002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fzr', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847198273300992003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'cyry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847198273300992004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'rwbj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847198273300992005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kxfw', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208130, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208131, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208132, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208133, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208134, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208135, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208136, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208137, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208138, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208139, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208140, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208141, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208142, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847456816236208143, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220547, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'status', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'jzsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'urgent_relief', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220551, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'xmmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220552, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'lys', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'kssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220556, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwtx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220557, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220558, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'cyry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220559, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220560, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220561, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220562, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220563, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220564, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220565, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220566, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'color', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847472444090220567, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'txfs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847478146946957314, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847472439438737409, 'zw', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217411, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'ranking', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217412, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217413, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'visit', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217414, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'quantity', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217415, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'cancel', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217416, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'pj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217417, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1847537158947217424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848178488371245058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848178488371245059, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848178488371245060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848263865807339521, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848268294837174273, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326339, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326340, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326341, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326342, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326343, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326344, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326345, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326346, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326347, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326348, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848301755437326349, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214597, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214598, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214599, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214600, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214601, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214602, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848631603951214603, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178433, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178434, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178435, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178436, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178437, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178438, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178439, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178440, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178443, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:52', 0, 1848637143087489025, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178444, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'dz_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178445, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'sc_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848637146556178446, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'pl_num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087428, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087429, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087430, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087431, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087432, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087433, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087434, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087435, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848649273434087436, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1848665317271838721, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269249, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269250, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269251, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269252, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269253, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269254, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269255, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269256, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269257, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1849365536457269258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827779, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrfks', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827780, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyfws', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827781, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyffs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827782, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'xzhys', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827783, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827784, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827785, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827786, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827787, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827788, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850061361386827789, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248006, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248007, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248008, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248009, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850092583861248010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'xse', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548869, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548870, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548871, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548872, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548873, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850094921728548874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850102550999769090, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'sm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'nz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'my', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615686, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'xb', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615687, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615688, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'je', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615691, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615692, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615693, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615694, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850109347852615695, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303042, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303043, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:03:49', 0, 1850723645460291586, 'kssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303044, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303045, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303046, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303047, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303048, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303049, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850723646777303050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986051, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986055, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986056, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850724500745986058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850726015569207298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'rl_id', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850780441454473218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'sub_more_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850780488987549698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'jssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1850819896789831682, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:46', 1, 1849365535287058433, 'aaa', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657346, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'bbb', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657347, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ccc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657348, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ddd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657349, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'eee', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657350, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'fff', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657351, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ggg', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851092532761657352, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'hhh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851137193047937026, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1850724499567386625, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851137193047937027, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'ms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210177, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210178, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210179, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210180, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210181, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cytx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210182, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210183, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210184, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210185, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210186, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210187, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851205232460210188, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888900, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888901, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888902, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888903, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888904, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888908, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888909, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888910, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888911, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888912, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851509265095888913, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851511408246820865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851511408246820866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'xm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851511408246820867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'rw', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821573, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821574, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821575, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821576, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851796250691821580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851802083739734017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'time_test', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851882903887364098, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1851921954208169986, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852169866364280833, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_box', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605314, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605315, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm_name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605316, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605317, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'rwzs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605318, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'ywc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605319, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'dwc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605320, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yyq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yql', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605322, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'wcl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605323, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605324, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605325, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605326, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605327, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605328, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852234474462605329, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847556, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847557, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847558, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847559, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847560, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847561, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847562, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847563, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847564, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'time_test', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847565, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852241981469847566, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_box', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696193, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696194, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696195, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696196, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696197, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696198, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696199, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696200, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696201, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696202, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696203, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852557614002696204, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sjlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'xm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075908, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075909, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075910, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075911, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075912, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075913, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075915, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'color', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075916, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:30:06', 0, 1852624838914699265, 'lx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075917, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075918, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075919, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075920, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075921, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075922, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1852624840110075923, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375041, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375042, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375043, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375044, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bglx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375045, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'ssbm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375046, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375047, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375048, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375049, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375051, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853269840636375054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853285291814776834, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgrq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853285291814776835, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzzj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853285291814776836, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzjh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853285291814776837, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853285291814776838, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853327906400595969, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'csry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1853337382218330114, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230147, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230148, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230149, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230150, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230151, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230152, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggzt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'gglx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'jsry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854048264980230157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448257, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448259, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448260, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448261, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'ssmk', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448262, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448263, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448264, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448268, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448269, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854067252292448270, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729795, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729796, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729797, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729798, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'splx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729799, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'ywbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729800, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'tjsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729804, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729805, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729806, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854331400909729807, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854332938856148994, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'spjg', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506753, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506755, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'dlsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506757, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'zdlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506758, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'llq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506759, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'czxt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506760, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506764, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506765, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506766, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854341003202506767, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'sbmc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854344156249567234, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854344156249567235, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854344156249567236, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854344156249567237, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'szdq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854344156249567238, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854350562663051266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggxq', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854350562663051267, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbsj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854350562663051268, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854353315137302530, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854353315137302531, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'plsz', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854353315137302532, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'txfs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854365905695518722, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812488, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bktx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htbk', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bkjs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'cytx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854408558369812495, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854422860918034434, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418242, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418243, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'img', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418244, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418245, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'text', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418246, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418247, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418248, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418250, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418251, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854438273713418252, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854440295594438658, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854440295594438659, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854440295594438660, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854451637898424321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'num', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002628, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002629, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002630, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002631, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002632, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002633, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002634, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002635, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854695847583002636, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027009, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027011, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027012, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027013, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027014, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027015, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027016, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'cytx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'htbt', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'lll', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854716970186027020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'hfl', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854727997657165826, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'llcs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854766851533549569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'sd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854766851533549570, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'zd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854766851533549571, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854716968965484545, 'rm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854777971371651074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'rm', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1854777971371651075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955970, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955971, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955972, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955973, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955974, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955975, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955976, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955977, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955978, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'is_deleted', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955979, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856505237935955980, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'jssj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591937, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'title', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591938, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sjlx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591939, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cfrc', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591940, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cyry', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591941, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kjcd', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591942, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcbj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591943, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rctx', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591944, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'txfs', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591945, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcms', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1856507608103591946, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'fj', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1859429351248035841, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972547, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', 'Y', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972551, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972552, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', 'N', ''); +INSERT INTO `lowcode_dbform_field_export` VALUES (1872882476484972555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', 'N', ''); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field_foreignkey +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field_foreignkey`; +CREATE TABLE `lowcode_dbform_field_foreignkey` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `main_table` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '外键主表名', + `main_field` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '外键主键字段', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_field_code`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-外键配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field_foreignkey +-- ---------------------------- +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019969, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019970, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019971, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'age', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019972, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'birth_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019973, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'interest', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019974, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019975, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019976, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019977, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019978, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019979, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831577849224019980, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034882, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034883, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'pid', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034884, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034885, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_code', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034886, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'type_state', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034887, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'remark', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034888, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034889, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034890, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034891, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034892, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034893, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831582339239034894, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:45', 0, 1831582331282440193, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700674, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700675, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700676, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700677, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700678, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700679, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700680, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831606731100700685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721986, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721987, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'main_id', 'example_main_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721988, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'course_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721989, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'credits', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721990, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'grade', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721991, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721992, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721993, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721994, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721995, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721996, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831607487031721997, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146241, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146242, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'main_id', 'example_main_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146243, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'emergency_contact', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146244, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'contact_phone', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146245, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'address', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146246, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146247, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146248, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146249, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146250, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146251, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831608172859146252, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576258, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576259, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'first_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576260, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'birth_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576261, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'sex', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576262, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'email', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576263, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576264, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576265, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576266, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576267, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576268, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831879672564576269, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232577, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232578, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'main_id', 'example_main_erp_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232579, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'course_name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232580, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'credits', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232581, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'grade', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232582, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232583, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232584, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232585, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232586, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232587, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881282334232588, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180866, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180867, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'main_id', 'example_main_erp_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180868, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'emergency_contact', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180869, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'contact_phone', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180870, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180871, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180872, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180873, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180874, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180875, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180876, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831881404166180877, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:50', 0, 1831881397711147010, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825217, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825218, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'first_name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825219, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'birth_date', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825220, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'sex', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825221, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'email', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825222, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825223, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135314825224, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135323213826, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135323213827, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135323213828, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883135323213829, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535681, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535682, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'main_id', 'example_main_nq_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535683, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'course_name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535684, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'credits', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535685, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'grade', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535686, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535687, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535688, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535689, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535690, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535691, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883207838535692, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036545, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036546, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'main_id', 'example_main_nq_table', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036547, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'emergency_contact', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036548, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'contact_phone', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036549, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036550, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036551, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036552, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036553, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036554, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036555, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831883396125036556, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:47', 0, 1831883388675952641, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066753, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066754, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_input', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066755, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_password', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066756, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_number', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066757, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_textarea', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066758, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_select', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066759, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_tree', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066760, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_cascader', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066761, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_table', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066762, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066763, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066764, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_region', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066765, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_radio', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066766, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_checkbox', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066767, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066768, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066769, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_datetime', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066770, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_file', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066771, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_image', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066772, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_code', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066773, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_custom', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066774, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_ueditor', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066775, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066776, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066777, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066778, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066779, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066780, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1831939966213066781, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971010, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971011, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:35', 0, 1833031105253642242, 'sno', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971012, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971013, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'sex', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971014, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'birthday', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971015, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971016, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971017, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971018, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971019, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971020, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833031111196971021, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137537, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137538, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137539, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'age', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137540, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'birth_date', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137541, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'interest', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137542, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137543, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137544, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137545, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137546, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137547, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833055215683137548, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833058205339627527, NULL, NULL, NULL, NULL, NULL, '2024-09-09 16:24:34', 1, 1833031105253642242, 'flag', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833059189805690887, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'flag', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535297, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535298, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535299, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'age', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535300, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'birth_date', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535301, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'interest', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535302, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535303, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535304, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535305, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535306, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535307, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833320021044535308, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:39', 0, 1833320018125299714, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200193, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200194, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200195, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200196, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200197, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:47', 0, 1833323260582391810, 'client_head_contact', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200198, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'phone_number', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200199, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_affiliation', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200200, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200201, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200202, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200203, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200204, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200205, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833323263816200206, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235713, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235714, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'user_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235715, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'visitor_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235716, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'goods_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235717, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235718, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235719, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235720, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235721, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235722, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833326227637235723, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:02', 0, 1833326225296814081, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1833341753200115720, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'classe', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931714, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931715, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'student_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931716, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'course_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931717, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931718, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931719, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931720, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931721, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931722, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931723, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834065861906931724, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834066015498149892, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:08:08', 0, 1834065859105136642, 'score', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834066119715811333, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834066736152694789, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834067121242513412, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:13:46', 1, 1834065859105136642, 'score_test', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834067977700216836, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834068007792549892, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:23', 0, 1834065859105136642, 'score_test', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834068581805821957, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:17:08', 1, 1834065859105136642, 'aab', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834068820021317637, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281282, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281283, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281284, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281285, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281286, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281287, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281288, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281289, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281290, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281291, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_target_money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281292, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_accomplish_money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281293, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_accomplish_form', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281294, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_percentage_complete', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281295, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_average_price', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281296, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_department', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834136618733281297, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_personnel', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1834523631030538242, '1', 1, '2024-09-13 17:24:52', 101, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'score_test', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298975850344449, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298976097808386, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298976357855233, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298976613707778, '1', 1, '2024-09-18 14:59:27', 101, NULL, NULL, 0, 1836298963389067265, 'price', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298976865366018, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'hh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298977117024258, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298977364488194, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298977624535042, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'subtotal', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298977871998978, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298978127851522, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298978383704066, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298978631168002, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298978882826241, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298979147067393, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836298979390337025, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318528915451906, '1', 1, '2024-09-18 16:17:09', 101, NULL, NULL, 0, 1836318516001189890, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318529183887362, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318529448128513, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'manipulator', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318529716563969, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'order_status', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318529980805121, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'payment_status', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318530240851970, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'delivery_status', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318530509287426, '1', 1, '2024-09-18 16:17:09', 101, 1, '2024-09-18 16:21:49', 0, 1836318516001189890, 'view', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318530777722882, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318531037769730, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318531302010881, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318531562057729, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318531826298882, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318532090540034, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318532358975489, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1836318532623216642, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141828507394049, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141828759052290, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141828998127618, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141829233008641, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141829480472578, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141829971206146, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141830222864386, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838141830466134017, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392391794974721, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392392038244354, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'bh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392392289902594, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'company_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392392533172226, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392392784830466, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392393023905794, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392393275564033, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'add_people', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392393527222274, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'customer_star', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392393774686210, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 1, 1838392378859741185, 'update_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392394013761538, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392394269614081, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392394517078018, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392394764541954, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392395003617282, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392395251081217, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838392395502739458, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494744690880513, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494744892207106, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'sr', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494745085145089, '1', 1, '2024-09-24 16:24:39', 101, NULL, NULL, 0, 1838494733815050242, 'tx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494745273888770, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494745466826754, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'sg', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494745659764738, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'tz', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494745865285633, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'sj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494746049835010, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'dz', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494746251161601, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'xs', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494746439905282, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'zt', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494746628648962, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494746821586946, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494747014524929, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494747211657218, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494747396206594, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494747593338882, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838494747782082561, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505732538437634, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505732790095874, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'bh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505733050142721, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'company_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505733310189570, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505733566042114, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505733817700354, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505734077747201, '1', 1, '2024-09-24 17:08:19', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505734329405442, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 1, 1838505719016001538, 'add_people', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505734581063681, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'attributable_person', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505734841110529, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505735096963074, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505735357009922, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505735612862465, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505735868715009, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505736124567553, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838505736380420098, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838508238316310530, '1', 1, '2024-09-24 17:18:17', 101, NULL, NULL, 1, 1838505719016001538, 'add_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838508238555385858, '1', 1, '2024-09-24 17:18:17', 101, NULL, NULL, 1, 1838505719016001538, 'update_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748861329899521, '1', 1, '2024-09-25 09:14:25', 101, NULL, NULL, 0, 1838748849153835009, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748861573169154, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'bh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748861829021698, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748862072291329, '1', 1, '2024-09-25 09:14:26', 101, 1, '2024-09-25 09:27:11', 1, 1838748849153835009, 'khzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748862319755265, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748862571413506, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'khly', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748862818877442, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748863062147073, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 1, 1838748849153835009, 'gxsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748863317999617, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748863569657858, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748863821316097, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748864068780034, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748864316243969, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748864567902209, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838748864811171841, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838750711038935042, '1', 1, '2024-09-25 09:21:47', 101, NULL, NULL, 0, 1838748849153835009, 'djbt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838752956656713730, '1', 1, '2024-09-25 09:30:42', 101, NULL, NULL, 0, 1838748849153835009, 'khzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838752956895789058, '1', 1, '2024-09-25 09:30:42', 101, NULL, NULL, 0, 1838748849153835009, 'hylx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754185604562945, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754185826861058, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'pid', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754186040770561, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754186254680065, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'classification_number', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754186472783874, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754186686693377, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754186917380097, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 1, 1838754174162501633, 'add_people', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754187131289602, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 1, 1838754174162501633, 'update_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754187349393409, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754187567497218, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754187785601026, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754187999510529, '1', 1, '2024-09-25 09:35:35', 101, NULL, NULL, 0, 1838754174162501633, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754188217614337, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754188435718146, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754188653821953, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838754188880314370, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824822297645057, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824822557691905, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'bh', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824822821933058, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824823077785602, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'khly', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824823342026753, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'tjry', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824823606267905, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'gxsj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824823866314754, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824824126361602, '1', 1, '2024-09-25 14:16:16', 101, NULL, NULL, 0, 1838824808796180481, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824824390602753, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824824654843906, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824824914890753, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824825170743298, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824825426595842, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824825690836994, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824825946689537, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'khzt', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838824826202542081, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'hylx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826572828168194, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826573079826433, '1', 1, '2024-09-25 14:23:13', 101, NULL, NULL, 0, 1838141821641318402, 'zt_title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826573427953665, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'zt_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826573692194817, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'dz_num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826573952241666, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'sc_num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838826574216482817, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'pl_num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855944045879297, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855944301731841, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855944553390081, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855944809242625, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855945069289474, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855945325142018, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855945572605953, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855945836847106, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855946088505346, '1', 1, '2024-09-25 16:19:56', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855946348552194, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1838855946604404737, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1839512445861359618, '1', 1, '2024-09-27 11:48:38', 101, NULL, NULL, 0, 1838494733815050242, 'xb', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268805179711489, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268805431369729, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268805683027969, '1', 1, '2024-09-29 13:54:08', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268805938880514, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'approval_status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268806186344450, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268806438002690, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268806689660929, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268806945513474, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268807188783105, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268807465607170, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268807713071105, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268807968923650, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840268808220581890, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577525059190785, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577525277294594, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577525491204098, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577525717696514, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577525939994626, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577526158098433, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577526380396545, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577526602694658, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577526820798466, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577527038902273, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577527252811778, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840577527475109889, '1', 1, '2024-09-30 10:20:53', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642766828814338, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642767101444097, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642767365685249, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642767629926401, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642767894167553, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642768158408705, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642768426844162, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642768695279618, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642768963715074, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642769219567617, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840642769483808770, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646342871433218, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646343114702850, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646343345389570, '1', 1, '2024-09-30 14:54:20', 101, NULL, NULL, 0, 1840646327436394498, 'birthday', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646343597047809, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'sex', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646343836123138, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'stature', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646344079392769, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'weight', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646344314273793, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'address', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646344553349121, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'contact_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646344800813057, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646345035694081, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'educational', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646345278963714, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646345526427650, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646345765502977, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646346008772609, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646346252042242, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646346491117570, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646346730192897, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646346973462530, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646347208343554, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840646347455807489, '1', 1, '2024-09-30 14:54:21', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1840670041221656578, '1', 1, '2024-09-30 16:28:30', 101, NULL, NULL, 0, 1840642756645044226, 'rich_text', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476398589087745, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476398802997249, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'icon', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476399021101058, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476399235010562, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476399444725761, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'switch', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476399662829570, '1', 1, '2024-10-08 10:19:58', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476399880933378, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476400086454273, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476400304558081, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476400522661889, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476400736571394, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1843476400950480897, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961826689025, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961881214978, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961910575105, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961939935233, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961969295362, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'zfss', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275961994461185, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddly', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962015432706, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'yhzh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962040598529, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tjsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962069958657, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962099318785, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962120290306, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962145456130, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962170621954, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962199982082, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844275962225147905, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844278208971194369, '1', 1, '2024-10-10 15:26:05', 101, NULL, NULL, 0, 1844275960258019330, 'ddlx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844582485996351490, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844582486025711618, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'gbyy', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969247256577, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969276616706, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969301782529, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969331142658, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdlx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969360502786, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969385668610, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969410834433, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'jycd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969444388865, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969469554690, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969498914817, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969524080642, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969545052161, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969574412290, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969603772417, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844620969628938241, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844624185124990977, '1', 1, '2024-10-11 14:20:52', 101, NULL, NULL, 0, 1844620967619866625, 'ddsc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844626318649995265, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'glkh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844626318670966785, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gldd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844626318704521217, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gdms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844626318725492737, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'csry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1844626318759047170, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'scfj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517852033026, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517885587457, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517914947586, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'dx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517944307713, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517973667841, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012517998833665, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518023999489, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518049165314, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518074331137, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518099496961, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518133051394, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518154022913, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845012518183383042, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019390923841538, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019390953201665, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019390974173185, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391003533314, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391028699137, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391058059265, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391079030786, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391108390913, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391137751042, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391158722561, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'membership_level', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391192276994, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391213248513, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391246802945, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391271968770, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391297134593, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_label', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845019391322300418, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'registration_channel', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1845023446677397505, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'sjbm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857158, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'cysl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857159, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zgry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857160, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'bmms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857161, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857162, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857163, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857164, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857165, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857166, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857167, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846009555575857168, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438467, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438468, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'phone', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438469, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438470, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'default_address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438471, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438472, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074002453438477, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846074928341852162, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725957, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725958, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725959, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725960, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725961, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725962, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725963, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725964, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725965, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846083508201725966, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913411, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'sj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913412, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'points_change', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913413, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913414, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913415, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913416, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913417, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846095084224913424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846096153801793538, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'points_balance', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500035, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'ip', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500036, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500037, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500038, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500039, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500040, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500041, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500042, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500043, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846100521955500044, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'dlfs', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572419, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czz', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572420, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'cz_type', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846103239952572428, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czxq', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901250, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'xm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901251, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'bm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901252, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901253, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901254, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901255, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901256, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901257, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846121744206901258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846124101414137858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zw', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846124101414137859, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846126578163232770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'phone', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846126578163232771, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zxzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846126578163232772, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhdl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321857, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321859, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321860, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tjsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321861, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321862, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321863, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321864, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846429443075321867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307330, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307331, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'ip', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307332, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307333, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307334, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307335, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307336, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307337, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307339, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846734668814307340, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:24', 0, 1846734665412726786, 'zdlx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846739005640736770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846739005640736771, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846739005640736772, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846739005644931074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'macdz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165891, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165892, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165894, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165895, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165896, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165900, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czlx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165901, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czxq', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165902, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165903, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846747368160165904, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990018, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990019, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'turnover', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990020, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990021, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990022, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990023, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'registered_users', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990024, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'members', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990025, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'day', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990026, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990027, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990028, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990029, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990030, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990031, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1846853877691990032, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330753, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jbxx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330755, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330756, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330757, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330758, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmjd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330759, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zhgx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330760, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmcy', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmzs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jxz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'ywc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330764, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'yyq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330765, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330766, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330767, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330768, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330769, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847094476176330771, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063233, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063234, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063235, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063236, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'jzsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063237, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'urgent_relief', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063238, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063239, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063240, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063241, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063242, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'kssj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063243, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwtx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063244, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063245, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'cyry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063246, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063247, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063248, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063250, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063251, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847103681604063252, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847104935508021249, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225793, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'table_type', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225795, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'value', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225796, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'type_index', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225797, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225798, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225799, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225800, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847167248248225803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847169698385567745, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'color', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847171061899272194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847183465390411778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847197498768232450, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847197498768232451, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847198273628147714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fzr', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847198273628147715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'cyry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847198273628147716, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'rwbj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847198273628147717, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kxfw', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817251229698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424006, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424007, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424008, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424009, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424011, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424012, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424013, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847456817255424014, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685826, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685827, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685828, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'status', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685829, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'jzsj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685830, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'urgent_relief', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685831, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'xmmc', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685832, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'lys', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685833, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'fj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685834, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685835, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'kssj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685836, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwtx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685837, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwms', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685838, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'cyry', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685839, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685840, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685841, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685842, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685843, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685844, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685845, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685846, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'color', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847472445956685847, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'txfs', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847478147106340866, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847472439438737409, 'zw', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332674, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332675, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'ranking', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332676, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332677, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'visit', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332678, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'quantity', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332679, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'cancel', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332680, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'pj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332681, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:24', 0, 1847537155101040642, 'money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332686, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332687, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1847537160482332688, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848178489415626753, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848178489415626754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848178489415626755, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848263866025443330, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848268295000752130, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148547, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148551, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148552, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148556, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848301756599148557, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762116, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762117, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762118, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762119, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762120, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762121, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762122, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848631605020762123, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147856412674, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147856412675, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801287, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_img', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801288, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801289, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:52', 0, 1848637143087489025, 'content', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801290, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'dz_num', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801291, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'sc_num', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848637147864801292, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'pl_num', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634946, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634947, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634948, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634949, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634950, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634951, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634952, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634954, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634955, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848649274503634956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'content', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1848665317447999489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652801, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652802, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652803, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652804, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652805, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652806, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652807, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652808, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652809, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1849365536616652810, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628417, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrfks', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyfws', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyffs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'xzhys', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850061361533628428, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380291, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380292, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380294, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380295, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380296, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380297, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850092584058380299, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429889, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'xse', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429894, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429895, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429896, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850094921963429898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850102551175929858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'sm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359364, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'nz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359365, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'my', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359366, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'xb', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359367, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359368, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'je', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359369, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359370, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359371, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359372, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359373, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359374, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850109348041359375, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852419, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:03:49', 0, 1850723645460291586, 'kssj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850723646961852426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146819, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146821, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146822, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146823, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146824, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146825, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850724500922146826, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850726015703425025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'rl_id', 'example_main_date', 'id'); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850780441613856769, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'sub_more_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850780489352454146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'jssj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1850819896936632322, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:46', 1, 1849365535287058433, 'aaa', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007362, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'bbb', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007363, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ccc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007364, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ddd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007365, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'eee', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007366, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'fff', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007367, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ggg', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851092533093007368, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'hhh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851137193224097793, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1850724499567386625, 'time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851137193224097794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'ms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342467, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342468, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342469, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342470, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cytx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342471, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342472, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851205232657342477, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409793, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409795, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409796, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409797, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409798, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409799, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409800, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409804, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409805, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409806, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409807, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851509265301409808, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851511408381038594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851511408381038595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'xm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851511408381038596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'rw', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731076, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731077, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731078, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731079, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731080, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731081, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731082, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731083, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851796250905731084, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'content', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851802084217884674, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'time_test', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851882904113856513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1851921954384330754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852169866557218818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_box', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm_name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154691, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154692, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'rwzs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154693, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'ywc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154694, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'dwc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154695, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yyq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154696, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yql', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'wcl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154699, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154700, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154701, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154702, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154703, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852234474647154704, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339969, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339970, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339971, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339972, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339973, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339974, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339975, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339976, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339977, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339978, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'name', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339979, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339980, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'time_test', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339981, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'num', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852241981696339982, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_box', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160129, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160130, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160131, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160132, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160133, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160134, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160135, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160136, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160137, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160138, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160139, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852557614250160140, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sjlx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'xm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625287, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625288, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625289, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'color', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625291, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:30:06', 0, 1852624838914699265, 'lx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625292, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625294, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625295, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625296, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625297, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1852624840294625298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313026, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313027, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgbt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313028, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313029, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bglx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313030, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'ssbm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313031, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313032, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313033, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313035, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313036, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313037, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313038, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853269840829313039, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853285291999326209, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgrq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853285291999326210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzzj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853285291999326211, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzjh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853285291999326212, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'fj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853285291999326213, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853327906593533953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'csry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1853337382390296577, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168129, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168130, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168131, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168132, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168133, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168134, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168135, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggbt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168136, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggzt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168137, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'gglx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168138, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'jsry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168139, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854048265173168140, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czbh', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'ssmk', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969158, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969159, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czlx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969160, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969161, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969162, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969163, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969164, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969165, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854067252497969166, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444993, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444994, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spbh', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444995, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spsj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444996, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spry', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444997, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'splx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444998, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'ywbh', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119444999, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'tjsj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445000, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854331401119445006, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854332939455934466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'spjg', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250433, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250434, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250435, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'dlsj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250436, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250437, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'zdlx', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250438, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'llq', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250439, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'czxt', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250440, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250443, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250444, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250445, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250446, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854341003391250447, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'sbmc', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854344157256200193, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854344157256200194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854344157256200195, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854344157256200196, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'szdq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854344157256200197, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854350562855989249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggxq', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854350562855989250, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbsj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854350562855989251, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854353315279908866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854353315279908867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'plsz', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854353315279908868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'txfs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854365906081394689, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778946, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778947, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778948, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778949, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778950, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778951, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778952, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bktx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htbk', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bkjs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778957, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'cytx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778958, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854408558541778959, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854422861077417985, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773314, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773315, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'img', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773316, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773317, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'text', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773318, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773319, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773320, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773321, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773322, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773323, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854438273893773324, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854440295992897538, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854440295992897539, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854440295992897540, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'content', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854451638066196481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'num', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940609, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940610, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940611, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940612, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940613, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940614, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940615, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940616, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940617, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940618, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854695847775940619, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187777, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187779, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187780, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187781, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187782, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187783, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187784, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187785, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'cytx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187786, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'htbt', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187787, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'lll', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854716970362187788, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'hfl', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854727997829132290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'llcs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854766851709710338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'sd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854766851709710339, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:23', 0, 1854716968965484545, 'zd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854766851709710340, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854716968965484545, 'rm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854777971728166913, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'rm', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1854777971728166914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kssj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106628, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'tenant_id', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106629, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106630, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106631, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_dept', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106632, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_user', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106633, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_time', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106634, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'is_deleted', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106635, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856505238414106636, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'jssj', NULL, NULL); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107778, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'title', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107779, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sjlx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107780, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cfrc', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107781, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cyry', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107782, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kjcd', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107783, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcbj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107784, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rctx', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107785, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'txfs', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107786, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcms', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1856507608460107787, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'fj', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1859429351260618753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944072, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', '', ''); +INSERT INTO `lowcode_dbform_field_foreignkey` VALUES (1872882476505944075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', '', ''); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field_query +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field_query`; +CREATE TABLE `lowcode_dbform_field_query` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `query_is_db` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否开启数据库查询;N=不开启 Y=开启', + `query_is_web` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否显示查询控件;N=不显示 Y=显示', + `query_mode` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询模式;EQ=精确 LIKE=模糊', + `query_config` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询配置', + `query_default_val` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询控件默认值', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_field_code`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-查询配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field_query +-- ---------------------------- +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174657, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174658, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174659, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'age', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174660, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'birth_date', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174661, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'interest', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174662, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174663, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174664, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174665, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174666, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174667, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831577854559174668, NULL, NULL, NULL, NULL, NULL, '2024-11-21 10:53:37', 0, 1831577841380671489, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987010, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987011, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'pid', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987012, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'type_name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987013, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'type_code', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987014, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'type_state', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987015, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'remark', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987016, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987017, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987018, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987019, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987020, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987021, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831582343986987022, NULL, NULL, NULL, NULL, NULL, '2024-11-13 17:03:05', 0, 1831582331282440193, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266051, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266055, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266056, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266059, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831606734955266061, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500034, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500035, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500036, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'course_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500037, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'credits', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500038, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'grade', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500039, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500040, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500041, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500042, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500043, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500044, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831607491171500045, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:08', 0, 1831607480064983042, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011586, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011587, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011588, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'emergency_contact', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011589, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'contact_phone', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011590, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011591, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011592, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011593, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011594, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011595, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011596, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831608176051011597, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:22', 0, 1831608167414939649, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905538, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905539, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'first_name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905540, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'birth_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905541, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'sex', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905542, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'email', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905543, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905544, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905545, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905546, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905547, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905548, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831879676003905549, NULL, NULL, NULL, NULL, NULL, '2024-10-25 11:59:01', 0, 1831879666549944322, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849858, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849859, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849860, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'course_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849861, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'credits', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849862, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'grade', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849863, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849864, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849865, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849866, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849867, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849868, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881286297849869, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:37', 0, 1831881275090669569, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471554, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471555, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471556, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'emergency_contact', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471557, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'contact_phone', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471558, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471559, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471560, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471561, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471562, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471563, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471564, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831881407928471565, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043777, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043778, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'first_name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043779, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'birth_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043780, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'sex', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043781, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'email', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043782, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043783, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043784, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043785, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043786, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043787, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883139572043788, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:01', 0, 1831883128176119810, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782722, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782723, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782724, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'course_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782725, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'credits', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782726, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'grade', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782727, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782728, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782729, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782730, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782731, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782732, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883212074782733, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:18', 0, 1831883200666275842, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881666, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881667, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'main_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881668, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'emergency_contact', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881669, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'contact_phone', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881670, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881671, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881672, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881673, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881674, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881675, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881676, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831883399920881677, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962754, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962755, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_input', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962756, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_password', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962757, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_number', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962758, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_textarea', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962759, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_select', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962760, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_tree', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962761, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_cascader', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962762, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_table', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962763, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_user', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962764, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_dept', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962765, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_region', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962766, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_radio', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962767, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_checkbox', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962768, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962769, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962770, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_datetime', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962771, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_file', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962772, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_image', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962773, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_code', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962774, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_custom', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962775, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_ueditor', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962776, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962777, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962778, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962779, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962780, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962781, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1831939975125962782, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129410, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129411, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'sno', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129412, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'name', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129413, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'sex', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129414, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'birthday', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129415, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'tenant_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129416, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129417, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129418, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129419, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129420, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'update_time', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833031114762129421, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'is_deleted', '', '', '', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570305, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570306, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570307, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'age', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570308, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'birth_date', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570309, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'interest', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570310, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570311, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570312, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570313, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570314, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570315, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833055212713570316, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:35', 0, 1833055212327694337, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833058209416491015, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'flag', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844034, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844035, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844036, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'age', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844037, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'birth_date', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844038, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'interest', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844039, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844040, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844041, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844042, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844043, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844044, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833320018460844045, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405121, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405122, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'client_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405123, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'client_type', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405124, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'client_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405125, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'client_head_contact', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405126, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'phone_number', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405127, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'client_affiliation', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405128, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405129, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405130, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405131, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405132, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405133, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833323261014405134, NULL, NULL, NULL, NULL, NULL, '2024-10-30 09:45:47', 0, 1833323260582391810, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107138, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107139, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'user_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107140, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'visitor_time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107141, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'goods_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107142, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107143, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107144, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107145, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107146, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107147, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833326225670107148, NULL, NULL, NULL, NULL, 1, '2024-09-20 14:37:52', 0, 1833326225296814081, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1833341758023565319, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'classe', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258818, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258826, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'student_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258830, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'course_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258831, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:08:07', 0, 1834065859105136642, 'score', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258832, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258833, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_user', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258834, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258835, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_dept', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258836, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'update_user', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258837, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834065859604258838, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834066123855589381, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'tbl_aa', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834067119107612677, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'score_test', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834067977708605445, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:17:37', 0, 1834065859105136642, 'aa', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834068581797433349, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:18:10', 0, 1834065859105136642, 'aab', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866370, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866374, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tenant_id', 'N', 'N', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'chaxun\',\n \"searchType\":\'select\',\n}`,\n custom_str: `return {\n\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866375, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_user', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866376, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866377, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866378, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866379, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'update_time', 'N', 'N', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'chaxun\',\n \"searchType\":\'select\',\n}`,\n custom_str: `return {\n\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866380, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'is_deleted', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866384, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_date', 'N', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866385, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_target_money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866386, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_accomplish_money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866387, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_accomplish_form', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866388, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_percentage_complete', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866389, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_average_price', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866390, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_department', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834136624487866391, NULL, NULL, NULL, NULL, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, 'tabs_card_personnel', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1834523636705431553, '1', 1, '2024-09-13 17:24:53', 101, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'score_test', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298983492366338, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:51', 0, 1836298963389067265, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298983752413186, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:51', 0, 1836298963389067265, 'commodity_picture', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298984008265729, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:52', 0, 1836298963389067265, 'commodity_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298984264118274, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:52', 0, 1836298963389067265, 'price', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298984515776514, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:52', 0, 1836298963389067265, 'hh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298984775823361, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:52', 0, 1836298963389067265, 'specifications', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298985031675905, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:52', 0, 1836298963389067265, 'num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298985279139842, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'subtotal', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298985534992386, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298985786650625, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298986042503170, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298986302550017, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298986554208257, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298986810060801, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836298987057524738, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 14:01:53', 0, 1836298963389067265, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318536863657986, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318537127899138, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318537392140290, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'manipulator', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318537660575746, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'order_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318537929011202, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'payment_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318538189058050, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'delivery_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318538461687809, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'view', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318538721734657, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318538981781505, '1', 1, '2024-09-18 16:17:11', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318539246022657, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318539510263809, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318539778699266, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318540047134721, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318540311375873, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1836318540579811329, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:42:43', 0, 1836318516001189890, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141832680726530, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141832932384770, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141833179848705, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141833418924034, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141833662193665, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141833909657601, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141834152927233, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838141834392002562, '1', 1, '2024-09-23 17:02:19', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392399747375105, '1', 1, '2024-09-24 09:37:58', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392399994839042, '1', 1, '2024-09-24 09:37:58', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'bh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'客户名称或编号\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392400246497282, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'company_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392400493961218, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'customer_status', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'客户状态\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392400745619457, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'industry_type', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'行业类型\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392400993083394, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'customer_source', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392401240547330, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'add_people', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392401488011265, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'customer_star', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'客户星级\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392401735475201, '1', 1, '2024-09-24 09:37:59', 101, 1, '2024-09-26 13:53:45', 1, 1838392378859741185, 'update_date', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392401982939137, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392402230403073, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392402473672706, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392402725330945, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392402972794882, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392403216064514, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'update_time', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'更新时间\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838392403463528450, '1', 1, '2024-09-24 09:37:59', 101, NULL, '2024-11-14 14:29:15', 0, 1838392378859741185, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494751305297921, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494751510818818, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'sr', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494751699562498, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494751892500481, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'name', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'请输入姓名\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494752089632769, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'sg', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494752286765057, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'tz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494752479703042, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'sj', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'请输入手机号码\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494752672641025, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'dz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494752873967618, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'xs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494753062711297, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'zt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494753259843586, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494753452781570, '1', 1, '2024-09-24 16:24:41', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494753649913857, '1', 1, '2024-09-24 16:24:42', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494753842851841, '1', 1, '2024-09-24 16:24:42', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494754035789825, '1', 1, '2024-09-24 16:24:42', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494754232922113, '1', 1, '2024-09-24 16:24:42', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838494754421665794, '1', 1, '2024-09-24 16:24:42', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505740797022210, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505741057069057, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'bh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'请输入编号\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505741308727297, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'company_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505741564579842, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'customer_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505741816238081, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'industry_type', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505742076284929, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'customer_source', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505742332137474, '1', 1, '2024-09-24 17:08:21', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'customer_star', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505742592184322, '1', 1, '2024-09-24 17:08:21', 101, 1, '2024-09-26 15:29:17', 1, 1838505719016001538, 'add_people', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505742848036866, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'attributable_person', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505743103889409, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505743355547650, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505743607205890, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505743871447042, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505744127299585, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505744378957826, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838505744643198978, '1', 1, '2024-09-24 17:08:22', 101, NULL, '2024-11-14 14:45:47', 0, 1838505719016001538, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838508240753201153, '1', 1, '2024-09-24 17:18:17', 101, 1, '2024-09-26 15:29:17', 1, 1838505719016001538, 'add_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838508241021636610, '1', 1, '2024-09-24 17:18:17', 101, 1, '2024-09-26 15:29:18', 1, 1838505719016001538, 'update_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748868833509377, '1', 1, '2024-09-25 09:14:27', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748869080973313, '1', 1, '2024-09-25 09:14:27', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'bh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'请输入编号\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748869332631553, '1', 1, '2024-09-25 09:14:27', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'gsmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748869575901185, '1', 1, '2024-09-25 09:14:27', 101, 1, '2024-09-25 09:27:32', 1, 1838748849153835009, 'khzt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748869827559426, '1', 1, '2024-09-25 09:14:28', 101, 1, '2024-09-25 09:27:32', 1, 1838748849153835009, 'hylx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748870075023361, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'khly', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748870326681601, '1', 1, '2024-09-25 09:14:28', 101, 1, '2024-09-25 09:37:31', 1, 1838748849153835009, 'tjry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748870574145537, '1', 1, '2024-09-25 09:14:28', 101, 1, '2024-09-25 09:37:31', 1, 1838748849153835009, 'gxsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748870817415169, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748871069073410, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748871312343042, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748871564001282, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748871811465217, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748872058929154, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838748872306393090, '1', 1, '2024-09-25 09:14:28', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838750712020402177, '1', 1, '2024-09-25 09:21:47', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'djbt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838752958292492289, '1', 1, '2024-09-25 09:30:42', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'khzt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838752958539956226, '1', 1, '2024-09-25 09:30:42', 101, NULL, '2024-11-14 14:47:16', 0, 1838748849153835009, 'hylx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754192625827842, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754192843931650, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'pid', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754193066229761, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'classification_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754193288527873, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'classification_number', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'请输入分类编号\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754193506631681, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754193720541185, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'quantity_goods', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754193947033601, '1', 1, '2024-09-25 09:35:37', 101, 1, '2024-09-27 14:52:47', 1, 1838754174162501633, 'add_people', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754194160943105, '1', 1, '2024-09-25 09:35:37', 101, 1, '2024-09-25 09:46:03', 1, 1838754174162501633, 'update_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754194383241217, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'note_information', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754194601345026, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754194819448833, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754195041746946, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754195259850754, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754195477954562, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754195696058369, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838754195905773570, '1', 1, '2024-09-25 09:35:37', 101, NULL, '2024-11-14 14:49:15', 0, 1838754174162501633, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824830631727105, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824830908551169, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'bh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824831172792321, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'gsmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824831432839169, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'khly', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824831684497409, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'tjry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824831948738561, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'gxsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824832208785410, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824832468832258, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824832733073410, '1', 1, '2024-09-25 14:16:18', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824832988925954, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824833253167106, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824833513213953, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824833764872194, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824834029113346, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824834293354497, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'khzt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838824834549207042, '1', 1, '2024-09-25 14:16:19', 101, NULL, '2024-10-24 15:39:21', 0, 1838824808796180481, 'hylx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826576229748738, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'zt_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826576489795585, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'zt_title', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826576745648129, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'zt_type', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826577005694977, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'dz_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826577274130434, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'sc_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838826577529982977, '1', 1, '2024-09-25 14:23:14', 101, NULL, '2024-10-23 14:56:00', 0, 1838141821641318402, 'pl_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855949699801090, '1', 1, '2024-09-25 16:19:57', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855949964042242, '1', 1, '2024-09-25 16:19:57', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'crad_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855950383472641, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'crad_title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855950647713794, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'card_describe', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855950899372034, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855951155224578, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855951411077121, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855951662735362, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855951926976514, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855952178634754, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1838855952434487297, '1', 1, '2024-09-25 16:19:58', 101, NULL, '2024-11-09 09:18:57', 0, 1838855934516420610, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1839512448063369218, '1', 1, '2024-09-27 11:48:39', 101, NULL, '2024-11-14 14:44:31', 0, 1838494733815050242, 'xb', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268811752185858, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:01', 0, 1840268794366795777, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268812008038401, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:01', 0, 1840268794366795777, 'order_title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268812268085249, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:01', 0, 1840268794366795777, 'total_order_amount', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268812515549186, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:01', 0, 1840268794366795777, 'approval_status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268812767207425, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'received_amount', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268813018865665, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'invoiced_amount', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268813266329601, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268813522182146, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268813769646081, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268814021304322, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268814277156866, '1', 1, '2024-09-29 13:54:11', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268814533009410, '1', 1, '2024-09-29 13:54:11', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840268814788861953, '1', 1, '2024-09-29 13:54:11', 101, 1, '2024-09-29 14:20:02', 0, 1840268794366795777, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577530360791041, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577530591477762, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'login_tp', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577530809581569, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'login_system', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577531027685378, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'login_address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577531249983490, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'login_ip', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577531476475905, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577531707162626, '1', 1, '2024-09-30 10:20:54', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577531937849345, '1', 1, '2024-09-30 10:20:55', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577532273393666, '1', 1, '2024-09-30 10:20:55', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577532491497473, '1', 1, '2024-09-30 10:20:55', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577532713795586, '1', 1, '2024-09-30 10:20:55', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840577532931899394, '1', 1, '2024-09-30 10:20:55', 101, 1, '2024-09-30 10:53:10', 0, 1840577516125323266, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642772726005761, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642773002829826, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642773267070978, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642773535506433, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'type', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642773803941889, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642774076571650, '1', 1, '2024-09-30 14:40:09', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642774340812801, '1', 1, '2024-09-30 14:40:10', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642774609248258, '1', 1, '2024-09-30 14:40:10', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642774873489409, '1', 1, '2024-09-30 14:40:10', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642775137730561, '1', 1, '2024-09-30 14:40:10', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840642775401971713, '1', 1, '2024-09-30 14:40:10', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646352547692545, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646352790962178, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'name', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'请输入搜索关键字\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646353030037506, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'birthday', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646353273307137, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'sex', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646353508188161, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'stature', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646353751457793, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'weight', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646353994727426, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646354233802753, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'contact_type', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646354468683777, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'hobbies', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646354716147714, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'educational', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646354959417346, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'major_course', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646355194298370, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'software_skill', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646355433373697, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'introduce', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646355680837633, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646355915718658, '1', 1, '2024-09-30 14:54:23', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646356158988289, '1', 1, '2024-09-30 14:54:24', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646356402257922, '1', 1, '2024-09-30 14:54:24', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646356641333249, '1', 1, '2024-09-30 14:54:24', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646356880408578, '1', 1, '2024-09-30 14:54:24', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840646357123678210, '1', 1, '2024-09-30 14:54:24', 101, NULL, '2024-11-14 14:48:15', 0, 1840646327436394498, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1840670042207318017, '1', 1, '2024-09-30 16:28:31', 101, NULL, '2024-10-25 16:10:23', 0, 1840642756645044226, 'rich_text', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476403773247490, '1', 1, '2024-10-08 10:19:59', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476403991351298, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'icon', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476404213649410, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476404423364610, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'introduce', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476404637274113, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'switch', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476404855377921, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476405073481730, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476405287391234, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476405501300738, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476405715210241, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476405941702658, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1843476406159806466, '1', 1, '2024-10-08 10:20:00', 101, 1, '2024-10-09 09:26:44', 0, 1843476389638443010, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962690715649, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962720075777, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'ddbh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'订单编号或商品名称\',\n \"searchOrder\":5,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962745241602, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'ddje', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962770407425, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'ddzt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'订单状态\',\n \"searchOrder\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962803961857, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'zfss', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962829127682, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'ddly', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'订单来源\',\n \"searchOrder\":2,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962854293505, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'yhzh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962883653633, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'tjsj', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'提交时间\',\n \"searchOrder\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962904625154, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962933985281, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962959151106, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275962988511234, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275963013677058, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275963034648578, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844275963059814401, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844278209080246273, '1', 1, '2024-10-10 15:26:05', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'ddlx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'订单类型\',\n \"searchOrder\":3,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844582486285758466, '1', 1, '2024-10-11 11:35:10', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'bz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844582486432559106, '1', 1, '2024-10-11 11:35:10', 101, NULL, '2024-11-11 10:44:17', 0, 1844275960258019330, 'gbyy', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970052562946, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970081923074, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gdbh', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'搜索关键字\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchOrder: 3,\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970107088897, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gdbt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970132254722, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gdlx', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'工单类型\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970161614849, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'clry', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'处理人员\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970211946497, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gdzt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'工单状态\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchOrder: 2,\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970241306625, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'jycd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970262278145, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'tjsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970291638273, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970316804098, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970346164226, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970371330050, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970400690178, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970430050306, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844620970451021825, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844624185296957442, '1', 1, '2024-10-11 14:20:52', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'ddsc', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'等待时长\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844626319077814273, '1', 1, '2024-10-11 14:29:21', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'glkh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844626319216226305, '1', 1, '2024-10-11 14:29:21', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gldd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844626319245586433, '1', 1, '2024-10-11 14:29:21', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'gdms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844626319274946561, '1', 1, '2024-10-11 14:29:21', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'csry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1844626319300112385, '1', 1, '2024-10-11 14:29:21', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'scfj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518581841922, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518607007745, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'wjm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518636367873, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'dx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518665728001, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'scsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518686699521, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'scry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518711865345, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'bznr', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518745419778, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518766391297, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518795751425, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518820917250, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518850277377, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518871248897, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845012518900609025, '1', 1, '2024-10-12 16:03:58', 101, NULL, '2024-10-24 14:45:59', 0, 1845012516400803842, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391808839682, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391838199809, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391867559937, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391896920066, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391922085890, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391943057410, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391972417537, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019391997583361, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'id', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'用户账号/ID/手机号码\',\n \"searchOrder\":5,\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392026943490, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'user_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392047915010, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'membership_level', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'会员等级\',\n \"searchOrder\":4,\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 10,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392073080833, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'user_type', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392102440961, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'order_record', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392127606786, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'consumption_amount', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392152772610, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'available_points', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392177938433, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'user_label', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'用户标签\',\n \"searchOrder\":3,\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 10,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845019392207298561, '1', 1, '2024-10-12 16:31:17', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'registration_channel', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'注册渠道\',\n \"searchOrder\":2,\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 10,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1845023447050690562, '1', 1, '2024-10-12 16:47:23', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'zcsj', 'Y', 'Y', 'RANGE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'注册时间\',\n \"searchOrder\":1,\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 10,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823105, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823106, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'pid', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823107, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'name', 'N', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'部门名称\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823108, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'sjbm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823109, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'zt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823110, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'cysl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823111, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'zgry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823112, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'bmms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823113, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823114, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823115, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823116, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823117, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823118, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823119, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846009558251823120, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:38:43', 0, 1846009550756601857, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344257, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344258, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344259, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'phone', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344260, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344261, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'default_address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344262, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344263, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344264, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344265, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344266, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344267, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074004437344268, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846074929570783233, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:34:47', 0, 1846073998846337026, 'yzbm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526081, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526082, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'zwmc', 'N', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'职务名称\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth:1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526083, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'zwms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526084, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'zt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526085, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'cysl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526086, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'bmms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526087, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526088, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526089, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526090, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526091, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526092, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526093, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846083510852526094, NULL, NULL, NULL, NULL, NULL, '2024-11-12 15:13:20', 0, 1846083503466356737, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381889, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381890, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'sj', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381891, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'points_change', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381892, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:46:05', 1, 1846095079682482177, 'customer_status', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'客户状态\',\n \"searchSpan\":4,\n \"searchLabelWidth\":20,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381893, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:46:05', 1, 1846095079682482177, 'industry_type', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'行业类型\',\n \"searchLabelWidth\":20,\n}`,\n custom_str: `return {\nsearchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381894, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:46:05', 1, 1846095079682482177, 'customer_source', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381895, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:46:05', 1, 1846095079682482177, 'add_people', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381896, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:46:05', 1, 1846095079682482177, 'customer_star', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'客户星级\',\n \"searchLabelWidth\":20,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381897, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381898, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381899, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381900, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381901, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381902, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'update_time', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846095086825381903, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846096155055890434, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:03:59', 0, 1846095079682482177, 'points_balance', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055809, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055810, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'ip', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055811, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055812, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055813, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055814, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055815, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055816, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055817, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'update_time', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055818, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846100523608055819, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:12:54', 0, 1846100518918823938, 'dlfs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975682, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975683, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'czz', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975684, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'cz_type', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975685, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975686, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975687, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975688, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975689, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975690, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'update_time', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975691, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846103242011975692, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:26:06', 0, 1846103236139950082, 'czxq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931074, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931075, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'xm', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchLabelWidth\":0,\n \"searchPlaceholder\":\'姓名/账号/手机\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931076, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'bm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931077, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931078, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931079, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931080, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931081, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931082, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846121745804931083, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846124101879705602, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'zw', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":0,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'选择职务\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846124101879705603, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'zhzt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":0,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'状态选项\',\n \"searchType\":\'select\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846126579203420161, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'phone', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846126579203420162, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'zxzt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846126579203420163, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:58:14', 0, 1846121741006647298, 'zhdl', 'Y', 'Y', 'RANGE', 'return {\n option_str:`return {\n \"searchLabelWidth\":0,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'最后登录\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763714, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763715, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'xm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763716, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'bm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763717, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'tjsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763718, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763719, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763720, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763721, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763722, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763723, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846429444811763724, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:23:59', 0, 1846429439782793217, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497922, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497923, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'ip', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497924, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497925, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497926, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497927, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497928, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497929, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497930, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'update_time', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497931, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846734670588497932, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'zdlx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846739006731255809, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'bb', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846739006731255810, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'czxt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846739006731255811, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'sbmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846739006731255812, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:49:22', 0, 1846734665412726786, 'macdz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079938, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079939, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:57:52', 1, 1846747363458351106, 'ip', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079940, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:57:52', 1, 1846747363458351106, 'address', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079941, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079942, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079943, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079944, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079945, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079946, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'update_time', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079947, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079948, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'czlx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079949, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'czxq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079950, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:57:52', 1, 1846747363458351106, 'czxt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079951, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:57:52', 1, 1846747363458351106, 'sbmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846747370727079952, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:57:52', 1, 1846747363458351106, 'macdz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756610, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756611, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'turnover', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756612, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'order_quantity', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756613, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'page_views', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756614, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'visitors', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756615, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'registered_users', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756616, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'members', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756617, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'day', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756618, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756619, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756620, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756621, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756622, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756623, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1846853880514756624, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691713, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691714, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'jbxx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691715, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691716, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'content', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691717, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'zt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691718, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'xmjd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691719, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'zhgx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691720, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'xmcy', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691721, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'xmzs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691722, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'jxz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691723, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'ywc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691724, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'yyq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691725, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691726, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691727, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691728, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691729, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691730, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847094480328691731, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975425, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975426, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975427, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975428, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'jzsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975429, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'urgent_relief', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975430, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'xmmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975431, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'lys', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975432, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975433, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975434, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'kssj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975435, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'rwtx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975436, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'rwms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975437, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'cyry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975438, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975439, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975440, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975441, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975442, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975443, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847103685055975444, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847104935881314306, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:21:58', 1, 1847103675560071169, 'cs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856898, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856899, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'table_type', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856900, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'value', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856901, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'type_index', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856902, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856903, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856904, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856905, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856906, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856907, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847167250139856908, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:29:35', 0, 1847167244620152834, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847169698695946241, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'color', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847171062352257025, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:04:06', 0, 1847103675560071169, 'txfs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847183465654652929, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847197499208634370, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'kssj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847197499208634371, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'jssj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847198274290847745, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'fzr', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847198274290847746, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'cyry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847198274290847747, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'rwbj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847198274290847748, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'kxfw', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993090, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993091, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'bh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993092, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993093, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993094, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993095, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993096, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993097, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993098, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993099, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993100, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993101, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993102, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847456819339993103, NULL, NULL, NULL, NULL, NULL, '2024-10-19 10:01:50', 0, 1847456813371498498, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919554, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919555, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919556, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'status', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919557, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'jzsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919558, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'urgent_relief', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919559, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'xmmc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919560, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'lys', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919561, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919562, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919563, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'kssj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919564, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'rwtx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919565, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'rwms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919566, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'cyry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919567, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919568, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919569, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919570, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919571, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919572, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919573, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919574, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'color', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847472449760919575, NULL, NULL, NULL, NULL, NULL, '2024-10-26 17:09:56', 0, 1847472439438737409, 'txfs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847478147429302273, NULL, NULL, NULL, NULL, NULL, '2024-10-25 16:53:40', 1, 1847472439438737409, 'zw', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539778, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539779, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'ranking', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539780, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539781, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'visit', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539782, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'quantity', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539783, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'cancel', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539784, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'pj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539785, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539786, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539787, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539788, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539789, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539790, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539791, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1847537163422539792, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848178492691378177, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848178492691378178, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848178492691378179, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848263866432290818, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:41:15', 1, 1846853872583327745, 'member_visitors', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848268295323713537, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792961, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792962, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'cyxm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792963, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'jrsj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792964, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'bm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792965, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'js', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792966, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792967, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792968, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792969, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792970, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792971, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848301758922792972, NULL, NULL, NULL, NULL, NULL, '2024-11-15 17:36:29', 0, 1848301752228683777, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662850, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662851, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'crad_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662852, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'crad_title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662853, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'card_describe', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662854, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662855, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662856, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662857, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662858, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662859, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848631607155662860, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:52:24', 0, 1848631600935510017, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658369, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658370, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658371, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658372, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658373, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658374, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658375, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658376, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658377, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'zt_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658378, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'zt_title', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658379, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:31:45', 0, 1848637143087489025, 'content', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658380, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'dz_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658381, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'sc_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848637150473658382, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:21:12', 1, 1848637143087489025, 'pl_num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673026, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673027, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673028, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673029, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673030, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673031, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673032, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673033, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673034, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673035, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'title', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848649276684673036, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'content', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1848665317817098241, NULL, NULL, NULL, NULL, NULL, '2024-10-23 14:31:40', 0, 1848649270435160066, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585730, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585731, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'name', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585732, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'age', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585733, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585734, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585735, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585736, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585737, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585738, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1849365536960585739, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973378, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973379, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrfks', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973380, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrhyfws', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973381, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'jrhyffs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973382, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'xzhys', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973383, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973384, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973385, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973386, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973387, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973388, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850061362015973389, NULL, NULL, NULL, NULL, NULL, '2024-10-26 14:27:56', 0, 1850061360061427714, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090433, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090434, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090435, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090436, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090437, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090438, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090439, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090440, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850092584419090442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277377, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277378, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'xse', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277379, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'rq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277380, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277381, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277382, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277383, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277384, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277385, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850094922370277386, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:40:36', 0, 1850094920386371586, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850102551545028610, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041025, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041026, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'sm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041027, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'nz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041028, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'my', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041029, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'xb', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041030, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'rq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041031, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'je', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041032, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041033, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041034, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041035, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041036, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041037, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850109348423041038, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:40:40', 0, 1850109346514632706, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922689, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922690, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'kssj', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922691, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922692, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922693, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922694, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922695, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922696, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850723647351922697, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468354, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468355, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468356, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468357, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468358, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468359, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468360, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468361, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850724501274468362, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850726015980249090, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'rl_id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850780441932623873, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'sub_more_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850780490099040258, NULL, NULL, NULL, NULL, NULL, '2024-10-29 17:22:17', 0, 1850723645460291586, 'jssj', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1850819897255399426, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'aaa', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678914, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'bbb', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678915, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'ccc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678916, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'ddd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678917, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'eee', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678918, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'fff', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678919, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'ggg', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851092533776678920, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:42:28', 1, 1849365535287058433, 'hhh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851137193609973761, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:06:19', 1, 1850724499567386625, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851137193609973762, NULL, NULL, NULL, NULL, NULL, '2024-10-29 14:12:58', 0, 1850724499567386625, 'ms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607041, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607042, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607043, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'name', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607044, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'tdjs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607045, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'cytx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607046, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607047, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607048, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607049, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607050, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607051, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851205233051607052, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034498, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034499, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034500, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034501, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034502, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034503, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034504, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034505, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034507, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034508, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034509, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034510, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034511, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034512, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851509265725034513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851511408964046849, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'cy', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851511408964046850, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'xm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851511408964046851, NULL, NULL, NULL, NULL, NULL, '2024-11-02 15:53:05', 0, 1851205230887346177, 'rw', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327298, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327299, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327300, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327301, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327302, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327303, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327304, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327305, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327306, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'zt_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327307, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'zt_title', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851796251350327308, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'content', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851802085153214466, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'time_test', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851882904461983746, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1851921954715680770, NULL, NULL, NULL, NULL, NULL, '2024-11-01 11:19:59', 1, 1851796249232203778, 'img_copy', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852169866951483393, NULL, NULL, NULL, NULL, NULL, '2024-11-20 16:19:22', 0, 1851796249232203778, 'zt_box', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419266, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419267, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'cyxm_name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419268, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'cyxm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419269, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'rwzs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419270, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'ywc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419271, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'dwc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419272, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'yyq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419273, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'yql', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419274, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'wcl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419275, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419276, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419277, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419278, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419279, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419280, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852234475041419281, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353282, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353283, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353284, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353285, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353286, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353287, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353288, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353289, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353290, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'zt_img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353291, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'name', 'Y', 'N', 'LIKE', 'return {\n option_str:`return {\n \"searchLabelWidth\":20,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchSpan\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353292, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:53:08', 1, 1852241979997646849, 'content', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353293, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'time_test', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353294, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852241982128353295, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:08:53', 0, 1852241979997646849, 'zt_box', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893698, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893699, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893700, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893701, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893702, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893703, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893704, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893705, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893706, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893707, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893708, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'sj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852557614740893709, NULL, NULL, NULL, NULL, NULL, '2024-11-02 11:45:47', 1, 1852557612677296129, 'sjlx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918338, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918339, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'xm', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchOrder\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918340, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'tx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918341, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'zw', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918342, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'gs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918343, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'sj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918344, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'yx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918345, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'dh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918346, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'dz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918347, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'color', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918348, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'lx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchType\":\'select\',\n \"searchSpan\":4,\n \"searchOrder\":2,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', '1'); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918349, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918350, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918351, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918352, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918353, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918354, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1852624840667918355, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857345, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857346, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'bgbt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchOrder\":5,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857347, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:19:26', 1, 1853269839533273090, 'tjry', 'Y', 'Y', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857348, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'bglx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'报告类型\',\n \"searchOrder\":3,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857349, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:19:26', 1, 1853269839533273090, 'ssbm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857350, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'pyzt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchOrder\":2,\n \"searchPlaceholder\":\'批阅状态\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857351, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:19:26', 1, 1853269839533273090, 'tjsj', 'Y', 'Y', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857352, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857353, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'create_user', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchOrder\":1,\n \"searchPlaceholder\":\'选择人员\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857354, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'create_time', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchOrder\":4,\n \"searchPlaceholder\":\'选择日期范围\',\n \"searchRange\":true,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857355, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857356, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857357, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853269841164857358, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853285292850769922, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'bgrq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853285292850769923, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'gzzj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853285292850769924, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'gzjh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853285292850769925, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853285292850769926, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'pyry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853327906971021313, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:54:31', 0, 1853269839533273090, 'csry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1853337382746812418, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:19:12', 1, 1853269839533273090, 'menu_box', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735873, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735874, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735875, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735876, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735877, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735878, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735879, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'ggbt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键词\',\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735880, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'ggzt', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'公告状态\',\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735881, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'gglx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'公告类型\',\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735882, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'jsry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735883, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'create_time', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'发布时间\',\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854048265638735884, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'create_user', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'发布人员\',\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816642, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816643, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czbh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchOrder\":5,\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1,\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816644, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czsj', 'Y', 'Y', 'RANGE', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'操作时间\',\n \"searchOrder\":2,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816645, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czry', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'操作人员\',\n \"searchOrder\":1,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816646, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'ssmk', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'所属模块\',\n \"searchOrder\":4,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816647, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czdx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816648, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czlx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'操作类型\',\n \"searchOrder\":3,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816649, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816650, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816651, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816652, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816653, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816654, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854067252904816655, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264001, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264002, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'spbh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchOrder\":5,\n \"searchLabelWidth\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264003, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'spsj', 'Y', 'Y', 'RANGE', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'审批时间\',\n \"searchOrder\":2,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264004, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'spry', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'审批人员\',\n \"searchOrder\":1,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264005, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'splx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'审批类型\',\n \"searchOrder\":4,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264006, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'ywbh', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264007, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'tjsj', 'N', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n \n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264008, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264009, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264010, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264011, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264012, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264013, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854331401547264014, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854332940676476929, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'spjg', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'审批结果\',\n \"searchOrder\":3,\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846657, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846658, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":20,\n \"searchSpan\":3,\n \"searchPlaceholder\":\'输入搜索关键字\',\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846659, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'dlsj', 'Y', 'Y', 'RANGE', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'登录时间\',\n \"searchOrder\":2,\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846660, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":20,\n \"searchSpan\":3,\n \"searchPlaceholder\":\'操作人员\',\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846661, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'zdlx', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'终端类型\',\n \"searchOrder\":3,\n}`,\n custom_str: `return {\n searchLabel:\'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846662, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'llq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846663, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'czxt', 'N', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n \n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846664, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846665, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846666, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846667, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846668, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846669, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846670, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854341003835846671, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'sbmc', 'Y', 'N', 'EQ', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854344158988447745, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'ss', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'输入搜索关键字\',\n \"searchOrder\":4,\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854344158988447746, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'macdz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854344158988447747, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'dlIP', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854344158988447748, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'szdq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854344158988447749, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'dlry', 'Y', 'Y', 'LIKE', 'return {\n option_str:`return {\n \"searchLabelWidth\":1,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'登录人员\',\n \"searchOrder\":1,\n}`,\n custom_str: `return {\n searchLabel: \'\'\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854350565821362178, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'ggxq', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854350565821362179, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:43:54', 1, 1854048263491252226, 'fbsj', 'Y', 'Y', 'EQ', 'return {\n option_str:`return {\n \"searchRange\":true,\n \"searchSpan\":4,\n \"searchPlaceholder\":\'发布时间\',\n}`,\n custom_str: `return {\n searchLabel: \'\',\n searchLabelWidth: 1\n}`,\n }', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854350565821362180, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:43:54', 1, 1854048263491252226, 'fbry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854353315925831681, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854353315925831682, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'plsz', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854353315925831683, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'txfs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854365906425327617, NULL, NULL, NULL, NULL, NULL, '2024-11-07 11:34:44', 1, 1854048263491252226, 'fbry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294785, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294786, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294787, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294788, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294789, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294790, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294791, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294792, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294793, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'bktx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294794, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'htbk', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294795, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'bkjs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294796, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'cytx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294797, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'htsl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854408558898294798, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:31:54', 0, 1854408557228961794, 'hfsl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854422861450711042, NULL, NULL, NULL, NULL, NULL, '2024-11-20 15:14:26', 0, 1854048263491252226, 'fbry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454977, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454978, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'img', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454979, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'title', 'Y', 'N', 'LIKE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454980, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'text', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454981, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454982, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454983, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454984, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454985, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454986, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854438274275454987, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854440296546545665, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'cp_title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854440296546545666, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'cp_text', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854440296546545667, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'content', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854451638405935105, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'num', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427969, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427970, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427971, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427972, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427973, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427974, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427975, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427976, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427977, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427978, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854695848153427979, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675138, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675139, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675140, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675141, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675142, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675143, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675144, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675145, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675146, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'cytx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675147, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'htbt', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675148, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'lll', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854716970739675149, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'hfl', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854727998198231041, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'llcs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854766852041060354, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'sd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854766852041060355, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'zd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854766852041060356, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:06:13', 1, 1854716968965484545, 'rm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854777972445392897, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'rm', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1854777972445392898, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'zdrm_tit', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900353, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900354, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'kssj', 'Y', 'Y', 'RANGE', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900355, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900356, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900357, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900358, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900359, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900360, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900361, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'is_deleted', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900362, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856505239596900363, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'jssj', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499586, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'title', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499587, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'sjlx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499588, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'cfrc', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499589, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'cyry', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499590, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'kjcd', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499591, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'rcbj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499592, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'rctx', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499593, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'txfs', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499594, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'rcms', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1856507609202499595, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'fj', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1859429351285784577, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858628, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', 'N', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858629, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858630, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858631, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858632, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858633, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', 'Y', 'N', 'EQ', '', ''); +INSERT INTO `lowcode_dbform_field_query` VALUES (1872882476568858634, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', 'Y', 'N', 'EQ', '', ''); + +-- ---------------------------- +-- Table structure for lowcode_dbform_field_web +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_field_web`; +CREATE TABLE `lowcode_dbform_field_web` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `is_db_select` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否查询;N=不查询 Y=查询', + `is_show_list` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列表是否显示;N=不显示 Y=显示', + `is_show_form` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单是否显示;N=不显示 Y=显示', + `is_show_column` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否可控;N=不显示 Y=显示', + `is_show_sort` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否排序;N=不显示 Y=显示', + `is_required` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否必填;N=否 Y=是', + `control_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '控件类型', + `controls_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '控件配置', + `cell_width` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列宽', + `cell_width_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列宽类型', + `verify_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '校验配置', + `format_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '页面格式化显示配置', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_field_code`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-页面字段表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_field_web +-- ---------------------------- +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359361, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359362, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359363, NULL, NULL, NULL, NULL, NULL, '2024-11-21 09:12:58', 0, 1831577841380671489, 'age', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359364, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359365, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'interest', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n \"maxlength\":200,\n \"showWordLimit\":true,\n \"minRows\":3,\n \"maxRows\":5,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359366, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359367, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359368, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359369, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359370, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359371, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831577852361359372, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:16:16', 0, 1831577841380671489, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622338, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622339, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'pid', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622340, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'type_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622341, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'type_code', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622342, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'type_state', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622343, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'remark', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622344, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622345, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622346, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622347, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622348, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622349, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831582341604622350, NULL, NULL, NULL, NULL, NULL, '2024-09-05 15:36:46', 0, 1831582331282440193, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886211, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886212, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886213, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'radio', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n dicData: [\n { label: \'男\', value: \'1\' },\n { label: \'女\', value: \'2\' },\n ]\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886214, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"电子邮箱\",\"type\":\"email\",\"msg\":\"请输入正确格式的邮箱地址\",\"prop\":\"option_1776017\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886215, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886216, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886217, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886219, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886220, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831606733025886221, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708161, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708162, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708163, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'course_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708164, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'credits', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708165, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'grade', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708166, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708167, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708168, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708169, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708170, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708171, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831607489103708172, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:07', 0, 1831607480064983042, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176066, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176067, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176068, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'emergency_contact', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176069, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'contact_phone', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"手机号码\",\"type\":\"phone\",\"msg\":\"请输入正确格式的手机号码\",\"prop\":\"option_8177954\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176070, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176071, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176072, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176073, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176074, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176075, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176076, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831608174457176077, NULL, NULL, NULL, NULL, NULL, '2024-09-06 09:54:21', 0, 1831608167414939649, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435202, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435203, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'first_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435204, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435205, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'sex', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'radio', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n dicData: [\n { label: \'男\', value: \'1\' },\n { label: \'女\', value: \'2\' },\n ]\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435206, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'email', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"电子邮箱\",\"type\":\"email\",\"msg\":\"请输入正确格式的邮箱地址\",\"prop\":\"option_1776017\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435207, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435208, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435209, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435210, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435211, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435212, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831879674288435213, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:25:59', 0, 1831879666549944322, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284301361153, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749762, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749763, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'course_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749764, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'credits', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749765, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'grade', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749766, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749767, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749768, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749769, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749770, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749771, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881284309749772, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:36', 0, 1831881275090669569, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423362, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423363, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423364, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'emergency_contact', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423365, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'contact_phone', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"手机号码\",\"type\":\"phone\",\"msg\":\"请输入正确格式的手机号码\",\"prop\":\"option_8177954\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423366, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423367, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423368, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423369, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423370, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423371, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423372, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831881406049423373, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:27:51', 0, 1831881397711147010, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531649, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531650, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'first_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531651, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531652, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'sex', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'radio', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n dicData: [\n { label: \'男\', value: \'1\' },\n { label: \'女\', value: \'2\' },\n ]\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531653, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'email', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"电子邮箱\",\"type\":\"email\",\"msg\":\"请输入正确格式的邮箱地址\",\"prop\":\"option_1776017\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531654, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531655, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531656, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531657, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531658, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531659, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883137445531660, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:38:00', 0, 1831883128176119810, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659201, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659202, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659203, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'course_name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659204, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'credits', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659205, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'grade', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659206, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659207, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659208, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659209, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659210, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659211, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883209956659212, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:34:17', 0, 1831883200666275842, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056258, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056259, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'main_id', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056260, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'emergency_contact', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056261, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'contact_phone', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"手机号码\",\"type\":\"phone\",\"msg\":\"请输入正确格式的手机号码\",\"prop\":\"option_8177954\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056262, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056263, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056264, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056265, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056266, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056267, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056268, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831883398025056269, NULL, NULL, NULL, NULL, NULL, '2024-09-06 10:37:48', 0, 1831883388675952641, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611906, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611907, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_input', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611908, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_password', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'password\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611909, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_number', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611910, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_textarea', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611911, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_select', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611912, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_tree', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'tree', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611913, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_cascader', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'cascader', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611914, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_table', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'dicTableSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611915, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_user', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611916, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_dept', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611917, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_region', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'regionSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611918, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_radio', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'radio', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611919, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_checkbox', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611920, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:12:13', 0, 1831939951830798338, 'text_date', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611921, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_time', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611922, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_datetime', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611923, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_file', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611924, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:20:07', 0, 1831939951830798338, 'text_image', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"showNum\":1,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611925, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_code', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'monacoEditor', 'return {\n option_str:`return {\n \"params.language\":\'javascript\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611926, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_custom', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'customControl', 'return {\n option_str:`return {\n \"isGlobal\":false,\n \"controlName\":\'IconSelectInput\',\n \"controlUrl\":\'components/LowDesign/src/shareControl/IconSelectInput.vue\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611927, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'text_ueditor', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'ueditor', 'return {\n option_str:`return {\n}`,\n custom_str: ``,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611928, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611929, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611930, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611931, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611932, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611933, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1831939970671611934, NULL, NULL, NULL, NULL, NULL, '2024-09-09 11:37:18', 0, 1831939951830798338, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801473, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801474, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'sno', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801475, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801476, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'sex', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801477, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'birthday', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801478, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801479, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801480, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801481, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801482, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801483, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'update_time', '', '', '', '', '', '', '', '', '', '', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833031112941801484, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:37', 0, 1833031105253642242, 'is_deleted', '', '', '', '', '', '', '', '', '', '', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948802, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948803, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948804, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'age', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'number', 'return {\n option_str:`return {\n \"controlsPosition\":\'right\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948805, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948806, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'interest', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n \"maxlength\":200,\n \"showWordLimit\":true,\n \"minRows\":3,\n \"maxRows\":5,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948807, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948808, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948809, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948810, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948811, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948812, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833055213023948813, NULL, NULL, NULL, NULL, NULL, '2024-09-09 17:36:36', 0, 1833055212327694337, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833058207327727623, NULL, NULL, NULL, NULL, NULL, '2024-09-09 16:24:35', 1, 1833031105253642242, 'flag', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833059191898648582, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'flag', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811841, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811842, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811843, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'age', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'number', 'return {\n option_str:`return {\n \"controlsPosition\":\'right\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811844, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'birth_date', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811845, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'interest', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n \"maxlength\":200,\n \"showWordLimit\":true,\n \"minRows\":3,\n \"maxRows\":5,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811846, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811847, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811848, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811849, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811850, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811851, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833320020251811852, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:55:38', 0, 1833320018125299714, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537409, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537410, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537411, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537412, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537413, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_head_contact', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537414, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'phone_number', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"手机号码\",\"type\":\"phone\",\"msg\":\"请输入正确格式的手机号码\",\"prop\":\"option_7109224\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537415, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'client_affiliation', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537416, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537417, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537418, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537419, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537420, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537421, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:48', 0, 1833323260582391810, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833323261211537422, NULL, NULL, NULL, NULL, 1, '2024-09-13 14:48:49', 0, 1833323260582391810, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993217, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993218, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'user_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993219, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'visitor_time', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993220, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'goods_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993221, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225753993222, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225762381826, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225762381827, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225762381828, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225762381829, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833326225762381830, NULL, NULL, NULL, NULL, NULL, '2024-09-10 10:27:01', 0, 1833326225296814081, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1833341755578286088, NULL, NULL, NULL, NULL, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'classe', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647426, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647427, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'student_id', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647428, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'course_id', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647429, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647430, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647431, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647432, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647433, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647434, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'update_user', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647435, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834065859612647436, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834066013765902340, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:08:08', 0, 1834065859105136642, 'score', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834066121812963332, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834066736341438467, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834067118990172165, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:13:46', 1, 1834065859105136642, 'score_test', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834067977939292164, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834068010644676612, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:23:24', 0, 1834065859105136642, 'score_test', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834068584838303748, NULL, NULL, NULL, NULL, NULL, '2024-09-12 11:17:08', 1, 1834065859105136642, 'aab', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834068824429531141, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516865, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516866, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516867, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516868, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516869, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516870, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516871, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'update_time', '', '', '', '', '', '', '', '', '', '', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516872, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:13', 0, 1834136609367400450, 'is_deleted', '', '', '', '', '', '', '', '', '', '', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516873, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_date', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516874, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_target_money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516875, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_accomplish_money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516876, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_accomplish_form', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516877, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_percentage_complete', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"append\":\'%\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516878, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_average_price', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516879, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_department', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834136621652516880, NULL, NULL, NULL, NULL, 1, '2024-09-13 17:30:12', 0, 1834136609367400450, 'tabs_card_personnel', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1834523633865887746, '1', 1, '2024-09-13 17:24:53', 101, 1, '2024-09-14 09:23:36', 0, 1833031105253642242, 'score_test', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298979646189569, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298979914625025, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298980170477570, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298980422135809, '1', 1, '2024-09-18 14:59:28', 101, 1, '2024-09-18 15:05:42', 0, 1836298963389067265, 'price', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298980682182657, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'hh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298980933840897, '1', 1, '2024-09-18 14:59:28', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298981189693441, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'num', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298981445545986, '1', 1, '2024-09-18 14:59:29', 101, 1, '2024-09-19 14:01:51', 0, 1836298963389067265, 'subtotal', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"sql\",\"formatJson\":{\"sql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"SELECT SUM(price * num) AS subtotal FROM example_order_commodity WHERE is_deleted = 0 and id =tbl.id\",\"group\":\"SELECT FROM \"},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298981705592833, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298981953056770, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298982217297922, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298982468956162, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298982720614402, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298982976466945, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836298983236513794, '1', 1, '2024-09-18 14:59:29', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318532883263489, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 0, 1836318516001189890, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318533155893250, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'time', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318533420134402, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'manipulator', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318533688569857, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'order_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318533952811010, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'payment_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318534217052162, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'delivery_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318534477099010, '1', 1, '2024-09-18 16:17:10', 101, 1, '2024-09-18 16:33:00', 0, 1836318516001189890, 'view', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318534745534465, '1', 1, '2024-09-18 16:17:10', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318535005581313, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318535274016769, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318535542452225, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318535802499074, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318536066740225, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318536335175681, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1836318536595222529, '1', 1, '2024-09-18 16:17:11', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141830709403650, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141830961061889, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141831208525826, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141831451795457, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141831699259394, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141831938334721, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141832181604353, '1', 1, '2024-09-23 17:02:18', 101, NULL, NULL, 0, 1838141821641318402, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838141832429068290, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392395754397697, '1', 1, '2024-09-24 09:37:57', 101, NULL, NULL, 0, 1838392378859741185, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392396006055938, '1', 1, '2024-09-24 09:37:58', 101, 1, '2024-09-24 15:55:00', 0, 1838392378859741185, 'bh', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392396249325569, '1', 1, '2024-09-24 09:37:58', 101, 1, '2024-09-27 09:59:48', 0, 1838392378859741185, 'company_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392396505178113, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392396756836354, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392397004300289, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392397251764225, '1', 1, '2024-09-24 09:37:58', 101, 1, '2024-09-24 15:55:00', 0, 1838392378859741185, 'add_people', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392397499228162, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'customer_star', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392397746692098, '1', 1, '2024-09-24 09:37:58', 101, 1, '2024-09-24 09:42:39', 1, 1838392378859741185, 'update_date', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392397998350337, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392398241619969, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392398493278210, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392398749130753, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392398992400386, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392399248252930, '1', 1, '2024-09-24 09:37:58', 101, 1, '2024-09-27 09:57:53', 0, 1838392378859741185, 'update_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838392399495716866, '1', 1, '2024-09-24 09:37:58', 101, NULL, NULL, 0, 1838392378859741185, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494747979214850, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494748180541441, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:23:57', 0, 1838494733815050242, 'sr', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', '', '100', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494748381868034, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:18:13', 0, 1838494733815050242, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', '', '100', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494748579000322, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:23:57', 0, 1838494733815050242, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '85', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494748771938305, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:22:34', 0, 1838494733815050242, 'sg', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494748960681985, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:22:34', 0, 1838494733815050242, 'tz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494749157814274, '1', 1, '2024-09-24 16:24:40', 101, 1, '2024-09-27 10:23:57', 0, 1838494733815050242, 'sj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '120', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494749354946561, '1', 1, '2024-09-24 16:24:40', 101, NULL, NULL, 0, 1838494733815050242, 'dz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494749547884546, '1', 1, '2024-09-24 16:24:41', 101, 1, '2024-09-27 10:19:26', 0, 1838494733815050242, 'xs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', '', '70', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494749745016833, '1', 1, '2024-09-24 16:24:41', 101, 1, '2024-09-27 10:20:03', 0, 1838494733815050242, 'zt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494749942149122, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494750143475714, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494750336413697, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494750537740290, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494750726483969, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494750923616257, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838494751108165633, '1', 1, '2024-09-24 16:24:41', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505736632078338, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505736904708097, '1', 1, '2024-09-24 17:08:20', 101, 1, '2024-09-24 17:42:12', 0, 1838505719016001538, 'bh', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505737164754945, '1', 1, '2024-09-24 17:08:20', 101, 1, '2024-09-27 13:49:38', 0, 1838505719016001538, 'company_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505737420607490, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505737676460034, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505737940701186, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505738196553730, '1', 1, '2024-09-24 17:08:20', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505738452406273, '1', 1, '2024-09-24 17:08:20', 101, 1, '2024-09-24 17:42:12', 1, 1838505719016001538, 'add_people', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505738712453121, '1', 1, '2024-09-24 17:08:21', 101, NULL, NULL, 0, 1838505719016001538, 'attributable_person', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505738972499970, '1', 1, '2024-09-24 17:08:21', 101, NULL, NULL, 0, 1838505719016001538, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505739232546817, '1', 1, '2024-09-24 17:08:21', 101, 1, '2024-09-27 13:45:36', 0, 1838505719016001538, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505739484205058, '1', 1, '2024-09-24 17:08:21', 101, 1, '2024-09-27 13:51:17', 0, 1838505719016001538, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505739744251906, '1', 1, '2024-09-24 17:08:21', 101, NULL, NULL, 0, 1838505719016001538, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505740008493058, '1', 1, '2024-09-24 17:08:21', 101, NULL, NULL, 0, 1838505719016001538, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505740264345601, '1', 1, '2024-09-24 17:08:21', 101, 1, '2024-09-27 13:51:17', 0, 1838505719016001538, 'update_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838505740516003841, '1', 1, '2024-09-24 17:08:21', 101, NULL, NULL, 0, 1838505719016001538, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838508238807044097, '1', 1, '2024-09-24 17:18:17', 101, 1, '2024-09-24 17:42:12', 1, 1838505719016001538, 'add_date', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838508239041925121, '1', 1, '2024-09-24 17:18:17', 101, 1, '2024-09-24 17:42:12', 1, 1838505719016001538, 'update_date', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748865067024386, '1', 1, '2024-09-25 09:14:26', 101, NULL, NULL, 0, 1838748849153835009, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748865314488322, '1', 1, '2024-09-25 09:14:26', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'bh', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '120', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748865561952258, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748865821999106, '1', 1, '2024-09-25 09:14:27', 101, 1, '2024-09-25 09:27:11', 1, 1838748849153835009, 'khzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748866077851650, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748866325315586, '1', 1, '2024-09-25 09:14:27', 101, 1, '2024-09-27 15:17:09', 0, 1838748849153835009, 'khly', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748866572779521, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748866816049154, '1', 1, '2024-09-25 09:14:27', 101, 1, '2024-09-25 09:31:44', 1, 1838748849153835009, 'gxsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748867088678913, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748867340337154, '1', 1, '2024-09-25 09:14:27', 101, 1, '2024-09-27 14:14:47', 0, 1838748849153835009, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748867591995394, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748867835265025, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748868082728962, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748868334387201, '1', 1, '2024-09-25 09:14:27', 101, NULL, '2024-10-23 14:13:43', 0, 1838748849153835009, 'update_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838748868581851137, '1', 1, '2024-09-25 09:14:27', 101, NULL, NULL, 0, 1838748849153835009, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838750711290593281, '1', 1, '2024-09-25 09:21:47', 101, 1, '2024-09-27 15:17:09', 0, 1838748849153835009, 'djbt', 'N', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838752957151641602, '1', 1, '2024-09-25 09:30:42', 101, 1, '2024-09-27 15:17:09', 0, 1838748849153835009, 'khzt', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838752957399105538, '1', 1, '2024-09-25 09:30:42', 101, 1, '2024-09-27 15:17:10', 0, 1838748849153835009, 'hylx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754189094223873, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754189320716289, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'pid', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754189543014402, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754189756923906, '1', 1, '2024-09-25 09:35:36', 101, 1, '2024-09-25 09:46:02', 0, 1838754174162501633, 'classification_number', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754189975027714, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754190193131522, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754190423818242, '1', 1, '2024-09-25 09:35:36', 101, 1, '2024-09-25 09:46:02', 1, 1838754174162501633, 'add_people', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754190641922050, '1', 1, '2024-09-25 09:35:36', 101, 1, '2024-09-25 09:46:02', 1, 1838754174162501633, 'update_date', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754190864220161, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754191090712578, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754191313010689, '1', 1, '2024-09-25 09:35:36', 101, 1, '2024-09-27 14:55:00', 0, 1838754174162501633, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754191526920193, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754191740829698, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754191963127809, '1', 1, '2024-09-25 09:35:36', 101, NULL, NULL, 0, 1838754174162501633, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754192193814529, '1', 1, '2024-09-25 09:35:36', 101, 1, '2024-09-27 14:52:46', 0, 1838754174162501633, 'update_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838754192411918337, '1', 1, '2024-09-25 09:35:37', 101, NULL, NULL, 0, 1838754174162501633, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824826466783234, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824826735218690, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'bh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824826995265537, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824827255312386, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'khly', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824827519553537, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'tjry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824827779600386, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'gxsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824828039647234, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824828303888385, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824828559740930, '1', 1, '2024-09-25 14:16:17', 101, NULL, NULL, 0, 1838824808796180481, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824828811399170, '1', 1, '2024-09-25 14:16:18', 101, NULL, NULL, 0, 1838824808796180481, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824829079834625, '1', 1, '2024-09-25 14:16:18', 101, NULL, NULL, 0, 1838824808796180481, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824829335687170, '1', 1, '2024-09-25 14:16:18', 101, NULL, NULL, 0, 1838824808796180481, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824829595734017, '1', 1, '2024-09-25 14:16:18', 101, NULL, NULL, 0, 1838824808796180481, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824829855780865, '1', 1, '2024-09-25 14:16:18', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824830111633410, '1', 1, '2024-09-25 14:16:18', 101, 1, '2024-09-25 14:25:37', 0, 1838824808796180481, 'khzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838824830375874561, '1', 1, '2024-09-25 14:16:18', 101, 1, '2024-09-25 14:25:37', 0, 1838824808796180481, 'hylx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826574472335362, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826574728187906, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'zt_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826574996623362, '1', 1, '2024-09-25 14:23:14', 101, NULL, NULL, 0, 1838141821641318402, 'zt_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826575252475906, '1', 1, '2024-09-25 14:23:14', 101, 1, '2024-09-25 15:02:37', 0, 1838141821641318402, 'dz_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826575533494273, '1', 1, '2024-09-25 14:23:14', 101, 1, '2024-09-25 15:02:37', 0, 1838141821641318402, 'sc_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838826575797735425, '1', 1, '2024-09-25 14:23:14', 101, 1, '2024-09-25 15:02:37', 0, 1838141821641318402, 'pl_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855946851868673, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855947124498434, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855947388739586, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855947640397825, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855947904638977, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855948160491522, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855948416344065, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855948676390914, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855948936437762, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855949192290305, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1838855949443948546, '1', 1, '2024-09-25 16:19:57', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1839512446125600770, '1', 1, '2024-09-27 11:48:38', 101, 1, '2024-09-27 11:50:24', 0, 1838494733815050242, 'xb', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268808468045825, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268808728092673, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268808979750914, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268809235603457, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'approval_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268809491456001, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268809738919937, '1', 1, '2024-09-29 13:54:09', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268809994772481, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268810246430721, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268810493894657, '1', 1, '2024-09-29 13:54:10', 101, 1, '2024-09-29 14:17:03', 0, 1840268794366795777, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268810749747201, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268811001405441, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268811253063681, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840268811504721921, '1', 1, '2024-09-29 13:54:10', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577527697408001, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577527923900417, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577528150392834, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577528368496641, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577528586600449, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577528813092865, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577529035390977, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577529257689090, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577529479987201, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577529698091010, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577529916194818, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840577530138492930, '1', 1, '2024-09-30 10:20:54', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642769752244225, '1', 1, '2024-09-30 14:40:08', 101, NULL, NULL, 0, 1840642756645044226, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642770033262594, '1', 1, '2024-09-30 14:40:09', 101, 1, '2024-09-30 14:48:23', 0, 1840642756645044226, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '400', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642770301698049, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642770570133505, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642770838568962, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642771107004418, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642771379634178, '1', 1, '2024-09-30 14:40:09', 101, 1, '2024-09-30 17:44:15', 0, 1840642756645044226, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642771652263938, '1', 1, '2024-09-30 14:40:09', 101, 1, '2024-09-30 14:48:23', 0, 1840642756645044226, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642771920699394, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642772189134849, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840642772457570306, '1', 1, '2024-09-30 14:40:09', 101, NULL, NULL, 0, 1840642756645044226, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646347694882817, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646347942346754, '1', 1, '2024-09-30 14:54:22', 101, NULL, '2024-10-23 11:58:13', 0, 1840646327436394498, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '150', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646348177227777, '1', 1, '2024-09-30 14:54:22', 101, NULL, '2024-10-23 11:58:13', 0, 1840646327436394498, 'birthday', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', '', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646348420497410, '1', 1, '2024-09-30 14:54:22', 101, NULL, '2024-10-23 11:58:13', 0, 1840646327436394498, 'sex', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '130', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646348667961345, '1', 1, '2024-09-30 14:54:22', 101, NULL, '2024-10-23 11:58:13', 0, 1840646327436394498, 'stature', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '130', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646348907036673, '1', 1, '2024-09-30 14:54:22', 101, NULL, '2024-10-23 11:58:13', 0, 1840646327436394498, 'weight', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '130', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646349154500610, '1', 1, '2024-09-30 14:54:22', 101, 1, '2024-09-30 15:10:05', 0, 1840646327436394498, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646349397770241, '1', 1, '2024-09-30 14:54:22', 101, 1, '2024-09-30 15:10:05', 0, 1840646327436394498, 'contact_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '[{\"label\":\"手机号码\",\"type\":\"phone\",\"msg\":\"请输入正确格式的手机号码\",\"prop\":\"option_2098740\",\"display\":true}]', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646349641039874, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646349884309505, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'educational', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646350131773441, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646350375043073, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646350614118402, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646350861582337, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646351100657666, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646351335538690, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646351578808321, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646351826272257, '1', 1, '2024-09-30 14:54:22', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646352069541890, '1', 1, '2024-09-30 14:54:23', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840646352308617218, '1', 1, '2024-09-30 14:54:23', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1840670041439760385, '1', 1, '2024-09-30 16:28:31', 101, NULL, NULL, 0, 1840642756645044226, 'rich_text', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'ueditor', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476401176973314, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476401399271426, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'icon', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476401617375234, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476401827090433, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476402045194242, '1', 1, '2024-10-08 10:19:59', 101, 1, '2024-10-08 10:32:41', 0, 1843476389638443010, 'switch', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', 'return {\n option_str:`return {\n \"len\":40,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476402267492354, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476402477207553, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476402695311361, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476402913415170, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476403131518977, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476403349622786, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1843476403563532289, '1', 1, '2024-10-08 10:19:59', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962250313729, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962292256769, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962321616898, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962350977026, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-10-15 15:43:01', 0, 1844275960258019330, 'ddzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '100', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962371948546, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-10-15 15:43:01', 0, 1844275960258019330, 'zfss', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '100', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962401308673, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-10-15 15:43:01', 0, 1844275960258019330, 'ddly', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '100', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962430668801, '1', 1, '2024-10-10 15:17:09', 101, 1, '2024-10-10 15:28:10', 0, 1844275960258019330, 'yhzh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962455834626, '1', 1, '2024-10-10 15:17:09', 101, NULL, '2024-10-15 15:42:00', 0, 1844275960258019330, 'tjsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '170', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962485194754, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962510360577, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962539720705, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962564886529, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962606829570, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962640384001, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844275962665549826, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844278208996360194, '1', 1, '2024-10-10 15:26:05', 101, 1, '2024-10-10 15:28:43', 0, 1844275960258019330, 'ddlx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844582486063460354, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844582486097014786, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'gbyy', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969654104066, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969679269889, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:55:39', 0, 1844620967619866625, 'gdbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '150', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969708630017, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969729601538, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969758961666, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969788321793, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969813487617, '1', 1, '2024-10-11 14:08:05', 101, NULL, '2024-11-11 15:56:00', 0, 1844620967619866625, 'jycd', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'radio', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969842847746, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969863819265, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969893179393, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969918345218, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969951899650, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620969972871169, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620970002231298, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844620970031591425, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844624185154351105, '1', 1, '2024-10-11 14:20:52', 101, 1, '2024-10-11 14:22:59', 0, 1844620967619866625, 'ddsc', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844626318780018689, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'glkh', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844626318813573121, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gldd', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844626318838738946, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gdms', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844626318872293377, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'csry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1844626318905847809, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'scfj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518212743169, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518237908994, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518267269121, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'dx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518300823554, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518325989377, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518359543809, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518380515329, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518414069762, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518435041281, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518464401410, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518497955842, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518518927361, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845012518552481794, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391355854850, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391393603585, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391422963713, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391448129537, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391481683969, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391502655489, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391536209922, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391557181441, '1', 1, '2024-10-12 16:31:16', 101, NULL, '2024-11-13 14:27:38', 0, 1845019389086736386, 'id', 'Y', 'Y', 'N', 'N', 'N', 'N', 'input', '', '190', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391590735873, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391615901698, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'membership_level', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391645261826, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 16:47:23', 0, 1845019389086736386, 'user_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391670427650, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391695593473, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391724953601, '1', 1, '2024-10-12 16:31:16', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391750119426, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 17:52:37', 0, 1845019389086736386, 'user_label', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845019391779479553, '1', 1, '2024-10-12 16:31:16', 101, 1, '2024-10-12 17:52:37', 0, 1845019389086736386, 'registration_channel', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1845023446790643713, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257219, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257220, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:38:30', 0, 1846009550756601857, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257221, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:11:36', 0, 1846009550756601857, 'sjbm', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257222, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:34:58', 0, 1846009550756601857, 'zt', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'radio', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257223, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:34:58', 0, 1846009550756601857, 'cysl', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257224, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:38:30', 0, 1846009550756601857, 'zgry', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257225, NULL, NULL, NULL, NULL, NULL, '2024-11-12 14:24:52', 0, 1846009550756601857, 'bmms', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257226, NULL, NULL, NULL, NULL, NULL, '2024-10-15 10:34:58', 0, 1846009550756601857, 'time', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257227, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257228, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257229, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257230, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257231, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257232, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846009556901257233, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711299, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711300, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'phone', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711301, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'regionSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711302, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:36', 0, 1846073998846337026, 'default_address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', 'return {\n option_str:`return {\n \"len\":40,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711303, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711304, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711305, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711306, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711307, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711308, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074003430711309, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846074928954220546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737411, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737412, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:02:29', 0, 1846083503466356737, 'zwms', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"showWordLimit\":true,\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737413, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'radio', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737414, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737415, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"showWordLimit\":true,\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737416, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737417, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737422, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846083509518737423, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536257, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536258, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:56:42', 0, 1846095079682482177, 'sj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536259, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'points_change', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536261, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536262, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536263, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536264, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536265, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536267, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536268, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536269, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536270, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:57:29', 0, 1846095079682482177, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846095085533536271, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846096154384801794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'points_balance', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583619, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'ip', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583620, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583621, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583622, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583623, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583624, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846100522777583628, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'dlfs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176898, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176899, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'cz_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176900, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176901, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176902, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176903, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176904, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846103240980176907, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:29', 0, 1846103236139950082, 'czxq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430402, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430403, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:49:30', 0, 1846121741006647298, 'xm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '70', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430404, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:50:19', 0, 1846121741006647298, 'bm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'deptSelect', '', '100', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430405, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430406, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430407, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430408, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430409, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846121744995430411, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846124101640630273, NULL, NULL, NULL, NULL, NULL, '2024-10-16 10:06:56', 0, 1846121741006647298, 'zw', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846124101640630274, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:51:24', 0, 1846121741006647298, 'zhzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846126578578468866, NULL, NULL, NULL, NULL, NULL, '2024-10-16 10:01:46', 0, 1846121741006647298, 'phone', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '100', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846126578578468867, NULL, NULL, NULL, NULL, NULL, '2024-10-16 09:51:24', 0, 1846121741006647298, 'zxzt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846126578578468868, NULL, NULL, NULL, NULL, NULL, '2024-10-16 10:01:46', 0, 1846121741006647298, 'zhdl', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n}`,\n custom_str: `return {\n\n}`,\n }', '180', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348484, NULL, NULL, NULL, NULL, NULL, '2024-10-16 13:54:42', 0, 1846429439782793217, 'tjsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348488, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846429443939348491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'ip', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916867, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:27:17', 0, 1846734665412726786, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'regionSelect', 'return {\n option_str:`return {\n \"regionType\":\'ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916869, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916870, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:46:26', 0, 1846734665412726786, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916871, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916872, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916873, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846734669690916875, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:46:26', 0, 1846734665412726786, 'zdlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846739006135664642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846739006135664643, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846739006135664644, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846739006135664645, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:46:55', 0, 1846734665412726786, 'macdz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '150', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040002, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040003, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'regionSelect', 'return {\n option_str:`return {\n \"regionType\":\'ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '200', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040005, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:06:08', 0, 1846747363458351106, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040006, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040007, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040008, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040009, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '160', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040011, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040012, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czxq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040013, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040014, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846747369431040015, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '150', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110338, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110339, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'turnover', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110340, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110341, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110342, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110343, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'registered_users', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110344, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'members', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110345, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'day', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110346, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110347, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110348, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110349, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110350, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110351, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1846853879076110352, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511233, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511234, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'jbxx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '320', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511235, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511236, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511237, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:40', 0, 1847094468974710786, 'zt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '80', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511238, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:36:34', 0, 1847094468974710786, 'xmjd', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '300', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511239, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:33:54', 0, 1847094468974710786, 'zhgx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511240, NULL, NULL, NULL, NULL, NULL, '2024-10-18 16:58:25', 0, 1847094468974710786, 'xmcy', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"multiple\":true,\n \"limit\":5,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511241, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:49:07', 0, 1847094468974710786, 'xmzs', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511242, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:49:07', 0, 1847094468974710786, 'jxz', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511243, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:49:07', 0, 1847094468974710786, 'ywc', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511244, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:49:07', 0, 1847094468974710786, 'yyq', 'N', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511245, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511246, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511247, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511248, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511250, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847094478252511251, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727875, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:31:57', 0, 1847103675560071169, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727876, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727877, NULL, NULL, NULL, NULL, NULL, '2024-10-18 11:15:11', 0, 1847103675560071169, 'jzsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727878, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'urgent_relief', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727879, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727880, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727881, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727882, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727883, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:48:41', 0, 1847103675560071169, 'kssj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727884, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwtx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727885, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727886, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'cyry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', 'return {\n option_str:`return {\n \"multiple\":true,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727887, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727888, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727889, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847103683323727893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847104935688376321, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555587, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'table_type', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555588, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'value', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'monacoEditor', 'return {\n option_str:`return {\n \"params.language\":\'json\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555589, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'type_index', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555590, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555591, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555592, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847167249183555596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847169698536562690, NULL, NULL, NULL, NULL, NULL, '2024-10-26 10:22:40', 0, 1847103675560071169, 'color', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847171062050267138, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847183465516240898, NULL, NULL, NULL, NULL, NULL, '2024-10-18 17:06:01', 0, 1847094468974710786, 'fj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847197498982141954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847197498982141955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847198273959497729, NULL, NULL, NULL, NULL, NULL, '2024-10-18 17:06:01', 0, 1847094468974710786, 'fzr', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847198273959497730, NULL, NULL, NULL, NULL, NULL, '2024-10-18 17:06:01', 0, 1847094468974710786, 'cyry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847198273959497731, NULL, NULL, NULL, NULL, NULL, '2024-10-18 17:06:01', 0, 1847094468974710786, 'rwbj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847198273959497732, NULL, NULL, NULL, NULL, NULL, '2024-10-18 17:06:01', 0, 1847094468974710786, 'kxfw', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818287222786, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417090, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417091, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417092, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417093, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'num', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417094, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417095, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417096, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417097, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417098, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417099, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417100, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417101, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847456818291417102, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'status', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734021, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'jzsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734022, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'urgent_relief', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734023, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'xmmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734024, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'lys', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'fj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734026, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734027, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'kssj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734028, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwtx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734029, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwms', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734030, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'cyry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', 'return {\n option_str:`return {\n \"multiple\":true,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734031, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734032, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734033, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734034, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734035, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734036, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734037, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734038, NULL, NULL, NULL, NULL, NULL, '2024-10-26 16:31:24', 0, 1847472439438737409, 'color', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847472447835734039, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'txfs', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847478147269918722, NULL, NULL, NULL, NULL, NULL, '2024-10-19 11:40:30', 1, 1847472439438737409, 'zw', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230211, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'ranking', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230212, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230213, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'visit', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230214, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'quantity', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230215, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'cancel', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230216, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'pj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230217, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230219, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230220, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230221, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230222, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230223, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1847537161883230224, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848178491521167362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848178491521167363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848178491521167364, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848263866226769921, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848268295160135682, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970755, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970756, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970757, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970758, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970759, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970760, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970764, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848301757760970765, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115330, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115331, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115332, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115333, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115334, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115335, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115336, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115337, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115339, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848631606086115340, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841217, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841218, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841219, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841220, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841221, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841222, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841223, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841224, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841225, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841226, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841227, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:52', 0, 1848637143087489025, 'content', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841228, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'dz_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841229, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'sc_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848637149160841230, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'pl_num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793859, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793860, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793861, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793862, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793863, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793864, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793865, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793866, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793867, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848649275564793868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'content', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1848665317636743170, NULL, NULL, NULL, NULL, NULL, '2024-10-23 09:26:39', 0, 1848649270435160066, 'time', 'Y', 'N', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619266, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619267, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619268, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619269, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619270, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619271, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619272, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619273, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619274, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1849365536788619275, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrfks', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyfws', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343620, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyffs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343621, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'xzhys', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343622, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343623, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343624, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850061361743343628, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152449, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152450, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152451, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152452, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152453, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152454, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152455, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152456, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152457, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850092584226152458, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'xse', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756488, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850094922164756490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850102551356284929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"java\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[{\"value\":\"fieldSelect\",\"text\":\"title\"}],\"valueType\":\"group\",\"group\":[{\"value\":\"#{title}\",\"type\":\"CALCULATE\"}],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103041, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103042, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'sm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103043, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'nz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103044, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'my', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103045, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'xb', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103046, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103047, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'je', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103048, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103049, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103051, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850109348230103054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401795, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:53:49', 0, 1850723645460291586, 'kssj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401796, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401797, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401798, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401799, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401800, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850723647146401802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501889, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501890, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'input\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501894, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501895, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501896, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850724501102501897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850726015841837057, NULL, NULL, NULL, NULL, NULL, '2024-10-28 10:28:16', 0, 1850724499567386625, 'rl_id', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850780441760657409, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:04:34', 0, 1850723645460291586, 'sub_more_date', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[],\"valueType\":\"group\",\"group\":[],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850780489729941506, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:53:49', 0, 1850723645460291586, 'jssj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1850819897091821569, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:46', 1, 1849365535287058433, 'aaa', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745985, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'bbb', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745986, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ccc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745987, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ddd', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745988, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'eee', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745989, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'fff', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745990, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ggg', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851092533432745991, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'hhh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851137193412841474, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:53:22', 1, 1850724499567386625, 'time', 'Y', 'N', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851137193412841475, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'ms', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086147, NULL, NULL, NULL, NULL, NULL, '2024-10-30 14:28:14', 0, 1851205230887346177, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086148, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086149, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086150, NULL, NULL, NULL, NULL, NULL, '2024-11-02 14:33:55', 0, 1851205230887346177, 'cytx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"showNum\":5,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086151, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086152, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851205232846086157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124993, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124994, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124995, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124996, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124997, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124998, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511124999, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125000, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125006, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125007, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851509265511125008, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851511408569782274, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', 'return {\n option_str:`return {\n \"multiple\":true,\n \"avatar\":true,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851511408569782275, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'xm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851511408569782276, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'rw', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446274, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446275, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446276, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446277, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446278, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446279, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446280, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851796251115446284, NULL, NULL, NULL, NULL, NULL, '2024-11-01 10:12:24', 0, 1851796249232203778, 'content', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851802084704423938, NULL, NULL, NULL, NULL, NULL, '2024-11-01 11:19:11', 0, 1851796249232203778, 'time_test', 'Y', 'N', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"type\":\'time\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851882904281628673, NULL, NULL, NULL, NULL, NULL, '2024-11-01 11:19:11', 0, 1851796249232203778, 'num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1851921954556297217, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"java\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[{\"value\":\"fieldSelect\",\"text\":\"zt_img\"}],\"valueType\":\"group\",\"group\":[{\"value\":\"#{zt_img}\",\"type\":\"CALCULATE\"}],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852169866750156801, NULL, NULL, NULL, NULL, NULL, '2024-11-01 10:20:27', 0, 1851796249232203778, 'zt_box', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509761, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509762, NULL, NULL, NULL, NULL, NULL, '2024-11-01 17:00:24', 0, 1852234473116233730, 'cyxm_name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509763, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:42:59', 0, 1852234473116233730, 'cyxm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509764, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:42:59', 0, 1852234473116233730, 'rwzs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509765, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:43:20', 0, 1852234473116233730, 'ywc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509766, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:43:20', 0, 1852234473116233730, 'dwc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509767, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:43:20', 0, 1852234473116233730, 'yyq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'number', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509768, NULL, NULL, NULL, NULL, NULL, '2024-11-01 16:06:56', 0, 1852234473116233730, 'yql', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '90', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[{\"value\":\"parenthesis\",\"text\":\" ( \"},{\"value\":\"fieldSelect\",\"text\":\"yyq\"},{\"value\":\"modeType\",\"text\":\" * \"},{\"value\":\"modeNum\",\"text\":100},{\"value\":\"parenthesis\",\"text\":\" ) \"},{\"value\":\"modeType\",\"text\":\" / \"},{\"value\":\"parenthesis\",\"text\":\" ( \"},{\"value\":\"fieldSelect\",\"text\":\"rwzs\"},{\"value\":\"modeType\",\"text\":\" * \"},{\"value\":\"modeNum\",\"text\":100},{\"value\":\"parenthesis\",\"text\":\" ) \"},{\"value\":\"joinStr\",\"text\":\"%\"}],\"valueType\":\"group\",\"group\":[{\"value\":\" ( #{yyq} * 100 ) / ( #{rwzs} * 100 ) \",\"type\":\"CALCULATE\"},{\"value\":\"%\",\"type\":\"CONCAT\"}],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509769, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:54:18', 0, 1852234473116233730, 'wcl', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[{\"value\":\"parenthesis\",\"text\":\" ( \"},{\"value\":\"fieldSelect\",\"text\":\"ywc\"},{\"value\":\"modeType\",\"text\":\" / \"},{\"value\":\"fieldSelect\",\"text\":\"rwzs\"},{\"value\":\"parenthesis\",\"text\":\" ) \"},{\"value\":\"modeType\",\"text\":\" * \"},{\"value\":\"modeNum\",\"text\":100},{\"value\":\"joinStr\",\"text\":\"%\"}],\"valueType\":\"group\",\"group\":[{\"value\":\" ( #{ywc} / #{rwzs} ) * 100\",\"type\":\"CALCULATE\"},{\"value\":\"%\",\"type\":\"CONCAT\"}],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509771, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509772, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509773, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509774, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509775, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852234474827509776, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055169, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055170, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055171, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055172, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055173, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055174, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055175, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055176, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055177, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055178, NULL, NULL, NULL, NULL, NULL, '2024-11-01 15:00:40', 0, 1852241979997646849, 'name', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055179, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055180, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'time_test', 'Y', 'N', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"type\":\'time\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055181, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'num', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852241981906055182, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_box', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624066, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624067, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624068, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624069, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624070, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624071, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624072, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624073, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624074, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624075, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624076, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852557614497624077, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sjlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786050, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786051, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:03:15', 0, 1852624838914699265, 'xm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786052, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786053, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786054, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786055, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786056, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786059, NULL, NULL, NULL, NULL, NULL, '2024-11-02 17:12:39', 0, 1852624838914699265, 'color', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786060, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:06:09', 0, 1852624838914699265, 'lx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786061, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786062, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786063, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786064, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1852624840470786067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696579, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:27', 0, 1853269839533273090, 'bgbt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696580, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:21:26', 1, 1853269839533273090, 'tjry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696581, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:22:39', 0, 1853269839533273090, 'bglx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'radio', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696582, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:57:01', 1, 1853269839533273090, 'ssbm', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696583, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:57:01', 0, 1853269839533273090, 'pyzt', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696584, NULL, NULL, NULL, NULL, NULL, '2024-11-04 11:57:01', 1, 1853269839533273090, 'tjsj', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"type\":\'time\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696585, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696586, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:27', 0, 1853269839533273090, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696587, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:27', 0, 1853269839533273090, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696588, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:31:27', 0, 1853269839533273090, 'create_dept', 'Y', 'Y', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696589, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696590, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853269840988696591, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853285292204847105, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgrq', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'date\',\n \"format\":\'YYYY-MM-DD\',\n \"valueFormat\":\'YYYY-MM-DD\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853285292204847106, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzzj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'ueditor', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853285292204847107, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzjh', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'ueditor', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853285292204847108, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'fj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853285292204847109, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853327906794860545, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'csry', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1853337382562263042, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', 'N', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494721, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494722, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494723, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494724, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494725, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494726, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494727, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggbt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494728, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:57', 0, 1854048263491252226, 'ggzt', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494729, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:30:02', 0, 1854048263491252226, 'gglx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494730, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:57', 0, 1854048263491252226, 'jsry', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494731, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:55:05', 0, 1854048263491252226, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854048265374494732, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:55:05', 0, 1854048263491252226, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907137, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907138, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:42:13', 0, 1854067250698612737, 'czbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n disabled: true\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907139, NULL, NULL, NULL, NULL, NULL, '2024-11-20 13:57:11', 0, 1854067250698612737, 'czsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907140, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907141, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'ssmk', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907142, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907143, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907144, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907145, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907147, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907148, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907149, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854067252690907150, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771587, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:41:52', 0, 1854331399533998082, 'spbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n disabled: true\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771588, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:01:00', 0, 1854331399533998082, 'spsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771589, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'spry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771590, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:19:59', 0, 1854331399533998082, 'splx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771591, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:41:52', 0, 1854331399533998082, 'ywbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n disabled: true\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771592, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:02:40', 0, 1854331399533998082, 'tjsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n disabled: true\n}`,\n }', '180', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771596, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771597, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771598, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854331401320771599, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854332940059914241, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'spjg', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188417, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n disabled: true\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188419, NULL, NULL, NULL, NULL, NULL, '2024-11-20 14:07:10', 0, 1854341001851940865, 'dlsj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '170', 'fixed', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188421, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'zdlx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188422, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'llq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188423, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'czxt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n}`,\n custom_str: `return {\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188424, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188428, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188429, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188430, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854341003584188431, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:34', 0, 1854341001851940865, 'sbmc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854344158111838210, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854344158111838211, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854344158111838212, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854344158111838213, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'szdq', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'regionSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854344158111838214, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:08:34', 0, 1854341001851940865, 'dlry', 'Y', 'N', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854350563053121537, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:34:34', 0, 1854048263491252226, 'ggxq', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'ueditor', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854350563053121538, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:57', 1, 1854048263491252226, 'fbsj', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'date', 'return {\n option_str:`return {\n \"type\":\'datetime\',\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n \n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854350563053121539, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:40:57', 1, 1854048263491252226, 'fbry', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854353315414126593, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854353315414126594, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'plsz', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854353315414126595, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'txfs', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854365906253361153, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551105, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551106, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551107, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551108, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551109, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551110, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551111, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551112, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551113, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bktx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htbk', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551115, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bkjs', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551116, NULL, NULL, NULL, NULL, NULL, '2024-11-07 14:42:05', 0, 1854408557228961794, 'cytx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"showNum\":3,\n \"listType\":\'picture-card\',\n \"limit\":9,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551117, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854408558709551118, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854422861278744578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"sql\",\"formatJson\":{\"sql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"SELECT nickname FROM system_users WHERE id = create_user\",\"group\":\"SELECT FROM \"},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516993, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516994, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'img', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n \"limit\":1,\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516995, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:45:14', 0, 1854438272522235905, 'title', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516996, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:45:14', 0, 1854438272522235905, 'text', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516997, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516998, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082516999, NULL, NULL, NULL, NULL, NULL, '2024-11-08 16:17:44', 0, 1854438272522235905, 'create_time', 'Y', 'N', 'N', 'N', 'Y', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082517000, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082517001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082517002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854438274082517003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854440296290693121, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854440296290693122, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854440296290693123, NULL, NULL, NULL, NULL, NULL, '2024-11-07 16:45:14', 0, 1854438272522235905, 'content', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'ueditor', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854451638229774338, NULL, NULL, NULL, NULL, NULL, '2024-11-07 17:49:45', 0, 1854438272522235905, 'num', 'Y', 'Y', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"sql\",\"formatJson\":{\"sql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"SELECT COUNT(id) AS num FROM example_mkgl_tdzsk WHERE is_deleted = 0\",\"group\":\"SELECT FROM \"},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489986, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489987, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489988, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489989, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489990, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489991, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489992, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489993, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489994, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489995, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854695847960489996, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', 'Y', 'N', 'N', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_time', 'Y', 'Y', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737158, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_user', 'Y', 'Y', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737159, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737160, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737161, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'cytx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'image', 'return {\n option_str:`return {\n \"listType\":\'picture-img\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737162, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'htbt', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737163, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'lll', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854716970546737164, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'hfl', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854727998009487362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'llcs', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854766851873288194, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:06:13', 0, 1854716968965484545, 'sd', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854766851873288195, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'zd', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'switch', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854766851873288196, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:06:13', 1, 1854716968965484545, 'rm', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'switch', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854777972093071362, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:51:19', 0, 1854716968965484545, 'rm', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'switch', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1854777972093071363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"java\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[],\"valueType\":\"group\",\"group\":[],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389570, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389571, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kssj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389572, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389573, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389574, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389575, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389576, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389577, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389578, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389579, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', 'Y', 'N', 'N', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{\"list\":[],\"valueType\":\"group\",\"group\":[],\"custom\":{\"javaPath\":\"\"}},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856505239089389580, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'jssj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'time', 'return {\n option_str:`return {\n \"format\":\'YYYY-MM-DD HH:mm:ss\',\n \"valueFormat\":\'YYYY-MM-DD HH:mm:ss\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595138, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:22', 1, 1856505236472143874, 'title', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595139, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:39:26', 1, 1856505236472143874, 'sjlx', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595140, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cfrc', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595141, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cyry', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595142, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kjcd', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595143, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcbj', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595144, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rctx', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'select', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595145, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:41:13', 1, 1856505236472143874, 'txfs', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'checkbox', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595146, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcms', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', 'return {\n option_str:`return {\n \"type\":\'textarea\',\n}`,\n custom_str: `return {\n\n}`,\n }', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1856507608837595147, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:32:26', 1, 1856505236472143874, 'fj', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'file', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1859429351269007361, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109892, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109893, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109894, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109895, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109896, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', 'Y', 'N', 'N', 'N', 'N', 'N', 'deptSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109897, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', 'Y', 'N', 'N', 'N', 'N', 'N', 'userSelect', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', 'Y', 'N', 'N', 'N', 'N', 'N', 'date', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); +INSERT INTO `lowcode_dbform_field_web` VALUES (1872882476531109899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', 'Y', 'N', 'N', 'N', 'N', 'N', 'input', '', '', 'min', '', '{\"formatType\":\"\",\"formatJson\":{\"sql\":{},\"java\":{},\"fun\":\"\"}}'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_index +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_index`; +CREATE TABLE `lowcode_dbform_index` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `index_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '索引名称', + `index_field_code_list` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '索引字段列表', + `index_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '索引类型', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-索引表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_index +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_dbform_role_button +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_role_button`; +CREATE TABLE `lowcode_dbform_role_button` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `button_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '按钮', + `enable_state` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '启用状态', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_fieldcode`(`button_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-租户权限-按钮权限' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_role_button +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_dbform_role_data_rule +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_role_data_rule`; +CREATE TABLE `lowcode_dbform_role_data_rule` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `rule_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则名称', + `rule_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则类型', + `rule_field` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则字段', + `rule_condition` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则条件', + `rule_value` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则值', + `rule_sql` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规则最终SQL', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_fieldcode`(`rule_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-租户权限-数据权限规则' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_role_data_rule +-- ---------------------------- +INSERT INTO `lowcode_dbform_role_data_rule` VALUES (1854093417312907265, '1', 1, '2024-11-06 17:28:13', 101, NULL, NULL, 1, 1854067250698612737, '测试', 'field', 'czbh', 'eq', '123', 'czbh = 123'); +INSERT INTO `lowcode_dbform_role_data_rule` VALUES (1854093488490246145, '1', 1, '2024-11-06 17:28:30', 101, NULL, NULL, 1, 1854067250698612737, '呃呃', 'field', 'czsj', 'eq', '“444”', 'czsj = “444”'); +INSERT INTO `lowcode_dbform_role_data_rule` VALUES (1854096954273017858, '1', 1, '2024-11-06 17:42:16', 101, NULL, NULL, 1, 1854067250698612737, '去去去', 'field', 'id', 'eq', '#{jeelowcode_user_id}', 'id = #{jeelowcode_user_id}'); + +-- ---------------------------- +-- Table structure for lowcode_dbform_role_data_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_role_data_tenant`; +CREATE TABLE `lowcode_dbform_role_data_tenant` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_role_data_rule_id` bigint(0) NULL DEFAULT NULL COMMENT '规则id', + `enable_state` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '启用状态', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_role_data_rule_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-租户权限-数据权限-租户值' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_role_data_tenant +-- ---------------------------- +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1830810392268144641, '1', 1, '2024-09-03 11:29:47', 101, NULL, NULL, 0, 1830809184677691394, 'N'); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1830810779410792450, '1', 1, '2024-09-03 11:31:19', 101, NULL, NULL, 0, 1830810247271055362, 'N'); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1830810783659622402, '1', 1, '2024-09-03 11:31:20', 101, NULL, NULL, 0, 1830810551622336514, 'N'); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1830813133451329538, '1', 1, '2024-09-03 11:40:40', 101, 1, '2024-09-03 11:40:53', 1, 1830811573539340289, NULL); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1830813834265001986, '1', 1, '2024-09-03 11:43:28', 101, NULL, NULL, 0, 1830811573539340289, 'N'); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1853626354699055106, '1', 1, '2024-11-05 10:32:16', 101, 1, '2024-11-05 10:32:18', 1, 1853626310960852994, NULL); +INSERT INTO `lowcode_dbform_role_data_tenant` VALUES (1853637522448691202, '1', 1, '2024-11-05 11:16:39', 101, 1, '2024-11-05 11:16:41', 1, 1853637465406156802, NULL); + +-- ---------------------------- +-- Table structure for lowcode_dbform_role_field +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_role_field`; +CREATE TABLE `lowcode_dbform_role_field` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `list_is_view` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '列表是否显示', + `form_is_view` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单是否显示', + `form_is_edit` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单是否可编辑', + `enable_state` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '启用状态', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`dbform_id`) USING BTREE, + INDEX `ind_fieldcode`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-租户权限-字段权限' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_role_field +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_dbform_summary +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_dbform_summary`; +CREATE TABLE `lowcode_dbform_summary` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `field_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `summary_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '统计类型', + `summary_show` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否显示 Y=显示 N=不显示', + `summary_sql` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '统计sql', + `summary_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '统计显示文本', + `summary_json` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '其他配置', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-顶部字段统计' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_dbform_summary +-- ---------------------------- +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041858, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041859, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041860, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041861, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041862, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041863, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041864, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041865, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041866, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041867, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041868, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831577856866041869, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963906, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963907, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963908, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963909, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963910, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963911, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963912, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963913, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963914, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963915, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963916, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831578614931963917, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038402, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038403, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038404, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038405, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038406, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_state', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038407, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'remark', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038408, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038409, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038410, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038411, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038412, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038413, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582346600038414, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776962, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776963, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776964, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776965, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776966, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776967, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776968, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776969, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776970, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776971, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776972, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831582502900776973, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549314, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549315, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549316, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549317, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549318, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549319, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549320, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549321, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549322, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549323, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549324, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590096113549325, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339522, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339523, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339524, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339525, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339526, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339527, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339528, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339529, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339530, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339531, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339532, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590548687339533, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576259, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576261, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576262, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576263, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576264, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576265, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576266, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576267, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576268, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831590758964576269, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335686, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335687, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335688, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335691, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592169387335692, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831577841380671489, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767361, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767362, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767363, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767364, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767365, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_state', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767366, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'remark', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767367, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767368, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767369, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767370, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767371, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767372, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831592720602767373, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391427, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391428, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391429, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391430, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_state', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391431, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'remark', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391432, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391433, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391434, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391435, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391436, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391437, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831593100988391438, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800002, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800003, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800004, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800005, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800006, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'type_state', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800007, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'remark', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800008, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800009, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800010, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800011, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800012, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800013, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831595166028800014, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831582331282440193, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'type_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'type_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173957, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'type_state', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173958, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'remark', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173959, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173960, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173961, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173962, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173963, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173964, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831597326674173965, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831582331282440193, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446530, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446531, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446532, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446533, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446534, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446535, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446536, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446537, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446538, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446539, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446540, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831606737031446541, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831606724024909825, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579905, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579906, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579907, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579908, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579909, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579910, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579911, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579912, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579913, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579914, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579915, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831607493763579916, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661058, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661059, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661060, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661061, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661062, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661063, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661064, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661065, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661066, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661067, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661068, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831608178223661069, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810561, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810562, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810563, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810564, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810565, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810566, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810567, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810568, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810569, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810570, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810571, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866581839810572, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503105, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503106, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503107, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503108, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503109, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503110, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503111, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503112, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503113, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503114, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503115, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831866676467503116, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863810, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863811, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863812, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863813, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863814, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863815, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863816, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863817, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863818, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863819, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863820, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867025999863821, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831607480064983042, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738561, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738562, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738563, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738564, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738565, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738566, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738567, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738568, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738569, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738570, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738571, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831867106060738572, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831608167414939649, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194626, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194627, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194628, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194629, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194630, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194631, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194632, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194633, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194634, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194635, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873486247194636, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831607480064983042, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455169, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455170, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455171, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455172, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455173, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455174, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455175, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455176, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455177, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455178, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455179, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831873547320455180, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831608167414939649, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925249, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925250, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925251, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925252, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925253, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925254, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925255, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925256, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925257, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925259, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879677903925260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309890, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309891, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309892, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309893, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309894, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309895, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309896, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309897, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309898, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309899, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309900, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831879779238309901, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831879666549944322, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665154, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665155, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665156, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665157, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665158, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665159, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665160, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665161, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665162, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665163, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665164, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881288495665165, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069121, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069123, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069124, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069125, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069126, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069127, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069128, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069129, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069130, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069131, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881409992069132, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044610, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044611, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044612, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044613, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044614, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044615, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044616, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044617, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044620, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881505295044621, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831879666549944322, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077633, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077634, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077635, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077636, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077637, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077638, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077639, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077640, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077641, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077642, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077643, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881638699077644, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881275090669569, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730177, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730178, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730179, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730180, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730181, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730182, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730183, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730184, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730185, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730186, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730187, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881691383730188, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831881397711147010, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256072, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881912935256076, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881275090669569, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784900, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784901, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784902, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784903, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784904, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784908, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831881972632784909, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831881397711147010, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465410, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465411, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465412, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465413, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465414, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465415, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465416, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465417, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883141912465421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204353, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204354, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204355, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204356, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204357, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204358, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204359, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204360, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204361, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204362, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204363, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883214415204364, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883200666275842, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450757, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450758, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450759, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450760, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450761, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450762, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450763, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883402005450764, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883388675952641, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713218, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713219, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713220, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713221, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713222, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713223, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713224, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713225, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713226, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713227, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713228, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883502840713229, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831883128176119810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'course_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079684, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'credits', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079685, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'grade', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079686, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079687, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079688, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079691, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831883594763079692, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883200666275842, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030274, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030275, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'main_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030276, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'emergency_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030277, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'contact_phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030278, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030279, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030280, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884477295030285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883388675952641, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145409, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145410, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'first_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145411, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145412, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145413, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'email', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145414, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145415, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145416, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145417, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831884528608145420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831883128176119810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057282, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057283, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_input', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057284, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_password', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057285, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057286, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_textarea', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057287, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_select', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057288, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_tree', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057289, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_cascader', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057290, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_table', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057291, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057292, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057293, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_region', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057294, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_radio', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057295, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_checkbox', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057296, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057297, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057298, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_datetime', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057299, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_file', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057300, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_image', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057301, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057302, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_custom', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057303, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_ueditor', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057304, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057305, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057306, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057307, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057308, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057309, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831939979769057310, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672066, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672067, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_input', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672068, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_password', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672069, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672070, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_textarea', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672071, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_select', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672072, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_tree', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672073, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_cascader', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672074, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_table', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672075, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672076, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672077, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_region', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672078, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_radio', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672079, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_checkbox', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672080, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672081, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672082, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_datetime', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672083, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_file', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672084, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_image', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672085, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672086, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_custom', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672087, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_ueditor', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672088, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672089, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672090, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672091, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672092, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672093, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1831941019939672094, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145346, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145347, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_input', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145348, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_password', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145349, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145350, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_textarea', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145351, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_select', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145352, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_tree', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145353, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_cascader', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145354, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_table', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145355, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145356, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145357, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_region', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145358, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_radio', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145359, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_checkbox', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145360, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145361, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145362, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_datetime', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145363, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_file', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145364, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_image', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145365, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145366, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_custom', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145367, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_ueditor', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145368, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145369, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145370, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145371, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145372, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145373, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832963791193145374, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_input', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_password', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026757, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_textarea', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026758, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_select', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026759, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_tree', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026760, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_cascader', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026761, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_table', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026762, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026763, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026764, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_region', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026765, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_radio', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026766, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_checkbox', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026767, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026768, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026769, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_datetime', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026770, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_file', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026771, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_image', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026772, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026773, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_custom', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026774, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'text_ueditor', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026775, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026776, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026777, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026778, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026779, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026780, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986363054026781, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831939951830798338, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_input', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_password', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481477, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481478, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_textarea', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481479, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_select', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481480, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_tree', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_cascader', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_table', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_region', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_radio', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_checkbox', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481488, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_datetime', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_file', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_image', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_code', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_custom', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481495, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'text_ueditor', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481496, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481497, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481498, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481499, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481500, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481501, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1832986604981481502, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1831939951830798338, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675073, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675074, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675075, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675076, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675077, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675078, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675079, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675080, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675081, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675082, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675083, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833031116716675084, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915265, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915266, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915267, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915268, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915269, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915270, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915271, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915272, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915273, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915274, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915275, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055213195915276, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656449, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656450, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656451, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656452, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656453, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656454, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656455, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656456, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656457, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656458, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656459, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055921911656460, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566466, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566467, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566468, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566469, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566470, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566471, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566472, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566473, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566474, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566475, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566476, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833055985157566477, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334785, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334786, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334787, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334788, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334789, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334790, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334791, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334792, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334793, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334794, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334795, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334796, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058211593334797, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535937, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535938, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535939, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535940, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535941, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535942, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535943, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535944, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535945, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535946, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535947, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535948, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058235450535949, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742657, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742658, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742659, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742660, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742661, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742662, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742663, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742664, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742665, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742666, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742667, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742668, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833058912012742669, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684422, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684423, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684424, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684427, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684428, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059016618684429, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930498, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930499, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930500, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930501, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930502, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930503, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930504, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930505, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930506, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930507, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930508, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930509, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833059197581930510, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561793, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561794, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561795, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561796, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561797, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561798, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561799, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561800, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561801, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561802, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561803, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833070772742561804, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167258132481, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326786, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326787, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326788, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326789, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326790, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326791, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326792, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326793, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326794, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326795, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833073167262326796, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558849, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558850, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558851, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558852, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558853, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558854, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558855, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558856, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558857, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558859, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833077029444558860, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833055212327694337, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885825, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885826, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885827, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885828, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885829, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885830, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885831, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885832, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885833, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885834, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885835, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320018871885836, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589250, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589251, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589252, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589253, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589254, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589255, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589256, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589257, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589259, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833320142209589261, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726657, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726658, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726659, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726660, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726661, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726662, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726663, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726664, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726665, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726666, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726667, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726668, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726669, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833323261366726670, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869314, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869315, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869316, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869317, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869318, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869319, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869320, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869321, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869322, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869323, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869324, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869325, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869326, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325455465869327, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426306, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426307, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426308, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426309, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426310, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426311, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426312, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426313, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426314, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426315, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426316, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426317, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426318, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833325639587426319, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433730, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433731, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'user_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433732, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'visitor_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433733, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'goods_name', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433734, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433735, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433736, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433737, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433738, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433739, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326225871433740, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447859167233, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447859167234, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447859167235, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361537, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361538, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361539, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361540, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361541, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361542, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361543, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361544, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833326447863361545, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833320018125299714, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228225, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228226, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'user_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228227, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'visitor_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228228, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'goods_name', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228229, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228230, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228231, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228232, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228233, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228234, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833327774274228235, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833326225296814081, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311389511681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705986, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'user_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705987, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'visitor_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705988, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'goods_name', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705989, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705990, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705991, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705992, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705993, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705994, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833331311393705995, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833326225296814081, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"custom\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086017, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'birth_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086021, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'interest', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086022, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086023, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086024, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086026, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086027, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833338513152086028, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1833320018125299714, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559746, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559747, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559748, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559749, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559750, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559751, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559752, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559757, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559758, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833341760678559759, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882369, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882370, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882371, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882372, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882373, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882374, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882375, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882376, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882377, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882378, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882379, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882380, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882381, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833409455293882382, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744322, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744323, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744324, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744325, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744326, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744327, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744328, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744329, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744330, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744331, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744332, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744333, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744334, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416348162744335, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916545, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916546, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916547, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916548, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916549, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916550, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916551, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916552, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916553, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916554, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916555, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916556, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916557, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833416742871916558, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240193, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240194, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240195, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240196, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240197, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240198, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240199, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240200, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240201, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240202, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240203, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240204, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240205, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833418084575240206, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882818, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882819, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882820, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882821, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882822, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882823, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882824, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882825, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882826, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882827, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882828, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882829, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882830, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833419045934882831, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060422, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060423, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060424, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060427, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060428, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060429, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060430, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1833420626768060431, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258817, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258819, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258820, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258821, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258822, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258823, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258824, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258825, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258827, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258828, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834065859604258829, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627586, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627587, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627588, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627589, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627590, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627591, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627592, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627593, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627594, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066010722627595, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267010, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267011, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267012, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267013, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267014, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267015, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267016, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267017, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267018, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267019, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066016148267020, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697730, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697731, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697732, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697733, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tbl_aa', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697734, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697735, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697736, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697737, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697738, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697739, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066126426697740, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743170, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743171, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743172, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743173, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743174, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743175, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743176, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743177, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743178, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066215492743179, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949121, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949123, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949124, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949125, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949126, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949127, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949128, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949129, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949130, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066432130949131, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676417, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676422, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676423, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676424, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834066735871676427, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121120878593, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121120878594, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121120878595, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072897, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072898, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072899, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072900, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072901, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072902, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072903, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067121125072904, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990465, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990466, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990467, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990468, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990469, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990470, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990471, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990472, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990473, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990474, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067851948990475, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977670856705, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051010, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051011, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051012, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051013, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051014, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051015, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051016, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051017, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051018, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834067977675051019, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100609, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100610, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100611, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100612, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100613, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100614, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100615, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100616, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100617, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100618, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068009596100619, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158657, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158658, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158659, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158660, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aab', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158661, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158662, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158663, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158664, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158665, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158666, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068581705158667, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789123, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789124, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789125, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aab', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789126, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789127, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789128, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789129, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789130, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789131, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068701414789132, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346113, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346114, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346115, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346116, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aa', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346117, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346118, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346119, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346120, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346121, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346122, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068820000346123, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332609, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332610, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332611, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332612, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'aab', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332613, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332614, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332615, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332616, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332617, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332618, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834068959771332619, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473793, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'student_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473795, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'course_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473796, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473797, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473798, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473799, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473800, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834070279725473803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1834065859105136642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175427, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175428, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175429, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175430, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175431, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175432, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175433, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175434, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175435, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175436, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175437, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175438, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175439, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175440, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834136628531175441, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish,FROM_UNIXTIME(tabs_card_date,\'%Y-%m\') as e_date from test_mlh_cs where is_deleted = 0 group by FROM_UNIXTIME(tabs_card_date,\'%Y-%m\')\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish,FROM_UNIXTIME(tabs_card_date,\'%Y-%m\') as e_date from test_mlh_cs where is_deleted = 0 group by FROM_UNIXTIME(tabs_card_date,\'%Y-%m\')\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999874, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999875, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999876, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999877, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999878, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999879, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999880, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999881, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999882, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999883, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999884, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999885, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999886, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999887, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999888, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999889, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834137462513999890, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918849, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918850, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918851, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918852, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918853, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918854, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918855, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918856, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918857, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918858, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918859, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918860, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918861, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918862, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918863, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918864, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834138235603918865, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321410, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321411, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321412, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321413, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321414, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321415, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321416, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321417, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321422, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321423, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321424, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834139297874321426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679618, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679619, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679620, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679621, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679622, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679623, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679624, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679625, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679628, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679629, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679630, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679631, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679632, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679633, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834141682973679634, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704385, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704386, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704387, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704388, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704389, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704390, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704391, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704392, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704393, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704394, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704395, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704396, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704397, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704398, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704399, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704400, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834142012402704401, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381441, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381442, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381443, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381444, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381445, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381446, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381447, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381448, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381449, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381450, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381451, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381452, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381453, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381454, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381455, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381456, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834143123960381457, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415617, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415618, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415619, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415620, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415621, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415622, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415623, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415624, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415625, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415628, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415629, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415630, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415631, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415632, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834144709906415633, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181569, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181570, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181571, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181572, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181573, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181574, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181575, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181576, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181577, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181578, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181579, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181580, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181581, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181582, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181583, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181584, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834146665555181585, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 #{target} 成交金额#{accomplish}\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911520444418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833026, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833027, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833028, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833029, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833030, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833031, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833032, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833033, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833034, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833035, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833036, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833037, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833038, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834150911528833039, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, NULL, 'top', 'Y', '', '', '{\"summarySql\":\"\",\"summaryControl\":\"\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724034, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724035, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724036, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724037, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724038, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724039, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724040, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724041, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724042, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724043, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724044, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724045, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724046, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724047, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724048, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724049, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158235735724050, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299585, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299586, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299587, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299588, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299589, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299590, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299591, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299592, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299593, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299594, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299595, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299596, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299597, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299598, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299599, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299600, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834158476543299601, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567746, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567747, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567748, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567749, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567750, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567751, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567752, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567757, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567758, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567759, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567760, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, NULL, 'top', 'Y', '', '', '{\"summarySql\":\"\",\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834162138577567761, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1833031105253642242, NULL, 'top', 'Y', '', '', '{\"summarySql\":\"\",\"summaryControl\":\"\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629185, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629186, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629187, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629188, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629189, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629190, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629191, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629192, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629193, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629194, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629195, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629196, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629197, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629198, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629199, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629200, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166496593629201, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167169, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167170, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167171, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167172, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167173, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167174, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167175, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167176, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167177, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167178, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167179, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167180, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167181, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167182, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167183, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167184, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834166732716167185, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497730, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497731, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497732, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497733, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497734, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497735, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497736, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497737, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497738, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497739, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497740, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497741, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497742, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497743, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497744, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497745, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497746, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170760359497747, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥{target},成交金额 :¥{accomplish},完成率:{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806018, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806019, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806020, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806021, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806022, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806023, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806024, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806025, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806026, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806027, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806028, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806029, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806030, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806031, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806032, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806033, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806034, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834170997534806035, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥{target},成交金额 :¥{accomplish},完成率:{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441090, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441091, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441092, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441093, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441094, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441095, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441096, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441097, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441098, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441099, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441100, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441101, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441102, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441103, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441104, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441105, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441106, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834171422388441107, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date asc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516225, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516226, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516227, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516228, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516229, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516230, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516231, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516232, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516233, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516234, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516235, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516236, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516237, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516238, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516239, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516240, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516241, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834173201230516242, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487873, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487874, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487875, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487876, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487877, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487878, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487879, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487880, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487881, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487882, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487883, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487884, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487885, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487886, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487887, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487888, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487889, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402760433487890, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089409, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089410, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089411, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089412, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089413, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089414, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089415, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089416, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089417, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089418, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089419, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089420, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089421, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089422, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089423, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089424, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089425, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834402923315089426, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950273, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950274, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950275, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950276, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950277, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950278, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950279, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950280, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950281, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950282, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950283, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950284, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950285, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950286, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950287, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950288, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950289, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834409583936950290, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799297, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799298, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799299, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799300, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799301, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799302, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799303, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799304, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799305, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799306, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799307, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799308, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799309, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799310, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799311, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799312, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799313, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411215231799314, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957505, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957506, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957507, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957508, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957509, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957510, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957511, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957512, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957513, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957514, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957515, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957516, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957517, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957518, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957519, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957520, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957521, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834411752215957522, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944705, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944706, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944707, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944708, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944709, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944710, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944711, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944712, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944713, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944714, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944715, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944716, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944717, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944718, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944719, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944720, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944721, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413322143944722, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680770, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680771, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680772, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680773, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680774, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680775, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680776, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680777, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680778, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680779, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680780, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680781, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680782, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680783, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680784, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680785, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680786, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834413990363680787, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852738, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852739, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852740, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852741, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852742, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852743, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852744, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852745, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852746, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852747, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852748, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852749, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852750, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852751, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852752, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834418089108852755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466718336430081, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466718562922498, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466718781026305, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466718994935810, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466719213039617, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466719426949122, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466719649247234, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466719863156738, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466720085454849, '1', 1, '2024-09-13 13:38:43', 101, NULL, NULL, 1, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466720299364353, '1', 1, '2024-09-13 13:38:44', 101, NULL, NULL, 1, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466720513273858, '1', 1, '2024-09-13 13:38:44', 101, NULL, NULL, 1, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466720731377666, '1', 1, '2024-09-13 13:38:44', 101, NULL, NULL, 1, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466720941092865, '1', 1, '2024-09-13 13:38:44', 101, NULL, NULL, 1, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834466721167585282, '1', 1, '2024-09-13 13:38:44', 101, NULL, NULL, 1, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484360560521217, '1', 1, '2024-09-13 14:48:49', 101, NULL, NULL, 0, 1833323260582391810, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484360841539585, '1', 1, '2024-09-13 14:48:49', 101, NULL, NULL, 0, 1833323260582391810, 'client_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484361114169346, '1', 1, '2024-09-13 14:48:49', 101, NULL, NULL, 0, 1833323260582391810, 'client_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484361386799106, '1', 1, '2024-09-13 14:48:49', 101, NULL, NULL, 0, 1833323260582391810, 'client_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484361659428865, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'client_head_contact', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484361948835842, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'phone_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484362275991553, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'client_affiliation', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484362544427010, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484362842222594, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484363127435266, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484363395870722, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484363676889089, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484363945324545, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834484364234731521, '1', 1, '2024-09-13 14:48:50', 101, NULL, NULL, 0, 1833323260582391810, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497044697853953, '1', 1, '2024-09-13 15:39:13', 101, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497044974678018, '1', 1, '2024-09-13 15:39:13', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497045238919169, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497045515743234, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497045788372993, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497046061002754, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497046333632513, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497046610456578, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497046883086337, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497047151521793, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497047424151554, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497047700975617, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497047973605378, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497048242040833, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497048581779457, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497048883769346, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497049160593409, '1', 1, '2024-09-13 15:39:14', 101, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497049437417474, '1', 1, '2024-09-13 15:39:15', 101, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497172011757570, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497172288581633, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497172557017089, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497172833841154, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497173102276610, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497173374906370, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497173651730433, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497173924360193, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497174196989953, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497174469619713, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497174742249473, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497175010684929, '1', 1, '2024-09-13 15:39:44', 101, NULL, NULL, 1, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497175283314689, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497175555944450, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497175824379905, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497176101203970, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497176369639426, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_date as e_date from example_tabs_card where is_deleted = 0 group by tabs_card_date\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834497176642269185, '1', 1, '2024-09-13 15:39:45', 101, NULL, NULL, 1, 1834136609367400450, NULL, 'top', 'Y', 'select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\r\n', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"select tabs_card_target_money as target,tabs_card_accomplish_money as accomplish, tabs_card_percentage_complete as wcl from example_tabs_card where is_deleted = 0 order by tabs_card_date desc limit 1\\r\\n\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499969200078849, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499969464320001, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499969787281410, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499970047328258, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499970307375105, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499970630336514, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499970890383361, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499971209150466, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499971469197314, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499971796353026, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499972060594177, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499972316446722, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499972647796737, '1', 1, '2024-09-13 15:50:51', 101, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834499972903649282, '1', 1, '2024-09-13 15:50:52', 101, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523638521565186, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523638785806337, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523639045853186, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523639310094338, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523639570141186, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523639821799425, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523640090234881, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523640350281730, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523640618717185, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523640870375426, '1', 1, '2024-09-13 17:24:54', 101, NULL, NULL, 1, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523641138810881, '1', 1, '2024-09-13 17:24:55', 101, NULL, NULL, 1, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523641398857730, '1', 1, '2024-09-13 17:24:55', 101, NULL, NULL, 1, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523641658904578, '1', 1, '2024-09-13 17:24:55', 101, NULL, NULL, 1, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523641918951426, '1', 1, '2024-09-13 17:24:55', 101, NULL, NULL, 1, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834523642183192578, '1', 1, '2024-09-13 17:24:55', 101, NULL, NULL, 1, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524979404247041, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524979660099586, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524979920146433, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524980180193281, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524980444434433, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524980700286977, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524980964528129, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524981224574977, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524981480427522, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524981740474370, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524981996326914, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524982256373762, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524982512226305, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524982768078849, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524983032320002, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524983292366849, '1', 1, '2024-09-13 17:30:14', 101, NULL, NULL, 0, 1834136609367400450, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524983552413698, '1', 1, '2024-09-13 17:30:15', 101, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, NULL, 'top', 'Y', 'SELECT\r\n SUM( tabs_card_target_money ) AS target,\r\n SUM( tabs_card_accomplish_money ) AS accomplish,\r\n tabs_card_date AS e_date \r\nFROM\r\n example_tabs_card \r\nWHERE\r\n is_deleted = 0 \r\nGROUP BY\r\n tabs_card_date \r\nORDER BY\r\n tabs_card_date ASC \r\n LIMIT 12', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"SELECT\\r\\n\\tSUM( tabs_card_target_money ) AS target,\\r\\n\\tSUM( tabs_card_accomplish_money ) AS accomplish,\\r\\n\\ttabs_card_date AS e_date \\r\\nFROM\\r\\n\\texample_tabs_card \\r\\nWHERE\\r\\n\\tis_deleted = 0 \\r\\nGROUP BY\\r\\n\\ttabs_card_date \\r\\nORDER BY\\r\\n\\ttabs_card_date ASC \\r\\n\\tLIMIT 12\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"#{e_date}\",\"bar_y\":\"目标金额 成交金额\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"bar\"},\"summaryControl\":\"bar\",\"summarySpan\":24}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834524983812460545, '1', 1, '2024-09-13 17:30:15', 101, NULL, '2024-12-03 13:59:14', 0, 1834136609367400450, NULL, 'top', 'Y', 'SELECT\r\n tabs_card_target_money AS target,\r\n tabs_card_accomplish_money AS accomplish,\r\n tabs_card_percentage_complete AS wcl \r\nFROM\r\n example_tabs_card \r\nWHERE\r\n is_deleted = 0 \r\nORDER BY\r\n tabs_card_date DESC \r\n LIMIT 1', '', '{\"summarySql\":{\"sqlObj\":{\"top\":[],\"buttom\":[]},\"valueType\":\"custom\",\"custom\":\"SELECT\\r\\n\\ttabs_card_target_money AS target,\\r\\n\\ttabs_card_accomplish_money AS accomplish,\\r\\n\\ttabs_card_percentage_complete AS wcl \\r\\nFROM\\r\\n\\texample_tabs_card \\r\\nWHERE\\r\\n\\tis_deleted = 0 \\r\\nORDER BY\\r\\n\\ttabs_card_date DESC \\r\\n\\tLIMIT 1\",\"group\":\"SELECT FROM (#{jeelowcode_summary_table}) tbl \",\"formattingObj\":{\"text\":\"目标金额 :¥#{target},成交金额 :¥#{accomplish},完成率:#{wcl} %\",\"card_name\":\"\",\"card_value\":\"\",\"line_x\":\"\",\"line_y\":\"\",\"line_y_unit\":\"\",\"bar_x\":\"\",\"bar_y\":\"\",\"bar_y_unit\":\"\",\"pie_value\":\"\",\"pie_name\":\"\",\"pie_unit\":\"\"},\"summaryControl\":\"text\"},\"summaryControl\":\"text\",\"summarySpan\":12}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764910092017665, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764910482087938, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'sno', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764910935072770, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764911388057601, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764911975260161, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764912298221569, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'flag', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764912684097537, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'classe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764913069973506, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'score_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764913531346945, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764913984331778, '1', 1, '2024-09-14 09:23:38', 101, NULL, NULL, 0, 1833031105253642242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764914244378626, '1', 1, '2024-09-14 09:23:39', 101, NULL, NULL, 0, 1833031105253642242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764914504425473, '1', 1, '2024-09-14 09:23:39', 101, NULL, NULL, 0, 1833031105253642242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764914768666625, '1', 1, '2024-09-14 09:23:39', 101, NULL, NULL, 0, 1833031105253642242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764915091628033, '1', 1, '2024-09-14 09:23:39', 101, NULL, NULL, 0, 1833031105253642242, 'update_time', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1834764915418783746, '1', 1, '2024-09-14 09:23:39', 101, NULL, NULL, 0, 1833031105253642242, 'is_deleted', 'bottom', '', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298987309182978, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298987569229826, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_picture', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298987816693761, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'commodity_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298988072546306, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298988328398850, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'hh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298988580057090, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'specifications', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298988873658369, '1', 1, '2024-09-18 14:59:30', 101, NULL, NULL, 0, 1836298963389067265, 'num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298989129510913, '1', 1, '2024-09-18 14:59:30', 101, 1, '2024-09-19 13:57:52', 0, 1836298963389067265, 'subtotal', 'bottom', 'Y', 'sum', '合计', '{\"sqlType\":\"sum\",\"sqlValue\":\"SELECT SUM(price * num) AS subtotal FROM example_order_commodity WHERE is_deleted = 0\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298989381169154, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298989628633089, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298989884485633, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298990140338177, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298990391996417, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298990647848961, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836298990903701506, '1', 1, '2024-09-18 14:59:31', 101, NULL, NULL, 0, 1836298963389067265, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318540839858178, '1', 1, '2024-09-18 16:17:12', 101, NULL, NULL, 0, 1836318516001189890, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318541099905025, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318541368340481, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'manipulator', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318541636775937, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'order_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318541905211393, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'payment_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318542173646850, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'delivery_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318542437888001, '1', 1, '2024-09-18 16:17:12', 101, 1, '2024-09-18 16:21:50', 0, 1836318516001189890, 'view', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318542697934849, '1', 1, '2024-09-18 16:17:12', 101, NULL, NULL, 1, 1836318516001189890, 'subtotal', 'bottom', 'N', 'select price * num from example_order_commodity', '合计', '{\"sqlType\":\"custom\",\"sqlValue\":\"select price * num from example_order_commodity\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318543004119041, '1', 1, '2024-09-18 16:17:12', 101, NULL, NULL, 0, 1836318516001189890, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318543272554498, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318543532601345, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318543801036802, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318544061083650, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318544333713409, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1836318544593760257, '1', 1, '2024-09-18 16:17:13', 101, NULL, NULL, 0, 1836318516001189890, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141834647855105, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141834891124737, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141835138588674, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141835373469697, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141835620933633, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141835864203266, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141836099084289, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838141836346548225, '1', 1, '2024-09-23 17:02:19', 101, NULL, NULL, 0, 1838141821641318402, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392403710992386, '1', 1, '2024-09-24 09:37:59', 101, NULL, NULL, 0, 1838392378859741185, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392403954262018, '1', 1, '2024-09-24 09:37:59', 101, NULL, NULL, 0, 1838392378859741185, 'bh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392404201725954, '1', 1, '2024-09-24 09:37:59', 101, NULL, NULL, 0, 1838392378859741185, 'company_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392404453384193, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'customer_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392404696653826, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'industry_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392404948312066, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'customer_source', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392405195776002, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'add_people', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392405439045633, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'customer_star', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392405694898177, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 1, 1838392378859741185, 'update_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392405938167809, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392406181437441, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392406428901378, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392406680559617, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392406923829250, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392407175487489, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838392407473283073, '1', 1, '2024-09-24 09:38:00', 101, NULL, NULL, 0, 1838392378859741185, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494754618798082, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494754815930369, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'sr', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755008868353, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755206000641, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755390550017, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'sg', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755591876609, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'tz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755789008898, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'sj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494755981946881, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'dz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494756170690561, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'xs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494756363628545, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'zt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494756552372225, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494756749504514, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494756946636801, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494757135380481, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494757332512770, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494757533839362, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838494757726777345, '1', 1, '2024-09-24 16:24:42', 101, NULL, NULL, 0, 1838494733815050242, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505744899051521, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505745163292673, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'bh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505745414950914, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'company_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505745666609153, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'customer_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505745926656002, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'industry_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505746190897153, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'customer_source', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505746446749698, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 0, 1838505719016001538, 'customer_star', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505746702602242, '1', 1, '2024-09-24 17:08:22', 101, NULL, NULL, 1, 1838505719016001538, 'add_people', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505746958454786, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'attributable_person', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505747210113025, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505747465965569, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505747721818113, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505747973476353, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505748229328897, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505748485181441, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838505748741033985, '1', 1, '2024-09-24 17:08:23', 101, NULL, NULL, 0, 1838505719016001538, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838508242372202497, '1', 1, '2024-09-24 17:18:17', 101, NULL, NULL, 1, 1838505719016001538, 'add_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838508242615472130, '1', 1, '2024-09-24 17:18:18', 101, NULL, NULL, 1, 1838505719016001538, 'update_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748872562245634, '1', 1, '2024-09-25 09:14:28', 101, NULL, NULL, 0, 1838748849153835009, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748872809709570, '1', 1, '2024-09-25 09:14:28', 101, NULL, NULL, 0, 1838748849153835009, 'bh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748873061367809, '1', 1, '2024-09-25 09:14:28', 101, NULL, NULL, 0, 1838748849153835009, 'gsmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748873317220353, '1', 1, '2024-09-25 09:14:28', 101, 1, '2024-09-25 09:27:11', 1, 1838748849153835009, 'khzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748873564684289, '1', 1, '2024-09-25 09:14:28', 101, NULL, NULL, 1, 1838748849153835009, 'hylx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748873812148225, '1', 1, '2024-09-25 09:14:28', 101, NULL, NULL, 0, 1838748849153835009, 'khly', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748874080583681, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 1, 1838748849153835009, 'tjry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748874332241921, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 1, 1838748849153835009, 'gxsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748874575511554, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748874827169794, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748875074633729, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748875326291969, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748875573755905, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748875821219841, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838748876068683778, '1', 1, '2024-09-25 09:14:29', 101, NULL, NULL, 0, 1838748849153835009, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838750714214023170, '1', 1, '2024-09-25 09:21:47', 101, NULL, NULL, 0, 1838748849153835009, 'djbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838752960431587329, '1', 1, '2024-09-25 09:30:43', 101, NULL, NULL, 0, 1838748849153835009, 'khzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838752960683245569, '1', 1, '2024-09-25 09:30:43', 101, NULL, NULL, 0, 1838748849153835009, 'hylx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754196123877377, '1', 1, '2024-09-25 09:35:37', 101, NULL, NULL, 0, 1838754174162501633, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754196346175489, '1', 1, '2024-09-25 09:35:37', 101, NULL, NULL, 0, 1838754174162501633, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754196568473601, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'classification_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754196786577409, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'classification_number', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754197000486913, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754197222785026, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'quantity_goods', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754197432500225, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 1, 1838754174162501633, 'add_people', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754197654798338, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 1, 1838754174162501633, 'update_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754197872902146, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'note_information', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754198091005954, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754198313304065, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754198531407874, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754198749511682, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754198967615489, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754199185719297, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838754199403823106, '1', 1, '2024-09-25 09:35:38', 101, NULL, NULL, 0, 1838754174162501633, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824834809253890, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824835073495042, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'bh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824835325153281, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'gsmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824835585200130, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'khly', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824835849441282, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'tjry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824836109488129, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'gxsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824836369534977, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824836633776129, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824836889628673, '1', 1, '2024-09-25 14:16:19', 101, NULL, NULL, 0, 1838824808796180481, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824837149675521, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824837409722370, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824837669769218, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824837934010370, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824838189862914, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 1, 1838824808796180481, 'djbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824838454104066, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'khzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838824838709956609, '1', 1, '2024-09-25 14:16:20', 101, NULL, NULL, 0, 1838824808796180481, 'hylx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826578977017858, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'zt_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826579241259009, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'zt_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826579492917249, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'zt_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826579757158402, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'dz_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826580029788162, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'sc_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838826580285640705, '1', 1, '2024-09-25 14:23:15', 101, NULL, NULL, 0, 1838141821641318402, 'pl_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855952690339841, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855952950386689, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'crad_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855953210433538, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'crad_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855953462091778, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'card_describe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855953717944321, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855953973796866, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855954229649410, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855954489696257, '1', 1, '2024-09-25 16:19:58', 101, NULL, NULL, 0, 1838855934516420610, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855954741354498, '1', 1, '2024-09-25 16:19:59', 101, NULL, NULL, 0, 1838855934516420610, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855954993012737, '1', 1, '2024-09-25 16:19:59', 101, NULL, NULL, 0, 1838855934516420610, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1838855955240476674, '1', 1, '2024-09-25 16:19:59', 101, NULL, NULL, 0, 1838855934516420610, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1839512449489432578, '1', 1, '2024-09-27 11:48:39', 101, NULL, NULL, 0, 1838494733815050242, 'xb', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268815036325889, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268815296372738, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'order_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268815543836674, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'total_order_amount', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268815787106306, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'approval_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268816068124673, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'received_amount', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268816323977218, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'invoiced_amount', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268816571441153, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268816818905090, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268817074757633, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268817322221569, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268817578074114, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268817829732353, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840268818081390594, '1', 1, '2024-09-29 13:54:11', 101, NULL, NULL, 0, 1840268794366795777, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577533150003201, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577533384884226, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'login_tp', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577533607182338, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'login_system', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577533821091841, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'login_address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577534043389953, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'login_ip', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577534261493762, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577534483791874, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577534706089985, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577534928388097, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577535142297602, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577535360401409, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840577535582699522, '1', 1, '2024-09-30 10:20:55', 101, NULL, NULL, 0, 1840577516125323266, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642775674601473, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642775947231234, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642776211472385, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642776484102146, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642776748343298, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642777016778754, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642777281019906, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642777549455362, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642777817890817, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642778077937666, '1', 1, '2024-09-30 14:40:10', 101, NULL, NULL, 0, 1840642756645044226, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840642778350567426, '1', 1, '2024-09-30 14:40:11', 101, NULL, NULL, 0, 1840642756645044226, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646357358559233, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646357606023170, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646357845098497, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'birthday', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646358092562433, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'sex', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646358335832066, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'stature', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646358583296002, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'weight', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646358826565634, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646359069835265, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'contact_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646359313104897, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'hobbies', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646359547985921, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'educational', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646359791255553, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'major_course', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646360030330881, '1', 1, '2024-09-30 14:54:24', 101, NULL, NULL, 0, 1840646327436394498, 'software_skill', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646360269406209, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'introduce', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646360546230273, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646360789499906, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646361032769537, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646361267650562, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646361510920193, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646361741606914, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840646361989070849, '1', 1, '2024-09-30 14:54:25', 101, NULL, NULL, 0, 1840646327436394498, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1840670043381723138, '1', 1, '2024-09-30 16:28:31', 101, NULL, NULL, 0, 1840642756645044226, 'rich_text', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476406377910274, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476406596014081, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'icon', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476406814117890, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476407028027393, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'introduce', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476407250325506, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'switch', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476407460040705, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476407678144513, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476407892054018, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476408105963522, '1', 1, '2024-10-08 10:20:00', 101, NULL, NULL, 0, 1843476389638443010, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476408324067329, '1', 1, '2024-10-08 10:20:01', 101, NULL, NULL, 0, 1843476389638443010, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476408542171137, '1', 1, '2024-10-08 10:20:01', 101, NULL, NULL, 0, 1843476389638443010, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1843476408756080641, '1', 1, '2024-10-08 10:20:01', 101, NULL, NULL, 0, 1843476389638443010, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963089174530, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963118534657, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963143700482, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddje', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963173060610, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963198226434, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'zfss', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963231780866, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'ddly', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963256946689, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'yhzh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963282112514, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tjsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963303084033, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963332444162, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963361804289, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963382775809, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963412135937, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963441496065, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844275963462467586, '1', 1, '2024-10-10 15:17:09', 101, NULL, NULL, 0, 1844275960258019330, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844278209264795649, '1', 1, '2024-10-10 15:26:05', 101, NULL, NULL, 0, 1844275960258019330, 'ddlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844582486461919234, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'bz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844582486495473666, '1', 1, '2024-10-11 11:35:10', 101, NULL, NULL, 0, 1844275960258019330, 'gbyy', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970480381953, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970509742082, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970530713602, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970555879425, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970585239553, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'clry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970614599682, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'gdzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970639765506, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'jycd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970660737025, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tjsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970690097154, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970715262977, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970744623106, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970765594625, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970790760449, '1', 1, '2024-10-11 14:08:05', 101, NULL, NULL, 0, 1844620967619866625, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970824314882, '1', 1, '2024-10-11 14:08:06', 101, NULL, NULL, 0, 1844620967619866625, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844620970845286402, '1', 1, '2024-10-11 14:08:06', 101, NULL, NULL, 0, 1844620967619866625, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844624185435369473, '1', 1, '2024-10-11 14:20:52', 101, NULL, NULL, 0, 1844620967619866625, 'ddsc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844626319333666818, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'glkh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844626319358832641, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gldd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844626319383998465, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'gdms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844626319413358594, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'csry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1844626319446913026, '1', 1, '2024-10-11 14:29:21', 101, NULL, NULL, 0, 1844620967619866625, 'scfj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012518925774849, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012518955134978, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'wjm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012518976106498, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'dx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519005466626, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519034826753, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'scry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519059992577, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'bznr', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519080964098, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519110324225, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519131295746, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519160655874, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519190016001, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519215181826, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845012519236153346, '1', 1, '2024-10-12 16:03:58', 101, NULL, NULL, 0, 1845012516400803842, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392240852994, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392274407425, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392307961857, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392333127682, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392362487809, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392387653633, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392412819458, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392437985281, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392467345409, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'user_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392488316930, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'membership_level', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392517677057, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'user_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392542842882, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'order_record', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392572203010, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'consumption_amount', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392597368833, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'available_points', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392622534657, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'user_label', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845019392651894785, '1', 1, '2024-10-12 16:31:17', 101, NULL, NULL, 0, 1845019389086736386, 'registration_channel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1845023447080050690, '1', 1, '2024-10-12 16:47:23', 101, NULL, NULL, 0, 1845019389086736386, 'zcsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'pid', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417477, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'sjbm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417478, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417479, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'cysl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417480, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'zgry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417481, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'bmms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417482, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417483, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417484, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417485, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417486, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417487, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417488, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846009559581417489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846009550756601857, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617089, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617090, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:37', 0, 1846073998846337026, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617091, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:37', 0, 1846073998846337026, 'phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617092, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:37', 0, 1846073998846337026, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617093, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:25:37', 0, 1846073998846337026, 'default_address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617094, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617095, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617096, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617097, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617098, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617099, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074005414617100, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846074930871017473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846073998846337026, 'yzbm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703361, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zwms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703364, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'zt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703365, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'cysl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703366, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'bmms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703367, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703368, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703369, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703370, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703371, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703372, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703373, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846083512194703374, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846083503466356737, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838915, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'sj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838916, NULL, NULL, NULL, NULL, NULL, '2024-10-15 15:49:57', 0, 1846095079682482177, 'points_change', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838917, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838918, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'industry_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838919, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_source', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838920, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'add_people', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838921, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846095079682482177, 'customer_star', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838922, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838923, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838924, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838925, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838926, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838927, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846095088108838928, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846096156293210114, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846095079682482177, 'points_balance', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333698, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'ip', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333699, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333700, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333701, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333702, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333703, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333704, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333705, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333706, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846100518918823938, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846100524434333707, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:09:08', 0, 1846100518918823938, 'dlfs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968771, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:30', 0, 1846103236139950082, 'czz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968772, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:30', 0, 1846103236139950082, 'cz_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968773, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968774, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968775, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968776, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968777, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968779, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846103236139950082, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846103243047968780, NULL, NULL, NULL, NULL, NULL, '2024-10-15 16:22:30', 0, 1846103236139950082, 'czxq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237442, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'xm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237443, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'bm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237444, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237445, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237446, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237447, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237448, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237449, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846121746610237450, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846124102953447425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zw', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846124102953447426, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846126580939862018, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'phone', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846126580939862019, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zxzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846126580939862020, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846121741006647298, 'zhdl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178946, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178947, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'xm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178948, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'bm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178949, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tjsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178950, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178951, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178952, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846429445684178956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846429439782793217, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301762, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301763, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'ip', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301764, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301765, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301766, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301767, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301768, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301769, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301770, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301771, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846734671469301772, NULL, NULL, NULL, NULL, NULL, '2024-10-17 10:24:25', 0, 1846734665412726786, 'zdlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846739007926632450, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'bb', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846739007926632451, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'czxt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846739007926632452, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'sbmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846739007926632453, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846734665412726786, 'macdz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702785, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702786, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'ip', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702787, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'address', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702788, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702789, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702790, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702791, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702792, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702793, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702794, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1846747363458351106, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702795, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702796, NULL, NULL, NULL, NULL, NULL, '2024-10-17 11:00:14', 0, 1846747363458351106, 'czxq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702797, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'czxt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702798, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'sbmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846747372035702799, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846747363458351106, 'macdz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819970, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819971, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'turnover', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819972, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'order_quantity', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819973, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'page_views', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819974, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'visitors', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819975, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'registered_users', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819976, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'members', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819977, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'day', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819978, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819979, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819980, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819981, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819982, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819983, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1846853881940819984, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289281, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289282, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jbxx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289283, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289284, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289285, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289286, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmjd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289287, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'zhgx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289288, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'xmcy', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289289, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:41', 0, 1847094468974710786, 'xmzs', 'bottom', 'N', 'sum', '', '{\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289290, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:41', 0, 1847094468974710786, 'jxz', 'bottom', 'N', 'sum', '', '{\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289291, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:41', 0, 1847094468974710786, 'ywc', 'bottom', 'N', 'sum', '', '{\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289292, NULL, NULL, NULL, NULL, NULL, '2024-11-15 15:38:41', 0, 1847094468974710786, 'yyq', 'bottom', 'N', 'sum', '', '{\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289293, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289294, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289295, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289296, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289297, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847094482392289299, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388801, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388804, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'jzsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388805, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'urgent_relief', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388806, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'xmmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388807, NULL, NULL, NULL, NULL, NULL, '2024-10-18 10:42:47', 0, 1847103675560071169, 'lys', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388808, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388809, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388810, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'kssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388811, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwtx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388812, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'rwms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388813, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'cyry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388814, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388815, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388816, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388817, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388818, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388819, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847103686813388820, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847104938041380865, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847103675560071169, 'cs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847150535712587778, NULL, NULL, NULL, NULL, NULL, '2024-10-18 14:46:52', 1, 1847094468974710786, NULL, 'top', 'Y', '', '项目总数', '{\"summarySql\":\"\",\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847150535712587779, NULL, NULL, NULL, NULL, NULL, '2024-10-18 14:46:52', 1, 1847094468974710786, NULL, 'top', 'Y', '', '进行中', '{\"summarySql\":\"\",\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847150535712587780, NULL, NULL, NULL, NULL, NULL, '2024-10-18 14:46:52', 1, 1847094468974710786, NULL, 'top', 'Y', '', '已完成', '{\"summarySql\":\"\",\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847150535712587781, NULL, NULL, NULL, NULL, NULL, '2024-10-18 14:46:52', 1, 1847094468974710786, NULL, 'top', 'Y', '', '已延期', '{\"summarySql\":\"\",\"summaryControl\":\"text\",\"summarySpan\":8}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380994, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380995, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'table_type', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380996, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'value', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380997, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'type_index', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380998, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079380999, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079381000, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079381001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079381002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079381003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847167251079381004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847167244620152834, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847169700440776705, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'color', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847171064071921665, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847103675560071169, 'txfs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847183467068133377, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847197500936687618, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847197500936687619, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'jssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847198276148924418, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'fzr', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847198276148924419, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'cyry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847198276148924420, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'rwbj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847198276148924421, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847094468974710786, 'kxfw', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986178, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986179, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'bh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986180, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986181, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986182, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986183, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986184, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986185, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986186, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986187, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986188, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986189, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986190, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847456820375986191, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847456813371498498, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579138, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579139, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579140, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'status', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579141, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'jzsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579142, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'urgent_relief', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579143, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'xmmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579144, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'lys', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579145, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579147, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'kssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579148, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwtx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579149, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'rwms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579150, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'cyry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579151, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579152, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579153, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579154, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579155, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579156, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579157, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579158, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'color', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847472451631579159, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'txfs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847478149442568193, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847472439438737409, 'zw', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157571, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'ranking', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157572, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157573, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'visit', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157574, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'quantity', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157575, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'cancel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157576, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'pj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157577, NULL, NULL, NULL, NULL, NULL, '2024-10-21 09:44:25', 0, 1847537155101040642, 'money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157581, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157582, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157583, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1847537164882157584, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848178494734004225, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'score', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848178494734004226, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'zeng', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848178494734004227, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847537155101040642, 'jian', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848263868122595329, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'member_visitors', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848268296795914242, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846853872583327745, 'paid_member', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'cyxm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420868, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'jrsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420869, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'bm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420870, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'js', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420871, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420872, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420873, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420875, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420876, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848301760080420877, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848301752228683777, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210369, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210370, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210371, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'crad_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210372, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'card_describe', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210373, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210374, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210375, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210376, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210377, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210378, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848631608225210379, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848631600935510017, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086913, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086915, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086916, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086917, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086918, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086919, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086920, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086921, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086922, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848637143087489025, 'zt_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086923, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:23:53', 0, 1848637143087489025, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086924, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'dz_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086925, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'sc_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848637151778086926, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848637143087489025, 'pl_num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220545, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220546, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220547, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220548, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220549, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220550, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220551, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220552, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220553, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1848649270435160066, 'zt_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220554, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:57:27', 0, 1848649270435160066, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848649277754220555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1848665318983114754, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848649270435160066, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466753, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466755, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466756, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466757, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466758, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466759, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466760, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466761, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1849365537195466762, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688578, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688579, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrfks', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688580, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyfws', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688581, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'jrhyffs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688582, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'xzhys', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688583, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688584, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688585, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688586, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688587, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688588, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850061362225688589, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850061360061427714, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'fkl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056900, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'sj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056901, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056902, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056903, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056904, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850092584591056907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850092582611345409, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215362, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215363, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'xse', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215364, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'rq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215365, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215366, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215367, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215368, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215369, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215370, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850094922563215371, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850094920386371586, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850102552362917890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847472439438737409, 'title_copy', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784706, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784707, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'sm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784708, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'nz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784709, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'my', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784710, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'xb', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784711, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'rq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784712, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'je', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784713, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784716, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784717, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784718, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850109348611784719, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850109346514632706, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472067, NULL, NULL, NULL, NULL, NULL, '2024-10-28 14:03:50', 0, 1850723645460291586, 'kssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472071, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472072, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850723647536472074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823425, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823426, NULL, NULL, NULL, NULL, NULL, '2024-10-29 13:45:06', 0, 1850724499567386625, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823427, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823428, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823429, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823430, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823431, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823432, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850724501454823433, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850726016752001025, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'rl_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850780442498854914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'sub_more_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850780490757545985, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850723645460291586, 'jssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1850819897800658945, NULL, NULL, NULL, NULL, NULL, '2024-10-29 10:43:47', 1, 1849365535287058433, 'aaa', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687169, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'bbb', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687170, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ccc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687171, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ddd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687172, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'eee', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687173, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'fff', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687174, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'ggg', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851092534359687175, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1849365535287058433, 'hhh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851137194583052289, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1850724499567386625, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851137194583052290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1850724499567386625, 'ms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322241, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322242, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322243, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322244, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tdjs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322245, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cytx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322246, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322247, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322248, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322249, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322250, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322251, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851205233261322252, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446530, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446531, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446532, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_target_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446533, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_money', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446534, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_accomplish_form', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446535, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_percentage_complete', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446536, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_average_price', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446537, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_department', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446538, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tabs_card_personnel', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446539, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446540, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446541, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446542, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446543, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446544, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851509265863446545, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851509263837597697, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851511409555443714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'cy', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851511409555443715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'xm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851511409555443716, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851205230887346177, 'rw', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236802, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236803, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236804, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236805, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236806, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236807, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236808, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236809, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236810, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236811, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851796251564236812, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851802086336008194, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'time_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851882905439256577, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1851921955403546625, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851796249232203778, 'img_copy', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852169867974893569, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851796249232203778, 'zt_box', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968643, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm_name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968644, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'cyxm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968645, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'rwzs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968646, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'ywc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968647, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'dwc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968648, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yyq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968649, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'yql', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'wcl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968651, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968652, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968653, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968654, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968655, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968656, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852234475225968657, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852234473116233730, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845699, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845700, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845701, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845702, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845703, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845704, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845705, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845706, NULL, NULL, NULL, NULL, NULL, '2024-11-01 14:55:28', 0, 1852241979997646849, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845707, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852241979997646849, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845708, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'time_test', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845709, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852241982354845710, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852241979997646849, 'zt_box', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637377, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637378, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637379, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637380, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637381, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637382, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637383, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637384, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637385, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637386, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637387, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852557614929637388, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1852557612677296129, 'sjlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'xm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467716, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467717, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'zw', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467718, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'gs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467719, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'sj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467720, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'yx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467721, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467722, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'dz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467723, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'color', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467724, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:30:06', 0, 1852624838914699265, 'lx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467725, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467726, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467727, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467728, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467729, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467730, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1852624840852467731, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1852624838914699265, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240899, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240900, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240901, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bglx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240902, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'ssbm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240903, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240904, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'tjsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240907, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240908, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240909, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240910, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853269841324240911, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853285293513469953, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'bgrq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853285293513469954, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzzj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853285293513469955, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'gzjh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853285293513469956, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853285293513469957, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'pyry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853327907746967553, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1853269839533273090, 'csry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1853337383518564354, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853269839533273090, 'menu_box', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062465, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062467, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062468, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062469, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062470, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062471, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062472, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggzt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062473, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'gglx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062474, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'jsry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062475, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854048265840062476, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948930, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948931, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948932, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948933, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'ssmk', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948934, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czdx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948935, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'czlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948936, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948937, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948938, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948939, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948940, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948941, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854067253101948942, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854067250698612737, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173507, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'spbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173508, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'spsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173509, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'spry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173510, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'splx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173511, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'ywbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173512, NULL, NULL, NULL, NULL, NULL, '2024-11-07 09:20:00', 0, 1854331399533998082, 'tjsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173514, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173515, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173516, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173517, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173518, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854331401761173519, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854332941402091521, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854331399533998082, 'spjg', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590338, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590339, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spbh', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590340, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:35', 0, 1854341001851940865, 'dlsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590341, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854341001851940865, 'spry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590342, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:35', 0, 1854341001851940865, 'zdlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590343, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:35', 0, 1854341001851940865, 'llq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590344, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:35', 0, 1854341001851940865, 'czxt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590345, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590346, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590347, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590348, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590349, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590350, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590351, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854341004024590352, NULL, NULL, NULL, NULL, NULL, '2024-11-07 10:04:35', 0, 1854341001851940865, 'sbmc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854344160179630082, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'ss', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854344160179630083, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'macdz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854344160179630084, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlIP', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854344160179630085, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'szdq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854344160179630086, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854341001851940865, 'dlry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854350567234842625, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'ggxq', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854350567234842626, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbsj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854350567234842627, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854353316450119681, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854353316450119682, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'plsz', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854353316450119683, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'txfs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854365907134164994, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854048263491252226, 'fbry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455554, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455555, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455556, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455557, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455558, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455559, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455560, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455561, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455562, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bktx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455563, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htbk', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455564, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'bkjs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455565, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'cytx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455566, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'htsl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854408559074455567, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854408557228961794, 'hfsl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854422862113411073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854048263491252226, 'fbry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336002, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'img', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336003, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336004, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'text', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336005, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336006, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336007, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336008, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336009, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336010, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854438274510336011, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854440297704173570, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854440297704173571, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'cp_text', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854440297704173572, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854451639035080706, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'num', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560257, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560258, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560259, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560260, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560261, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560262, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560263, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560264, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560265, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560266, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'content', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854695848350560267, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854695846278574082, 'time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584641, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584643, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584644, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584645, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584646, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584647, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584648, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584649, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'cytx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'htbt', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584651, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'lll', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854716970953584652, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'hfl', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854727998928039937, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854438272522235905, 'llcs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854766852733120513, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'sd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854766852733120514, NULL, NULL, NULL, NULL, NULL, '2024-11-08 14:48:24', 0, 1854716968965484545, 'zd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854766852733120515, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1854716968965484545, 'rm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854777973259087874, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'rm', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1854777973259087875, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1854716968965484545, 'zdrm_tit', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364289, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364290, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364291, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364292, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364293, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364294, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364295, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364296, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364297, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364298, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sub_more_date', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856505239844364299, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'jssj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194561, NULL, NULL, NULL, NULL, NULL, '2024-11-13 09:35:23', 1, 1856505236472143874, 'title', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194562, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'sjlx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194563, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cfrc', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194564, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'cyry', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194565, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'kjcd', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194566, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcbj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194567, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rctx', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194568, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'txfs', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194569, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'rcms', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1856507610016194570, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1856505236472143874, 'fj', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1859429351327727617, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1831577841380671489, 'aba', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413059, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'name', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'age', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413061, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'tenant_id', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413062, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413063, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413064, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'create_dept', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413065, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_user', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'update_time', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); +INSERT INTO `lowcode_dbform_summary` VALUES (1872882476602413067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1872882476103290882, 'is_deleted', 'bottom', 'N', '', '', '{\"sqlType\":\"\",\"sqlValue\":\"\"}'); + +-- ---------------------------- +-- Table structure for lowcode_desform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_desform`; +CREATE TABLE `lowcode_desform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` int(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `desform_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单设计名称', + `desform_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表单设计JSON', + `group_desform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单设计分组id', + `is_open` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否开放', + `is_template` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否模板', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Web表单设计' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_desform +-- ---------------------------- +INSERT INTO `lowcode_desform` VALUES (1826445808547426305, '1', 1, '2024-08-22 10:26:29', 101, 1, '2024-08-22 10:29:06', 0, '流程测试-请假-部门管理员审核', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_7337406\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"测试1\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"fields_3190211\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"部门\",\"findType\":\"all\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"fields_8215121\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"测试2\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"fields_6632076\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"测试3\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]}},\"group\":[]}', 1820725650445041666, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1829756210681274369, '1', 1, '2024-08-31 13:40:51', 101, 1, '2024-11-21 09:32:05', 0, '客户-公司基本信息', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"company_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelTip\":\"请填写营业执照上完整的公司名称\"},\"position_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"当前职位\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"city_name\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"ss\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"client_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"电话营销\",\"value\":\"1\"},{\"label\":\"主动来电\",\"value\":\"2\"},{\"label\":\"客户介绍\",\"value\":\"3\"},{\"label\":\"朋友介绍\",\"value\":\"4\"},{\"label\":\"独立开发\",\"value\":\"5\"},{\"label\":\"网络搜索\",\"value\":\"6\"},{\"label\":\"广告杂志\",\"value\":\"7\"},{\"label\":\"展会促销\",\"value\":\"8\"},{\"label\":\"其它途径\",\"value\":\"9\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[]},\"industry_type\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"家用电器\",\"value\":\"1\"},{\"label\":\"交通运输\",\"value\":\"2\"},{\"label\":\"商务服务\",\"value\":\"3\"},{\"label\":\"家居用品\",\"value\":\"4\"},{\"label\":\"电工电气\",\"value\":\"5\"},{\"label\":\"数码产品\",\"value\":\"6\"},{\"label\":\"通信产品\",\"value\":\"7\"},{\"label\":\"办公文教\",\"value\":\"8\"},{\"label\":\"运动休闲\",\"value\":\"9\"},{\"label\":\"传媒广电\",\"value\":\"10\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[]},\"client_level\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户星级\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"一星客户\",\"value\":\"1\"},{\"label\":\"二星客户\",\"value\":\"2\"},{\"label\":\"三星客户\",\"value\":\"3\"},{\"label\":\"四星客户\",\"value\":\"4\"},{\"label\":\"五星客户\",\"value\":\"5\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[]},\"linkman_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"首联系人\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"client_state\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"了解产品\",\"value\":\"1\"},{\"label\":\"正在跟进\",\"value\":\"2\"},{\"label\":\"正在试用\",\"value\":\"3\"},{\"label\":\"准备购买\",\"value\":\"4\"},{\"label\":\"准备付款\",\"value\":\"5\"},{\"label\":\"已经购买\",\"value\":\"6\"},{\"label\":\"暂时搁置\",\"value\":\"7\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[]},\"linkman_phone\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"verifyConfig\":\"[{\\\"label\\\":\\\"手机号码\\\",\\\"type\\\":\\\"phone\\\",\\\"msg\\\":\\\"请输入正确格式的手机号码\\\",\\\"prop\\\":\\\"option_9889991\\\",\\\"display\\\":true}]\"},\"ownership_user\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1829756992465985538, '1', 1, '2024-08-31 13:43:57', 101, 1, '2024-09-14 17:34:42', 0, '客户-公司详细信息', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"company_logo\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"公司LOGO\",\"listType\":\"picture-card\",\"accept\":\"image/*\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"company_address\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"详细地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"company_phone\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"company_fax\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司传真\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"company_url\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"prepend\":\"https://\"},\"company_introduce\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"公司介绍\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":300}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1829757052494864386, '1', 1, '2024-08-31 13:44:11', 101, 1, '2024-09-14 17:34:51', 0, '客户-公司财务信息', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"finance_duty\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"finance_rise\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"finance_bank\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"finance_account\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"银行账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"finance_phone\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"电话号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"finance_address\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"单位地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1833063456320286721, '1', 1, '2024-09-09 16:42:39', 101, 1, '2024-09-10 13:59:14', 0, '客户-基本信息', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"customer_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"客户名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"system_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"系统编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"customer_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"了解产品\",\"value\":\"1\"},{\"label\":\"正在跟进\",\"value\":\"2\"},{\"label\":\"正在试用\",\"value\":\"3\"},{\"label\":\"准备购买\",\"value\":\"4\"},{\"label\":\"准备付款\",\"value\":\"5\"},{\"label\":\"已经购买\",\"value\":\"6\"},{\"label\":\"暂时搁置\",\"value\":\"7\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"type_of_industry\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"家用电器\",\"value\":\"1\"},{\"label\":\"交通运输\",\"value\":\"2\"},{\"label\":\"商务服务\",\"value\":\"3\"},{\"label\":\"家居用品\",\"value\":\"4\"},{\"label\":\"电工电气\",\"value\":\"5\"},{\"label\":\"数码产品\",\"value\":\"6\"},{\"label\":\"通信产品\",\"value\":\"7\"},{\"label\":\"办公文教\",\"value\":\"8\"},{\"label\":\"运动休闲\",\"value\":\"9\"},{\"label\":\"传媒广电\",\"value\":\"10\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"customer_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"电话营销\",\"value\":\"1\"},{\"label\":\"主动来电\",\"value\":\"2\"},{\"label\":\"客户介绍\",\"value\":\"3\"},{\"label\":\"朋友介绍\",\"value\":\"4\"},{\"label\":\"独立开发\",\"value\":\"5\"},{\"label\":\"网络搜索\",\"value\":\"6\"},{\"label\":\"广告杂志\",\"value\":\"7\"},{\"label\":\"展会促销\",\"value\":\"8\"},{\"label\":\"其它途径\",\"value\":\"9\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"customer_rating\":{\"type\":\"rate\",\"controlType\":\"rate\",\"label\":\"客户星级\",\"texts\":[],\"colors\":[],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":0},\"now_city\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"ssq\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"\"},\"vesting_officer\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"update_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"更新时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":[]}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1833076541672169474, '1', 1, '2024-09-09 17:34:39', 101, 1, '2024-09-19 10:34:36', 0, '客户-详细信息', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"head_contact\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"首联系人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"phone_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"verifyConfig\":\"[{\\\"label\\\":\\\"手机号码\\\",\\\"type\\\":\\\"phone\\\",\\\"msg\\\":\\\"请输入正确格式的手机号码\\\",\\\"prop\\\":\\\"option_1408766\\\",\\\"display\\\":true}]\"},\"current_title\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"当前职位\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"市场与销售总监\",\"value\":\"1\"},{\"label\":\"销售经理\",\"value\":\"2\"},{\"label\":\"渠道发展经理\",\"value\":\"3\"},{\"label\":\"售前技术支持经理\",\"value\":\"4\"},{\"label\":\"总经理\",\"value\":\"5\"},{\"label\":\"普通员工\",\"value\":\"6\"},{\"label\":\"财务\",\"value\":\"7\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"detailed_address\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"详细地址\",\"regionType\":\"ssq\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"\"},\"company_tel\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"company_web\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"verifyConfig\":\"[{\\\"label\\\":\\\"网址\\\",\\\"type\\\":\\\"url\\\",\\\"msg\\\":\\\"请输入正确格式的网址\\\",\\\"prop\\\":\\\"option_225572\\\",\\\"display\\\":true}]\"},\"invoice_title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"company_tax\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"deposit_bank\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1833427992183988225, '1', 1, '2024-09-10 16:51:11', 101, 1, '2024-10-23 10:10:39', 0, '标签页表单设计示例', '{\"jsEnhance\":\"return {\\n}\\n\",\"scssEnhance\":\".low-form__1833427992183988225 {\\n padding: 40px !important;\\n background-color: white;\\n border: 1px solid #e4e7ed;\\n border-radius: 4px;\\n\\n .el-form {\\n .el-row {\\n border: none !important;\\n margin: 0 !important;\\n }\\n }\\n\\n .location_box {\\n .el-form-item {\\n position: absolute;\\n width: 100%;\\n left: 0;\\n top: 0;\\n }\\n\\n }\\n\\n .btn_group_class {\\n text-align: center;\\n\\n .el-button {\\n .mr-3px {\\n width: 0;\\n margin-right: 0;\\n }\\n }\\n }\\n\\n .tabs_title_class,\\n .btn_group_class {\\n height: 60px;\\n }\\n\\n .tabs_class {\\n .el-row {\\n border: 1px solid #ebeef5 !important;\\n }\\n\\n .form-tabs {\\n margin-top: 30px !important;\\n\\n .el-tabs {\\n\\n .el-tabs__header {\\n background: #F9F9F9;\\n border: 1px solid #e4e7ed;\\n border-bottom: none;\\n border-radius: 4px 4px 0 0;\\n\\n\\n .el-tabs__active-bar {\\n width: 104px !important;\\n left: -20px;\\n }\\n\\n .el-tabs__item {\\n font-weight: 700;\\n height: 50px;\\n margin: 0 20px;\\n font-size: 16px;\\n }\\n }\\n\\n .el-tabs__content {\\n margin: 0 auto;\\n\\n\\n .el-form>.el-row {\\n padding: 20px;\\n\\n .avue-group {\\n border: 1px solid #e4e7ed;\\n }\\n }\\n\\n .el-collapse {\\n\\n .el-form-item__label {\\n height: 50px;\\n font-weight: 700;\\n font-size: 13px;\\n color: #666666;\\n background-color: #F5F5F5;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n justify-content: flex-start;\\n align-items: center;\\n padding: 0 20px;\\n\\n &::after {\\n content: \':\';\\n }\\n }\\n\\n\\n .el-form-item__content {\\n border-left: none;\\n\\n .el-input,\\n .el-rate,\\n .el-select>.el-select__wrapper,\\n .user-input {\\n height: 50px;\\n margin-top: 0;\\n font-size: 13px;\\n }\\n\\n .el-select {\\n .el-select__selected-item {\\n color: #666666;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .system_number_class,\\n .type_of_industry_class,\\n .customer_source_class,\\n .khzt_class,\\n .khxj_class,\\n .create_date_class,\\n .head_contact_class,\\n .vesting_officer_class {\\n height: 50px;\\n display: flex;\\n align-items: center;\\n }\\n\\n .tabs_title_class,\\n .btn_group_class,\\n .system_number_class,\\n .type_of_industry_class,\\n .customer_source_class,\\n .khzt_class,\\n .khxj_class,\\n .create_date_class,\\n .head_contact_class,\\n .vesting_officer_class {\\n border: none !important;\\n\\n .el-form-item {\\n width: 100%;\\n }\\n\\n .el-input__wrapper,\\n .el-select__selection {\\n font-size: 13px;\\n }\\n\\n .el-select__selected-item {\\n color: #666666 !important;\\n }\\n\\n .el-form-item__label {\\n background-color: white;\\n height: auto;\\n font-weight: 700;\\n font-size: 13px;\\n color: #999999;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n\\n &::after {\\n content: \':\';\\n }\\n }\\n\\n .el-form-item__content {\\n width: 100%;\\n border: none;\\n padding-left: 10px;\\n }\\n }\\n\\n .tabs_title_class {\\n .el-form-item {\\n .el-form-item__content {\\n padding-left: 0;\\n\\n .avue-title {\\n p {\\n color: #666670;\\n font-size: 22px;\\n margin-left: 0;\\n }\\n }\\n }\\n\\n\\n }\\n }\\n\\n .khzt_class {\\n .el-select__selected-item {\\n font-size: 14px;\\n text-align: center;\\n }\\n }\\n\\n .khxj_class {\\n .el-rate {\\n justify-content: center;\\n }\\n }\\n\\n .khzt_class,\\n .khxj_class {\\n .el-form-item__label {\\n border-bottom: none !important;\\n display: block;\\n text-align: center !important;\\n padding-left: 12px !important;\\n\\n &::after {\\n content: \'\';\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"tabs_title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"\",\"display\":true,\"span\":8,\"hideLabel\":true,\"styles\":{},\"className\":\"tabs_title_class\"},\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"主要操作\",\"prop\":\"master_btn\",\"id\":\"btn_881\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n type:\'primary\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"辅助操作\",\"prop\":\"support_btn1\",\"id\":\"btn_3844\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"辅助操作\",\"prop\":\"support_btn2\",\"id\":\"btn_7084\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n \\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":16,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"system_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"系统编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"system_number_class\"},\"type_of_industry\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":80,\"className\":\"type_of_industry_class\"},\"customer_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":5,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":80,\"className\":\"customer_source_class\"},\"customer_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":0,\"labelPosition\":\"top\",\"className\":\"khzt_class location_box\"},\"customer_rating\":{\"type\":\"rate\",\"controlType\":\"rate\",\"label\":\"客户星级\",\"texts\":[],\"colors\":[],\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":0,\"labelPosition\":\"top\",\"showScore\":false,\"showText\":false,\"allowHalf\":false,\"className\":\"khxj_class location_box\",\"offset\":0,\"labelWidth\":0},\"create_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"创建日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"value\":[],\"className\":\"create_date_class\"},\"head_contact\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"首联系人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"head_contact_class\"},\"vesting_officer\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":5,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"vesting_officer_class\"},\"tabs\":{\"type\":\"layoutTabs\",\"controlType\":\"layout\",\"title\":\"选项卡布局\",\"label\":\"\",\"params\":{\"type\":\"\",\"tabPosition\":\"top\"},\"tabsEnhanceStr\":\"\",\"column\":{\"tab_1\":{\"type\":\"tab\",\"label\":\"基本信息\",\"display\":true,\"column\":{\"tabs_customer_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"客户名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_system_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"系统编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_customer_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelWidth\":null,\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelPosition\":\"top\"},\"tabs_type_of_industry\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelWidth\":null,\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelPosition\":\"top\"},\"tabs_customer_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelWidth\":null,\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelPosition\":\"top\"},\"tabs_customer_rating\":{\"type\":\"rate\",\"controlType\":\"rate\",\"label\":\"客户星级\",\"texts\":[],\"colors\":[],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":0,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_now_city\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"s\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_vesting_officer\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_update_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"更新时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"value\":[],\"labelPosition\":\"top\"}}},\"tab_2\":{\"type\":\"tab\",\"label\":\"详情信息\",\"display\":true,\"column\":{\"tabs_head_contact\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"首联系人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_phone_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"verifyConfig\":\"[{\\\"label\\\":\\\"手机号码\\\",\\\"type\\\":\\\"phone\\\",\\\"msg\\\":\\\"请输入正确格式的手机号码\\\",\\\"prop\\\":\\\"option_9988553\\\",\\\"display\\\":true}]\",\"labelPosition\":\"top\"},\"tabs_current_title\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"当前职位\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelWidth\":null,\"dicCode\":\"current_title\",\"codeDicData\":[],\"labelPosition\":\"top\"},\"tabs_detailed_address\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"详细地址\",\"regionType\":\"ssq\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_company_tel\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_company_web\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"verifyConfig\":\"[{\\\"label\\\":\\\"网址\\\",\\\"type\\\":\\\"url\\\",\\\"msg\\\":\\\"请输入正确格式的网址\\\",\\\"prop\\\":\\\"option_252675\\\",\\\"display\\\":true}]\",\"labelPosition\":\"top\"},\"tabs_invoice_title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_company_tax\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"},\"tabs_deposit_bank\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"labelPosition\":\"top\"}}}},\"display\":true,\"span\":24,\"hideLabel\":true,\"className\":\"tabs_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1834469087501627393, '1', 1, '2024-09-13 13:48:08', 101, 1, '2024-10-23 10:06:23', 0, '订单详情-头部', '{\"jsEnhance\":\"//初始化收货人表单\\nuseFun.controlInit(\'FormView\', \'formView_xgshr\', {\\n formId: \'1834792963683192834\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {\\n }, //默认表单数据\\n enhanceData: {\\n }, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'收货人信息\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n }\\n done()\\n }\\n})\\n\\n//初始化发票表单\\nuseFun.controlInit(\'FormView\', \'formView_xgfp\', {\\n formId: \'1834837596136083458\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改发票\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgfp.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgfp.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化修改费用表单\\nuseFun.controlInit(\'FormView\', \'formView_xgfy\', {\\n formId: \'1834868566172176386\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: props.defaultData, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgfy.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgfy.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化备注订单表单\\nuseFun.controlInit(\'FormView\', \'formView_bzdd\', {\\n formId: \'1834868736150540290\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: props.defaultData, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_bzdd.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_bzdd.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化关闭订单表单\\nuseFun.controlInit(\'FormView\', \'formView_gbdd\', {\\n formId: \'1836227753657548801\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_gbdd.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_gbdd.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\nconst { formView_xgshr, formView_xgfp, formView_xgfy, formView_bzdd, formView_gbdd } = Vue.toRefs(rendControlData.value)\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value) => {\\n formView_value.value.show = true //显示FormView\\n}\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => {\\n if (formData.order_money) {\\n let je = formData.order_money\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData.order_money = \'¥\' + newJeString\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\\n\\n\\n\",\"scssEnhance\":\".low-form__1834469087501627393 {\\r\\n .el-form {\\r\\n .el-row {\\r\\n border: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn_group_class {\\r\\n\\r\\n .el-form-item {\\r\\n margin-bottom: 20px;\\r\\n }\\r\\n\\r\\n .el-button {\\r\\n color: rgb(153, 153, 153);\\r\\n font-size: 13px;\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n .tabs_class {\\r\\n .form-tabs {\\r\\n margin-top: 50px !important;\\r\\n border-top: 1px solid #eee;\\r\\n\\r\\n .el-tabs__header,\\r\\n .el-col {\\r\\n border-right: none !important;\\r\\n }\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n .mode_distribution_class,\\r\\n .order_type_class,\\r\\n .order_source_class,\\r\\n .update_date_class,\\r\\n .mode_payment_class,\\r\\n .payment_date_class {\\r\\n height: 50px;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n\\r\\n .el-form-item {\\r\\n width: 100%;\\r\\n }\\r\\n }\\r\\n\\r\\n .order_bh_class,\\r\\n .btn_group_class,\\r\\n .mode_distribution_class,\\r\\n .order_type_class,\\r\\n .order_source_class,\\r\\n .order_status_class,\\r\\n .order_money_class,\\r\\n .update_date_class,\\r\\n .mode_payment_class,\\r\\n .payment_date_class {\\r\\n border: none !important;\\r\\n\\r\\n .el-input__wrapper,\\r\\n .el-select__selection {\\r\\n font-size: 13px;\\r\\n }\\r\\n\\r\\n .el-select__selected-item {\\r\\n color: #666666 !important;\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n background-color: white;\\r\\n height: auto;\\r\\n font-weight: 700;\\r\\n font-size: 13px;\\r\\n color: #999999;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n\\r\\n &::after {\\r\\n content: \':\';\\r\\n }\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n border: none;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n }\\r\\n }\\r\\n\\r\\n // 编号\\r\\n .order_bh_class {\\r\\n .el-form-item {\\r\\n\\r\\n .el-form-item__label,\\r\\n .el-form-item__content .el-input__inner {\\r\\n font-size: 16px;\\r\\n font-weight: 700;\\r\\n color: rgb(102, 102, 102);\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n padding: 0 !important;\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n padding-left: 0;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n // 状态\\r\\n .order_status_class {\\r\\n .el-form-item__label {\\r\\n padding-left: 12px;\\r\\n }\\r\\n\\r\\n .el-select__selected-item {\\r\\n font-size: 14px;\\r\\n text-align: center;\\r\\n }\\r\\n }\\r\\n\\r\\n .order_money_class {\\r\\n text-align: center;\\r\\n\\r\\n .el-input-group__prepend {\\r\\n box-shadow: none;\\r\\n }\\r\\n\\r\\n .el-rate__icon {\\r\\n font-size: 28px;\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n .el-input__inner {\\r\\n font-size: 18px;\\r\\n text-align: center;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n .order_money_class,\\r\\n .order_status_class {\\r\\n .el-form-item {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n left: 0;\\r\\n top: 10px;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n display: block;\\r\\n border-bottom: none !important;\\r\\n text-align: center !important;\\r\\n\\r\\n &::after {\\r\\n content: \'\';\\r\\n }\\r\\n }\\r\\n }\\r\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"order_bh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":0,\"labelWidth\":90,\"className\":\"order_bh_class\",\"labelPosition\":\"left\"},\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"修改收货人\",\"prop\":\"shr_btn\",\"id\":\"btn_881\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgshr)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"修改发票\",\"prop\":\"fp_btn\",\"id\":\"btn_3844\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgfp } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgfp)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"修改费用\",\"prop\":\"fy_btn\",\"id\":\"btn_7084\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgfy } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgfy)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"备注订单\",\"prop\":\"bzdd_btn\",\"id\":\"btn_5956\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_bzdd } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_bzdd)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"关闭订单\",\"prop\":\"gbdd_btn\",\"id\":\"btn_8480\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_gbdd } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_gbdd)\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":16,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"order_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"app\",\"value\":\"1\"},{\"label\":\"小程序\",\"value\":\"2\"},{\"label\":\"web\",\"value\":\"3\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"codeDicData\":[],\"labelWidth\":90,\"className\":\"order_source_class\",\"dicCode\":\"order_source\"},\"order_type\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"order_type\",\"codeDicData\":[],\"labelWidth\":90,\"className\":\"order_type_class\"},\"update_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"提交时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":90,\"value\":[],\"className\":\"update_date_class\"},\"order_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"order_status\",\"codeDicData\":[],\"labelWidth\":0,\"labelPosition\":\"top\",\"className\":\"order_status_class\"},\"order_money\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"order_money_class\",\"prepend\":\"\",\"labelPosition\":\"top\"},\"mode_payment\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"支付方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"mode_payment\",\"codeDicData\":[],\"labelWidth\":90,\"className\":\"mode_payment_class\"},\"payment_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"支付时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":90,\"value\":[],\"className\":\"payment_date_class\"},\"mode_distribution\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"配送方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"mode_distribution\",\"codeDicData\":[],\"labelWidth\":90,\"className\":\"mode_distribution_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1834792963683192834, '1', 1, '2024-09-14 11:15:06', 101, 1, '2024-11-11 11:49:30', 0, '订单详情-修改联系人', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1834792963683192834 {\\n\\n.el-form-item--default{\\n margin: 0;\\n}\\n .el-form-item__label,\\n .el-form-item__content {\\n font-size: 14px;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n\\n //样式请写在当前位置内\\n .lxr_input_class {\\n height: 50px;\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n\\n }\\n\\n .el-form-item {\\n width: 100%;\\n }\\n\\n .el-input {\\n height: 40px;\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_4244128\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收货人姓名\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"lxr_input_class\"},\"fields_7989954\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"lxr_input_class\"},\"fields_4651320\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收货地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"lxr_input_class\"},\"fields_8330006\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮政编码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"lxr_input_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1834837596136083458, '1', 1, '2024-09-14 14:12:27', 101, 1, '2024-11-11 14:16:06', 0, '订单详情-修改发票', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n\\n // 发票类型\\n useFun.setPropConfig(\'fp_type\', {\\n control: (val, form) => {\\n if (val == 2) {\\n return {\\n fptt: {\\n display: false\\n }\\n }\\n } else {\\n return {\\n fptt: {\\n display: true\\n }\\n }\\n }\\n\\n }\\n })\\n\\n let fpttTwoList = [\'qymc\', \'qysh\', \'qydz\', \'qydh\', \'khyh\', \'yhzh\']\\n // 发票抬头\\n useFun.setPropConfig(\'fptt\', {\\n control: (val, form) => {\\n if (val == 2) {\\n let rData = {}\\n fpttTwoList.forEach(ele => {\\n rData[ele] = { display: false }\\n })\\n rData.grxm = { display: true }\\n return rData\\n } else {\\n let rData = {}\\n fpttTwoList.forEach(ele => {\\n rData[ele] = { display: true }\\n })\\n rData.grxm = { display: false }\\n return rData\\n }\\n\\n }\\n })\\n\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1834837596136083458 {\\n padding-top: 0 !important;\\n\\n .el-form-item__label,\\n .el-radio-button__inner,\\n .el-form-item__content {\\n font-size: 14px;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n\\n .fp_input_class {\\n height: 50px;\\n margin-bottom: 10px;\\n }\\n\\n .fp_input_class,\\n .fp_radio_class {\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n color: #666666;\\n }\\n\\n .el-form-item {\\n width: 100%;\\n\\n .el-radio-button {\\n .el-radio-button__inner {\\n color: #999999;\\n\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n color: white;\\n\\n }\\n }\\n }\\n\\n\\n\\n }\\n\\n .el-input {\\n height: 40px;\\n }\\n }\\n\\n\\n //样式请写在当前位置内\\n .fp_title_class {\\n height: 60px;\\n display: flex;\\n align-items: center;\\n padding-left: 25px !important;\\n\\n .el-form-item {\\n margin-bottom: 0;\\n }\\n\\n\\n .el-form-item__content {\\n padding: 0;\\n font-family: \'微软雅黑\', sans-serif;\\n\\n p {\\n padding-left: 5px;\\n\\n &::before {\\n content: \'\';\\n height: 16px;\\n display: inline-block;\\n width: 6px;\\n background-color: #409EFF;\\n position: absolute;\\n left: 0px;\\n top: 50%;\\n transform: translateY(-50%);\\n }\\n }\\n\\n }\\n }\\n\\n\\n .fp_radio_class {\\n padding: 5px 10px;\\n\\n .el-radio-group {\\n flex-wrap: nowrap;\\n\\n .el-radio-button {\\n height: 35px;\\n\\n .el-radio-button__inner {\\n min-width: 100px;\\n border-radius: 60px;\\n margin-right: 10px;\\n border-left: 1px solid rgb(220, 223, 230);\\n }\\n }\\n\\n .el-radio-button.is-active {\\n .el-radio-button__inner {\\n\\n border-left: 1px solid #409EFF;\\n\\n }\\n }\\n\\n\\n }\\n }\\n\\n .bottom-zero {\\n .el-form-item {\\n margin-bottom: 0;\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"发票类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"color\":\"#666666\"},\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n fontWeight: 400,\\r\\n color: \'#666666\'\\r\\n}\",\"className\":\"fp_title_class\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fp_type\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"发票类型\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"电子普通发票\",\"value\":\"1\"},{\"label\":\"增值税专用发票\",\"value\":\"2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"border\":false,\"className\":\"fp_radio_class bottom-zero\",\"value\":\"1\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fields_7345995\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"开票信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"color\":\"#666666\"},\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n fontWeight: 400,\\r\\n color: \'#666666\'\\r\\n}\",\"className\":\"fp_title_class title_plus\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fptt\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"发票抬头\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"企业\",\"value\":\"1\"},{\"label\":\"个人\",\"value\":\"2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"border\":false,\"className\":\"fp_radio_class\",\"value\":\"1\",\"moreOptionStr\":\"return {\\n\\n}\"},\"qymc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"qysh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"qydz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"qydh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"khyh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"yhzh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"银行账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"grxm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"个人姓名\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"fp_input_class\"},\"fields_6983414\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"收票人信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"color\":\"#666666\"},\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n fontWeight: 400,\\r\\n color: \'#666666\'\\r\\n}\",\"className\":\"fp_title_class title_plus\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fields_3213683\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人手机\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"fp_input_class bottom-zero \"},\"fields_8506424\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人邮箱\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"fp_input_class bottom-zero\"},\"fields_8065262\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"发票内容\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"color\":\"#666666\"},\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n fontWeight: 400,\\r\\n color: \'#666666\'\\r\\n}\",\"className\":\"fp_title_class title_plus\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fields_3778133\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"发票内容\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"商品明细\",\"value\":\"1\"},{\"label\":\"商品类型\",\"value\":\"2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"border\":false,\"className\":\"fp_radio_class\",\"value\":\"1\",\"moreOptionStr\":\"return {\\n\\n}\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1834868566172176386, '1', 1, '2024-09-14 16:15:31', 101, 1, '2024-11-11 14:24:03', 0, '订单详情-修改费用', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n formData = {\\n yfkje: \'¥0.00\',\\n jdje: \'¥0.00\',\\n zkje: \'¥0.00\',\\n hdyh: \'¥0.00\',\\n jfzk: \'¥0.00\',\\n yhj: \'¥0.00\',\\n yf: \'¥0.00\',\\n sphjje: \'¥0.00\'\\n }\\n let defaultData = props.defaultData\\n if (defaultData.order_money) {\\n let je = defaultData.order_money\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData.yfkje = \'¥\' + newJeString\\n formData.jdje = \'¥\' + newJeString\\n formData.sphjje = \'¥\' + newJeString\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1834868566172176386 {\\n padding: 20px 30px;\\n\\n //样式请写在当前位置内\\n .xgfy_input_class {\\n border: 1px solid #E9E9E9;\\n padding: 0 !important;\\n\\n .el-form-item {\\n margin-bottom: 0;\\n }\\n\\n .el-form-item__label {\\n height: 55px;\\n line-height: 55px;\\n background-color: #F5F5F5;\\n display: flex;\\n justify-content: center;\\n padding: 0;\\n font-size: 14px;\\n font-family: \\\"微软雅黑 Bold\\\", \\\"微软雅黑 Regular\\\", 微软雅黑, sans-serif;\\n font-weight: 700;\\n }\\n\\n .el-form-item__content {\\n font-family: \'微软雅黑\', sans-serif;\\n\\n .el-input {\\n height: 55px;\\n padding: 10px;\\n\\n .el-input__wrapper {\\n font-size: 14px;\\n background-color: white;\\n\\n .el-input__inner {\\n text-align: center;\\n }\\n }\\n }\\n }\\n\\n }\\n\\n .disabled_input {\\n .el-form-item__content {\\n .el-input {\\n .el-input__wrapper {\\n box-shadow: none;\\n }\\n }\\n }\\n }\\n\\n .red {\\n\\n .el-input {\\n .el-input__inner {\\n -webkit-text-fill-color: red;\\n }\\n }\\n\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"sphjje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"商品合计金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input\"},\"yf\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"运费\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class\"},\"yhj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"优惠价\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input\"},\"jfzk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"积分折扣\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input\"},\"hdyh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"活动优惠\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input\"},\"zkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"折扣金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class\"},\"jdje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input red\"},\"yfkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"应付款金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"xgfy_input_class disabled_input red\",\"moreOptionStr\":\"return {\\n\\n}\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1834868736150540290, '1', 1, '2024-09-14 16:16:12', 101, 1, '2024-11-11 14:27:28', 0, '订单详情-备注订单', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1834868736150540290 {\\n //样式请写在当前位置内\\n padding: 20px 30px;\\n\\n .bzdd_input_class {\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_2280334\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"labelWidth\":null,\"showWordLimit\":true,\"maxlength\":300,\"className\":\"bzdd_input_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1836227753657548801, '1', 1, '2024-09-18 10:16:27', 101, 1, '2024-11-11 14:27:56', 0, '订单详情-关闭订单', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1836227753657548801 {\\n //样式请写在当前位置内\\n padding: 20px 30px;\\n\\n .gbdd_input_class {\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_9587324\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"关闭原因\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"labelWidth\":null,\"showWordLimit\":true,\"maxlength\":300,\"className\":\"gbdd_input_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1836249142368169986, '1', 1, '2024-09-18 11:41:26', 101, 1, '2024-09-20 15:04:01', 0, '订单详情-订单详情卡片', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n let arr = [\'sphjje\', \'yf\', \'yhj\', \'jfzk\', \'hdyh\', \'zkje\', \'ddje\', \'yfkje\']\\n arr.forEach(ele => {\\n if (formData[ele]) {\\n let je = formData[ele]\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData[ele] = \'¥\' + newJeString\\n } else {\\n formData[ele] = \'¥0.00\'\\n }\\n })\\n\\n\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n console.log(submitData, \'biahihg\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1836249142368169986 {\\n padding-top: 0 !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n margin: 0 !important;\\n\\n .red {\\n .el-form-item__content {\\n input {\\n color: red;\\n }\\n }\\n }\\n\\n .el-form-item {\\n .el-form-item__label {\\n background-color: #F5F5F5;\\n padding: 0 20px !important;\\n }\\n\\n .el-form-item__content {\\n padding-left: 20px;\\n }\\n }\\n\\n .border-left-box {\\n .el-form-item {\\n .el-form-item__label {\\n border-left: 1px solid #ebeef5;\\n }\\n\\n .el-form-item__content {\\n border-left: 1px solid #ebeef5 !important;\\n }\\n }\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n border-bottom: 1px solid #ebeef5;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 15px !important;\\n\\n .el-form-item {\\n .el-form-item__content {\\n border: none !important;\\n padding: 0;\\n\\n p {\\n height: auto;\\n line-height: normal;\\n padding-left: 5px;\\n margin: 15px 0;\\n border-left: 6px solid #409EFF;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 0 !important;\\n }\\n\\n .el-form-item__label,\\n .el-form-item__content,\\n .el-form-item__content .el-select__selection,\\n .el-form-item__content .user-input {\\n height: 50px;\\n line-height: 50px;\\n }\\n\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input,\\n .el-form-item__content .el-select__selection {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-size: 13px;\\n color: #666666;\\n }\\n\\n .el-form-item__label {\\n line-height: 50px;\\n font-weight: 700;\\n }\\n\\n .el-form-item__content .el-select__wrapper {\\n padding: 0;\\n }\\n\\n\\n\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_8754320\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"订单信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class mtop\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"ddly\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"order_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"app\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"小程序\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"web\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"border-left-box\"},\"ddlx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"order_type\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通订单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"加急订单\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tjsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"提交时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":[]},\"zffs\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"支付方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"mode_payment\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"微信\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"支付宝\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"银行卡\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"其他\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"zfsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"支付时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":[],\"className\":\"border-left-box\"},\"psfs\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"配送方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"mode_distribution\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"顺丰快递\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"自营配送\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"申通快递\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"wldh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"物流单号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"zdqrshsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"自动确认收货时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":[]},\"jfhk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"积分回馈\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"czhk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"成长回馈\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yhzh\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"用户账号\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"hdxx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"活动信息\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_4895475\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"费用信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"sphjje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"商品合计金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"yf\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"运费\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yhj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"优惠劵\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"jfzk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"积分折扣\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"hdyh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"活动优惠\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"zkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"折扣金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"ddje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"red\"},\"yfkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"应付款金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"red\"},\"fields_5412361\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"收货人信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"shr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"收货人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"sjhm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yzbm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮政编码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"shdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收货地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_2517772\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"发票信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"fplx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"发票类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"Invoice_type\",\"codeDicData\":[],\"className\":\"border-left-box\"},\"fptt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"发票抬头\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"企业\",\"value\":\"1\"},{\"label\":\"个人\",\"value\":\"2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"Invoice_type\",\"codeDicData\":[]},\"qymc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"qysh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"qydz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"fpnr\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票内容\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"sprsj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人手机\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"spryx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人邮箱\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"}},\"group\":[]}', 1829756131023052802, NULL, 'N'); +INSERT INTO `lowcode_desform` VALUES (1838755734082879489, '1', 1, '2024-09-25 09:41:44', 101, 1, '2024-10-25 11:04:35', 0, '通用页面-基础表单', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1838755734082879489 {\\n\\n //样式请写在当前位置内\\n .text {\\n\\n p {\\n height: 19px;\\n line-height: 19px;\\n border-left: 6px solid #409eff;\\n color: #666666;\\n font-size: 14px;\\n padding-left: 10px;\\n }\\n }\\n\\n .control-textarea,\\n .control-input,\\n .control-select {\\n .el-form-item__label {\\n color: #666;\\n font-family: \'MicrosoftYaHei\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n }\\n\\n\\n }\\n\\n .el-form-item {\\n .el-upload {\\n width: 120px;\\n height: 120px;\\n\\n .avue-upload__avatar {\\n width: 100%;\\n height: 100%;\\n\\n .el-icon {\\n width: 100%;\\n height: 100%;\\n }\\n }\\n\\n }\\n\\n .el-select__wrapper,\\n .el-input__inner,\\n .el-cascader .el-input__wrapper,\\n .user-input {\\n height: 40px;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n\\n .el-select__wrapper,\\n .el-input__wrapper {\\n padding: 0 11px;\\n }\\n }\\n\\n .avue-form__menu {\\n max-width: 50%;\\n margin-left: 23%;\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n\\n span>i {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n\\n &:last-child {\\n border: 1px solid #409EFF;\\n color: #409EFF;\\n background-color: rgba(240, 247, 255, 1);\\n\\n &:hover {\\n background-color: #409EFF;\\n color: white;\\n }\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\"\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":true,\"emptyText\":\"重置\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_539891\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"基本信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"gsmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"row\":true,\"labelTip\":\"请填写营业执照上完整的公司名称\"},\"szcs\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"ssq\",\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"multiple\":false,\"row\":true},\"hylx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"offset\":6,\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"row\":true},\"slxr\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"首联系人\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"row\":true},\"sjhm\":{\"type\":\"number\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"controls\":false,\"controlsPosition\":\"\",\"textPosition\":\"left\",\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"row\":true},\"dqzw\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"当前职位\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":6,\"row\":true},\"khly\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"offset\":6,\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"row\":true},\"khxj\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户星级\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"offset\":6,\"dicCode\":\"customer_star\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"一星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"二星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"三星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"四星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"五星客户\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"row\":true},\"khzt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"offset\":6,\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"row\":true,\"moreOptionStr\":\"return {\\n\\n}\"},\"gsry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"fields_7927577\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"详细信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\",\"row\":true},\"gs_logo\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"公司LOGO\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"xxdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"详细地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"row\":true},\"gsdh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6,\"row\":true},\"gscz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司传真\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":6},\"gswz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":6,\"prepend\":\"https://\"},\"gsjs\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"公司介绍\",\"readonly\":false,\"minRows\":7,\"maxRows\":7,\"display\":true,\"span\":10,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":6,\"showWordLimit\":true,\"maxlength\":300},\"fields_4221199\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"财务信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"qysh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"fptt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"khyh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"yhzh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"银行账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"dwdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"单位地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6},\"dhhm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"电话号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":10,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":6}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1838765995711856642, '1', 1, '2024-09-25 10:22:31', 101, 1, '2024-10-23 16:24:30', 0, '通用页面-横排表单', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1838765995711856642 {\\n //样式请写在当前位置内\\n\\n padding-top: 0 !important;\\n\\n .el-row {\\n margin: 0 !important;\\n }\\n\\n .avue-form__group {\\n\\n // 文本样式\\n .text_class {\\n .el-form-item__content {\\n line-height: 20px;\\n\\n .avue-title {\\n p {\\n margin: 10px 0 20px 0;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n height: 19px;\\n line-height: 19px;\\n border-left: 6px solid #409eff;\\n color: #666666;\\n font-size: 14px;\\n padding-left: 10px;\\n\\n }\\n }\\n }\\n\\n }\\n\\n // 下拉框、文本框、用户组件、多行文本框样式\\n .el-form-item {\\n .el-upload {\\n width: 120px;\\n height: 120px;\\n\\n .avue-upload__avatar {\\n width: 100%;\\n height: 100%;\\n\\n .el-icon {\\n width: 100%;\\n height: 100%;\\n }\\n }\\n\\n }\\n\\n .el-input .el-input__wrapper {\\n height: 38px;\\n line-height: 38px;\\n }\\n\\n .el-form-item__content .el-select__selection,\\n .el-form-item__content .user-input {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-select .el-select__wrapper {\\n padding: 0 12px;\\n }\\n\\n .el-textarea .el-textarea__inner,\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n\\n .el-select__wrapper,\\n .el-input__inner,\\n .el-cascader .el-input__wrapper,\\n .user-input {\\n font-size: 14px;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n }\\n\\n .img_logo_class {\\n .el-form-item {\\n position: absolute;\\n width: 100%;\\n left: 30px;\\n top: 10px;\\n }\\n }\\n\\n .no-print {\\n margin-top: 10px;\\n margin-bottom: 30px;\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n font-size: 14px;\\n font-family: \'微软雅黑\', sans-serif;\\n\\n i {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n\\n &:last-child {\\n border: 1px solid #409EFF;\\n color: #409EFF;\\n background-color: rgba(240, 247, 255, 1);\\n\\n &:hover {\\n background-color: #409EFF;\\n color: white;\\n }\\n }\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":60,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":true,\"emptyText\":\"重置\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_4178713\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\" 基础信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text_class\"},\"fields_9425696\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0,\"labelTip\":\"请填写营业执照上完整的公司名称\"},\"fields_7854569\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"ssq\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_9485696\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型 \",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"offset\":0,\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_1103201\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"首联系人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_9306588\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_3307380\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"当前职位\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_4732502\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮箱\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_4752829\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"微信\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_8832068\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"offset\":0,\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_2579399\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户星级\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"customer_star\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"一星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"二星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"三星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"四星客户\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"五星客户\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_488429\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"offset\":0,\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_3105499\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_3025414\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\" 详细信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text_class\"},\"fields_6518396\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"公司LOGO \",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"callBackStr\":\"\",\"showFileList\":false,\"fileSize\":null,\"className\":\"img_logo_class\"},\"fields_9823821\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"详细地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_5452514\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_1461710\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司传真\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":8},\"fields_6014772\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_228237\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"公司介绍\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":16,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":8,\"showWordLimit\":true,\"maxlength\":300},\"fields_6308021\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\" 财务信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text_class\"},\"fields_6521321\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_8992332\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_553146\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_3195112\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"银行账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_6061964\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"电话号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"fields_8787612\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"单位地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1838766864943611906, '1', 1, '2024-09-25 10:25:58', 101, 1, '2024-10-23 17:43:17', 0, '通用页面-高级表单', '{\"jsEnhance\":\"\",\"scssEnhance\":\".low-form__1838766864943611906 {\\n .el-form>.el-row {\\n padding: 0 20px;\\n\\n .avue-group {\\n .el-tabs {\\n border: 1px solid rgba(233, 233, 233, 1);\\n border-radius: 10px;\\n\\n .el-tabs__header {\\n box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.0470588235294118);\\n border-radius: 10px 10px 0 0;\\n background-color: #F9F9F9;\\n height: 60px;\\n\\n .el-tabs__nav {\\n border: none;\\n\\n .el-tabs__item {\\n height: 60px;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n font-size: 16px;\\n color: #666666;\\n cursor: default;\\n }\\n }\\n }\\n\\n .el-tabs__content {\\n border-radius: 0 0 10px 10px;\\n padding: 10px 0;\\n\\n .el-collapse-item__content {\\n .avue-form__group {\\n .el-form-item {\\n .el-form-item__label {\\n height: 40px;\\n font-size: 14px;\\n color: #666666;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n\\n .el-select__wrapper,\\n .el-input__inner,\\n .el-input__wrapper,\\n .user-input {\\n height: 40px;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n\\n .el-input-number__decrease,\\n .el-input-number__increase{\\n height: 20px;\\n }\\n\\n }\\n }\\n }\\n\\n }\\n }\\n }\\n }\\n\\n\\n .avue-form__menu {\\n max-width: 50%;\\n margin-left: 25%;\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n\\n span>i {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n\\n }\\n }\\n //样式请写在当前位置内\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":50,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_1626508\":{\"type\":\"layoutTabs\",\"controlType\":\"layout\",\"title\":\"选项卡布局\",\"label\":\"\",\"params\":{\"type\":\"card\",\"tabPosition\":\"top\"},\"tabsEnhanceStr\":\"\",\"column\":{\"tab_1\":{\"type\":\"tab\",\"label\":\"仓库信息\",\"display\":true,\"column\":{\"ckmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"仓库名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\"},\"ckgly\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"仓库管理员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"ckdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"仓库地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"spry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"审批人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\"},\"sxrq\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"生效日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"cklx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"仓库类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"类型一\",\"value\":\"1\"},{\"label\":\"类型二\",\"value\":\"2\"},{\"label\":\"类型三\",\"value\":\"3\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\"}}}},\"display\":true,\"span\":24,\"hideLabel\":true},\"fields_8554334\":{\"type\":\"layoutTabs\",\"controlType\":\"layout\",\"title\":\"选项卡布局\",\"label\":\"\",\"params\":{\"type\":\"card\",\"tabPosition\":\"top\"},\"tabsEnhanceStr\":\"\",\"column\":{\"tab_1\":{\"type\":\"tab\",\"label\":\"任务信息\",\"display\":true,\"column\":{\"rwmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"任务名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\"},\"rwms\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"任务描述\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fzry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\"},\"cyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"参与人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"ksrq\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"开始日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelPosition\":\"top\"},\"rwqz\":{\"type\":\"number\",\"controlType\":\"input\",\"label\":\"任务权重\",\"readonly\":false,\"controls\":true,\"controlsPosition\":\"right\",\"textPosition\":\"left\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"}}}},\"display\":true,\"span\":24,\"hideLabel\":true},\"fields_7697960\":{\"type\":\"layoutTabs\",\"controlType\":\"layout\",\"title\":\"选项卡布局\",\"label\":\"\",\"params\":{\"type\":\"card\",\"tabPosition\":\"top\"},\"tabsEnhanceStr\":\"\",\"column\":{\"tab_1\":{\"type\":\"tab\",\"label\":\"成员管理\",\"display\":true,\"column\":{\"table1\":{\"type\":\"layoutTable\",\"controlType\":\"layout\",\"label\":\"表格布局\",\"dataType\":\"array\",\"tableType\":\"cellEdit\",\"btnData\":{\"menu\":[],\"header\":[]},\"tableEnhanceStr\":\"\",\"params\":{\"headerAlign\":\"center\",\"align\":\"center\",\"addBtn\":true,\"delBtn\":true,\"editBtn\":true,\"selection\":false,\"border\":true,\"menuWidth\":120,\"stripe\":true,\"index\":false},\"column\":{\"name\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"员工姓名\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"gh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"工号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"ssbm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"所属部门\",\"findType\":\"all\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"display\":true,\"span\":24,\"hideLabel\":true}}}},\"display\":true,\"span\":24,\"hideLabel\":true},\"fields_1958584\":{\"type\":\"layoutTabs\",\"controlType\":\"layout\",\"title\":\"选项卡布局\",\"label\":\"\",\"params\":{\"type\":\"card\",\"tabPosition\":\"top\"},\"tabsEnhanceStr\":\"\",\"column\":{\"tab_1\":{\"type\":\"tab\",\"label\":\"成员管理\",\"display\":true,\"column\":{\"table2\":{\"type\":\"layoutTable\",\"controlType\":\"layout\",\"label\":\"表格布局\",\"dataType\":\"array\",\"tableType\":\"cellEdit\",\"btnData\":{\"menu\":[],\"header\":[]},\"tableEnhanceStr\":\"\",\"params\":{\"headerAlign\":\"center\",\"align\":\"center\",\"addBtn\":true,\"delBtn\":true,\"editBtn\":true,\"selection\":false,\"border\":true,\"menuWidth\":120,\"stripe\":false,\"index\":false},\"column\":{\"cymc\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"成员姓名\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"yxdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮箱地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"wxzh\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"微信账号\",\"findType\":\"all\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"display\":true,\"span\":24,\"hideLabel\":true}}}},\"display\":true,\"span\":24,\"hideLabel\":true}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1838814762506964994, '1', 1, '2024-09-25 13:36:18', 101, 1, '2024-10-26 14:26:22', 0, '通用页面-高级筛选', '{\"jsEnhance\":\"\\nreturn {\\n initOption() { //表单显示前执行\\n \\n\\n },\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n useFun.setPropConfig(\'type1\', {\\n change: (val) => {\\n val.type = \'kh\'\\n props.enhanceData.setSearch(val)\\n \\n }\\n })\\n useFun.setPropConfig(\'type2\', {\\n change: (val) => {\\n val.type = \'hy\'\\n props.enhanceData.setSearch(val)\\n }\\n })\\n useFun.setPropConfig(\'type3\', {\\n change: (val) => {\\n val.type = \'year\'\\n props.enhanceData.setSearch(val)\\n }\\n })\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1838814762506964994 {\\n //样式请写在当前位置内\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"type1\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"客户状态\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"选项一\",\"value\":\"1\"},{\"label\":\"选项二\",\"value\":\"2\"},{\"label\":\"选项三\",\"value\":\"3\"},{\"label\":\"选项四\",\"value\":\"4\"},{\"label\":\"选项五\",\"value\":\"5\"},{\"label\":\"选项六\",\"value\":\"6\"},{\"label\":\"选项七\",\"value\":\"7\"},{\"label\":\"选项八\",\"value\":\"8\"},{\"label\":\"选项九\",\"value\":\"9\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"all\":true,\"border\":false,\"row\":true,\"labelPosition\":\"left\",\"value\":\"1\",\"moreOptionStr\":\"return {\\n}\"},\"type2\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"行业类型\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"选项1\",\"value\":\"1\"},{\"label\":\"选项2\",\"value\":\"2\"},{\"label\":\"选项3\",\"value\":\"3\"},{\"label\":\"选项4\",\"value\":\"4\"},{\"label\":\"选项5\",\"value\":\"5\"},{\"label\":\"选项6\",\"value\":\"6\"},{\"label\":\"选项7\",\"value\":\"7\"},{\"label\":\"选项8\",\"value\":\"8\"},{\"label\":\"选项9\",\"value\":\"9\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"all\":true,\"border\":false,\"row\":true,\"labelPosition\":\"left\",\"moreOptionStr\":\"return {\\n}\",\"value\":\"1\"},\"type3\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"选项类型\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"2020年\",\"value\":\"1\"},{\"label\":\"2019年\",\"value\":\"2\"},{\"label\":\"2018年\",\"value\":\"3\"},{\"label\":\"2017年\",\"value\":\"4\"},{\"label\":\"2016年\",\"value\":\"5\"},{\"label\":\"2015年\",\"value\":\"6\"},{\"label\":\"2014年\",\"value\":\"7\"},{\"label\":\"2013年\",\"value\":\"8\"},{\"label\":\"2012年\",\"value\":\"9\"},{\"label\":\"2011年\",\"value\":\"10\"},{\"label\":\"2010年\",\"value\":\"11\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"all\":true,\"border\":false,\"row\":true,\"labelPosition\":\"left\",\"moreOptionStr\":\"return {\\n\\n}\",\"value\":\"1\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1838820624684339201, '1', 1, '2024-09-25 13:59:35', 101, 1, '2024-12-27 11:07:58', 0, '通用页面-高级详情页-顶部信息', '{\"jsEnhance\":\"return {\\n}\\n\",\"scssEnhance\":\".low-form__1838820624684339201 {\\n padding: 40px 40px 30px 40px !important;\\n background-color: white;\\n border: 1px solid #e4e7ed;\\n border-radius: 4px 4px 0 0;\\n border-bottom: none;\\n\\n .el-form {\\n .el-row {\\n border: none !important;\\n margin: 0 !important;\\n }\\n }\\n\\n .location_box {\\n .el-form-item {\\n position: absolute;\\n width: 100%;\\n left: 0;\\n top: 0;\\n\\n .el-form-item__content {\\n padding: 0 20px;\\n }\\n }\\n\\n }\\n\\n .btn_group_class {\\n text-align: center;\\n\\n .el-button {\\n .mr-3px {\\n width: 0;\\n margin-right: 0;\\n }\\n }\\n }\\n\\n .tabs_title_class,\\n .btn_group_class {\\n height: 60px;\\n }\\n\\n .system_number_class,\\n .type_of_industry_class,\\n .customer_source_class,\\n .khzt_class,\\n .khxj_class,\\n .create_date_class,\\n .head_contact_class,\\n .vesting_officer_class {\\n height: 50px;\\n display: flex;\\n align-items: center;\\n }\\n\\n .tabs_title_class,\\n .btn_group_class,\\n .system_number_class,\\n .type_of_industry_class,\\n .customer_source_class,\\n .khzt_class,\\n .khxj_class,\\n .create_date_class,\\n .head_contact_class,\\n .vesting_officer_class {\\n border: none !important;\\n\\n .el-form-item {\\n width: 100%;\\n }\\n\\n .el-input__wrapper,\\n .el-select__selection {\\n font-size: 14px;\\n }\\n\\n .el-select__selected-item {\\n color: #666666 !important;\\n }\\n\\n .el-form-item__label {\\n background-color: white;\\n height: auto;\\n font-weight: 700;\\n font-size: 13px;\\n color: #999999;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n\\n &::after {\\n content: \':\'\\n }\\n }\\n\\n .el-form-item__content {\\n width: 100%;\\n border: none;\\n padding-left: 10px;\\n }\\n }\\n\\n .tabs_title_class {\\n .el-form-item {\\n .el-form-item__content {\\n padding-left: 0;\\n\\n .avue-title {\\n p {\\n color: #666670;\\n font-size: 22px;\\n margin-left: 0;\\n }\\n }\\n }\\n\\n\\n }\\n }\\n\\n .khzt_class {\\n .el-select__selected-item {\\n font-size: 14px;\\n text-align: center;\\n }\\n }\\n\\n .khxj_class {\\n .el-rate {\\n justify-content: center;\\n }\\n }\\n\\n .khzt_class,\\n .khxj_class {\\n .el-form-item__label {\\n border-bottom: none !important;\\n display: block;\\n text-align: center !important;\\n padding-left: 12px !important;\\n margin-bottom: 0;\\n padding-bottom: 8px;\\n\\n &::after {\\n content: \'\'\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"tabs_title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"\",\"display\":true,\"span\":8,\"hideLabel\":true,\"styles\":{},\"className\":\"tabs_title_class\"},\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"主要操作\",\"prop\":\"master_btn\",\"id\":\"btn_881\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n type:\'primary\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"辅助操作\",\"prop\":\"support_btn1\",\"id\":\"btn_3844\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"辅助操作\",\"prop\":\"support_btn2\",\"id\":\"btn_7084\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n \\r\\n handleClick: (obj) => {\\r\\n console.log(\'点击了按钮\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":16,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"system_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"系统编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"system_number_class\"},\"type_of_industry\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":80,\"className\":\"type_of_industry_class\"},\"customer_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":5,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":80,\"className\":\"customer_source_class\"},\"customer_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":0,\"labelPosition\":\"top\",\"className\":\"khzt_class location_box\"},\"customer_rating\":{\"type\":\"rate\",\"controlType\":\"rate\",\"label\":\"客户星级\",\"texts\":[],\"colors\":[],\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":0,\"labelPosition\":\"top\",\"showScore\":false,\"showText\":false,\"allowHalf\":false,\"className\":\"khxj_class location_box\",\"offset\":0,\"labelWidth\":0},\"create_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"创建日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"value\":[],\"className\":\"create_date_class\"},\"head_contact\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"首联系人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"head_contact_class\"},\"vesting_officer\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":5,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":80,\"className\":\"vesting_officer_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1838842046060228609, '1', 1, '2024-09-25 15:24:42', 101, 1, '2024-10-23 09:59:26', 0, '通用页面-高级详情页-操作记录', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n console.log(formData, \'f\')\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n console.log(submitData, \'biahihg\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1838842046060228609 {\\n padding-top: 0 !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n\\n\\n .avue-form__row {\\n border: none;\\n\\n .el-form-item {\\n height: 44px;\\n background-color: white;\\n\\n .el-form-item__label {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n color: #999999;\\n background-color: white;\\n line-height: 44px;\\n }\\n\\n .el-form-item__content {\\n border: none;\\n }\\n }\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 15px !important;\\n\\n .el-form-item {\\n height: 60px;\\n\\n .el-form-item__content {\\n border: none !important;\\n padding: 0;\\n\\n p {\\n line-height: normal;\\n padding-left: 5px;\\n margin: 15px 0;\\n border-left: 6px solid #409EFF;\\n font-size: 14px !important;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 0 !important;\\n }\\n\\n\\n .el-rate {\\n .el-rate__item {\\n .is-active {\\n color: #666666 !important;\\n }\\n }\\n }\\n\\n .el-select__selected-item {\\n color: #606266;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_8754320\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"基本信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class mtop\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"tabs_customer_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"客户名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_system_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"系统编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_customer_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"customer_status\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"了解产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"正在跟进\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"正在试用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"准备购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"准备付款\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"已经购买\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"暂时搁置\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tabs_type_of_industry\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"行业类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"type_of_industry\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"家用电器\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"交通运输\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"商务服务\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"家居用品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"电工电气\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"数码产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"通信产品\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"办公文教\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"运动休闲\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"传媒广电\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tabs_customer_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"客户来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"crm_customer_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"促销\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"搜索引擎\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"广告\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"转介绍\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"线上注册\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"线上咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"预约上门\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"8\",\"label\":\"陌拜\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"9\",\"label\":\"电话咨询\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"10\",\"label\":\"邮件咨询\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tabs_customer_rating\":{\"type\":\"rate\",\"controlType\":\"rate\",\"label\":\"客户星级\",\"texts\":[],\"colors\":[\"#666666\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":3,\"moreOptionStr\":\"return {\\n\\n}\"},\"tabs_now_city\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"s\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_vesting_officer\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"归属人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_update_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"更新时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":[]},\"fields_4895475\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"详细信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"tabs_head_contact\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"首联系人\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_phone_number\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_current_title\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"当前职位\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"current_title\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"市场与销售总监\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"销售经理\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"渠道发展经理\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"售前技术支持经理\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"总经理\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"普通员工\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"财务\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tabs_detailed_address\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"详细地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_company_tel\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_company_web\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司网址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_invoice_title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票抬头\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_company_tax\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"tabs_deposit_bank\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"开户银行\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"group\":[]}', 1829756131023052802, NULL, 'N'); +INSERT INTO `lowcode_desform` VALUES (1839492236177883137, '1', 1, '2024-09-27 10:28:20', 101, 1, '2024-09-27 11:51:47', 0, '通用页面-动态数据', '{\"jsEnhance\":\"return {\\nbeforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n console.log(submitData,\'subdata\')\\n resolve(submitData)\\n })\\n},\\n}\\n\",\"scssEnhance\":\".low-form__1839492236177883137 {\\n\\n //样式请写在当前位置内\\n .el-form>.el-row {\\n margin: 0 20px !important;\\n }\\n\\n .tx_class {\\n .el-form-item {\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"tx\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"tx_class\"},\"sr\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"生日\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":2},\"name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"姓名\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"sg\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"身高\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":6},\"sj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"xb\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"性别\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"offset\":6,\"labelPosition\":\"top\",\"dicCode\":\"system_user_sex\",\"codeDicData\":[{\"value\":\"0\",\"label\":\"未知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"1\",\"label\":\"男\",\"colorType\":\"default\",\"cssClass\":\"A\"},{\"value\":\"2\",\"label\":\"女\",\"colorType\":\"success\",\"cssClass\":\"\"}]},\"tz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"体重\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":0},\"dz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":9,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":6}},\"tableDesignId\":\"1838494733815050242\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1840295435986018306, '1', 1, '2024-09-29 15:39:58', 101, 1, '2024-10-30 14:03:53', 0, '通用页面-个人中心-资料设置', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n formOption.value.submitText = \'保存\'\\n useFun.setPropConfig(\'updateBtn\', {\\n control: (val, form) => {\\n let img = \'\'\\n if (val.indexOf(\',\') !== -1) {\\n let valSplitList = val.split(\',\')\\n img = valSplitList[valSplitList.length - 1]\\n } else {\\n img = val\\n }\\n formData.value.updateImg = img\\n }\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n message.notifySuccess(\'提交成功\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1840295435986018306 {\\n //样式请写在当前位置内\\n padding: 0 !important;\\n\\n .title {\\n margin-left: 10px;\\n\\n .avue-title {\\n p {\\n font-size: 14px;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n color: rgb(102, 102, 102);\\n }\\n\\n }\\n }\\n\\n .postion-right-img,\\n .postion-right-btn {\\n position: absolute;\\n\\n }\\n\\n .postion-right-img {\\n top: 50px;\\n left: 61%;\\n\\n .avue-upload {\\n .el-upload {\\n width: 100px;\\n height: 100px;\\n border-radius: 50%;\\n\\n &::before {\\n content: \\\"\\\";\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n border-radius: 50%;\\n z-index: 9;\\n background-color: #ffffff00;\\n }\\n }\\n }\\n\\n }\\n\\n .postion-right-btn {\\n top: 170px;\\n // left: calc(60% + 7px);\\n left: 60%;\\n\\n .el-form-item__content {\\n .el-button {\\n height: 40px;\\n line-height: 40px;\\n width: 120px;\\n font-size: 14px;\\n color: #999;\\n border-radius: 0;\\n background-color: white;\\n border-color: #E4E4E4;\\n .el-icon{\\n display: none;\\n }\\n span{\\n margin-left: 0;\\n }\\n }\\n }\\n }\\n\\n .el-form-item {\\n align-items: center;\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input,\\n .el-form-item__content .el-select .el-select__wrapper,\\n .el-form-item__content .avue-radio .el-radio-button__inner,\\n .el-form-item__content .dept-select-box .dept-input,\\n .el-form-item__content .el-textarea .el-textarea__inner {\\n font-size: 14px;\\n }\\n }\\n\\n .textarea_class {\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n\\n\\n .avue-form__menu {\\n transform: translateX(120px);\\n text-align: left;\\n\\n .el-button {\\n width: 146px;\\n height: 38px;\\n font-size: 14px;\\n margin: 0;\\n\\n\\n i {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_5928834\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"基本信息\",\"display\":true,\"span\":6,\"hideLabel\":true,\"styles\":{},\"row\":true,\"className\":\"title\"},\"dlzh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"登录账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_5077394\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"所属部门\",\"findType\":\"all\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true},\"fields_936475\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"员工职务\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"选择项1\",\"value\":\"1\"},{\"label\":\"选择项2\",\"value\":\"2\"},{\"label\":\"选择项3\",\"value\":\"3\"},{\"label\":\"选择项4\",\"value\":\"4\"},{\"label\":\"选择项5\",\"value\":\"5\"},{\"label\":\"选择项6\",\"value\":\"6\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"row\":true},\"fields_3833417\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"员工工号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true},\"fields_8886414\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true},\"fields_7699379\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"微信账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_3097103\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮箱地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_3202269\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"出生日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_9774914\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"性别\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"男性\",\"value\":\"1\"},{\"label\":\"女性\",\"value\":\"2\"},{\"label\":\"保密\",\"value\":\"3\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"row\":true,\"border\":false,\"button\":true},\"fields_9153281\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"更多信息\",\"display\":true,\"span\":6,\"hideLabel\":true,\"styles\":{},\"row\":true,\"className\":\"title\"},\"fields_7414705\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\" 籍贯\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_8098233\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"学历\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"初中\",\"value\":\"1\"},{\"label\":\"高中\",\"value\":\"2\"},{\"label\":\"大专\",\"value\":\"3\"},{\"label\":\"本科\",\"value\":\"4\"},{\"label\":\"研究生\",\"value\":\"5\"},{\"label\":\"博士\",\"value\":\"6\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"row\":true},\"fields_455092\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"专业\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_9699271\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"毕业院校\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_900981\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"毕业时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"row\":true},\"fields_7358712\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"毕业时间\",\"readonly\":false,\"minRows\":6,\"maxRows\":6,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"textarea_class\"},\"updateImg\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":true,\"className\":\"postion-right-img\"},\"updateBtn\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture\",\"accept\":\"image/*\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"showFileList\":false,\"className\":\"postion-right-btn\",\"callBackStr\":\"\",\"tip\":\"\",\"loadText\":\"\",\"moreOptionStr\":\"return {\\n fileText: \'修改头像\'\\n}\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1840567733712330753, '1', 1, '2024-09-30 09:41:58', 101, 1, '2024-10-30 13:49:25', 0, '通用页面-个人中心-修改密码', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n formOption.value.submitText = \'保存\'\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n message.notifySuccess(\'提交成功\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1840567733712330753 {\\n padding-left: 0 !important;\\n\\n .el-form-item {\\n align-items: center;\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input {\\n font-size: 14px;\\n }\\n }\\n\\n .textarea_class {\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n\\n\\n .avue-form__menu {\\n transform: translateX(120px);\\n text-align: left;\\n\\n .el-button {\\n width: 146px;\\n height: 38px;\\n font-size: 14px;\\n margin: 0;\\n\\n i {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_3833417\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"原密码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true,\"moreOptionStr\":\"return {\\n placeholder: \'输入原登录密码\'\\n}\",\"labelWidth\":null},\"fields_5666279\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\" 新密码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true,\"moreOptionStr\":\"return {\\n placeholder: \'输入新的登录密码\'\\n}\"},\"fields_6320899\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\" 新密码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"row\":true,\"labelTip\":\"\",\"moreOptionStr\":\"return {\\n placeholder: \'再次输入登录密码\'\\n}\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1840671420115873794, '1', 1, '2024-09-30 16:33:59', 101, 1, '2024-10-30 11:59:10', 0, '通用页面-个人中心-系统通知', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1840671420115873794 {\\n //样式请写在当前位置内\\n\\n .el-form-item__content,\\n .el-col,\\n .el-row {\\n border: none;\\n }\\n\\n .el-form-item {\\n .el-form-item__label {\\n width: auto !important;\\n padding: 0;\\n }\\n }\\n\\n .rich-util {\\n line-height: 33px;\\n\\n .el-form-item {\\n border: 1px solid #E4E4E4;\\n }\\n\\n .el-form-item__label {\\n font-size: 12px;\\n }\\n\\n .el-form-item__content {\\n padding: 0;\\n }\\n\\n .el-form-item__content,\\n .el-form-item__content .el-input__wrapper,\\n .el-form-item__content .el-input__wrapper .el-input__inner {\\n background-color: #F9F9F9;\\n font-size: 12px;\\n }\\n }\\n\\n .rich-util-left {\\n .el-form-item {\\n margin-left: 20px;\\n }\\n\\n .el-form-item {\\n border-right: none;\\n }\\n }\\n\\n .rich-util-right {\\n padding-right: 20px !important;\\n\\n .el-form-item {\\n border-left: none;\\n }\\n }\\n\\n .title,\\n .button-list {\\n height: 80px;\\n display: flex;\\n align-items: center;\\n }\\n\\n .title {\\n font-size: 20px;\\n color: #666;\\n\\n .avue-title {\\n p {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n .button-list {\\n justify-content: end;\\n\\n .el-button {\\n width: 60px;\\n height: 28px;\\n font-size: 12px;\\n color: #999;\\n }\\n }\\n\\n\\n\\n .control-richText {\\n .avue-ueditor__toolbar {\\n display: none;\\n }\\n\\n .avue-ueditor>div {\\n height: auto !important;\\n overflow-y: auto !important;\\n\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"文本\",\"display\":true,\"span\":15,\"hideLabel\":true,\"styles\":{},\"className\":\"title\",\"moreOptionStr\":\"return {\\n\\n}\"},\"fields_1303865\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"返回\",\"prop\":\"btn_3984\",\"id\":\"btn_3984\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n props.enhanceData.richDisplay = !props.enhanceData.richDisplay\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":9,\"disabled\":false,\"hideLabel\":true,\"className\":\"button-list\"},\"type\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"消息类型\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"rich-util rich-util-left\",\"offset\":0},\"createTime\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发布时间\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":20,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"rich-util rich-util-right\"},\"richText\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"富文本\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844550190467956737, '1', 1, '2024-10-11 09:26:50', 101, 1, '2024-12-27 11:19:10', 0, '管理模块-订单详情-头部', '{\"jsEnhance\":\"//初始化收货人表单\\nuseFun.controlInit(\'FormView\', \'formView_xgshr\', {\\n formId: \'1834792963683192834\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {\\n }, //默认表单数据\\n enhanceData: {\\n }, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'收货人信息\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n }\\n done()\\n }\\n})\\n\\n//初始化发票表单\\nuseFun.controlInit(\'FormView\', \'formView_xgfp\', {\\n formId: \'1834837596136083458\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改发票\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgfp.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgfp.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化修改费用表单\\nuseFun.controlInit(\'FormView\', \'formView_xgfy\', {\\n formId: \'1834868566172176386\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: props.defaultData, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgfy.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgfy.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化备注订单表单\\nuseFun.controlInit(\'FormView\', \'formView_bzdd\', {\\n formId: \'1834868736150540290\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: props.defaultData, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_bzdd.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_bzdd.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\n//初始化关闭订单表单\\nuseFun.controlInit(\'FormView\', \'formView_gbdd\', {\\n formId: \'1836227753657548801\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'修改费用\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_gbdd.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_gbdd.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n\\n }\\n done()\\n }\\n})\\n\\nconst { formView_xgshr, formView_xgfp, formView_xgfy, formView_bzdd, formView_gbdd } = Vue.toRefs(rendControlData.value)\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value) => {\\n formView_value.value.show = true //显示FormView\\n}\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => {\\n if (formData.order_money) {\\n let je = formData.order_money\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData.order_money = \'¥\' + newJeString\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\\n\\n\\n\",\"scssEnhance\":\".low-form__1844550190467956737 {\\r\\n .el-form {\\r\\n .el-row {\\r\\n border: none !important;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn_group_class {\\r\\n\\r\\n .el-form-item {\\r\\n height: 60px;\\r\\n line-height: 60px;\\r\\n }\\r\\n\\r\\n .el-button {\\r\\n color: rgb(153, 153, 153);\\r\\n font-size: 14px;\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n .tabs_class {\\r\\n .form-tabs {\\r\\n margin-top: 50px !important;\\r\\n border-top: 1px solid #eee;\\r\\n\\r\\n .el-tabs__header,\\r\\n .el-col {\\r\\n border-right: none !important;\\r\\n }\\r\\n\\r\\n }\\r\\n }\\r\\n\\r\\n .mode_distribution_class,\\r\\n .order_type_class,\\r\\n .order_source_class,\\r\\n .update_date_class,\\r\\n .mode_payment_class,\\r\\n .payment_date_class {\\r\\n height: 50px;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n\\r\\n .el-form-item {\\r\\n width: 100%;\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n .order_bh_class,\\r\\n .order_source_class,\\r\\n .order_type_class,\\r\\n .update_date_class,\\r\\n .mode_payment_class,\\r\\n .payment_date_class,\\r\\n .mode_distribution_class {\\r\\n .el-form-item__label::after {\\r\\n content: \':\'\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n .order_bh_class,\\r\\n .btn_group_class,\\r\\n .mode_distribution_class,\\r\\n .order_type_class,\\r\\n .order_source_class,\\r\\n .order_status_class,\\r\\n .order_money_class,\\r\\n .update_date_class,\\r\\n .mode_payment_class,\\r\\n .payment_date_class {\\r\\n border: none !important;\\r\\n\\r\\n .el-input__wrapper,\\r\\n .el-select__selection {\\r\\n font-size: 14px;\\r\\n }\\r\\n\\r\\n .el-select__selected-item {\\r\\n color: #666666 !important;\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n background-color: white;\\r\\n height: auto;\\r\\n font-weight: 700;\\r\\n font-size: 14px;\\r\\n color: #999999;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n border: none;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n padding-left: 10px;\\r\\n }\\r\\n }\\r\\n\\r\\n // 编号\\r\\n .order_bh_class {\\r\\n .el-form-item {\\r\\n height: 60px;\\r\\n line-height: 60px;\\r\\n\\r\\n .el-form-item__label,\\r\\n .el-form-item__content .el-input__inner {\\r\\n font-size: 18px;\\r\\n font-weight: 700;\\r\\n color: rgb(102, 102, 102);\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n padding: 0 !important;\\r\\n height: 60px;\\r\\n line-height: 60px;\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n padding-left: 0;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n // 状态\\r\\n .order_status_class {\\r\\n .el-form-item__label {\\r\\n padding-left: 12px;\\r\\n font-weight: 400;\\r\\n }\\r\\n\\r\\n .el-select__selected-item {\\r\\n font-size: 20px;\\r\\n text-align: center;\\r\\n }\\r\\n }\\r\\n\\r\\n .order_money_class {\\r\\n text-align: center;\\r\\n\\r\\n .el-form-item__label {\\r\\n font-weight: 400;\\r\\n }\\r\\n\\r\\n .el-input-group__prepend {\\r\\n box-shadow: none;\\r\\n }\\r\\n\\r\\n .el-rate__icon {\\r\\n font-size: 28px;\\r\\n }\\r\\n\\r\\n .el-form-item__content {\\r\\n .el-input__inner {\\r\\n font-size: 20px;\\r\\n text-align: center;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n .order_money_class,\\r\\n .order_status_class {\\r\\n .el-form-item {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n left: 0;\\r\\n top: 10px;\\r\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\r\\n\\r\\n .el-form-item__content {\\r\\n padding: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n .el-form-item__label {\\r\\n display: block;\\r\\n border-bottom: none !important;\\r\\n text-align: center !important;\\r\\n padding: 0 0 8px 0 !important;\\r\\n margin-bottom: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"order_bh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":0,\"labelWidth\":90,\"className\":\"order_bh_class\",\"labelPosition\":\"left\"},\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"修改收货人\",\"prop\":\"shr_btn\",\"id\":\"btn_881\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgshr)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"修改发票\",\"prop\":\"fp_btn\",\"id\":\"btn_3844\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgfp } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgfp)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"修改费用\",\"prop\":\"fy_btn\",\"id\":\"btn_7084\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgfy } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_xgfy)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"备注订单\",\"prop\":\"bzdd_btn\",\"id\":\"btn_5956\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_bzdd } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_bzdd)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"关闭订单\",\"prop\":\"gbdd_btn\",\"id\":\"btn_8480\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_gbdd } = Vue.toRefs(rendControlData.value)\\r\\n useFun.openForm(formView_gbdd)\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":16,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"order_source\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"app\",\"value\":\"1\"},{\"label\":\"小程序\",\"value\":\"2\"},{\"label\":\"web\",\"value\":\"3\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"codeDicData\":[],\"labelWidth\":90,\"className\":\"order_source_class\",\"dicCode\":\"order_source\"},\"order_type\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"ddgl-ddlx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通订单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"秒杀订单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"拼团订单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"其他订单\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":90,\"className\":\"order_type_class\",\"value\":\"1\"},\"update_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"提交时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":90,\"value\":[],\"className\":\"update_date_class\"},\"order_status\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"order_status\",\"codeDicData\":[],\"labelWidth\":0,\"labelPosition\":\"top\",\"className\":\"order_status_class\"},\"order_money\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":3,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"order_money_class\",\"prepend\":\"\",\"labelPosition\":\"top\"},\"mode_payment\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"支付方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"mode_payment\",\"codeDicData\":[],\"labelWidth\":90,\"className\":\"mode_payment_class\"},\"payment_date\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"支付时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":90,\"value\":[],\"className\":\"payment_date_class\"},\"mode_distribution\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"配送方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"mode_distribution\",\"codeDicData\":[],\"labelWidth\":90,\"className\":\"mode_distribution_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844555987675561985, '1', 1, '2024-10-11 09:49:52', 101, 1, '2024-12-27 11:12:45', 0, '管理模块-订单详情', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n\\n let arr = [\'sphjje\', \'yf\', \'yhj\', \'jfzk\', \'hdyh\', \'zkje\', \'ddje\', \'yfkje\']\\n arr.forEach(ele => {\\n if (formData[ele]) {\\n let je = formData[ele]\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData[ele] = \'¥\' + newJeString\\n } else {\\n formData[ele] = \'¥0.00\'\\n }\\n })\\n\\n\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n console.log(submitData, \'biahihg\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1844555987675561985 {\\n padding-top: 0 !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n margin: 0 !important;\\n\\n .red {\\n .el-form-item__content {\\n input {\\n color: red;\\n }\\n }\\n }\\n\\n .el-form-item {\\n .el-form-item__label {\\n background-color: #F5F5F5;\\n padding: 0 20px 8px 20px !important;\\n margin-bottom: 0;\\n }\\n\\n .el-form-item__content {\\n padding-left: 20px;\\n }\\n }\\n\\n .border-left-box {\\n .el-form-item {\\n .el-form-item__label {\\n border-left: 1px solid #ebeef5;\\n }\\n\\n .el-form-item__content {\\n border-left: 1px solid #ebeef5 !important;\\n }\\n }\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n border-bottom: 1px solid #ebeef5;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 15px !important;\\n\\n .el-form-item {\\n .el-form-item__content {\\n border: none !important;\\n padding: 0;\\n\\n p {\\n height: auto;\\n line-height: normal;\\n padding-left: 5px;\\n margin: 15px 0;\\n border-left: 6px solid #409EFF;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 0 !important;\\n }\\n\\n .el-form-item__label,\\n .el-form-item__content,\\n .el-form-item__content .el-select__selection,\\n .el-form-item__content .user-input {\\n height: 55px;\\n line-height: 55px;\\n }\\n\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input,\\n .el-form-item__content .el-select__selection {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-size: 14px;\\n color: #666666;\\n }\\n\\n .el-form-item__label {\\n line-height: 55px;\\n font-weight: 700;\\n }\\n\\n .el-form-item__content .el-select__wrapper {\\n padding: 0;\\n }\\n\\n\\n\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_8754320\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"订单信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class mtop\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"ddly\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单来源\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"order_source\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"app\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"小程序\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"web\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"border-left-box\"},\"ddlx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"订单类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"order_type\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通订单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"加急订单\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"tjsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"提交时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":[]},\"zffs\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"支付方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"mode_payment\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"微信\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"支付宝\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"银行卡\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"其他\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"zfsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"支付时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":[],\"className\":\"border-left-box\"},\"psfs\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"配送方式\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"mode_distribution\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"顺丰快递\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"自营配送\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"申通快递\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"wldh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"物流单号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"zdqrshsj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"自动确认收货时间\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"15天\"},\"jfhk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"积分回馈\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"czhk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"成长回馈\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yhzh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"用户账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"hdxx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"活动信息\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_4895475\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"费用信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"sphjje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"商品合计金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"yf\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"运费\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yhj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"优惠劵\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"jfzk\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"积分折扣\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"hdyh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"活动优惠\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"zkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"折扣金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"ddje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"red\"},\"yfkje\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"应付款金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"red\"},\"fields_5412361\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"收货人信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"shr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"收货人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"sjhm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yzbm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮政编码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"shdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收货地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"fields_2517772\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"发票信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"fplx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"发票类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"Invoice_type\",\"codeDicData\":[],\"className\":\"border-left-box\"},\"fptt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"发票抬头\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"企业\",\"value\":\"1\"},{\"label\":\"个人\",\"value\":\"2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"Invoice_type\",\"codeDicData\":[]},\"qymc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"qysh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业税号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"qydz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"企业地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"border-left-box\"},\"fpnr\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"发票内容\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"sprsj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人手机\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"spryx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收票人邮箱\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"}},\"group\":[]}', 1829756131023052802, NULL, 'N'); +INSERT INTO `lowcode_desform` VALUES (1844612970545950722, '1', 1, '2024-10-11 13:36:18', 101, 1, '2024-10-11 13:54:38', 0, '管理模块-备注-关闭', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n if (formData.type == \'bz\') {\\n useFun.setPropConfig(\'bz\', {\\n display: true, //禁用age\\n })\\n } else {\\n useFun.setPropConfig(\'gbyy\', {\\n display: true, //禁用age\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"bz\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"labelWidth\":null},\"gbyy\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"关闭原因\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844632600228409345, '1', 1, '2024-10-11 14:54:18', 101, 1, '2024-12-27 11:35:24', 0, '管理模块-工单管理', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n var tjTime = useFun.formatDate(new Date(), \'YYYY-MM-DD HH:mm:ss\')\\n var time = useFun.formatDate(new Date(), \'YYYYMMDDHHmmss\')\\n submitData.gdbh = time\\n submitData.tjsj = tjTime\\n submitData.gdzt = 1\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1844632600228409345 {\\n\\n //样式请写在当前位置内\\n\\n .avue-form__group {\\n .avue-form__row {\\n .el-form-item {\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-input__wrapper {\\n height: 38px;\\n }\\n\\n .el-radio-button {\\n height: 35px;\\n }\\n\\n .el-select__wrapper {\\n height: 40px;\\n }\\n\\n .el-upload__tip {\\n font-family: \'微软雅黑\', sans-serif;\\n color: #999999;\\n font-size: 14px;\\n }\\n }\\n }\\n\\n .control-jycd {\\n .el-form-item__label {\\n justify-content: flex-end;\\n }\\n }\\n\\n .avue-title p {\\n font-size: 14px !important;\\n font-family: \'微软雅黑\', sans-serif !important;\\n font-weight: 400 !important;\\n font-style: normal !important;\\n color: #999999 !important;\\n text-align: left !important;\\n margin-left: 120px;\\n }\\n\\n }\\n\\n\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"gdbt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"工单标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":null},\"glkh\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联客户\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"xx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"选项一\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"选项二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"选项三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"选项四\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"选项五\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":null},\"gldd\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联订单\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"xx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"选项一\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"选项二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"选项三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"选项四\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"选项五\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":null},\"gdlx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"工单类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"gdlx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通工单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"售后工单\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"维修工单\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":null},\"jycd\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"紧要程度\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"jycd\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"重要\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"紧急\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"普通\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"较低\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"value\":\"1\",\"labelPosition\":\"left\",\"labelWidth\":null,\"border\":false,\"button\":true,\"offset\":null},\"gdms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"工单描述\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"scfj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\"},\"clry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"处理人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":null},\"csry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"抄送人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"offset\":0},\"fields_8201119\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"注:处理完成后,将自动通知到所选人员。\",\"display\":true,\"span\":12,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"pour\"}},\"tableDesignId\":\"1844620967619866625\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844646887256764417, '1', 1, '2024-10-11 15:51:04', 101, 1, '2024-11-11 16:39:57', 0, '管理模块-工单管理-分配工单', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1844646887256764417 {\\n //样式请写在当前位置内\\n\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .user-input {\\n height: 40px;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"jsr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"接收人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"fields_3075022\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注信息\",\"readonly\":false,\"minRows\":4,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844666969680785410, '1', 1, '2024-10-11 17:10:52', 101, 1, '2024-11-12 15:32:19', 0, '工单管理-详情', '{\"jsEnhance\":\"\\n\\n//初始化控件\\nuseFun.controlInit(\'ControlView\', \'controlView_25095\', {\\n controlName: \'WorkOrderForm\', //控件名称(全局注册的控件使用,例:el-transfer )\\n controlPath: \'views/lowexample/form/WorkOrderForm.vue\', //控件相对路径(未全局注册的控件使用,例:components/IFrame/src/IFrame.vue)\\n controlParams: {\\n }, //控件配置\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n popOption: { //弹窗配置\\n title: \'测试控件\', //标题\\n width: \'90%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n // {\\n // params: {}, //el-button 其他参数\\n // name: \'测试按钮\', //按钮名称\\n // display: true, //是否显示\\n // loading: true, //点击时是否有loading\\n // icon: \'\', //图标\\n // clickFun: (loading) => {\\n // //点击事件\\n // if (loading) loading() //关闭loading\\n // }\\n // }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {}, //弹窗其他配置\\n handleClose: (done) => { //关闭弹窗前的回调\\n\\n done()\\n }\\n }\\n})\\n\\n//控件调用\\n\\n// componentRef.value.controlView_25095 ControlView的Ref控件引用\\n\\n\\n\\nreturn {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_7701387\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"处理人\",\"prop\":\"btn_clr\",\"id\":\"btn_9038\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { controlView_25095 } = Vue.toRefs(rendControlData.value)\\r\\n controlView_25095.value.show = true //显示ControlView\\r\\n const controlData = controlView_25095.value.params //ControlView的配置\\r\\n controlData.controlParams = {\\r\\n type: \'clr\',\\r\\n obj: formData.value\\r\\n }\\r\\n\\r\\n }\\r\\n}\",\"text\":false},{\"label\":\"发起人\",\"prop\":\"btn_fqr\",\"id\":\"btn_3444\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { controlView_25095 } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = controlView_25095.value.params //ControlView的配置\\r\\n controlData.controlParams = {\\r\\n type: \'fqr\',\\r\\n obj: formData.value\\r\\n }\\r\\n controlView_25095.value.show = true //显示ControlView\\r\\n }\\r\\n}\"}],\"location\":\"center\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1844943768151142401, '1', 1, '2024-10-12 11:30:46', 101, 1, '2024-11-12 15:18:00', 0, '工单管理-头部', '{\"jsEnhance\":\"//初始化收货人表单\\nuseFun.controlInit(\'FormView\', \'formView_xgshr\', {\\n formId: \'1845725929011695618\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {\\n }, //默认表单数据\\n enhanceData: {\\n }, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'收货人信息\', //标题\\n width: \'\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n }\\n done()\\n }\\n})\\n\\n\\n\\nconst { formView_xgshr } = Vue.toRefs(rendControlData.value)\\n\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value, obj, title, ID) => {\\n if (formView_value) {\\n\\n const controlData = formView_value.value.params //ControlView的配置\\n formView_value.value.show = true //显示FormView\\n controlData.defaultData = obj\\n controlData.popOption.title = title\\n if (ID) {\\n controlData.formId = ID\\n }\\n }\\n}\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => {\\n if (formData.lx == \'clr\') {\\n useFun.setPropConfig(\'btn_group\', {\\n display: true, //禁用age\\n })\\n } else {\\n useFun.setPropConfig(\'btn_fqr\', {\\n display: true, //禁用age\\n })\\n }\\n const obj = {\\n \'dcl\': [],\\n \'ywj\': [0, 1, 2],\\n \'yth\': [1, 4],\\n \'ycx\': [1, 2],\\n \'fqr\': [4]\\n }\\n\\n if (obj[formData.lx].length > 0) {\\n obj[formData.lx].map(item => {\\n useFun.getPropConfig(\'btn_fqr\').params.buttonList[item].display = false\\n })\\n }\\n resolve(formData)\\n })\\n },\\n initOption() { //表单显示前执行\\n },\\n}\\n\\n\\n\\n\",\"scssEnhance\":\".low-form__1844943768151142401 {\\n //样式请写在当前位置内\\n\\n padding: 0 !important;\\n\\n .btn_group_class {\\n padding-right: 0 !important;\\n\\n .el-form-item{\\n margin-bottom: 0;\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"完结工单\",\"prop\":\"wjgd_btn\",\"id\":\"btn_881\",\"icon\":\"ep:check\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'完结工单\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'wjgd\'\\r\\n }, title)\\r\\n\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"退回工单\",\"prop\":\"th_btn\",\"id\":\"btn_3844\",\"icon\":\"ep:close\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'退回工单\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'thgd\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"转他人处理\",\"prop\":\"ztrcl_btn\",\"id\":\"btn_7084\",\"icon\":\"ep:switch\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'转他人处理\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'ztrcl\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"上传附件\",\"prop\":\"fj_btn\",\"id\":\"btn_5956\",\"icon\":\"ep:paperclip\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'上传附件\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'scfj\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"打印工单\",\"prop\":\"dy_btn\",\"id\":\"btn_8480\",\"icon\":\"ep:printer\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n // const { formView_gbdd } = Vue.toRefs(rendControlData.value)\\r\\n // useFun.openForm(formView_gbdd)\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":false,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"btn_fqr\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"编辑工单\",\"prop\":\"wjgd_btn\",\"id\":\"btn_881\",\"icon\":\"ep:edit-pen\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'新建工单\'\\r\\n const id = \'1844632600228409345\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'bjgd\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"撤销工单\",\"prop\":\"th_btn\",\"id\":\"btn_3844\",\"icon\":\"ep:refresh-left\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'撤销工单\'\\r\\n const id = \'1845725929011695618\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'cxgd\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"上传附件\",\"prop\":\"fj_btn\",\"id\":\"btn_5956\",\"icon\":\"ep:paperclip\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'上传附件\'\\r\\n const id = \'1845725929011695618\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'scfj\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"打印工单\",\"prop\":\"dy_btn\",\"id\":\"btn_8480\",\"icon\":\"ep:printer\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n message.confirm(\'开发测试中...\', \'操作确认\', { type: \'warning\' })\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"删除工单\",\"prop\":\"scgd_btn\",\"id\":\"btn_9582\",\"icon\":\"ep:delete\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n message.confirm(\'是否确定删除数据?\', \'操作确认\', { type: \'warning\' })\\r\\n }\\r\\n}\"}],\"location\":\"right\"},\"display\":false,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845002998170267649, '1', 1, '2024-10-12 15:26:08', 101, 1, '2024-12-27 11:28:09', 0, '工单管理-订单详情', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n\\n let arr = [\'sphjje\', \'yf\', \'yhj\', \'jfzk\', \'hdyh\', \'zkje\', \'ddje\', \'yfkje\']\\n arr.forEach(ele => {\\n if (formData[ele]) {\\n let je = formData[ele]\\n if (isNaN(parseFloat(je))) return false\\n let newJe = Math.round(je * 100) / 100\\n let newJeString = newJe.toString()\\n let newJeLength = newJeString.indexOf(\'.\')\\n if (newJeLength < 0) {\\n newJeLength = newJeString.length;\\n newJeString += \'.\'\\n }\\n while (newJeString.length <= newJeLength + 2) {\\n newJeString += \'0\'\\n }\\n formData[ele] = \'¥\' + newJeString\\n } else {\\n formData[ele] = \'¥0.00\'\\n }\\n })\\n\\n\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n console.log(submitData, \'biahihg\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1845002998170267649 {\\n padding: 0 10px 20px 10px !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n margin: 0 !important;\\n\\n .red {\\n .el-form-item__content {\\n input {\\n color: red;\\n }\\n }\\n }\\n\\n .input:nth-child(5) {\\n .el-form-item {\\n border-right: 1px solid #e9e9e9;\\n }\\n }\\n\\n .input:nth-child(9) {\\n .el-form-item {\\n border-right: 1px solid #e9e9e9;\\n }\\n }\\n\\n .input:nth-child(12) {\\n .el-form-item {\\n border-right: 1px solid #e9e9e9;\\n }\\n }\\n\\n .input {\\n .el-form-item {\\n border-left: 1px solid #e9e9e9;\\n\\n border-bottom: 1px solid #e9e9e9;\\n\\n .el-form-item__label {\\n background-color: #F5F5F5;\\n padding: 0 20px !important;\\n }\\n\\n .el-form-item__content {\\n // padding-left: 20px;\\n }\\n }\\n }\\n\\n .border-left-box {\\n .el-form-item {\\n .el-form-item__label {\\n border-left: 1px solid #ebeef5;\\n }\\n\\n .el-form-item__content {\\n // border-left: 1px solid #ebeef5;\\n }\\n }\\n }\\n\\n .el-form-item__label,\\n .el-form-item__content,\\n .el-form-item__content .el-select__selection,\\n .el-form-item__content .user-input {\\n height: 55px;\\n line-height: 55px;\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n border-bottom: 1px solid #ebeef5;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 15px !important;\\n\\n .el-form-item {\\n background: initial;\\n\\n .el-form-item__content {\\n height: 60px;\\n line-height: 60px;\\n border: none !important;\\n padding: 0;\\n\\n p {\\n height: auto;\\n line-height: normal;\\n padding-left: 10px;\\n margin: 15px 0;\\n border-left: 7px solid #409EFF;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 0 !important;\\n border-left: none !important;\\n\\n\\n }\\n\\n .bottom {\\n margin-top: 25px !important;\\n\\n .el-form-item__content {\\n bottom: 5px;\\n }\\n }\\n\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input,\\n .el-form-item__content .el-select__selection {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-size: 14px;\\n color: #666666;\\n }\\n\\n .el-form-item__label {\\n line-height: 55px;\\n font-weight: 700;\\n margin-bottom: 0;\\n padding-bottom: 8px;\\n }\\n\\n .el-form-item__content .el-select__wrapper {\\n padding: 0;\\n }\\n\\n\\n\\n }\\n }\\n\\n // .el-col {\\n // padding: 0 !important;\\n // margin: 0 !important;\\n // border-left: 1px solid #e9e9e9 !important;\\n // }\\n\\n .dept-select-box {\\n height: 55px;\\n line-height: 55px;\\n display: flex;\\n align-items: center;\\n }\\n\\n .avue-time {\\n height: 55px;\\n line-height: 55px;\\n display: flex;\\n align-items: center;\\n flex-direction: none;\\n }\\n\\n .el-input__inner {\\n margin-top: 20px;\\n }\\n\\n .avue--detail .el-form-item__content {\\n border: none;\\n }\\n\\n .text-box {\\n height: 68px;\\n\\n .el-form-item {\\n margin-left: -10px;\\n\\n .el-form-item__content {\\n padding: 0;\\n }\\n }\\n\\n .avue-title p {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n font-style: normal;\\n text-align: left;\\n height: 68px;\\n line-height: 68px;\\n color: #666666;\\n border: 1px solid #e9e9e9;\\n font-size: 14px;\\n padding-left: 20px;\\n margin-top: -8px;\\n background: #fcfcfc;\\n }\\n\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_8754320\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"工单信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class mtop\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"gdbh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"工单编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"glkh\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联客户\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"xx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"选项一\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"选项二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"选项三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"选项四\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"选项五\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"input\"},\"gldd\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联订单\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"xx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"选项一\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"选项二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"选项三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"选项四\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"选项五\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"input\"},\"gdzt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"当前状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"gdzt\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"待处理\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"已完结\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"已退回\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"已撤销\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"input\"},\"jycd\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"紧要程度\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"jycd\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"重要\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"紧急\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"普通\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"较低\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"input\"},\"tjry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"提交人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"tjbm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"提交部门\",\"findType\":\"all\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"clry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"处理人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"clbm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"处理部门\",\"findType\":\"all\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"tjsj\":{\"type\":\"time\",\"controlType\":\"time\",\"label\":\"提交时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"yyyy-MM-dd HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"yyyy-10-Tu 15:36:08\",\"className\":\"input\"},\"csry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"抄送人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"input\"},\"fields_4895475\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"工单描述\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"14px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class bottom\",\"stylesStr\":\"return {\\r\\n fontSize: \'14px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"gdms\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text-box\"}},\"group\":[]}', 1829756131023052802, NULL, 'N'); +INSERT INTO `lowcode_desform` VALUES (1845041920745218050, '1', 1, '2024-10-12 18:00:48', 101, 1, '2024-11-13 14:39:39', 0, '用户管理-添加标签', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1845041920745218050 {\\n //样式请写在当前位置内\\n\\n .el-checkbox-group {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n grid-row-gap: 10px;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"tjbq\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"dicCode\":\"user_management_label\",\"codeDicData\":[],\"border\":false}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845639851059728386, '1', 1, '2024-10-14 09:36:45', 101, 1, '2024-11-13 17:30:30', 0, '用户管理-修改资料', '{\"jsEnhance\":\"return {\\ninitData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n console.log(formData,props,\'111111111111111\')\\n resolve(formData)\\n })\\n},\\n}\\n\",\"scssEnhance\":\".low-form__1845639851059728386 {\\n //样式请写在当前位置内\\n\\n .el-form-item {\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n\\n .el-input,\\n .el-input__wrapper {\\n height: 40px;\\n }\\n }\\n }\\n\\n .radius_radio {\\n .el-form-item__content {\\n .el-radio-button {\\n .el-radio-button__inner {\\n border-radius: 18px;\\n margin-right: 10px;\\n border-left: var(--el-border);\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n border-left: 1px solid #409EFF;\\n\\n }\\n }\\n }\\n }\\n\\n }\\n\\n .avue-radio {\\n display: flex;\\n\\n .el-radio-button__inner {\\n height: 35px;\\n width: 100px;\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"user_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"用户账号\",\"readonly\":false,\"clearable\":false,\"display\":true,\"span\":24,\"disabled\":true,\"required\":true,\"hideLabel\":false},\"sjhm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":false,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"membership_level\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"会员等级\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"user_management-level\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"黄金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"白金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"钻石会员\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"button\":true},\"xb\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"性别\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"男性\",\"value\":\"1\"},{\"label\":\"女性\",\"value\":\"2\"},{\"label\":\"保密\",\"value\":\"3\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"system_user_sex\",\"codeDicData\":[{\"value\":\"0\",\"label\":\"未知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"1\",\"label\":\"男\",\"colorType\":\"default\",\"cssClass\":\"A\"},{\"value\":\"2\",\"label\":\"女\",\"colorType\":\"success\",\"cssClass\":\"\"}],\"button\":true,\"border\":true,\"className\":\"radius_radio\"},\"sr\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"生日\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"选择日期\"},\"szcs\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"所在城市\",\"regionType\":\"s\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"moreOptionStr\":\"return {\\n\\n}\"},\"zy\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"职业\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"gxqm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"个性签名\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"}},\"tableDesignId\":\"1845019389086736386\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845673651634458625, '1', 1, '2024-10-14 11:51:04', 101, 1, '2024-12-27 11:45:33', 0, '用户管理-用户管理头部', '{\"jsEnhance\":\"//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_xgzl\', {\\n formId: \'1845639851059728386\', //表单设计id\\n formType: \'edit\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'修改资料\', //标题\\n width: \'580px\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n // if (type == \'submit\') {\\n // // useFun.refreshChange()\\n // }\\n done()\\n }\\n})\\n\\n//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_szzt\', {\\n formId: \'1845742751116910593\', //表单设计id\\n formType: \'edit\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'设置状态\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n // if (type == \'submit\') {\\n // // useFun.refreshChange()\\n // }\\n done()\\n }\\n})\\n\\n\\n//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_zcmm\', {\\n formId: \'1845748461452091393\', //表单设计id\\n formType: \'edit\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'设置状态\', //标题\\n width: \'27%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n message.success(\'发送成功\')\\n }\\n done()\\n }\\n})\\n\\n\\n\\nreturn {\\n initOption() { //表单显示前执行\\n\\n\\n console.log(useFun.getPropConfig(\'btnList\'), 11111)\\n },\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n const { formView_xgzl, formView_szzt, formView_zcmm } = Vue.toRefs(rendControlData.value)\\n\\n formView_xgzl.value.params.defaultData = formData\\n\\n formView_szzt.value.params.defaultData = formData\\n\\n formView_zcmm.value.params.defaultData = { icon_url: \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-14/1/mdi--question-mark-circle-outline (1).png\' }\\n\\n\\n\\n\\n\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1845673651634458625 {\\n height: 110px;\\n display: flex;\\n align-items: center;\\n\\n //样式请写在当前位置内\\n .el-form>.el-row {\\n border: none;\\n\\n .avue-form__group {\\n align-items: center;\\n\\n .el-col {\\n border: none;\\n\\n\\n .el-form-item__label {\\n border: none !important;\\n background-color: white;\\n padding: 0 0 8px 0!important;\\n margin-bottom: 0;\\n display: flex;\\n justify-content: center;\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n border: none;\\n\\n .el-upload {\\n\\n border: none;\\n\\n .avue-upload__avatar {\\n height: 70px;\\n width: 70px;\\n border-radius: 50%;\\n\\n }\\n\\n img {\\n height: 100%;\\n width: 100%;\\n }\\n }\\n\\n .el-select__selection {\\n .el-select__selected-item {\\n display: flex;\\n justify-content: center;\\n font-size: 16px;\\n color: #666;\\n }\\n }\\n\\n .el-input {\\n .el-input-group__prepend {\\n height: 30px;\\n font-size: 16px;\\n padding: 0;\\n box-shadow: none;\\n color: #666;\\n }\\n\\n .el-input__wrapper {\\n .el-input__inner {\\n text-align: center;\\n font-size: 16px !important;\\n }\\n }\\n }\\n }\\n }\\n\\n .user_name_class {\\n position: absolute;\\n top: 13px;\\n left: 90px;\\n\\n .el-form-item__content {\\n .el-input__inner {\\n text-align: left !important;\\n padding-left: 4px;\\n }\\n }\\n }\\n\\n .membership_level_class {\\n position: absolute;\\n top: 46px;\\n left: 90px;\\n\\n .el-select__selection {\\n .el-select__selected-item {\\n width: 80px;\\n height: 28px;\\n font-size: 12px !important;\\n border-radius: 15px;\\n align-items: center;\\n background-color: #FFA94C;\\n color: white !important;\\n }\\n }\\n }\\n\\n .user_type_class {\\n margin-left: 100px !important;\\n }\\n\\n .xfje {\\n .el-input {\\n margin-top: 0;\\n }\\n }\\n\\n .btn_list_class {\\n margin-left: auto !important;\\n\\n .el-button {\\n height: 35px;\\n width: 100px;\\n font-size: 14px;\\n color: #999999;\\n }\\n\\n .el-button--primary {\\n color: white;\\n }\\n }\\n\\n }\\n }\\n\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":0,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"avatar_img\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"avatar\",\"offset\":0,\"moreOptionStr\":\"return {\\n\\n}\"},\"user_name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"user_name_class\"},\"membership_level\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"left\",\"labelWidth\":0,\"dicCode\":\"user_management-level\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"黄金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"白金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"钻石会员\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"membership_level_class\"},\"user_type\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"用户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"labelWidth\":null,\"dicCode\":\"user_management_type\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"正常\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"异常\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":0,\"className\":\"user_type_class\"},\"consumption_amount\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"消费金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"prepend\":\"¥\",\"className\":\"xfje\"},\"order_record\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单记录\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"\"},\"available_points\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"可用积分\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"\"},\"btnList\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"修改资料\",\"prop\":\"btn_7167\",\"id\":\"btn_7167\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"//控件调用\\r\\nreturn {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgzl } = Vue.toRefs(rendControlData.value)\\r\\n formView_xgzl.value.show = true //显示FormView\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"设置状态\",\"prop\":\"btn_4309\",\"id\":\"btn_4309\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_szzt } = Vue.toRefs(rendControlData.value)\\r\\n formView_szzt.value.show = true //显示FormView\\r\\n }\\r\\n}\"},{\"label\":\"重置密码\",\"prop\":\"btn_2221\",\"id\":\"btn_2221\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_zcmm } = Vue.toRefs(rendControlData.value)\\r\\n formView_zcmm.value.show = true //显示FormView\\r\\n }\\r\\n}\"}],\"location\":\"right\"},\"display\":true,\"span\":10,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_list_class\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845725929011695618, '1', 1, '2024-10-14 15:18:48', 101, 1, '2024-10-15 09:46:16', 0, '工单管理-头部按钮', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n var obj = {\\n \'wjgd\': [\'scfj\', \'bzxx\'],\\n \'thgd\': [\'thdry\', \'thyy\'],\\n \'ztrcl\': [\'jsry\', \'ztr_bzxx\'],\\n \'scfj\': [\'sc_fj\', \'bznr\'],\\n \'cxgd\': [\'cxyy\'],\\n }\\n if (obj[formData.lx]) {\\n obj[formData.lx].map(item => {\\n useFun.setPropConfig(item, {\\n display: true,\\n })\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"scfj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"bzxx\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注信息\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"thdry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"退回到人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"thyy\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"退回原因\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"jsry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"接收人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"ztr_bzxx\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注信息\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"sc_fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"bznr\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"cxyy\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"撤销原因\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100,\"labelPosition\":\"left\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845742751116910593, '1', 1, '2024-10-14 16:25:39', 101, 1, '2024-11-13 17:30:01', 0, '用户管理头部-设置状态', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1845742751116910593 {\\n //样式请写在当前位置内\\n\\n .el-form-item {\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n }\\n\\n .radius_radio {\\n .el-form-item__content {\\n\\n .avue-radio {\\n display: flex;\\n\\n .el-radio-button {\\n .el-radio-button__inner {\\n height: 35px;\\n width: 100px;\\n border-radius: 18px;\\n margin-right: 10px;\\n border-left: var(--el-border);\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n border-left: 1px solid #409EFF;\\n background-color: #40a0ff2d;\\n color: rgb(64, 158, 255);\\n }\\n }\\n }\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"user_type\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"选择状态\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"启用\",\"value\":\"1\"},{\"label\":\"禁用\",\"value\":\"2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"radius_radio\"},\"fields_2049475\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":6,\"maxRows\":8,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"输入内容\",\"showWordLimit\":true,\"maxlength\":300}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845748461452091393, '1', 1, '2024-10-14 16:48:20', 101, 1, '2024-11-13 17:32:27', 0, '用户管理头部-重置密码', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1845748461452091393 {\\n\\n //样式请写在当前位置内\\n .el-form>.el-row {\\n margin-bottom: 30px;\\n border: none;\\n\\n .avue-form__group {\\n align-items: center;\\n\\n .el-col {\\n border: none;\\n\\n .el-form-item__content {\\n border: none;\\n\\n .el-upload {\\n background-color: white;\\n border: none;\\n\\n .avue-upload__avatar {\\n height: 30px;\\n width: 30px;\\n border-radius: 50%;\\n\\n }\\n\\n img {\\n height: 100%;\\n width: 100%;\\n }\\n }\\n }\\n\\n }\\n\\n .bold_text {\\n position: absolute;\\n top: 0;\\n left: 30px;\\n\\n .avue-title {\\n p {\\n font-size: 16px;\\n color: #666666;\\n }\\n }\\n }\\n\\n .text {\\n position: absolute;\\n top: 26px;\\n left: 30px;\\n\\n .avue-title {\\n p {\\n font-size: 14px;\\n font-weight: 400;\\n color: #999999;\\n }\\n }\\n\\n }\\n\\n .bold_text,\\n .text {\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .avue-title {\\n\\n // margin: 0;\\n p {\\n height: 20px;\\n line-height: 20px;\\n }\\n\\n }\\n }\\n\\n }\\n\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"确定\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"icon_url\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"img_class\"},\"fields_5712413\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"是否重置用户登录密码?\",\"display\":true,\"span\":23,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"bold_text\"},\"fields_3391476\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"新密码将通过短信发送到用户手机上\",\"display\":true,\"span\":23,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"text\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1845757477997731842, '1', 1, '2024-10-14 17:24:10', 101, 1, '2024-12-27 11:48:14', 0, '用户管理-用户详情', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n\\n console.log(submitData,\'submitData\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1845757477997731842 {\\n padding: 6px 28px !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n margin: 0 !important;\\n\\n .left-border {\\n border-left: 1px solid #ebeef5;\\n }\\n\\n .el-form-item {\\n .el-form-item__label {\\n background-color: #F5F5F5;\\n padding: 0 20px 8px 20px!important;\\n margin-bottom: 0;\\n }\\n\\n .el-form-item__content {\\n padding-left: 20px;\\n }\\n }\\n\\n .border-left-box {\\n .el-form-item {\\n .el-form-item__label {\\n border-left: 1px solid #ebeef5;\\n }\\n\\n .el-form-item__content {\\n border-left: 1px solid #ebeef5 !important;\\n }\\n }\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n border-bottom: 1px solid #ebeef5;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 15px !important;\\n\\n .el-form-item {\\n .el-form-item__content {\\n height: 60px;\\n line-height: 60px;\\n border: none !important;\\n padding: 0;\\n\\n p {\\n font-size: 14px;\\n color: #666666;\\n height: auto;\\n line-height: normal;\\n padding-left: 5px;\\n margin: 15px 0;\\n border-left: 6px solid #409EFF;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 0 !important;\\n }\\n\\n .el-form-item__label,\\n .el-form-item__content,\\n .el-form-item__content .el-select__selection,\\n .el-form-item__content .user-input,\\n .el-form-item__content .avue-date,\\n .el-form-item__content .el-cascader .el-input__wrapper {\\n height: 55px;\\n line-height: 55px;\\n }\\n\\n .rq_class {\\n .el-form-item__content .avue-date .el-input__wrapper {\\n height: 55px;\\n line-height: 55px;\\n }\\n }\\n\\n .el-form-item__content {\\n\\n .avue-date .el-input__wrapper,\\n .el-cascader .el-input__wrapper {\\n padding: 0;\\n\\n }\\n }\\n\\n .el-form-item__label,\\n .el-form-item__content .el-input,\\n .el-form-item__content .el-select__selection {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-size: 14px;\\n color: #666666;\\n }\\n\\n .el-form-item__label {\\n line-height: 55px;\\n font-weight: 700;\\n }\\n\\n .el-form-item__content .el-select__wrapper {\\n padding: 0;\\n }\\n\\n\\n\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_9105030\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"用户资料\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"ddxq-title-class mtop\"},\"id\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"ID编号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"user_type\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"用户状态\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"user_management_type\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"正常\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"异常\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"sjhm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"xb\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"性别\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"system_user_sex\",\"codeDicData\":[{\"value\":\"0\",\"label\":\"未知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"1\",\"label\":\"男\",\"colorType\":\"default\",\"cssClass\":\"A\"},{\"value\":\"2\",\"label\":\"女\",\"colorType\":\"success\",\"cssClass\":\"\"}]},\"sr\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"生日\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":null,\"value\":[],\"className\":\"left-border rq_class\"},\"cs\":{\"type\":\"regionSelect\",\"controlType\":\"select\",\"label\":\"城市\",\"regionType\":\"ssq\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"zy\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"职业\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"gxqm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"个性签名\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"xhdfl\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"喜欢的分类\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"registration_channel\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"注册渠道\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"top\",\"dicCode\":\"user_management_registration_channel\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"APP\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"网站\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"小程序\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"其它渠道\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"create_time\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"注册时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":null,\"value\":[]},\"zhdl\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"最后登录\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"offset\":null,\"value\":[]},\"fields_8038839\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"统计信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"ddxq-title-class\"},\"consumption_amount\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"消费金额\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"order_record\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"订单记录\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"available_points\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"可用积分\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"czz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"成长值\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yhj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"优惠卷(张)\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"sppj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"商品评价\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"thjl\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"退货记录\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"dlcs\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"登录次数\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"gz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"关注\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"fs\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"粉丝\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"scsp\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收藏商品\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"sczt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收藏专题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"scht\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收藏话题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"className\":\"left-border\"},\"scpj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"收藏评价\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"yqhy\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邀请好友\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"sycjcs\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"剩余抽奖次数\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":6,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846027395603243010, '1', 1, '2024-10-15 11:16:43', 101, 1, '2024-11-12 14:37:18', 0, '管理模块-部门管理', '{\"jsEnhance\":\"return {\\n\\n}\\n\",\"scssEnhance\":\".low-form__1846027395603243010 {\\n //样式请写在当前位置内\\n\\n .el-form-item__content {\\n .el-radio {\\n border-radius: 25px;\\n width: 100px;\\n height: 35px;\\n justify-content: center;\\n\\n &.is-checked {\\n background-color: #F0F7FF;\\n }\\n\\n .el-radio__input {\\n\\n display: none;\\n }\\n\\n .el-radio__label {\\n padding-left: 0;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"sjbm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"选择部门\",\"findType\":\"all\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"zt\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"选择状态\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"bmzt\",\"codeDicData\":[{\"value\":\"0\",\"label\":\"禁用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"1\",\"label\":\"启用\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"value\":\"1\",\"border\":true}},\"tableDesignId\":\"1846009550756601857\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846092785716961282, '1', 1, '2024-10-15 15:36:34', 101, 1, '2024-11-12 15:39:19', 0, '管理模块-职务管理', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n const obj = {\\n \'tjry\': [\'zwmc\', \'xzcy\', \'title\'],\\n \'szzt\': [\'zt\', \'bznr\'],\\n \'fz\': [\'fz_zwmc\', \'zwms\'],\\n }\\n if (obj[formData.type]) {\\n obj[formData.type].map(item => {\\n useFun.setPropConfig(item, {\\n display: true,\\n })\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1846092785716961282 {\\n\\n //样式请写在当前位置内\\n .text {\\n font-family: \'微软雅黑\', sans-serif !important;\\n margin-left: 120px;\\n font-style: normal !important;\\n font-size: 12px !important;\\n color: #FF9900;\\n text-align: left !important;\\n line-height: 36px !important;\\n }\\n\\n .avue-title p {\\n font-size: 12px !important;\\n font-weight: 400;\\n margin-left: 0;\\n }\\n\\n .avue-radio {\\n .el-radio-button {\\n margin-right: 10px;\\n\\n .el-radio-button__inner {\\n width: 100px;\\n height: 35px;\\n border-radius: 25px;\\n border: 1px solid rgba(228, 228, 228, 1);\\n color: #999;\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n background-color: #F0F7FF;\\n border-color: #409EFF;\\n color: #409EFF;\\n box-shadow: none;\\n }\\n\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"zwmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"职务名称\",\"readonly\":false,\"clearable\":true,\"display\":false,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false},\"xzcy\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"选择成员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"如果该员工已被分配其他职务,添加后员工将被修改职务\",\"display\":false,\"span\":24,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"text\"},\"zt\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"选择状态\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"bmzt\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"启用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"禁用\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"value\":\"1\",\"button\":true},\"bznr\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":6,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"fz_zwmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"职务名称\",\"readonly\":false,\"clearable\":true,\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"zwms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"职务描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100}},\"tableDesignId\":\"1846083503466356737\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846114280447025153, '1', 1, '2024-10-15 17:01:58', 101, 1, '2024-11-12 16:50:11', 0, '职务管理-头部', '{\"jsEnhance\":\"//初始化收货人表单\\nuseFun.controlInit(\'FormView\', \'formView_xgshr\', {\\n formId: \'1846092785716961282\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {\\n }, //默认表单数据\\n enhanceData: {\\n }, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'收货人信息\', //标题\\n width: \'35%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n }\\n done()\\n }\\n})\\n\\n\\n\\nconst { formView_xgshr } = Vue.toRefs(rendControlData.value)\\n\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value, obj, title, ID) => {\\n formView_value.value.show = true //显示FormView\\n const controlData = formView_value.value.params //ControlView的配置\\n controlData.defaultData = obj\\n controlData.popOption.title = title\\n if (ID) {\\n controlData.formId = ID\\n }\\n}\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => {\\n if (formData.lx == \'clr\') {\\n useFun.setPropConfig(\'btn_group\', {\\n display: true, //禁用age\\n })\\n } else {\\n useFun.setPropConfig(\'btn_fqr\', {\\n display: true, //禁用age\\n })\\n }\\n const obj = {\\n \'dcl\': [],\\n \'ywj\': [0, 1, 2],\\n \'yth\': [1, 4],\\n \'ycx\': [1, 2],\\n \'fqr\': [4]\\n }\\n\\n if (obj[formData.lx].length > 0) {\\n obj[formData.lx].map(item => {\\n useFun.getPropConfig(\'btn_fqr\').params.buttonList[item].display = false\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\\n\\n\\n\",\"scssEnhance\":\".low-form__1846114280447025153 {\\n //样式请写在当前位置内\\n\\n .zw_btn {\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .el-button {\\n color: #999;\\n font-family: 微软雅黑, sans-serif;\\n width: 110px;\\n height: 35px;\\n\\n .el-icon {\\n span {\\n font-size: 16px;\\n }\\n }\\n\\n &.el-button--primary {\\n color: white;\\n }\\n }\\n }\\n\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"btn_group\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"完结工单\",\"prop\":\"wjgd_btn\",\"id\":\"btn_881\",\"icon\":\"ep:check\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'完结工单\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'wjgd\'\\r\\n }, title)\\r\\n\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"退回工单\",\"prop\":\"th_btn\",\"id\":\"btn_3844\",\"icon\":\"ep:close\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'退回工单\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'thgd\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"转他人处理\",\"prop\":\"ztrcl_btn\",\"id\":\"btn_7084\",\"icon\":\"ep:switch\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'转他人处理\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'ztrcl\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"上传附件\",\"prop\":\"fj_btn\",\"id\":\"btn_5956\",\"icon\":\"ep:paperclip\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'上传附件\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n lx: \'scfj\'\\r\\n }, title)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"打印工单\",\"prop\":\"dy_btn\",\"id\":\"btn_8480\",\"icon\":\"ep:printer\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n // const { formView_gbdd } = Vue.toRefs(rendControlData.value)\\r\\n // useFun.openForm(formView_gbdd)\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":false,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class\"},\"btn_fqr\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"添加人员\",\"prop\":\"wjgd_btn\",\"id\":\"btn_881\",\"icon\":\"ep:circle-plus-filled\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'添加人员\'\\r\\n const id = \'1846092785716961282\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'tjry\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"编辑职务\",\"prop\":\"th_btn\",\"id\":\"btn_3844\",\"icon\":\"ep:edit-pen\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'新建职务\'\\r\\n const id = \'1846092785716961282\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'fz\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\",\"plain\":false,\"text\":false,\"round\":false,\"circle\":false,\"link\":false},{\"label\":\"设置状态\",\"prop\":\"fj_btn\",\"id\":\"btn_5956\",\"icon\":\"ep:setting\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'设置状态\'\\r\\n const id = \'1846092785716961282\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'szzt\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"复制职务\",\"prop\":\"dy_btn\",\"id\":\"btn_8480\",\"icon\":\"ep:document-copy\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'复制职务\'\\r\\n const id = \'1846092785716961282\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'fz\'\\r\\n }, title, id)\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"删除职务\",\"prop\":\"scgd_btn\",\"id\":\"btn_9582\",\"icon\":\"ep:delete\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n message.confirm(\'是否确定删除数据?\', \'操作确认\', { type: \'warning\' })\\r\\n }\\r\\n}\"}],\"location\":\"right\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_group_class zw_btn\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846364734045270018, '1', 1, '2024-10-16 09:37:11', 101, 1, '2024-11-12 17:39:18', 0, '职务管理-操作权限', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1846364734045270018 {\\n padding-top: 15px !important;\\n padding-bottom: 0 !important;\\n\\n //样式请写在当前位置内\\n .title {\\n background: #f5f5f5;\\n height: 50px;\\n border: 1px solid #e9e9e9;\\n border-bottom: 0;\\n\\n .avue-title p {\\n line-height: 40px !important;\\n }\\n }\\n\\n .behind_title {\\n margin-top: 20px;\\n }\\n\\n .checkbox {\\n padding: 0 !important;\\n }\\n\\n .checkboxs {\\n padding: 0px !important;\\n\\n .el-checkbox {\\n border-left: 0px solid #ccc !important;\\n border-right: 0px solid #ccc !important;\\n }\\n }\\n\\n .avue-title p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 700 !important;\\n font-style: normal !important;\\n text-align: left !important;\\n line-height: 20px !important;\\n font-size: 14px !important;\\n color: #666 !important;\\n }\\n\\n .el-checkbox-group {\\n // display: flex;\\n // flex-direction: column;\\n // align-items: center;\\n\\n .el-checkbox {\\n height: 50px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0 !important;\\n border: 1px solid #e9e9e9;\\n\\n .el-checkbox__input {\\n order: 1;\\n // margin-left: 290px;\\n }\\n\\n .el-checkbox__label {\\n margin: 0 !important;\\n font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n color: #666666;\\n padding-left: 20px;\\n // padding: 0 ;\\n }\\n }\\n }\\n\\n .el-checkbox__inner {\\n margin-right: 20px !important;\\n\\n }\\n\\n // .el-checkbox__input.is-checked+.el-checkbox__label {\\n // color: #606266 !important;\\n // }\\n\\n .el-checkbox-group {\\n\\n .el-checkbox:nth-child(2),\\n .el-checkbox:nth-child(3),\\n .el-checkbox:nth-child(4) {\\n border-top: 0px solid;\\n }\\n }\\n\\n .no-print {\\n height: 100px;\\n display: flex;\\n align-items: center;\\n margin-top: 30px;\\n justify-content: center;\\n padding: 0;\\n // border-top: 1px solid rgba(233, 233, 233, 1);\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n\\n .el-icon {\\n display: none;\\n\\n }\\n\\n span {\\n margin-left: 0;\\n }\\n }\\n\\n // &::before {\\n // content: \'\';\\n // width: calc(100% + 60px);\\n // height: 1px;\\n // background-color: rgba(233, 233, 233, 1);\\n // display: block;\\n // position: absolute;\\n // top: 0;\\n // left: 0;\\n // }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_407120\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_6061028\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5943132\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_396595\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_6961200\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_5841656\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_251100\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_2162243\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_6075923\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_1501571\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9712910\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_782411\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5411731\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_4755453\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_6527903\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_9213132\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846383339671629825, '1', 1, '2024-10-16 10:51:07', 101, 1, '2024-11-13 09:14:31', 0, '职务管理-数据权限', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1846383339671629825 {\\n padding-left: 30px;\\n\\n\\n //样式请写在当前位置内\\n .title {\\n .avue-title p {\\n margin-left: 0;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n font-size: 14px !important;\\n color: #666 !important;\\n }\\n }\\n\\n .text {\\n .avue-title p {\\n font-size: 14px !important;\\n color: #666 !important;\\n font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 400 !important;\\n }\\n }\\n\\n .radio {\\n // margin-top: 19px;\\n\\n .el-radio-group {\\n // display: flex !important;\\n // flex-direction: column !important;\\n // justify-content: space-between !important;\\n // align-items: baseline;\\n display: grid;\\n grid-template-rows: repeat(4, minmax(0, 1fr));\\n height: 160px;\\n\\n }\\n }\\n\\n .text_box1,\\n .text_box2,\\n .text_box3,\\n .text_box4 {\\n position: absolute;\\n left: 213px;\\n\\n .avue-title p {\\n font-size: 14px !important;\\n color: #999 !important;\\n font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 400 !important;\\n height: 40px;\\n line-height: 40px;\\n }\\n }\\n\\n .text_box1 {\\n // position: absolute;\\n top: 55px;\\n // left: 213px;\\n // height: 20px;\\n\\n // .avue-title p {\\n // font-size: 14px !important;\\n // color: #666 !important;\\n // font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n // font-weight: 400 !important;\\n // }\\n }\\n\\n .text_box2 {\\n top: 95px;\\n\\n\\n // .avue-title p {\\n // font-size: 14px !important;\\n // color: #666 !important;\\n // font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n // font-weight: 400 !important;\\n // }\\n }\\n\\n .text_box3 {\\n // left: 213px;\\n\\n // position: absolute;\\n top: 135px;\\n // height: 20px;\\n\\n // .avue-title p {\\n // font-size: 14px !important;\\n // color: #666 !important;\\n // font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n // font-weight: 400 !important;\\n // }\\n }\\n\\n .text_box4 {\\n top: 175px;\\n\\n\\n // position: absolute;\\n // left: 213px;\\n // height: 20px;\\n\\n // .avue-title p {\\n // font-size: 14px !important;\\n // color: #666 !important;\\n // font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n // font-weight: 400 !important;\\n // }\\n }\\n\\n .no-print {\\n height: 100px;\\n display: flex;\\n align-items: center;\\n margin-top: 30px;\\n justify-content: center;\\n padding: 0;\\n // border-top: 1px solid rgba(233, 233, 233, 1);\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n font-size: 14px;\\n\\n .el-icon {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_1618643\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"数据权限\",\"display\":true,\"span\":3,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_3286742\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"(设置该角色的用户可以操作的数据的范围)\",\"display\":true,\"span\":21,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"fields_4747712\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"单选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"个人 \",\"value\":\"dic_1\"},{\"label\":\"所属部门\",\"value\":\"dic_2\"},{\"label\":\"所属部门及下属部门\",\"value\":\"dic_7457\"},{\"label\":\"全公司\",\"value\":\"dic_8411\"}],\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"border\":false,\"className\":\"radio\"},\"fields_6437806\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"只能操作自己和下属的数据\",\"display\":true,\"span\":20,\"hideLabel\":true,\"styles\":{},\"className\":\"text_box1\"},\"fields_2009741\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"能操作自己、下属、和自己所属部门的数据\",\"display\":true,\"span\":20,\"hideLabel\":true,\"styles\":{},\"className\":\"text_box2\"},\"fields_8006915\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"所属部门及下属部门 能操作自己、下属和自己所属部门及其子部门的数据\",\"display\":true,\"span\":20,\"hideLabel\":true,\"styles\":{},\"className\":\"text_box3\"},\"fields_1086961\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"能操作全公司的数据\",\"display\":true,\"span\":20,\"hideLabel\":true,\"styles\":{},\"className\":\"text_box4\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846388549542457346, '1', 1, '2024-10-16 11:11:49', 101, 1, '2024-11-14 10:13:16', 0, '员工管理-新增员工', '{\"jsEnhance\":\"\",\"scssEnhance\":\".low-form__1846388549542457346 {\\n padding-top: 0 !important;\\n\\n //样式请写在当前位置内\\n .el-form {\\n .el-row {\\n border: none;\\n\\n\\n .avue-form__row {\\n border: none;\\n margin-bottom: 20px;\\n\\n .el-form-item {\\n // height: 44px;\\n background-color: white;\\n margin-bottom: 12px;\\n width: 60%;\\n margin: 0 auto;\\n\\n .el-form-item__label {\\n // font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n\\n font-family: \'微软雅黑\', sans-serif;\\n color: #666;\\n background-color: white;\\n height: 40px;\\n line-height: 40px;\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n border: none;\\n font-size: 14px;\\n\\n .el-select__selected-item,\\n .el-input__inner,\\n .el-radio-button__inner,\\n .el-textarea__inner,\\n .empty-text {\\n font-size: 14px;\\n }\\n\\n .el-input__inner {\\n height: 38px;\\n }\\n\\n .el-select__selected-item,\\n .dept-input,\\n .el-select__wrapper,\\n .el-date-editor {\\n height: 40px;\\n }\\n\\n .el-select__wrapper {\\n line-height: 40px;\\n }\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n }\\n\\n .avue-radio {\\n display: flex;\\n\\n .el-radio-button__inner {\\n height: 35px;\\n width: 100px;\\n border-radius: 20px;\\n margin-right: 10px;\\n border: var(--el-border);\\n box-shadow: none;\\n }\\n\\n\\n }\\n }\\n }\\n }\\n\\n .ddxq-title-class {\\n border: none;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n margin-top: 1px !important;\\n padding-left: 40px !important;\\n\\n .el-form-item {\\n height: 60px;\\n margin-left: 0;\\n\\n\\n .el-form-item__content {\\n border: none !important;\\n padding: 0;\\n\\n p {\\n line-height: normal;\\n padding-left: 8px;\\n margin: 15px 0;\\n border-left: 6px solid #409EFF;\\n font-size: 14px !important;\\n }\\n }\\n }\\n }\\n\\n .mtop {\\n margin-top: 20px !important;\\n margin-bottom: 22px;\\n }\\n\\n\\n .btn_list {\\n height: 82px;\\n padding-top: 13px;\\n padding-left: calc(20% + 125px) !important;\\n\\n .el-form-item {\\n width: auto;\\n }\\n }\\n\\n .el-select__selected-item {\\n color: #606266;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":true,\"emptyText\":\"重置\",\"menuPosition\":\"center\",\"size\":\"default\",\"column\":{\"fields_8754320\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"基本信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class mtop\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"id\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"登录账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"bm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"所属部门\",\"findType\":\"all\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"zw\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"员工职务\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"销售部\",\"value\":\"1\"},{\"label\":\"销售总监\",\"value\":\"2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"codeDicData\":[],\"placeholder\":\"选择职务\"},\"yggh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"员工工号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"phone\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机号码\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"wxzh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"微信账号\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"yxdz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮箱地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"csrq\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"出生日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"选择日期\"},\"xb\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"性别\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"男性\",\"value\":\"1\"},{\"label\":\"女性\",\"value\":\"2\"},{\"label\":\"保密\",\"value\":\"3\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true},\"fields_4895475\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"详细信息\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{\"fontSize\":\"13px\",\"color\":\"#666666\"},\"className\":\"ddxq-title-class\",\"stylesStr\":\"return {\\r\\n fontSize: \'13px\',\\r\\n color: \'#666666\',\\r\\n}\"},\"jg\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"籍贯\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"xl\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"学历\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"初中\",\"value\":\"1\"},{\"label\":\"高中\",\"value\":\"2\"},{\"label\":\"大专\",\"value\":\"3\"},{\"label\":\"本科\",\"value\":\"4\"},{\"label\":\"研究生\",\"value\":\"5\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"codeDicData\":[],\"placeholder\":\"选择学历\"},\"zy\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"专业\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"byyx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"毕业院校\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"输入内容\"},\"bysj\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"毕业时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"选择日期\"},\"grjj\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"个人简介\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100},\"fields_6024525\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"提交\",\"prop\":\"tjBtn\",\"id\":\"btn_6199\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n if (props.defaultData) {\\r\\n message.success(\'编辑成功\')\\r\\n } else {\\r\\n message.success(\'添加成功\')\\r\\n }\\r\\n props.enhanceData.show = false\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"重置\",\"prop\":\"czBtn\",\"id\":\"btn_6534\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n // if (obj.loading) obj.loading() //关闭loading方法\\r\\n let data = {\\r\\n bm: \'\',\\r\\n bysj: \'\',\\r\\n byyx: \'\',\\r\\n csrq: \'\',\\r\\n grjj: \'\',\\r\\n id: \'\',\\r\\n jg: \'\',\\r\\n phone: \'\',\\r\\n wxzh: \'\',\\r\\n xb: \'\',\\r\\n xl: \'\',\\r\\n yggh: \'\',\\r\\n yxdz: \'\',\\r\\n zw: \'\',\\r\\n zy: \'\'\\r\\n }\\r\\n formData.value = data\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"plain\":true,\"text\":false}],\"location\":\"left\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"className\":\"btn_list\"}},\"group\":[]}', 1829756131023052802, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846399447287967745, '1', 1, '2024-10-16 11:55:07', 101, 1, '2024-11-12 17:36:07', 0, '职务管理-字段权限', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1846399447287967745 {\\n padding-top: 15px !important;\\n padding-bottom: 0 !important;\\n\\n //样式请写在当前位置内\\n .title {\\n background: #f5f5f5;\\n height: 50px;\\n border: 1px solid rgb(230, 228, 228);\\n\\n .avue-title p {\\n line-height: 40px !important;\\n }\\n }\\n\\n .behind_title {\\n margin-top: 20px;\\n }\\n\\n .checkbox {\\n padding: 0 !important;\\n }\\n\\n .checkboxs {\\n padding: 0px !important;\\n\\n .el-checkbox {\\n border-left: 0px solid #ccc !important;\\n border-right: 0px solid #ccc !important;\\n }\\n }\\n\\n .avue-title p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 700 !important;\\n font-style: normal !important;\\n text-align: left !important;\\n line-height: 20px !important;\\n font-size: 14px !important;\\n color: #666 !important;\\n }\\n\\n .el-checkbox-group {\\n .el-checkbox {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0 !important;\\n border: 1px solid rgb(230, 228, 228);\\n border-top: none;\\n height: 50px;\\n\\n\\n &.is-checked {\\n .el-checkbox__label {\\n color: rgb(102, 102, 102);\\n }\\n }\\n\\n\\n .el-checkbox__input {\\n order: 1;\\n }\\n\\n .el-checkbox__label {\\n font-size: 14px;\\n padding-left: 20px;\\n margin: 0 !important;\\n }\\n }\\n }\\n\\n .el-checkbox__inner {\\n margin-right: 50px !important;\\n position: relative;\\n\\n &::before {\\n content: \'不可见\';\\n position: absolute;\\n top: 50%;\\n left: 20px;\\n font-size: 12px;\\n width: 20px;\\n height: 20px;\\n font-weight: 300;\\n color: #666666;\\n }\\n }\\n\\n .no-print {\\n height: 100px;\\n display: flex;\\n align-items: center;\\n margin-top: 30px;\\n justify-content: center;\\n padding: 0;\\n // border-top: 1px solid rgba(233, 233, 233, 1);\\n\\n .el-button {\\n width: 140px;\\n height: 40px;\\n font-size: 14px;\\n\\n .el-icon {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_407120\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_6061028\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5943132\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_396595\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9312992\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_7365046\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_8430501\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_4503640\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_4332309\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_9972827\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_8664905\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_9236975\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5297995\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title behind_title\"},\"fields_59962\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5792232\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_9026876\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846435324265476097, '1', 1, '2024-10-16 14:17:41', 101, 1, '2024-11-14 10:45:31', 0, '员工管理-设置重置修改', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n // handleSubmit(true)\\n\\n let type = props.enhanceData.type\\n console.log(\'componentRef\', formOption.value, type)\\n formOption.value.column[type].display = true\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1846435324265476097 {\\n //样式请写在当前位置内\\n\\n .el-form-item {\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n\\n .dept-input,\\n .user-input,\\n .el-select__wrapper {\\n height: 40px;\\n }\\n\\n\\n }\\n }\\n\\n\\n .control-szzt {\\n .el-form-item {\\n\\n .el-form-item__content {\\n .avue-radio {\\n line-height: 20px;\\n\\n .el-radio-button {\\n .el-radio-button__inner {\\n width: 100px;\\n height: 35px;\\n border-radius: 22px;\\n margin-right: 10px;\\n border-left: 1px solid #dcdfe6;\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n border-left: 1px solid #409DFE;\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .control-czmm {\\n margin-top: -10px;\\n\\n .avue-title {\\n p {\\n font-weight: 500;\\n margin-left: 0;\\n }\\n }\\n\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_2519973\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"已选员工\",\"findType\":\"all\",\"columnKey\":[],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"multiple\":true},\"xgbm\":{\"type\":\"deptSelect\",\"controlType\":\"select\",\"label\":\"选择部门\",\"findType\":\"all\",\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"xgzw\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"选择职务\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"销售部\",\"value\":\"1\"},{\"label\":\"销售总监\",\"value\":\"2\"}],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[]},\"szzt\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"选择状态\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"border\":false,\"dicCode\":\"zhzt\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"启用\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"禁用\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_9113989\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\"},\"czmm\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"\",\"value\":\"新密码将以手机短信发送至员工的手机号码\",\"display\":false,\"span\":24,\"hideLabel\":false,\"styles\":{\"fontSize\":\"12px\",\"color\":\"#FF9900\"},\"stylesStr\":\"return {\\r\\n fontSize: \'12px\',\\r\\n color: \'#FF9900\',\\r\\n}\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846457022071132161, '1', 1, '2024-10-16 15:43:54', 101, 1, '2024-11-14 11:17:49', 0, '员工管理-员工详情头部', '{\"jsEnhance\":\"useFun.controlInit(\'FormView\', \'formView_primary\', {\\n formId: \'1846388549542457346\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: false, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'编辑员工\', //标题\\n width: \'850px\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') { }\\n done()\\n }\\n})\\n\\nuseFun.controlInit(\'FormView\', \'formView_general\', {\\n formId: \'1846435324265476097\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'\', //标题\\n width: \'40%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n }\\n done()\\n }\\n})\\n\\n\\nuseFun.controlInit(\'FormView\', \'formView_del\', {\\n formId: \'1846485499897925634\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'操作确认\', //标题\\n width: \'40%\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') { }\\n done()\\n }\\n})\\n\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n formData.zw = \'销售部 / 销售总监\'\\n const { formView_del } = Vue.toRefs(rendControlData.value)\\n formView_del.value.params.defaultData = { icon_url: \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-14/1/mdi--question-mark-circle-outline (1).png\' }\\n\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1846457022071132161 {\\n height: 110px;\\n display: flex;\\n align-items: center;\\n\\n\\n //样式请写在当前位置内\\n .el-form>.el-row {\\n border: none;\\n\\n .avue-form__group {\\n align-items: center;\\n\\n .el-col {\\n border: none;\\n\\n .el-form-item__label {\\n border: none !important;\\n background-color: white;\\n padding: 0 !important;\\n display: flex;\\n justify-content: center;\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n border: none;\\n\\n .el-upload {\\n\\n border: none;\\n\\n .avue-upload__avatar {\\n height: 60px;\\n width: 60px;\\n border-radius: 50%;\\n\\n }\\n\\n img {\\n height: 100%;\\n width: 100%;\\n }\\n }\\n\\n .el-select__selection {\\n .el-select__selected-item {\\n display: flex;\\n justify-content: center;\\n }\\n }\\n\\n .el-input-group__prepend {\\n width: 10px;\\n padding: 0;\\n box-shadow: none;\\n color: black;\\n }\\n\\n .el-input__inner {\\n text-align: center;\\n }\\n }\\n }\\n\\n .xm_class {\\n position: absolute;\\n top: 13px;\\n left: 86px;\\n\\n .el-form-item__content {\\n .el-input__inner {\\n font-size: 18px !important;\\n font-weight: bold;\\n }\\n }\\n }\\n\\n .zw_class {\\n position: absolute;\\n top: 46px;\\n left: 86px;\\n\\n\\n .el-select__selection {\\n .el-select__selected-item {\\n width: 120px;\\n font-size: 14px !important;\\n color: #999999;\\n justify-content: flex-start !important;\\n padding-left: 4px;\\n }\\n }\\n }\\n\\n .zhzt_class {\\n position: absolute;\\n top: 13px;\\n left: 170px;\\n\\n .el-form-item__content {\\n padding: 0;\\n\\n .el-select__selection {\\n .el-select__selected-item {\\n width: 40px;\\n font-size: 14px !important;\\n color: rgb(102, 102, 102);\\n padding-left: 4px;\\n\\n &::before {\\n content: \'\';\\n width: 6px;\\n height: 6px;\\n border-radius: 50%;\\n background-color: #4BD863;\\n margin-right: 5px;\\n position: relative;\\n top: 11px;\\n }\\n }\\n }\\n }\\n\\n }\\n\\n .btn_list_class {\\n margin-left: auto !important;\\n\\n .el-button {\\n font-size: 14px;\\n color: #999999;\\n }\\n\\n .el-button--primary {\\n color: white;\\n }\\n }\\n\\n }\\n }\\n\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":0,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"avatar_img\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"className\":\"avatar\",\"offset\":0,\"moreOptionStr\":\"return {\\n\\n}\"},\"xm\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"xm_class\"},\"zw\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"labelPosition\":\"left\",\"labelWidth\":0,\"dicCode\":\"user_management-level\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"普通会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"黄金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"白金会员\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"钻石会员\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"zw_class\"},\"zhzt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"labelPosition\":\"left\",\"labelWidth\":null,\"dicCode\":\"user_management_type\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"正常\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"异常\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":null,\"className\":\"zhzt_class\"},\"btnList\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"编辑员工\",\"prop\":\"btn_7167\",\"id\":\"btn_7167\",\"icon\":\"material-symbols:edit\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"//控件调用\\r\\nreturn {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_primary } = Vue.toRefs(rendControlData.value)\\r\\n formView_primary.value.show = true //显示FormView\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"修改部门\",\"prop\":\"btn_4309\",\"id\":\"btn_4309\",\"icon\":\"dashicons:update-alt\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_general } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_general.value.params\\r\\n formView_general.value.show = true //显示FormView\\r\\n controlData.enhanceData.type = \'xgbm\'\\r\\n controlData.popOption.title = \'修改部门\'\\r\\n }\\r\\n}\"},{\"label\":\"修改职务\",\"prop\":\"btn_2221\",\"id\":\"btn_2221\",\"icon\":\"dashicons:update-alt\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_general } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_general.value.params\\r\\n formView_general.value.show = true //显示FormView\\r\\n controlData.enhanceData.type = \'xgzw\'\\r\\n controlData.popOption.title = \'修改职务\'\\r\\n }\\r\\n}\"},{\"label\":\"设置状态\",\"prop\":\"btn_4363\",\"id\":\"btn_4363\",\"icon\":\"ic:baseline-settings\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_general } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_general.value.params\\r\\n formView_general.value.show = true //显示FormView\\r\\n controlData.enhanceData.type = \'szzt\'\\r\\n controlData.popOption.title = \'设置状态\'\\r\\n }\\r\\n}\"},{\"label\":\"重置密码\",\"prop\":\"btn_6883\",\"id\":\"btn_6883\",\"icon\":\"foundation:lock\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_general } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_general.value.params\\r\\n formView_general.value.show = true //显示FormView\\r\\n controlData.enhanceData.type = \'czmm\'\\r\\n controlData.popOption.title = \'重置密码\'\\r\\n }\\r\\n}\"},{\"label\":\"删除员工\",\"prop\":\"btn_4847\",\"id\":\"btn_4847\",\"icon\":\"ep:delete\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_del } = Vue.toRefs(rendControlData.value)\\r\\n formView_del.value.show = true //显示FormView\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"right\"},\"display\":true,\"span\":16,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn_list_class\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846485499897925634, '1', 1, '2024-10-16 17:37:04', 101, 1, '2024-10-17 11:56:52', 0, '员工详情-删除员工', '{\"jsEnhance\":\"return {\\nbeforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n message.success(\'删除成功\')\\n resolve(submitData)\\n })\\n},\\n}\\n\",\"scssEnhance\":\".low-form__1846485499897925634 {\\n\\n //样式请写在当前位置内\\n .el-form>.el-row {\\n margin-bottom: 30px;\\n border: none;\\n\\n .avue-form__group {\\n align-items: center;\\n\\n .el-col {\\n border: none;\\n\\n .el-form-item__content {\\n border: none;\\n\\n .el-upload {\\n background-color: white;\\n border: none;\\n\\n .avue-upload__avatar {\\n height: 30px;\\n width: 30px;\\n border-radius: 50%;\\n\\n }\\n\\n img {\\n height: 100%;\\n width: 100%;\\n }\\n }\\n }\\n\\n }\\n\\n .bold_text {\\n position: absolute;\\n top: 0;\\n left: 30px;\\n\\n .avue-title {\\n p {\\n font-size: 15px;\\n }\\n }\\n }\\n\\n .text {\\n position: absolute;\\n top: 26px;\\n left: 30px;\\n\\n .avue-title {\\n p {\\n font-size: 13px;\\n font-weight: 400;\\n color: #999999;\\n }\\n }\\n\\n }\\n\\n .bold_text,\\n .text {\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .avue-title {\\n\\n // margin: 0;\\n p {\\n height: 20px;\\n line-height: 20px;\\n }\\n\\n }\\n }\\n\\n }\\n\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"确定\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"icon_url\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"img_class\"},\"fields_5712413\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"是否确定删除数据?\",\"display\":true,\"span\":23,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"bold_text\"},\"fields_3391476\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"是否确定删除数据?\",\"display\":true,\"span\":23,\"hideLabel\":true,\"styles\":{},\"offset\":0,\"className\":\"text\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846489623477571585, '1', 1, '2024-10-16 17:53:27', 101, 1, '2024-11-14 11:36:52', 0, '员工详情-操作权限', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n if (props.defaultData.ref) {\\n message.success(\'保存成功\')\\n props.defaultData.ref.show = false\\n }\\n resolve(submitData)\\n })\\n },\\n\\n}\\n\",\"scssEnhance\":\".low-form__1846489623477571585 {\\n padding-top: 12px !important;\\n\\n //样式请写在当前位置内\\n .title {\\n background: #f5f5f5;\\n height: 50px;\\n border: 1px solid rgb(230, 228, 228);\\n\\n .avue-title p {\\n line-height: 40px !important;\\n }\\n }\\n\\n .checkbox {\\n padding: 0 !important;\\n }\\n\\n .checkboxs {\\n padding: 0px !important;\\n\\n .el-checkbox {\\n border-left: 0px solid #ccc !important;\\n border-right: 0px solid #ccc !important;\\n }\\n }\\n\\n .avue-title p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 700 !important;\\n font-style: normal !important;\\n text-align: left !important;\\n line-height: 20px !important;\\n font-size: 14px !important;\\n color: #666 !important;\\n }\\n\\n .el-checkbox-group {\\n .el-checkbox {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0 !important;\\n border: 1px solid rgb(230, 228, 228);\\n border-top: none;\\n padding: 9px 0;\\n\\n\\n &.is-checked {\\n .el-checkbox__label {\\n color: rgb(102, 102, 102);\\n }\\n }\\n\\n\\n .el-checkbox__input {\\n order: 1;\\n }\\n\\n .el-checkbox__label {\\n font-size: 14px;\\n padding-left: 20px;\\n margin: 0 !important;\\n }\\n }\\n }\\n\\n .el-checkbox__inner {\\n // margin-right: 50px !important;\\n margin-right: 20px !important;\\n position: relative;\\n\\n // &::before {\\n // content: \'不可见\';\\n // position: absolute;\\n // top: 50%;\\n // left: 20px;\\n // font-size: 10px;\\n // width: 20px;\\n // height: 20px;\\n // font-weight: 300;\\n // color: #666666;\\n // }\\n }\\n\\n .no-print {\\n .el-button {\\n width: 140px;\\n height: 40px;\\n font-size: 14px;\\n\\n .el-icon {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_407120\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_6061028\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5943132\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_396595\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9774013\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_7261490\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9548474\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_7297071\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_63824\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_3389449\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_559910\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_9597357\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_7602309\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_4642761\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9228594\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_9533384\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_8050653\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"功能类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_920815\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"查看订单\",\"value\":\"1\"},{\"label\":\"删除订单\",\"value\":\"2\"},{\"label\":\"转移订单\",\"value\":\"3\"},{\"label\":\"新建任务\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_1709998\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"新增订单\",\"value\":\"1\"},{\"label\":\"导入订单\",\"value\":\"2\"},{\"label\":\"添加数据\",\"value\":\"3\"},{\"label\":\"新建工单\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkboxs\"},\"fields_2531590\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"编辑订单\",\"value\":\"1\"},{\"label\":\"导出订单\",\"value\":\"2\"},{\"label\":\"写新跟进\",\"value\":\"3\"},{\"label\":\"添加协作\",\"value\":\"4\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846758342212648962, '1', 1, '2024-10-17 11:41:15', 101, 1, '2024-11-14 11:38:37', 0, '员工详情-字段权限', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n if (props.defaultData.ref) {\\n message.success(\'保存成功\')\\n props.defaultData.ref.show = false\\n }\\n resolve(submitData)\\n })\\n },\\n\\n}\\n\",\"scssEnhance\":\".low-form__1846758342212648962 {\\n padding-top: 12px !important;\\n\\n //样式请写在当前位置内\\n .title {\\n background: #f5f5f5;\\n height: 50px;\\n border: 1px solid rgb(230, 228, 228);\\n\\n .avue-title p {\\n line-height: 40px !important;\\n }\\n }\\n\\n .checkbox {\\n padding: 0 !important;\\n }\\n\\n .checkboxs {\\n padding: 0px !important;\\n\\n .el-checkbox {\\n border-left: 0px solid #ccc !important;\\n border-right: 0px solid #ccc !important;\\n }\\n }\\n\\n .avue-title p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif !important;\\n font-weight: 700 !important;\\n font-style: normal !important;\\n text-align: left !important;\\n line-height: 20px !important;\\n font-size: 14px !important;\\n color: #666 !important;\\n }\\n\\n .el-checkbox-group {\\n .el-checkbox {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0 !important;\\n border: 1px solid rgb(230, 228, 228);\\n border-top: none;\\n padding: 9px 0;\\n\\n\\n &.is-checked {\\n .el-checkbox__label {\\n color: rgb(102, 102, 102);\\n }\\n }\\n\\n\\n .el-checkbox__input {\\n order: 1;\\n }\\n\\n .el-checkbox__label {\\n font-size: 14px;\\n padding-left: 20px;\\n margin: 0 !important;\\n }\\n }\\n }\\n\\n .el-checkbox__inner {\\n margin-right: 50px !important;\\n position: relative;\\n\\n &::before {\\n content: \'不可见\';\\n position: absolute;\\n top: 50%;\\n left: 20px;\\n font-size: 10px;\\n width: 20px;\\n height: 20px;\\n font-weight: 300;\\n color: #666666;\\n }\\n }\\n\\n .no-print {\\n .el-button {\\n width: 140px;\\n height: 40px;\\n font-size: 14px;\\n\\n .el-icon {\\n display: none;\\n }\\n\\n .ml-6px {\\n margin-left: 0;\\n }\\n }\\n }\\n\\n\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"保存\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_9774013\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_7261490\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_2315787\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5517248\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5820586\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_8924735\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_3080589\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_2672843\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_9440115\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_5611339\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5318037\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_1921113\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_8722887\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"字段类型\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"fields_1014562\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户名称\",\"value\":\"1\"},{\"label\":\"所属行业\",\"value\":\"2\"},{\"label\":\"客户状态\",\"value\":\"3\"},{\"label\":\"企业规模\",\"value\":\"4\"},{\"label\":\"下级客户\",\"value\":\"5\"},{\"label\":\"已回款金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_5402364\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"助记名称\",\"value\":\"1\"},{\"label\":\"客户星级\",\"value\":\"2\"},{\"label\":\"客户归属\",\"value\":\"3\"},{\"label\":\"详细地址\",\"value\":\"4\"},{\"label\":\"备注信息\",\"value\":\"5\"},{\"label\":\"已开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"},\"fields_7304277\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"多选框\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"客户类型\",\"value\":\"1\"},{\"label\":\"客户来源\",\"value\":\"2\"},{\"label\":\"所在地区\",\"value\":\"3\"},{\"label\":\"上级客户\",\"value\":\"4\"},{\"label\":\"已成交金额\",\"value\":\"5\"},{\"label\":\"未开票金额\",\"value\":\"6\"}],\"display\":true,\"span\":8,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"delDicValue\":[],\"className\":\"checkbox\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1846825131881762817, '1', 1, '2024-10-17 16:06:38', 101, 1, '2024-11-14 15:20:04', 0, '任务管理-新建任务', '{\"jsEnhance\":\"\",\"scssEnhance\":\".low-form__1846825131881762817 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n .avue-form__row {\\n margin-bottom: 15px;\\n\\n .el-form-item {\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n .avue-radio {\\n display: flex;\\n }\\n\\n .el-input,\\n .el-select__wrapper {\\n height: 37px;\\n font-size: 14px;\\n }\\n\\n .avue-checkbox {\\n .el-checkbox-group {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n }\\n\\n .empty-text {\\n font-size: 14px;\\n }\\n }\\n\\n .el-textarea__inner {\\n font-size: 14px;\\n }\\n\\n .avue-upload {\\n .el-upload {\\n .el-button {\\n font-size: 14px;\\n }\\n }\\n\\n .el-upload__tip {\\n font-size: 14px;\\n color: #999999;\\n }\\n }\\n }\\n }\\n\\n .default-radio {\\n .avue-radio {\\n .el-radio-button {\\n .el-radio-button__inner {\\n font-size: 14px;\\n width: 90px;\\n }\\n }\\n }\\n }\\n\\n .ys-radio {\\n .avue-radio {\\n\\n .el-radio-button {\\n margin-right: 5px;\\n\\n .el-radio-button__inner {\\n width: 15px;\\n border-radius: 50%;\\n height: 15;\\n border: none;\\n padding: 0;\\n\\n }\\n\\n &.is-active {\\n position: relative;\\n\\n .el-radio-button__inner {\\n border: none;\\n background-color: inherit;\\n box-shadow: none;\\n }\\n\\n &::before {\\n content: \'√\';\\n width: 10px;\\n height: 10px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n z-index: 99;\\n color: white;\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n }\\n }\\n\\n .el-radio-button:nth-child(1) {\\n .el-radio-button__inner {\\n background-color: #24D2D3;\\n color: #24D2D3;\\n }\\n }\\n\\n .el-radio-button:nth-child(2) {\\n .el-radio-button__inner {\\n background-color: #FEC03D;\\n color: #FEC03D;\\n }\\n }\\n\\n .el-radio-button:nth-child(3) {\\n .el-radio-button__inner {\\n background-color: #52C1F5;\\n color: #52C1F5;\\n }\\n }\\n\\n .el-radio-button:nth-child(4) {\\n .el-radio-button__inner {\\n background-color: #51D351;\\n color: #51D351;\\n }\\n }\\n\\n .el-radio-button:nth-child(5) {\\n .el-radio-button__inner {\\n background-color: #FF7A8C;\\n color: #FF7A8C;\\n }\\n }\\n\\n .el-radio-button:nth-child(6) {\\n .el-radio-button__inner {\\n background-color: #FFA94C;\\n color: #FFA94C;\\n }\\n }\\n\\n .el-radio-button:nth-child(7) {\\n .el-radio-button__inner {\\n background-color: #73A0FA;\\n color: #73A0FA;\\n }\\n }\\n\\n }\\n }\\n\\n .flex-start {\\n\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"任务标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"任务标题\",\"prepend\":\"\"},\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\"},\"jzsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\"},\"fields_7206172\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联项目\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"选择项一\",\"value\":\"1\"},{\"label\":\"选择项二\",\"value\":\"2\"},{\"label\":\"选择项三\",\"value\":\"3\"},{\"label\":\"选择项四\",\"value\":\"4\"},{\"label\":\"选择项五\",\"value\":\"5\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"placeholder\":\"选择项目\"},\"fields_5114612\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true},\"cyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"参与人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"avatar\":false},\"color\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"任务标记\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"√\",\"value\":\"#24D2D3\"},{\"label\":\"√\",\"value\":\"#FEC03D\"},{\"label\":\"√\",\"value\":\"#52C1F5\"},{\"label\":\"√\",\"value\":\"#51D351\"},{\"label\":\"√\",\"value\":\"#FF7A8C\"},{\"label\":\"√\",\"value\":\"#FFA94C\"},{\"label\":\"√\",\"value\":\"#73A0FA\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"ys-radio\",\"value\":\"#24D2D3\"},\"urgent_relief\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"紧要程度\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"重要\",\"value\":\"zy\"},{\"label\":\"紧急\",\"value\":\"jj\"},{\"label\":\"普通\",\"value\":\"pt\"},{\"label\":\"较低\",\"value\":\"jd\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"default-radio\",\"dicCode\":\"rwgl_jycd\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"重要\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"紧急\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"普通\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"较低\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"value\":\"1\"},\"rwtx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"任务提醒\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_rwtx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"准时提醒\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"提前5分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"提前15分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"提前30分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"提前1小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"提前2小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"提前1天\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"value\":\"1\"},\"txfs\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"提醒方式\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"系统消息\",\"value\":\"1\"},{\"label\":\"邮件通知\",\"value\":\"2\"},{\"label\":\"短信通知\",\"value\":\"3\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"rwms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"任务描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\",\"className\":\"flex-start\"},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\",\"fileText\":\"上传文件\",\"className\":\"flex-start\"}},\"tableDesignId\":\"1847103675560071169\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1847173437702934530, '1', 1, '2024-10-18 15:10:41', 101, 1, '2024-11-16 15:41:11', 0, '管理模块-项目管理', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1847173437702934530 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n .avue-form__row {\\n // margin-bottom: 0px;\\n\\n .el-form-item {\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n .avue-radio {\\n display: flex;\\n }\\n\\n .el-input,\\n .el-select__wrapper {\\n height: 37px;\\n font-size: 14px;\\n }\\n\\n .avue-checkbox {\\n .el-checkbox-group {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n }\\n\\n .empty-text {\\n font-size: 14px;\\n }\\n }\\n\\n .el-textarea__inner {\\n font-size: 14px;\\n }\\n\\n .avue-upload {\\n .el-upload {\\n .el-button {\\n font-size: 14px;\\n }\\n }\\n\\n .el-upload__tip {\\n font-size: 14px;\\n color: #999999;\\n }\\n }\\n }\\n }\\n\\n .default-radio {\\n .avue-radio {\\n .el-radio-button {\\n .el-radio-button__inner {\\n font-size: 14px;\\n width: 90px;\\n }\\n }\\n }\\n }\\n\\n .ys-radio {\\n .avue-radio {\\n\\n .el-radio-button {\\n margin-right: 5px;\\n\\n .el-radio-button__inner {\\n width: 15px;\\n border-radius: 50%;\\n height: 15;\\n border: none;\\n padding: 0;\\n\\n }\\n\\n &.is-active {\\n position: relative;\\n\\n .el-radio-button__inner {\\n border: none;\\n background-color: inherit;\\n box-shadow: none;\\n }\\n\\n &::before {\\n content: \'√\';\\n width: 10px;\\n height: 10px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n z-index: 99;\\n color: white;\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n }\\n }\\n\\n .el-radio-button:nth-child(1) {\\n .el-radio-button__inner {\\n background-color: #24D2D3;\\n color: #24D2D3;\\n }\\n }\\n\\n .el-radio-button:nth-child(2) {\\n .el-radio-button__inner {\\n background-color: #FEC03D;\\n color: #FEC03D;\\n }\\n }\\n\\n .el-radio-button:nth-child(3) {\\n .el-radio-button__inner {\\n background-color: #52C1F5;\\n color: #52C1F5;\\n }\\n }\\n\\n .el-radio-button:nth-child(4) {\\n .el-radio-button__inner {\\n background-color: #51D351;\\n color: #51D351;\\n }\\n }\\n\\n .el-radio-button:nth-child(5) {\\n .el-radio-button__inner {\\n background-color: #FF7A8C;\\n color: #FF7A8C;\\n }\\n }\\n\\n .el-radio-button:nth-child(6) {\\n .el-radio-button__inner {\\n background-color: #FFA94C;\\n color: #FFA94C;\\n }\\n }\\n\\n .el-radio-button:nth-child(7) {\\n .el-radio-button__inner {\\n background-color: #73A0FA;\\n color: #73A0FA;\\n }\\n }\\n\\n }\\n }\\n\\n .flex-start {\\n\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n }\\n\\n .box {\\n position: absolute;\\n top: 0;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"xmcy\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"className\":\"box\"},\"title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"项目名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":14,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"任务标题\",\"offset\":5,\"row\":false},\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":14,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\",\"offset\":5},\"jssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":14,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\",\"offset\":5},\"fzr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"offset\":5},\"cyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"参与人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"avatar\":false,\"offset\":5},\"rwbj\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"任务标记\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"√\",\"value\":\"#24D2D3\"},{\"label\":\"√\",\"value\":\"#FEC03D\"},{\"label\":\"√\",\"value\":\"#52C1F5\"},{\"label\":\"√\",\"value\":\"#51D351\"},{\"label\":\"√\",\"value\":\"#FF7A8C\"},{\"label\":\"√\",\"value\":\"#FFA94C\"},{\"label\":\"√\",\"value\":\"#73A0FA\"}],\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"ys-radio\",\"value\":\"#24D2D3\",\"offset\":5},\"kxfw\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"可选范围\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"参与人员可见\",\"value\":\"1\"},{\"label\":\"所有人员可见\",\"value\":\"2\"}],\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"value\":\"1\",\"offset\":5},\"content\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"项目描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\",\"className\":\"flex-start\",\"offset\":5},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":14,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\",\"fileText\":\"上传文件\",\"className\":\"flex-start\",\"offset\":5}},\"tableDesignId\":\"1847094468974710786\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1847209781133185025, '1', 1, '2024-10-18 17:35:06', 101, 1, '2024-11-20 16:16:31', 0, '项目管理-项目详情-头部', '{\"jsEnhance\":\"//初始化收货人表单\\nuseFun.controlInit(\'FormView\', \'formView_xgshr\', {\\n formId: \'1846092785716961282\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'default\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n defaultData: {\\n }, //默认表单数据\\n enhanceData: {\\n }, //传递给表单js增强内部调用配置\\n showButton: false,\\n popOption: { //弹窗配置\\n title: \'收货人信息\', //标题\\n width: \'\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n {\\n params: {}, //el-button 其他参数\\n name: \'取消\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n //点击事件\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }\\n },\\n {\\n params: {\\n type: \'primary\',\\n }, //el-button 其他参数\\n name: \'保存\', //按钮名称\\n display: true, //是否显示\\n loading: true, //点击时是否有loading\\n icon: \'\', //图标\\n clickFun: (loading) => {\\n message.success(\'保存成功\')\\n //点击事件\\n setTimeout(() => {\\n if (loading) loading() //关闭loading\\n formView_xgshr.value.show = false\\n }, 500)\\n }\\n }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {\\n } //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n if (obj.loading) obj.loading() //关闭loading方法\\n }\\n done()\\n }\\n})\\n\\n\\n\\nconst { formView_xgshr } = Vue.toRefs(rendControlData.value)\\n\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value, obj, title, ID) => {\\n formView_value.value.show = true //显示FormView\\n const controlData = formView_value.value.params //ControlView的配置\\n controlData.defaultData = obj\\n controlData.popOption.title = title\\n if (ID) {\\n controlData.formId = ID\\n }\\n}\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n formData.tb = \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-18/1/tb_6.jpg\'\\n formData.zt = formData.zt == 1 ? \'正常\' : \'异常\'\\n formData.kxfw = formData.kxfw == 1 ? \'参与人员可见\' : \'所有人员可见\'\\n if (!formData.fzr) {\\n formData.fzr = \'赵小刚\'\\n }\\n let jd = useFun.getPropConfig(\'xmjd\')\\n jd.params = {\\n jdt: 50,\\n }\\n\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1847209781133185025 {\\n\\n //样式请写在当前位置内\\n .img {\\n .el-upload {\\n border: none;\\n\\n .avue-upload__avatar {\\n margin: 0;\\n padding: 0;\\n width: 60px;\\n height: 60px;\\n }\\n }\\n\\n }\\n\\n .xmjd {\\n text-align: right !important;\\n }\\n\\n element.style {\\n padding-left: 0 !important;\\n }\\n\\n .title {\\n padding: 0 !important;\\n\\n .avue-title p {\\n margin: 0 !important;\\n margin-top: -2px !important;\\n margin-left: -10px;\\n padding: 0 !important;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑\', sans-serif !important;\\n font-weight: 700 !important;\\n font-size: 18px;\\n color: #666666;\\n }\\n }\\n\\n .text {\\n padding: 0 !important;\\n position: absolute;\\n top: 30px;\\n left: 105px;\\n\\n .avue-title p {\\n margin: 0 !important;\\n margin-top: -2px !important;\\n margin-left: -10px;\\n padding: 0 !important;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑\', sans-serif !important;\\n font-weight: 400 !important;\\n font-size: 14px;\\n color: #999;\\n }\\n }\\n\\n .input {\\n .el-input__wrapper::before {\\n width: 10px;\\n margin-right: 5px;\\n height: 10px;\\n background: #51d351;\\n content: \'\';\\n border-radius: 50%;\\n }\\n }\\n\\n .el-input__wrapper,\\n .user-input[data-v-78fbf624] {\\n border: none !important;\\n box-shadow: none;\\n padding: 0;\\n }\\n\\n .el-input__wrapper {\\n background-color: #f5f7fa00 !important;\\n box-shadow: none !important;\\n }\\n\\n .el-input__inner {\\n color: #666 !important;\\n -webkit-text-fill-color: #666 !important;\\n }\\n\\n .user-input.disabled.add,\\n .el-tag.el-tag--info {\\n border: none;\\n background: none;\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n font-size: 14px;\\n color: #666;\\n text-align: left;\\n padding: 0;\\n }\\n\\n .el-form-item__label {\\n color: #999999;\\n }\\n\\n .el-form-item__content {\\n .el-progress {\\n margin-top: 11px;\\n\\n .el-progress__text {\\n font-size: 10px !important;\\n min-width: auto;\\n font-family: \'ArialMT\', \'Arial\', sans-serif;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"left\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"tb\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":true,\"required\":false,\"hideLabel\":true,\"className\":\"img\"},\"fields_4121213\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"jeeLowCode网站改版\",\"display\":true,\"span\":4,\"hideLabel\":true,\"styles\":{},\"row\":false,\"className\":\"title\"},\"fields_3122121\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"专业的交互原型素材原创分享平台\",\"display\":true,\"span\":7,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"fields_5867215\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"更新项目\",\"prop\":\"gxBtn\",\"id\":\"btn_4685\",\"icon\":\"ep:edit-pen\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'更新项目\'\\r\\n const id = \'1848556879187451906\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'gxxm\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"},{\"label\":\"上传附件\",\"prop\":\"scfjBtn\",\"id\":\"btn_4652\",\"icon\":\"ep:paperclip\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'上传附件\'\\r\\n const id = \'1848556879187451906\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'scfj\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"},{\"label\":\"创建任务\",\"prop\":\"cjrwBtn\",\"id\":\"btn_9242\",\"icon\":\"ep:plus\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'新建任务\'\\r\\n const id = \'1848566438018850818\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'xjrw\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"},{\"label\":\"编辑项目\",\"prop\":\"bjxmBtn\",\"id\":\"btn_780\",\"icon\":\"ep:edit-pen\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xgshr } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'创建项目\'\\r\\n const id = \'1847173437702934530\'\\r\\n useFun.openForm(formView_xgshr, {\\r\\n type: \'cjxm\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"},{\"label\":\"删除项目\",\"prop\":\"delBtn\",\"id\":\"btn_1488\",\"icon\":\"ep:delete-filled\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n handleClick: (obj) => {\\r\\n message.confirm(\'是否确定删除数据?\', \'操作确认\', { type: \'info\' })\\r\\n }\\r\\n}\"}],\"location\":\"right\"},\"display\":true,\"span\":13,\"disabled\":false,\"hideLabel\":true,\"offset\":5},\"zt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"当前状态\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":3,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"\",\"className\":\"input\"},\"fzr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":3,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\"},\"kxfw\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"可见范围\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":3,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"\"},\"kssj\":{\"type\":\"time\",\"controlType\":\"time\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":3,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"2024-10-19 09:39:54\"},\"jssj\":{\"type\":\"time\",\"controlType\":\"time\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD \",\"valueFormat\":\"YYYY-MM-DD \",\"display\":true,\"span\":3,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"2024-10-19 09:39:57\"},\"zhgx\":{\"type\":\"time\",\"controlType\":\"time\",\"label\":\"最后更新\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":4,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"labelPosition\":\"top\",\"value\":\"2024-10-19 09:40:00\",\"placeholder\":\"\"},\"xmjd\":{\"type\":\"customControl\",\"controlType\":\"noDefaule\",\"label\":\"项目进度\",\"isGlobal\":false,\"display\":true,\"span\":4,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"controlOptionStr\":\"return {\\n\\n}\",\"controlUrl\":\"views/lowTemplate/generalPage/project/jdt.vue\",\"labelPosition\":\"top\",\"className\":\"xmjd\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1848556879187451906, '1', 1, '2024-10-22 10:47:59', 101, 1, '2024-11-16 15:39:45', 0, '项目管理-按钮详情', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n let jd = useFun.getPropConfig(\'xmjd\')\\n jd.params = {\\n jdt: 50,\\n }\\n const obj = {\\n \'gxxm\': [\'zt\', \'xmjd\', \'gxsm\'],\\n \'scfj\': [\'fj\', \'bznr\'],\\n \'fz\': [\'fz_zwmc\', \'zwms\'],\\n }\\n if (obj[formData.type]) {\\n obj[formData.type].map(item => {\\n useFun.setPropConfig(item, {\\n display: true,\\n })\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1848556879187451906 {\\n\\n .zdy {\\n .el-form-item__content {\\n &>div {\\n height: 100%;\\n\\n .el-progress__text {\\n font-size: 12px !important;\\n color: #666;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n }\\n }\\n }\\n\\n .el-form-item__content {\\n .avue-upload {\\n .el-upload__tip {\\n font-size: 14px;\\n color: #999;\\n font-family: \'微软雅黑\', sans-serif;\\n }\\n }\\n }\\n\\n //样式请写在当前位置内\\n .el-radio:nth-child(1) {\\n .el-radio__input {\\n .el-radio__inner {\\n background: #51d351;\\n }\\n }\\n }\\n\\n .el-radio:nth-child(2) {\\n .el-radio__input {\\n .el-radio__inner {\\n background: #ffa94c;\\n }\\n }\\n }\\n\\n .el-radio:nth-child(3) {\\n .el-radio__input {\\n .el-radio__inner {\\n background: #ff7a8c;\\n }\\n }\\n }\\n\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"zt\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"当前状态\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"正常\",\"value\":\"1\"},{\"label\":\"有风险\",\"value\":\"2\"},{\"label\":\"失控\",\"value\":\"3\"}],\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"xmjd\":{\"type\":\"customControl\",\"controlType\":\"noDefaule\",\"label\":\"项目进度\",\"isGlobal\":false,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"controlUrl\":\"views/lowTemplate/generalPage/project/jdt.vue\",\"className\":\"zdy\"},\"gxsm\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"更新说明\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelTip\":\"\",\"accept\":\"\",\"fileText\":\"上传文件\",\"tip\":\"支持格式:.rea .zip .doc .docx .pdf,单个文件不能超过20MB\"},\"bznr\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"备注内容\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":false,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100}},\"tableDesignId\":\"1847094468974710786\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1848566438018850818, '1', 1, '2024-10-22 11:25:58', 101, 1, '2024-11-16 14:36:36', 0, '项目管理-创建任务', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n if (formData.type == \'xjrw\') {\\n useFun.setPropConfig(\'xmcy\', {\\n display: false,\\n })\\n useFun.setPropConfig(\'glxm\', {\\n display: true,\\n })\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1848566438018850818 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n .avue-form__row {\\n // margin-bottom: 0px;\\n\\n .el-form-item {\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n font-size: 14px;\\n }\\n\\n .el-form-item__content {\\n .avue-radio {\\n display: flex;\\n }\\n\\n .el-input,\\n .el-select__wrapper {\\n height: 37px;\\n font-size: 14px;\\n }\\n\\n .avue-checkbox {\\n .el-checkbox-group {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n }\\n\\n .empty-text {\\n font-size: 14px;\\n }\\n }\\n\\n .el-textarea__inner {\\n font-size: 14px;\\n }\\n\\n .avue-upload {\\n .el-upload {\\n .el-button {\\n font-size: 14px;\\n }\\n }\\n\\n .el-upload__tip {\\n font-size: 14px;\\n color: #999999;\\n }\\n }\\n }\\n }\\n\\n .default-radio {\\n .avue-radio {\\n .el-radio-button {\\n .el-radio-button__inner {\\n font-size: 14px;\\n width: 90px;\\n }\\n }\\n }\\n }\\n\\n .ys-radio {\\n .avue-radio {\\n\\n .el-radio-button {\\n margin-right: 5px;\\n\\n .el-radio-button__inner {\\n width: 15px;\\n border-radius: 50%;\\n height: 15;\\n border: none;\\n padding: 0;\\n\\n }\\n\\n &.is-active {\\n position: relative;\\n\\n .el-radio-button__inner {\\n border: none;\\n background-color: inherit;\\n box-shadow: none;\\n }\\n\\n &::before {\\n content: \'√\';\\n width: 10px;\\n height: 10px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n z-index: 99;\\n color: white;\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n }\\n }\\n\\n .el-radio-button:nth-child(1) {\\n .el-radio-button__inner {\\n background-color: #24D2D3;\\n color: #24D2D3;\\n }\\n }\\n\\n .el-radio-button:nth-child(2) {\\n .el-radio-button__inner {\\n background-color: #FEC03D;\\n color: #FEC03D;\\n }\\n }\\n\\n .el-radio-button:nth-child(3) {\\n .el-radio-button__inner {\\n background-color: #52C1F5;\\n color: #52C1F5;\\n }\\n }\\n\\n .el-radio-button:nth-child(4) {\\n .el-radio-button__inner {\\n background-color: #51D351;\\n color: #51D351;\\n }\\n }\\n\\n .el-radio-button:nth-child(5) {\\n .el-radio-button__inner {\\n background-color: #FF7A8C;\\n color: #FF7A8C;\\n }\\n }\\n\\n .el-radio-button:nth-child(6) {\\n .el-radio-button__inner {\\n background-color: #FFA94C;\\n color: #FFA94C;\\n }\\n }\\n\\n .el-radio-button:nth-child(7) {\\n .el-radio-button__inner {\\n background-color: #73A0FA;\\n color: #73A0FA;\\n }\\n }\\n\\n }\\n }\\n\\n .flex-start {\\n\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n }\\n\\n .box {\\n position: absolute;\\n top: 0;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"项目名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"任务标题\",\"offset\":0,\"row\":false},\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\",\"offset\":0},\"jssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\",\"offset\":0},\"glxm\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"关联项目\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"offset\":0,\"dicCode\":\"xx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"深圳木卫二科技有限公司\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"选项二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"选项三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"选项四\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"选项五\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fzr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员:\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"offset\":0},\"cyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"参与人员:\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"avatar\":false,\"offset\":0},\"rwbj\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"任务标记:\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"√\",\"value\":\"#24D2D3\"},{\"label\":\"√\",\"value\":\"#FEC03D\"},{\"label\":\"√\",\"value\":\"#52C1F5\"},{\"label\":\"√\",\"value\":\"#51D351\"},{\"label\":\"√\",\"value\":\"#FF7A8C\"},{\"label\":\"√\",\"value\":\"#FFA94C\"},{\"label\":\"√\",\"value\":\"#73A0FA\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"ys-radio\",\"value\":\"#24D2D3\",\"offset\":0},\"jycd\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"紧要程度\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"jycd\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"重要\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"紧急\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"普通\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"较低\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"button\":true,\"value\":\"1\"},\"rwtx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"任务提醒\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"value\":\"1\",\"dicCode\":\"rwgl_rwtx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"准时提醒\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"提前5分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"提前15分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"提前30分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"提前1小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"提前2小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"提前1天\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"txfs\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"提醒方式\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_txfs\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"系统消息\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"邮件通知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"短信通知\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"content\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"项目描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\",\"className\":\"flex-start\",\"offset\":0},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件:\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\",\"fileText\":\"上传文件\",\"className\":\"flex-start\",\"offset\":0}},\"tableDesignId\":\"1847094468974710786\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1850013430948507650, '1', 1, '2024-10-26 11:15:48', 101, 1, '2024-11-16 15:54:53', 0, '任务管理-标题表单', '{\"jsEnhance\":\"\\r\\nreturn {\\r\\n initData(formData) {\\r\\n return new Promise(resolve => { //初始化默认值\\r\\n if (!formData.rwms) formData.rwms = \'未添加描述\'\\r\\n resolve(formData)\\r\\n })\\r\\n },\\r\\n}\",\"scssEnhance\":\".low-form__1850013430948507650 {\\n padding-bottom: 5px !important;\\n\\n .el-col,\\n .el-row,\\n .el-form-item__content {\\n border: none;\\n }\\n\\n //样式请写在当前位置内\\n .el-collapse-item__content {\\n .avue-form__group {\\n .title {\\n margin-bottom: 15px !important;\\n }\\n\\n .btn_list {\\n margin-left: auto !important;\\n\\n .el-button {\\n span {\\n color: #999999;\\n }\\n\\n &:hover {\\n span {\\n color: white;\\n }\\n }\\n }\\n\\n #btn_2409:hover {\\n background-color: #409EFF;\\n }\\n\\n #btn_1142:hover {\\n background-color: #67C23A;\\n }\\n\\n #btn_5464:hover {\\n background-color: #67C23A;\\n }\\n\\n\\n }\\n\\n .avue-form__row {\\n .el-form-item {\\n background-color: #fff;\\n height: 50px;\\n margin-bottom: 0;\\n\\n .el-form-item__label {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n font-size: 14px;\\n background-color: #fff;\\n height: 50px;\\n line-height: 50px;\\n }\\n\\n .el-form-item__content {\\n\\n .el-select__wrapper.is-disabled,\\n .el-input.is-disabled .el-input__wrapper,\\n .el-textarea.is-disabled .el-textarea__inner {\\n background-color: white;\\n box-shadow: none;\\n }\\n\\n .el-input__wrapper {\\n box-shadow: none;\\n }\\n\\n .el-select__suffix {\\n display: none;\\n }\\n\\n\\n\\n .el-input__inner,\\n .el-select__selected-item,\\n .el-textarea__inner {\\n font-family: \'微软雅黑\', sans-serif;\\n font-size: 14px;\\n color: #666666;\\n\\n }\\n\\n .el-button {\\n span {\\n font-family: \'微软雅黑\', sans-serif;\\n font-size: 12px;\\n // color: #999999;\\n }\\n }\\n }\\n }\\n }\\n\\n .txfs {\\n .el-form-item__content {\\n padding-left: 0;\\n\\n span {\\n color: #999999;\\n }\\n }\\n }\\n\\n .rwtx {\\n .el-form-item__content {\\n padding-right: 0;\\n }\\n }\\n\\n .textarea_box {\\n margin-bottom: 70px;\\n\\n .el-form-item {\\n .el-form-item__content {\\n margin-top: 15px;\\n }\\n }\\n }\\n\\n .el-textarea__inner {\\n height: 73px;\\n padding-top: 0;\\n resize: none;\\n\\n }\\n }\\n\\n .posi-input {\\n width: 100%;\\n bottom: 0;\\n position: absolute;\\n left: 0;\\n z-index: 9999;\\n padding: 0;\\n border-top: 1px solid var(--el-border-color);\\n margin-top: 20px;\\n // padding-top: 5px;\\n height: 70px;\\n display: flex;\\n align-items: center;\\n\\n .el-form-item {\\n margin-bottom: 0;\\n width: 100%;\\n\\n .el-form-item__content {\\n .el-input__wrapper {\\n border-radius: inherit;\\n box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset !important;\\n\\n .el-input__inner {\\n height: 38px;\\n }\\n }\\n }\\n }\\n\\n }\\n\\n .posi-btn {\\n width: 100px;\\n bottom: 0;\\n position: absolute;\\n right: 0;\\n z-index: 9999;\\n padding: 0;\\n height: 70px;\\n display: flex;\\n align-items: center;\\n\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .el-button {\\n height: 40px;\\n width: 60px;\\n border-radius: inherit;\\n\\n span {\\n font-size: 14px !important;\\n }\\n }\\n }\\n\\n }\\n\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"任务标题文字\",\"display\":true,\"span\":5,\"hideLabel\":true,\"styles\":{\"fontSize\":\"18px\",\"color\":\"#666666\",\"fontWeight\":700},\"stylesStr\":\"return {\\r\\n fontSize: \'18px\',\\r\\n color: \'#666666\',\\r\\n fontWeight: 700,\\r\\n}\",\"className\":\"title\"},\"fields_7492106\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"进行中\",\"prop\":\"jxz_btn\",\"id\":\"btn_2409\",\"icon\":\"ep:clock\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"\",\"round\":true,\"plain\":false,\"circle\":false},{\"label\":\"已完成\",\"prop\":\"ywc_btn\",\"id\":\"btn_1142\",\"icon\":\"ep:check\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"\",\"round\":true},{\"label\":\"未完成\",\"prop\":\"wwc_btn\",\"id\":\"btn_5464\",\"icon\":\"ep:remove\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"\",\"round\":true}],\"location\":\"right\"},\"display\":true,\"span\":9,\"disabled\":false,\"hideLabel\":true,\"offset\":10,\"className\":\"btn_list\"},\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"value\":[]},\"jzsj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"截止时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"value\":[]},\"xmmc\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"项目名称\",\"readonly\":true,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"rwtx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"任务提醒\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":7,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_rwtx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"准时提醒\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"提前5分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"提前15分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"提前30分钟\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"5\",\"label\":\"提前1小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"6\",\"label\":\"提前2小时\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"7\",\"label\":\"提前1天\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"className\":\"rwtx\"},\"txfs\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":5,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_txfs\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"系统消息\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"邮件通知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"短信通知\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"offset\":0,\"labelWidth\":0,\"className\":\"txfs\"},\"urgent_relief\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"紧要程度\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_jycd\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"重要\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"紧急\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"普通\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"较低\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"rwms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"任务描述\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"value\":\"\",\"className\":\"textarea_box\"},\"fields_5371939\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"labelWidth\":null,\"placeholder\":\"请输入 评论内容\",\"className\":\"posi-input\"},\"fields_2939380\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"发布\",\"prop\":\"fb_btn\",\"id\":\"btn_2409\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":false,\"configStr\":\"\",\"round\":false,\"plain\":false,\"circle\":false,\"link\":false,\"text\":false}],\"location\":\"right\"},\"display\":true,\"span\":2,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"posi-btn\"}},\"tableDesignId\":\"1847103675560071169\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1850716100125401090, '1', 1, '2024-10-28 09:47:58', 101, 1, '2024-10-29 09:36:00', 0, '模板表单测试', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\".low-form__1850716100125401090 {\\n //样式请写在当前位置内\\n height: 200px;\\n padding: 0 !important;\\n\\n .avue-form {\\n height: 100%;\\n\\n .el-row {\\n position: initial;\\n }\\n }\\n\\n .control-fields_9952741 {\\n background: #f1f1f1;\\n width: 100%;\\n bottom: 0;\\n position: absolute;\\n left: 0;\\n z-index: 9999;\\n padding: 0;\\n\\n }\\n\\n .control-fields_6797803 {\\n width: 100px;\\n bottom: 0;\\n position: absolute;\\n right: 20px;\\n z-index: 9999;\\n padding: 0;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_9952741\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"文本输入框\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"placeholder\":\"请输入 评论内容\"},\"fields_6797803\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"按钮_7861\",\"prop\":\"btn_7861\",\"id\":\"btn_7861\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":true,\"configStr\":\"\"}],\"location\":\"left\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true}},\"group\":[]}', NULL, 'N', 'Y'); +INSERT INTO `lowcode_desform` VALUES (1850839403742760962, '1', 1, '2024-10-28 17:57:55', 101, 1, '2024-11-13 09:39:02', 0, '日历管理', '{\"jsEnhance\":\"\",\"scssEnhance\":\".low-form__1850839403742760962 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n .avue-form__row {\\n margin-bottom: 15px;\\n\\n .el-form-item {\\n display: flex;\\n align-items: center;\\n\\n .el-form-item__label {\\n font-size: 13px;\\n }\\n\\n .el-form-item__content {\\n .avue-radio {\\n display: flex;\\n }\\n\\n .el-input,\\n .el-select__wrapper {\\n height: 37px;\\n font-size: 13px;\\n }\\n\\n .avue-checkbox {\\n .el-checkbox-group {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n }\\n\\n .empty-text {\\n font-size: 13px;\\n }\\n }\\n\\n .el-textarea__inner {\\n font-size: 13px;\\n }\\n\\n .avue-upload {\\n .el-upload {\\n .el-button {\\n font-size: 13px;\\n }\\n }\\n\\n .el-upload__tip {\\n font-size: 13px;\\n color: #999999;\\n }\\n }\\n }\\n }\\n\\n .default-radio {\\n .avue-radio {\\n .el-radio-button {\\n .el-radio-button__inner {\\n font-size: 13px;\\n width: 90px;\\n }\\n }\\n }\\n }\\n\\n .ys-radio {\\n .avue-radio {\\n\\n .el-radio-button {\\n margin-right: 5px;\\n\\n .el-radio-button__inner {\\n width: 15px;\\n border-radius: 50%;\\n height: 15;\\n border: none;\\n padding: 0;\\n\\n }\\n\\n &.is-active {\\n position: relative;\\n\\n .el-radio-button__inner {\\n border: none;\\n background-color: inherit;\\n box-shadow: none;\\n }\\n\\n &::before {\\n content: \'√\';\\n width: 10px;\\n height: 10px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n z-index: 99;\\n color: white;\\n font-size: 13px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n }\\n }\\n\\n .el-radio-button:nth-child(1) {\\n .el-radio-button__inner {\\n background-color: #24D2D3;\\n color: #24D2D3;\\n }\\n }\\n\\n .el-radio-button:nth-child(2) {\\n .el-radio-button__inner {\\n background-color: #FEC03D;\\n color: #FEC03D;\\n }\\n }\\n\\n .el-radio-button:nth-child(3) {\\n .el-radio-button__inner {\\n background-color: #52C1F5;\\n color: #52C1F5;\\n }\\n }\\n\\n .el-radio-button:nth-child(4) {\\n .el-radio-button__inner {\\n background-color: #51D351;\\n color: #51D351;\\n }\\n }\\n\\n .el-radio-button:nth-child(5) {\\n .el-radio-button__inner {\\n background-color: #FF7A8C;\\n color: #FF7A8C;\\n }\\n }\\n\\n .el-radio-button:nth-child(6) {\\n .el-radio-button__inner {\\n background-color: #FFA94C;\\n color: #FFA94C;\\n }\\n }\\n\\n .el-radio-button:nth-child(7) {\\n .el-radio-button__inner {\\n background-color: #73A0FA;\\n color: #73A0FA;\\n }\\n }\\n\\n }\\n }\\n\\n .flex-start {\\n\\n .el-form-item {\\n align-items: flex-start;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"日程标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"任务标题\",\"prepend\":\"\"},\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\"},\"jssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"placeholder\":\"选择时间\"},\"sjlx\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"事件类型\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"全天事件\",\"value\":\"1\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"cfrc\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"重复日程\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"不重复\",\"value\":\"1\"},{\"label\":\"每天重复\",\"value\":\"2\"},{\"label\":\"每周重复\",\"value\":\"3\"},{\"label\":\"每月重复\",\"value\":\"4\"},{\"label\":\"每年重复\",\"value\":\"5\"},{\"label\":\"工作日重复\",\"value\":\"6\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"value\":\"1\"},\"cyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"参与人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"avatar\":false},\"kjcd\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"可见程度\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"仅自己可见\",\"value\":\"1\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[]},\"rcbj\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"日程标记\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"√\",\"value\":\"#24D2D3\"},{\"label\":\"√\",\"value\":\"#FEC03D\"},{\"label\":\"√\",\"value\":\"#52C1F5\"},{\"label\":\"√\",\"value\":\"#51D351\"},{\"label\":\"√\",\"value\":\"#FF7A8C\"},{\"label\":\"√\",\"value\":\"#FFA94C\"},{\"label\":\"√\",\"value\":\"#73A0FA\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"className\":\"ys-radio\",\"value\":\"#24D2D3\"},\"rctx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"日程提醒\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"准时提醒\",\"value\":\"1\"},{\"label\":\"提前5分钟\",\"value\":\"2\"},{\"label\":\"提前15分钟\",\"value\":\"3\"},{\"label\":\"提前30分钟\",\"value\":\"4\"},{\"label\":\"提前1小时\",\"value\":\"5\"},{\"label\":\"提前2小时\",\"value\":\"6\"},{\"label\":\"提前1天\",\"value\":\"7\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"value\":\"1\",\"dicCode\":\"rwgl_rwtx\",\"codeDicData\":[]},\"txfs\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"提醒方式\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"系统消息\",\"value\":\"1\"},{\"label\":\"邮件通知\",\"value\":\"2\"},{\"label\":\"短信通知\",\"value\":\"3\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_txfs\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"系统消息\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"邮件通知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"短信通知\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"fields_4103893\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"日程地点\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"rcms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"日程描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\",\"className\":\"flex-start\"},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\",\"fileText\":\"上传文件\",\"className\":\"flex-start\"}},\"tableDesignId\":\"1856505236472143874\",\"group\":[]}', NULL, 'N', 'Y'); +INSERT INTO `lowcode_desform` VALUES (1851890190622343169, '1', 1, '2024-10-31 15:33:23', 101, 1, '2024-10-31 16:24:52', 0, '相册管理-创建相册', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n if (props.formType == \'add\') {\\n submitData.zt_img = \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-31/1/QQ20240925-143449_2.png\'\\n submitData.num = 100\\n }\\n\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"zt_title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"相册名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"content\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"相册描述\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"placeholder\":\"\",\"showWordLimit\":true,\"minlength\":0,\"maxlength\":100}},\"tableDesignId\":\"1851796249232203778\",\"group\":[]}', NULL, 'N', 'Y'); +INSERT INTO `lowcode_desform` VALUES (1852168337334951938, '1', 1, '2024-11-01 09:58:38', 101, 1, '2024-11-02 09:27:48', 0, '团队管理-创建团队', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1852168337334951938 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n .avue-form__row {\\n\\n\\n .el-form-item {\\n display: flex;\\n // align-items: center;\\n\\n .el-form-item__content {\\n .avue-radio {\\n display: flex;\\n }\\n\\n .el-input {\\n height: 37px;\\n }\\n\\n }\\n }\\n }\\n\\n .box {\\n position: absolute;\\n top: 0;\\n\\n .avue-upload__avatar {\\n width: 120px;\\n height: 120px;\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"tx\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"className\":\"box\"},\"name\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"团队名称\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":18,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"placeholder\":\"任务标题\",\"offset\":5,\"row\":false},\"fzr\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"负责人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":18,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"offset\":5},\"cy\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"团队成员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":18,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"multiple\":true,\"avatar\":false,\"offset\":5},\"tdjs\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"团队描述\",\"readonly\":false,\"minRows\":5,\"maxRows\":5,\"display\":true,\"span\":18,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showWordLimit\":true,\"maxlength\":100,\"placeholder\":\"输入内容\",\"className\":\"flex-start\",\"offset\":5}},\"tableDesignId\":\"1851205230887346177\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1852223511034294274, '1', 1, '2024-11-01 13:37:52', 101, 1, '2024-11-15 15:55:11', 0, '相册详情-头部', '{\"jsEnhance\":\"\\n//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_xc\', {\\n formId: \'\', //表单设计id\\n formType: \'add\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'测试表单\', //标题\\n width: \'\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [ //底部按钮配置\\n // {\\n // params: {}, //el-button 其他参数\\n // name: \'测试按钮\', //按钮名称\\n // display: true, //是否显示\\n // loading: true, //点击时是否有loading\\n // icon: \'\', //图标\\n // clickFun: (loading) => {\\n // //点击事件\\n // if (loading) loading() //关闭loading\\n // }\\n // }\\n ],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n console.log(\'表单数据\', formData)\\n }\\n done()\\n }\\n})\\n\\nconst { formView_xc } = Vue.toRefs(rendControlData.value)\\n\\n//打开按钮的表单\\nuseFun.openForm = (formView_value, obj, title, ID) => {\\n formView_value.value.show = true //显示FormView\\n const controlData = formView_value.value.params //ControlView的配置\\n controlData.defaultData = obj\\n controlData.popOption.title = title\\n if (ID) {\\n controlData.formId = ID\\n }\\n}\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n formData.zt_img = \'../../../../../public/img/xc.png\'\\n formData.num = \'100\'\\n formData.time = \'8小时前\'\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1852223511034294274 {\\n\\n //样式请写在当前位置内\\n .avue-upload__avatar {\\n width: 120px;\\n height: 120px;\\n }\\n\\n .title {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n font-size: 18px;\\n color: #666666;\\n margin-left: 25px;\\n margin-top:-5px;\\n }\\n\\n .text {\\n position: absolute;\\n left: 25px;\\n top: 25px;\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n\\n .avue-title p {\\n font-size: 14px;\\n }\\n }\\n\\n .right-text {\\n .avue-title p {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n font-size: 14px;\\n margin-right: 0;\\n }\\n\\n .avue-title p::before {\\n content: \'12\';\\n width: 15px;\\n height: 15px;\\n background-image: url(\'../../../../../public/img/sl.jpg\');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: rgba(0, 0, 0, 0);\\n }\\n }\\n\\n .right-time {\\n .avue-title p {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n font-size: 14px;\\n }\\n\\n .avue-title p::before {\\n content: \'12\';\\n width: 15px;\\n height: 15px;\\n background-image: url(\'../../../../../public/img/time.jpg\');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: rgba(0, 0, 0, 0);\\n }\\n }\\n\\n .btn {\\n position: absolute;\\n left: 35px;\\n top: 86px;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"zt_img\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"图片\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":2,\"disabled\":true,\"required\":false,\"hideLabel\":true},\"zt_title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"JeeLowCode 专业的低代码平台\",\"display\":true,\"span\":16,\"hideLabel\":true,\"styles\":{},\"className\":\"title\",\"offset\":0},\"num\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"100\",\"display\":true,\"span\":2,\"hideLabel\":true,\"styles\":{},\"className\":\"right-text\",\"offset\":0},\"time\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"8小时前\",\"display\":true,\"span\":3,\"hideLabel\":true,\"styles\":{},\"className\":\"right-time\"},\"fields_5186866\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。\",\"display\":true,\"span\":20,\"hideLabel\":true,\"styles\":{},\"className\":\"text\",\"offset\":2},\"fields_1060273\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"上传图片\",\"prop\":\"imgBtn\",\"id\":\"btn_8770\",\"icon\":\"ep:message-box\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xc } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'上传图片\'\\r\\n const id = \'1852253282782900226\'\\r\\n useFun.openForm(formView_xc, {\\r\\n type: \'gxxm\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"},{\"label\":\"批量操作\",\"prop\":\"plczBtn\",\"id\":\"btn_3423\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n props.enhanceData.isShowFun()\\r\\n }\\r\\n}\"},{\"label\":\"编辑相册\",\"prop\":\"editBtn\",\"id\":\"btn_4915\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n //控件调用\\r\\n const { formView_xc } = Vue.toRefs(rendControlData.value)\\r\\n const title = \'创建相册\'\\r\\n const id = \'1851890190622343169\'\\r\\n useFun.openForm(formView_xc, {\\r\\n type: \'gxxm\'\\r\\n }, title, id)\\r\\n }\\r\\n}\"}],\"location\":\"left\"},\"display\":true,\"span\":20,\"disabled\":false,\"hideLabel\":true,\"className\":\"btn\",\"offset\":2}},\"group\":[]}', NULL, 'N', 'Y'); +INSERT INTO `lowcode_desform` VALUES (1852253282782900226, '1', 1, '2024-11-01 15:36:10', 101, 1, '2024-11-01 15:44:59', 0, '相册管理-上传图片', '{\"jsEnhance\":\"return {\\n \\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"fields_2770098\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"上传到相册\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"选择一\",\"value\":\"1\"},{\"label\":\"选择二\",\"value\":\"2\"},{\"label\":\"选择三\",\"value\":\"3\"},{\"label\":\"选择四\",\"value\":\"4\"},{\"label\":\"选择五\",\"value\":\"5\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"placeholder\":\"相册名称\"},\"zt_img\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"选择图片\",\"listType\":\"picture-card\",\"accept\":\"image/*\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"group\":[]}', NULL, 'N', 'Y'); +INSERT INTO `lowcode_desform` VALUES (1853285742086909953, '1', 1, '2024-11-04 11:58:48', 101, 1, '2024-11-04 17:05:57', 0, '联系人管理-添加联系人', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1853285742086909953 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n\\n .img_class {\\n position: absolute;\\n\\n .avue-upload__avatar {\\n width: 120px;\\n height: 120px;\\n }\\n }\\n\\n .el-form-item {\\n\\n .el-form-item__label,\\n .el-radio-group {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n .el-input__wrapper {\\n height: 38px;\\n line-height: 38px;\\n }\\n\\n .user-input{\\n height: 40px;\\n }\\n }\\n }\\n\\n\\n\\n .ys-radio {\\n .avue-radio {\\n\\n .el-radio-button {\\n margin-right: 5px;\\n\\n .el-radio-button__inner {\\n width: 18px;\\n border-radius: 50%;\\n height: 18px;\\n border: none;\\n padding: 0;\\n\\n }\\n\\n &.is-active {\\n position: relative;\\n\\n .el-radio-button__inner {\\n border: none;\\n background-color: inherit;\\n box-shadow: none;\\n }\\n\\n &::before {\\n content: \'√\';\\n width: 18px;\\n height: 18px;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n transform: translate(-50%, -50%);\\n z-index: 99;\\n color: white;\\n font-size: 13px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n }\\n }\\n\\n .el-radio-button:nth-child(1) {\\n .el-radio-button__inner {\\n background-color: #24D2D3;\\n color: #24D2D3;\\n }\\n }\\n\\n .el-radio-button:nth-child(2) {\\n .el-radio-button__inner {\\n background-color: #FEC03D;\\n color: #FEC03D;\\n }\\n }\\n\\n .el-radio-button:nth-child(3) {\\n .el-radio-button__inner {\\n background-color: #52C1F5;\\n color: #52C1F5;\\n }\\n }\\n\\n .el-radio-button:nth-child(4) {\\n .el-radio-button__inner {\\n background-color: #51D351;\\n color: #51D351;\\n }\\n }\\n\\n .el-radio-button:nth-child(5) {\\n .el-radio-button__inner {\\n background-color: #FF7A8C;\\n color: #FF7A8C;\\n }\\n }\\n\\n .el-radio-button:nth-child(6) {\\n .el-radio-button__inner {\\n background-color: #FFA94C;\\n color: #FFA94C;\\n }\\n }\\n\\n .el-radio-button:nth-child(7) {\\n .el-radio-button__inner {\\n background-color: #73A0FA;\\n color: #73A0FA;\\n }\\n }\\n\\n }\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"tx\":{\"type\":\"image\",\"controlType\":\"upload\",\"label\":\"\",\"listType\":\"picture-img\",\"accept\":\"image/*\",\"display\":true,\"span\":5,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0,\"className\":\"img_class\"},\"xm\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"姓名\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"zw\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\" 职务\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"gs\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公司\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"sj\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"手机\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"yx\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"邮箱\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"dh\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"电话\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"dz\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"地址\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":4},\"color\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"标记\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"√\",\"value\":\"#24D2D3\"},{\"label\":\"√\",\"value\":\"#FEC03D\"},{\"label\":\"√\",\"value\":\"#52C1F5\"},{\"label\":\"√\",\"value\":\"#51D351\"},{\"label\":\"√\",\"value\":\"#FF7A8C\"},{\"label\":\"√\",\"value\":\"#FFA94C\"},{\"label\":\"√\",\"value\":\"#73A0FA\"}],\"display\":true,\"span\":19,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"offset\":4,\"labelWidth\":null,\"className\":\"ys-radio\",\"value\":\"#24D2D3\",\"button\":true}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1853325190400012289, '1', 1, '2024-11-04 14:35:33', 101, 1, '2024-11-05 15:30:12', 0, '工作报告', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n useFun.setPropConfig(\'bglx\', {\\n value: 2,\\n\\n change: (val) => {\\n if (val.value == 2) {\\n useFun.setPropConfig(\'gzjh\', {\\n display: false\\n })\\n } else {\\n useFun.setPropConfig(\'gzjh\', {\\n display: true\\n })\\n }\\n }\\n })\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n submitData.bgbt = submitData.bglx == 1 ? submitData.bgrq + \' 周报\' : submitData.bglx == 2 ? submitData.bgrq + \' 日报\' : submitData.bgrq + \' 月报\'\\n submitData.pyzt = 0\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1853325190400012289 {\\n\\n //样式请写在当前位置内\\n .avue-form__group {\\n\\n .el-form-item {\\n margin-bottom: 15px;\\n\\n .el-form-item__label {\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n\\n\\n .el-radio-button {\\n .el-radio-button__inner {\\n width: 134px;\\n height: 35px;\\n color: #999999;\\n }\\n\\n &.is-active {\\n .el-radio-button__inner {\\n color: white;\\n }\\n }\\n }\\n\\n .el-input {\\n height: 40px;\\n }\\n\\n .el-input__wrapper,\\n .user-input {\\n height: 38px;\\n }\\n\\n .avue-upload {\\n .el-upload {\\n .el-button {\\n width: 120px;\\n height: 40px;\\n background-color: white;\\n color: #999999;\\n border: 1px solid #dcdfe6;\\n }\\n }\\n\\n .el-upload__tip {\\n color: #999999;\\n font-size: 14px;\\n }\\n\\n .el-upload-list {\\n margin-top: 0;\\n }\\n }\\n\\n }\\n\\n }\\n\\n .btn-list {\\n margin: 20px 0 30px 0;\\n\\n .el-form-item__content {\\n margin-left: 120px !important;\\n\\n .el-button {\\n width: 140px;\\n margin-right: 8px;\\n }\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"bglx\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"报告类型\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"日报\",\"value\":\"2\"},{\"label\":\"周报\",\"value\":\"1\"},{\"label\":\"月报\",\"value\":\"3\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"button\":true,\"border\":false,\"value\":\"2\"},\"bgrq\":{\"type\":\"date\",\"controlType\":\"date\",\"label\":\"报告日期\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"gzzj\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"工作总结\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"gzjh\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"工作计划\",\"display\":false,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":null,\"row\":false,\"accept\":\"\",\"fileText\":\"上传文件\",\"tip\":\"支持格式:.rar .zip .doc .docx .pdf,单个文件不能超过20MB\",\"loadText\":\"\"},\"pyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"批阅人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"csry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"抄送人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"fields_6750615\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"提交\",\"prop\":\"btn_5865\",\"id\":\"btn_5865\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n size: \'large\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n useFun.submitForm(true)\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"重置\",\"prop\":\"btn_4706\",\"id\":\"btn_4706\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n size: \'large\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n handleClear()\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\",\"plain\":true,\"circle\":false,\"link\":false,\"text\":false,\"round\":false}],\"location\":\"left\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"offset\":0,\"className\":\"btn-list\"}},\"tableDesignId\":\"1853269839533273090\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1853701496069386242, '1', 1, '2024-11-05 15:30:51', 101, 1, '2024-11-16 09:41:29', 0, '工作报告-报告详情-左', '{\"jsEnhance\":\"let Icon = \'\'\\nconst h = Vue.h\\nuseFun.dynamicImport(\'components/Icon/src/Icon.vue\').then(module => {\\n if (module) {\\n Icon = module.default\\n }\\n})\\n\\n\\n//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_bjbg\', {\\n formId: \'1853325190400012289\', //表单设计id\\n formType: \'edit\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'编辑报告\', //标题\\n width: \'\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n message.success(\'编辑成功\')\\n console.log(\'表单数据\', formData)\\n }\\n done()\\n }\\n})\\n\\n//初始化控件\\nuseFun.controlInit(\'FormView\', \'formView_csbg\', {\\n formId: \'1846485499897925634\', //表单设计id\\n formType: \'edit\', //表单类型 add | edit | view\\n handleType: \'\', //处理类型 default | returnData\\n showType: \'dialog\', //弹窗类型 dialog | drawer\\n showButton: true, //是否显示底部默认操作按钮\\n dataOption: { //数据配置 \\n tableId: \'\', //表单开发id\\n dataId: \'\' //数据id\\n },\\n defaultData: {}, //默认表单数据\\n enhanceData: {}, //传递给表单js增强内部调用配置\\n popOption: { //弹窗配置\\n title: \'操作确认\', //标题\\n width: \'450px\', //弹窗宽度\\n fullscreen: false, //是否全屏\\n footerBtn: [],\\n headerBtn: [], //顶部按钮配置(配置同上)\\n dialogParams: {} //弹窗其他配置\\n },\\n beforeClose: (type, done, formData, loading) => {\\n // type:关闭类型 submit:提交后触发 close:直接关闭弹窗触发\\n // done:关闭弹窗方法 formData:表单数据 loading:关闭loading方法\\n if (type == \'submit\') {\\n console.log(\'表单数据\', formData)\\n }\\n done()\\n }\\n})\\n\\n\\n\\nreturn {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n formData.title = formData.bgbt + \'(\' + formData.username + \')\'\\n\\n useFun.setPropConfig(\'pyzt\', {\\n render: ({ row }) => {\\n const radius = h(\'div\', { style: { width: \'6px\', height: \'6px\', borderRadius: \'50%\', backgroundColor: \'#4BD863\', marginRight: \'5px\' } }, \'\')\\n\\n return h(\'span\', { style: { display: \'flex\', alignItems: \'center\', fontSize: \'12px\' } }, [radius, row.$pyzt])\\n }\\n })\\n\\n useFun.setPropConfig(\'stepList\', {\\n params: {\\n data: formData.stepList\\n }\\n })\\n formData.fields_1863907 = 1\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1853701496069386242 {\\n\\n //样式请写在当前位置内\\n .el-row {\\n border: none;\\n\\n .avue-form__group {\\n\\n\\n .el-form-item__label {\\n background-color: white;\\n }\\n\\n .el-form-item__content {\\n border: none;\\n }\\n\\n\\n .title {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n color: #666666;\\n\\n p {\\n margin: 5px 0;\\n }\\n }\\n\\n .select,\\n .user {\\n .el-form-item__label {\\n width: auto !important;\\n font-size: 12px;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n color: #999999;\\n }\\n\\n .el-form-item__content {\\n\\n .el-tag__content,\\n .el-select__selected-item {\\n color: #666666;\\n font-size: 12px;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n\\n }\\n }\\n }\\n\\n .user {\\n .el-form-item__label {\\n &::after {\\n content: \':\';\\n }\\n }\\n\\n .el-form-item__content {\\n padding-left: 0;\\n }\\n }\\n\\n .title,\\n .select,\\n .user {\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .el-form-item__content,\\n .el-form-item__label {\\n height: 40px;\\n }\\n\\n .el-form-item__label {\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n .el-select__wrapper {\\n background-color: white;\\n box-shadow: none;\\n padding-left: 0;\\n\\n .el-select__suffix {\\n display: none;\\n }\\n }\\n\\n .user-input {\\n border: none;\\n background-color: white;\\n }\\n }\\n\\n\\n }\\n\\n }\\n\\n .btn-list {\\n .el-form-item__content {\\n padding-top: 15px !important;\\n padding-bottom: 35px !important;\\n border-bottom: 1px solid #E9E9E9;\\n\\n .el-button {\\n width: 100px;\\n height: 35px;\\n\\n &:last-child {\\n color: #999999;\\n }\\n }\\n }\\n }\\n\\n .radio {\\n .el-form-item__content {\\n padding-top: 10px;\\n\\n .el-radio-group {\\n width: 100%;\\n display: grid;\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n grid-row-gap: 10px;\\n grid-column-gap: 10px;\\n\\n .el-radio {\\n display: flex;\\n justify-content: center;\\n padding: 0;\\n margin-right: 0;\\n border: none;\\n height: 30px;\\n\\n\\n .el-radio__input {\\n display: none;\\n }\\n\\n .el-radio__label {\\n padding: 0;\\n color: #999999;\\n font-size: 12px;\\n }\\n\\n &.is-checked {\\n border-radius: 49px;\\n border: 1px solid rgba(64, 158, 255, 1);\\n\\n .el-radio__label {\\n font-weight: bold;\\n color: rgb(64, 158, 255);\\n }\\n\\n }\\n }\\n }\\n }\\n\\n }\\n\\n\\n .zdy {\\n .el-form-item__content {\\n margin-left: 0 !important;\\n padding-top: 20px;\\n }\\n }\\n\\n &>.el-col {\\n border: none;\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"title\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"文本\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"pyzt\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"pyzt\",\"codeDicData\":[{\"value\":\"0\",\"label\":\"未批阅\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"1\",\"label\":\"已批阅\",\"colorType\":\"default\",\"cssClass\":\"\"}],\"labelWidth\":0,\"className\":\"select\"},\"pyry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"批阅人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"className\":\"user\"},\"csry\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"抄送人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"className\":\"user\"},\"fields_6113966\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"编辑报告\",\"prop\":\"btn_7204\",\"id\":\"btn_7204\",\"icon\":\"uil:pen\",\"type\":\"primary\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n\\r\\n //控件调用\\r\\n const { formView_bjbg } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_bjbg.value.params //FormView的配置\\r\\n controlData.defaultData = formData.value\\r\\n formView_bjbg.value.show = true //显示FormView\\r\\n\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"删除报告\",\"prop\":\"btn_8432\",\"id\":\"btn_8432\",\"icon\":\"mingcute:delete-line\",\"type\":\"\",\"display\":true,\"viewShow\":true,\"btnLoading\":true,\"configStr\":\"\\r\\nreturn {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const { formView_csbg } = Vue.toRefs(rendControlData.value)\\r\\n const controlData = formView_csbg.value.params //FormView的配置\\r\\n controlData.defaultData = {\\r\\n icon_url: \'http://oss.yckxt.com/chatgpt/upload/1/2024-10-14/1/mdi--question-mark-circle-outline (1).png\'\\r\\n }\\r\\n formView_csbg.value.show = true //显示FormView\\r\\n\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"}],\"location\":\"left\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"className\":\"btn-list\"},\"fields_1863907\":{\"type\":\"radio\",\"controlType\":\"select\",\"label\":\"\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"全部(10)\",\"value\":\"1\"},{\"label\":\"任务(5)\",\"value\":\"2\"},{\"label\":\"文件(5)\",\"value\":\"3\"},{\"label\":\"项目(5)\",\"value\":\"4\"},{\"label\":\"日常(5)\",\"value\":\"5\"},{\"label\":\"联系人(5)\",\"value\":\"6\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"border\":true,\"button\":false,\"labelWidth\":0,\"className\":\"radio\",\"value\":\"1\"},\"stepList\":{\"type\":\"customControl\",\"controlType\":\"noDefaule\",\"label\":\"\",\"isGlobal\":false,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"controlOptionStr\":\"return {\\n}\",\"controlUrl\":\"views/lowTemplate/generalPage/workReport/components/steps.vue\",\"className\":\"zdy\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1853994635845922818, '1', 1, '2024-11-06 10:55:41', 101, 1, '2024-11-16 11:27:36', 0, '工作报告-报告详情-右', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n useFun.setPropConfig(\'zdy\', {\\n params: {\\n data: formData.alertList\\n }\\n })\\n resolve(formData)\\n })\\n },\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n\\n // console.log(submitData, \'sub,otdata\')\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1853994635845922818 {\\n //样式请写在当前位置内\\n padding-top: 0 !important;\\n\\n .avue-form__group {\\n .text {\\n margin-top: 20px;\\n height: 60px;\\n\\n .el-form-item {\\n margin-bottom: 0;\\n\\n .avue-title {\\n height: 60px;\\n display: flex;\\n position: absolute;\\n align-items: center;\\n top: 0;\\n width: 100%;\\n\\n p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n color: rgb(102, 102, 102);\\n font-size: 14px;\\n height: 19px;\\n margin: 0;\\n line-height: 19px;\\n padding-left: 7px;\\n border-left: 7px solid #409EFF;\\n }\\n }\\n }\\n }\\n\\n .area {\\n\\n .el-textarea__inner {\\n padding: 20px 40px;\\n background-color: #FCFCFC;\\n color: rgb(102, 102, 102);\\n font-family: \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n line-height: 28px;\\n }\\n }\\n\\n .table {\\n\\n .el-form-item {\\n border: 1px solid rgba(233, 233, 233, 1);\\n\\n .el-table__header-wrapper {\\n .el-table__header {\\n height: 55px;\\n }\\n\\n .cell {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n color: rgb(102, 102, 102);\\n }\\n }\\n\\n .el-table__body-wrapper {\\n\\n\\n .el-table__row {\\n height: 55px;\\n\\n .avue-text-ellipsis__text,\\n .cell {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: rgb(102, 102, 102);\\n }\\n\\n .table-cell-upload .upload-show-box,\\n .avue-crud__menu>div {\\n justify-content: left;\\n }\\n }\\n }\\n }\\n\\n }\\n\\n .zdy {\\n .el-form-item__content {\\n margin-left: 0 !important;\\n }\\n }\\n }\\n\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_4830373\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"工作总结\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"areaOne\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"\",\"readonly\":false,\"minRows\":7,\"maxRows\":100,\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"offset\":null,\"labelWidth\":0,\"placeholder\":\" \",\"className\":\"area\"},\"fields_2476899\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"工作计划\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"areaTwo\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"\",\"readonly\":false,\"minRows\":7,\"maxRows\":10,\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":false,\"value\":\"\",\"placeholder\":\" \",\"labelWidth\":0,\"className\":\"area\"},\"fields_4137682\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"附件列表\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"table\":{\"type\":\"layoutTable\",\"controlType\":\"layout\",\"label\":\"表格布局\",\"dataType\":\"array\",\"tableType\":\"cellEdit\",\"btnData\":{\"menu\":[{\"label\":\"下载\",\"prop\":\"btn_4246\",\"id\":\"btn_4246\",\"icon\":\"\",\"display\":true,\"viewShow\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n type: \'primary\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n const link = document.createElement(\'a\');\\r\\n link.href = obj.row.table_file;\\r\\n let fileTextArr = obj.row.table_file.split(\'/\')\\r\\n let endText = fileTextArr[fileTextArr.length - 1]\\r\\n link.download = endText;\\r\\n link.target = \\\"_blank\\\";\\r\\n link.click();\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"删除\",\"prop\":\"btn_4646\",\"id\":\"btn_4646\",\"icon\":\"\",\"display\":true,\"viewShow\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n type: \'danger\',\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n tableData.value = tableData.value.filter(item => {\\r\\n return item.id !== obj.row.id\\r\\n })\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"}],\"header\":[]},\"tableEnhanceStr\":\"return {\\r\\n //表格配置初始化\\r\\n initTable() {\\r\\n tableOption.value.menuAlign = \'left\'\\r\\n tableOption.value.menuHeaderAlign = \'left\'\\r\\n tableOption.value.maxHeight = \'auto\'\\r\\n },\\r\\n //表格数据格式化\\r\\n setTableData(data, { type, index, id }) {\\r\\n\\r\\n return data\\r\\n }\\r\\n}\\r\\n\",\"params\":{\"headerAlign\":\"left\",\"align\":\"left\",\"addBtn\":false,\"delBtn\":false,\"editBtn\":true,\"selection\":true,\"border\":false,\"menuWidth\":120,\"stripe\":true,\"index\":false},\"column\":{\"table_file\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"文件名\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"showNum\":1},\"tale_size\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"大小\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false},\"table_time\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"上传时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"value\":[],\"minWidth\":150},\"table_user\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"上传人员\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"labelWidth\":0}},\"display\":true,\"span\":24,\"hideLabel\":true,\"className\":\"table\"},\"fields_6165309\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"批阅记录\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"text\"},\"zdy\":{\"type\":\"customControl\",\"controlType\":\"noDefaule\",\"label\":\"\",\"isGlobal\":false,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"controlUrl\":\"views/lowTemplate/generalPage/workReport/components/alert.vue\",\"className\":\"zdy\"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1854359628093304834, '1', 1, '2024-11-07 11:06:02', 101, 1, '2024-11-07 11:39:23', 0, '公告管理-新增', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n submitData.ggzt = 1\\n submitData.jsry = \'全体员工\'\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1854359628093304834 {\\n //样式请写在当前位置内\\n\\n \\n .el-upload__tip,.el-button--primary{\\n font-size: 14px;\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n font-style: normal;\\n color: #999999;\\n text-align: left;\\n }\\n\\n .el-button--primary {\\n background: none;\\n border-color: #e4e4e4;\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"发布\",\"emptyBtn\":true,\"emptyText\":\"重置\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"ggbt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"公告标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"offset\":0,\"row\":true},\"gglx\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"公告类型\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"选择项一\",\"value\":\"1\"},{\"label\":\"选择项二\",\"value\":\"2\"},{\"label\":\"选择项三\",\"value\":\"3\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"gggl_gglx\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"公告类型一\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"公告类型二\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"公告类型三\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"4\",\"label\":\"公告类型四\",\"colorType\":\"default\",\"cssClass\":\"\"}]},\"ggxq\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"公告详情\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"fj\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"fileText\":\"上传文件\",\"tip\":\" 支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\"},\"plsz\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"评论设置\",\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"允许评论\",\"value\":\"1\"}],\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"row\":true},\"txfs\":{\"type\":\"checkbox\",\"controlType\":\"select\",\"label\":\"提醒方式\",\"dicType\":\"code\",\"staticDicData\":[{\"label\":\"字典1\",\"value\":\"dic_1\"},{\"label\":\"字典2\",\"value\":\"dic_2\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"delDicValue\":[],\"dicCode\":\"rwgl_txfs\",\"codeDicData\":[{\"value\":\"1\",\"label\":\"系统消息\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"2\",\"label\":\"邮件通知\",\"colorType\":\"default\",\"cssClass\":\"\"},{\"value\":\"3\",\"label\":\"短信通知\",\"colorType\":\"default\",\"cssClass\":\"\"}]}},\"tableDesignId\":\"1854048263491252226\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1854399122108559362, '1', 1, '2024-11-07 13:42:58', 101, 1, '2024-11-11 16:31:44', 0, '公告管理-详情', '{\"jsEnhance\":\"return {\\n initData(formData) {\\n return new Promise(resolve => { //初始化默认值\\n let fbry = formData.fbry ? \'发布人员:\' + formData.fbry : \' \'\\n let fbsj = formData.create_time ? \' 发布时间:\' + useFun.formatDate(formData.create_time, \'YYYY-MM-DD HH:mm\') : \'\'\\n let jsry = formData.jsry ? \' 接收人员:\' + formData.jsry : \'\'\\n let llcs = formData.llcs ? \' 浏览次数:\' + formData.llcs : \'浏览次数:999\'\\n let plsl = formData.plsl ? \' 评论数量:\' + formData.plsl : \'评论数量:999\'\\n formData.title_text = fbry + \'\\\\n\' + fbsj + \'\\\\n\' + jsry + \'\\\\n\' + llcs + \'\\\\n\' + plsl\\n\\n useFun.setPropConfig(\'pljl\', {\\n params: {\\n data: [\\n {\\n id: 1,\\n imgUrl:\\n \'https://oss.yckxt.com/chatgpt/upload/1/2024-11-06/1/f0ee8a3c7c9638a54940382568c9dpng_5.png\',\\n name: \'赵小刚\',\\n time: \'2019-03-23 22:31\',\\n content: \'非常不错的分享,对我们的工作很有参考价值。\'\\n },\\n {\\n id: 2,\\n imgUrl:\\n \'https://oss.yckxt.com/chatgpt/upload/1/2024-11-06/1/f0ee8a3c7c9638a54940382568c9dpng_5.png\',\\n name: \'赵小刚\',\\n time: \'2019-03-23 22:31\',\\n content: \'非常不错的分享,对我们的工作很有参考价值。\'\\n },\\n {\\n id: 3,\\n imgUrl:\\n \'https://oss.yckxt.com/chatgpt/upload/1/2024-11-06/1/f0ee8a3c7c9638a54940382568c9dpng_5.png\',\\n name: \'赵小刚\',\\n time: \'2019-03-23 22:31\',\\n content: \'非常不错的分享,对我们的工作很有参考价值。\'\\n }\\n ]\\n }\\n })\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1854399122108559362 {\\n\\n //样式请写在当前位置内\\n\\n .el-form-item {\\n margin-bottom: 5px;\\n }\\n\\n .title {\\n .avue-title p {\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n font-style: normal;\\n font-size: 20px;\\n text-align: left;\\n line-height: 20px;\\n color: #666666;\\n border-left: 5px solid #409eff;\\n padding-left: 7px;\\n }\\n }\\n\\n .titles {\\n .el-form-item__content {\\n padding-left: 20px !important;\\n\\n }\\n\\n .avue-title p {\\n margin-top: 35px;\\n margin-bottom: 20px;\\n font-family: \'微软雅黑 Bold\', \'微软雅黑 Regular\', \'微软雅黑\', sans-serif;\\n font-weight: 700;\\n font-style: normal;\\n font-size: 14px;\\n text-align: left;\\n line-height: 20px;\\n color: #666666;\\n border-left: 5px solid #409eff;\\n padding-left: 7px;\\n }\\n }\\n\\n .avue-ueditor {\\n border: none;\\n\\n .avue-ueditor__toolbar {\\n display: none;\\n }\\n }\\n\\n .w-e-text-container {\\n padding: 0px 10px;\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n font-style: normal;\\n text-align: left;\\n line-height: 28px;\\n color: #666666;\\n font-size: 14px;\\n }\\n\\n .avue--detail .el-col {\\n border: none;\\n }\\n\\n .title_text {\\n margin: 0 20px;\\n\\n .avue-title p {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n font-size: 12px;\\n line-height: 40px;\\n border: 1px solid #ebebeb;\\n background-color: #f9f9f9;\\n padding: 0 10px;\\n }\\n }\\n\\n .avue--detail .el-row,\\n .avue--detail .el-form-item__content {\\n border: 0;\\n }\\n\\n .pljl {\\n\\n .el-form-item__content {\\n padding: 0 30px;\\n }\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"ggbt\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"如何建立良好的客户关系\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title\"},\"title_text\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"title_text\"},\"ggxq\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"富文本\",\"display\":true,\"span\":24,\"disabled\":true,\"required\":false,\"hideLabel\":true,\"offset\":0,\"value\":\"

12345

\"},\"fields_1500806\":{\"type\":\"title\",\"controlType\":\"title\",\"label\":\"文本\",\"value\":\"评论记录\",\"display\":true,\"span\":24,\"hideLabel\":true,\"styles\":{},\"className\":\"titles\"},\"pljl\":{\"type\":\"customControl\",\"controlType\":\"noDefaule\",\"label\":\"自定义控件\",\"isGlobal\":false,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":true,\"controlUrl\":\"views/lowTemplate/generalPage/workReport/components/alert.vue\",\"className\":\"pljl \"}},\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1854442042421391362, '1', 1, '2024-11-07 16:33:31', 101, 1, '2024-11-09 11:56:26', 0, '交流论坛-创建话题', '{\"jsEnhance\":\"\",\"scssEnhance\":\".low-form__1854442042421391362 {\\n //样式请写在当前位置内\\n padding-top: 35px !important;\\n\\n .avue-form__group {\\n padding: 0 20px;\\n\\n .el-form-item {\\n .el-form-item__label {\\n // width: auto !important;\\n height: 40px;\\n line-height: 40px;\\n }\\n\\n .el-form-item__content {\\n\\n .el-select__wrapper,\\n .el-input__wrapper {\\n height: 40px;\\n }\\n\\n .avue-upload {\\n\\n .el-button {\\n width: 120px;\\n height: 40px;\\n color: #999999;\\n background-color: white;\\n border: 1px solid #e9e9e9;\\n\\n &:hover {\\n border-color: #409eff;\\n color: #409eff;\\n background-color: #40a0ff18;\\n }\\n\\n }\\n\\n .el-upload__tip {\\n font-family: \'微软雅黑\', sans-serif;\\n font-weight: 400;\\n color: #999999;\\n font-size: 14px;\\n }\\n }\\n\\n\\n\\n .el-switch__core {\\n width: 55px;\\n height: 25px;\\n border-radius: 40px;\\n\\n .el-switch__action {\\n width: 18px;\\n height: 18px;\\n }\\n }\\n\\n .el-switch.is-checked .el-switch__core .el-switch__action {\\n left: calc(100% - 20px);\\n }\\n\\n .el-switch__core .el-switch__action {\\n left: 2px;\\n }\\n }\\n }\\n }\\n\\n .ueditor {\\n .el-form-item {\\n padding-right: 20px;\\n\\n }\\n }\\n\\n .btn-list {\\n .el-form-item__content {\\n margin-left: 120px !important;\\n margin-top: 20px;\\n margin-bottom: 45px;\\n\\n .el-button {\\n height: 40px;\\n width: 140px;\\n margin-right: 8px;\\n }\\n }\\n\\n }\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" :\",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":false,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"fields_2847603\":{\"type\":\"select\",\"controlType\":\"select\",\"label\":\"话题版块\",\"clearable\":true,\"collapseTags\":true,\"maxCollapseTags\":1,\"dicType\":\"static\",\"staticDicData\":[{\"label\":\"话题板块一\",\"value\":\"1\"},{\"label\":\"话题板块二\",\"value\":\"2\"},{\"label\":\"话题板块三\",\"value\":\"3\"},{\"label\":\"话题板块四\",\"value\":\"4\"}],\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"delDicValue\":[],\"row\":true,\"codeDicData\":[],\"placeholder\":\"选择板块\"},\"htbt\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"话题标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"fields_3444788\":{\"type\":\"ueditor\",\"controlType\":\"noDefaule\",\"label\":\"话题正文\",\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"className\":\"ueditor\"},\"fields_3098848\":{\"type\":\"file\",\"controlType\":\"upload\",\"label\":\"上传附件\",\"showFileList\":true,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false,\"fileText\":\"上传文件\",\"tip\":\"支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB\"},\"sd\":{\"type\":\"switch\",\"controlType\":\"select\",\"label\":\"话题锁定\",\"value\":\"1\",\"dicData\":[{\"lable\":\"\",\"value\":\"0\"},{\"lable\":\"\",\"value\":\"1\"}],\"display\":true,\"span\":13,\"disabled\":false,\"hideLabel\":false,\"row\":true},\"zd\":{\"type\":\"switch\",\"controlType\":\"select\",\"label\":\"话题置顶\",\"value\":\"1\",\"dicData\":[{\"lable\":\"\",\"value\":\"0\"},{\"lable\":\"\",\"value\":\"1\"}],\"display\":true,\"span\":13,\"disabled\":false,\"hideLabel\":false},\"fields_9582858\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"发布\",\"prop\":\"btn_5696\",\"id\":\"btn_5696\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n if (props.enhanceData.type) {\\r\\n useFun.submitForm(true)\\r\\n if (props.enhanceData.type == \'add\') {\\r\\n props.enhanceData.updateDialog()\\r\\n }\\r\\n\\r\\n }\\r\\n message.success(\'发布成功\')\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\"},{\"label\":\"重置\",\"prop\":\"btn_3946\",\"id\":\"btn_3946\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":true,\"configStr\":\"return {\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n handleClear()\\r\\n if (obj.loading) obj.loading() //关闭loading方法\\r\\n }\\r\\n}\\r\\n\",\"plain\":true}],\"location\":\"left\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true,\"className\":\"btn-list\"}},\"tableDesignId\":\"1854716968965484545\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1856521825921736705, '1', 1, '2024-11-13 10:17:50', NULL, 1, '2024-11-13 15:37:41', 0, '日历新增', '{\"jsEnhance\":\"return {\\n beforeSubmit(submitData) { //提交前数据处理\\n return new Promise((resolve, reject) => {\\n\\n resolve(submitData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\"\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":false,\"column\":{\"kssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"开始时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[]},\"jssj\":{\"type\":\"datetime\",\"controlType\":\"date\",\"label\":\"结束时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD HH:mm:ss\",\"valueFormat\":\"YYYY-MM-DD HH:mm:ss\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[]},\"example_sub_more_date\":{\"type\":\"layoutTable\",\"controlType\":\"layout\",\"label\":\"表格布局\",\"dataType\":\"array\",\"tableType\":\"cellEdit\",\"btnData\":{\"menu\":[],\"header\":[]},\"tableEnhanceStr\":\"\",\"params\":{\"headerAlign\":\"center\",\"align\":\"center\",\"addBtn\":true,\"delBtn\":true,\"editBtn\":true,\"selection\":true,\"border\":true,\"menuWidth\":120},\"column\":{\"title\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"日程标题\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false},\"ms\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"描述\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":false,\"hideLabel\":false}},\"display\":true,\"span\":24,\"hideLabel\":true},\"fields_8261657\":{\"type\":\"buttonList\",\"controlType\":\"\",\"label\":\"按钮组\",\"params\":{\"buttonList\":[{\"label\":\"取消\",\"prop\":\"btn_qx\",\"id\":\"btn_1913\",\"icon\":\"\",\"type\":\"\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n props.enhanceData.addFun()\\r\\n handleClear()\\r\\n }\\r\\n}\"},{\"label\":\"保存\",\"prop\":\"btn_bc\",\"id\":\"btn_5005\",\"icon\":\"\",\"type\":\"primary\",\"display\":true,\"viewShow\":false,\"btnLoading\":false,\"configStr\":\"return {\\r\\n //其他配置请参考element-plus button配置\\r\\n //当前按钮的点击事件\\r\\n handleClick: (obj) => {\\r\\n formData.value.example_sub_more_date.map(item => {\\r\\n delete item.id\\r\\n return item\\r\\n })\\r\\n useFun.requestApi(\'post\', \'jeelowcode/dbform-data/save/1850723645460291586\', {\\r\\n data: formData.value\\r\\n }).then(res => {\\r\\n props.enhanceData.addFun()\\r\\n handleClear()\\r\\n })\\r\\n\\r\\n }\\r\\n}\"}],\"location\":\"right\"},\"display\":true,\"span\":24,\"disabled\":false,\"hideLabel\":true}},\"tableDesignId\":\"1850723645460291586\",\"group\":[]}', NULL, 'N', 'N'); +INSERT INTO `lowcode_desform` VALUES (1862065125842554881, '1', 1, '2024-11-28 17:24:56', 101, 1, '2024-11-28 17:54:20', 0, '学生请假申请表', '{\"jsEnhance\":\"return {\\n initOption() { //表单显示前执行\\n useFun.setPropConfig(\'qj_time\', {\\n change: ({ value }) => {\\n let num = \'\'\\n if (value) {\\n const times = value.split(\',\')\\n num = useFun.betweenDay(times[0], times[1]) + 1\\n }\\n formData.value.qj_num = num\\n },\\n })\\n },\\n initData(formData) {\\n const userStore = useFun.useUserStoreWithOut()\\n return new Promise(resolve => { //初始化默认值\\n if (props.formType == \'add\') {\\n formData.qj_user = userStore.user.id\\n }\\n resolve(formData)\\n })\\n },\\n}\\n\",\"scssEnhance\":\".low-form__1862065125842554881 {\\n //样式请写在当前位置内\\n}\",\"labelPosition\":\"right\",\"labelSuffix\":\" \",\"labelWidth\":120,\"gutter\":20,\"menuBtn\":true,\"submitBtn\":true,\"submitText\":\"提交\",\"emptyBtn\":false,\"emptyText\":\"清空\",\"menuPosition\":\"center\",\"size\":\"default\",\"isSubmitTable\":true,\"column\":{\"qj_user\":{\"type\":\"userSelect\",\"controlType\":\"select\",\"label\":\"请假人\",\"findType\":\"all\",\"columnKey\":[\"mobile\",\"sex\",\"deptName\"],\"display\":true,\"span\":12,\"disabled\":true,\"required\":false,\"hideLabel\":false},\"qj_time\":{\"type\":\"daterange\",\"controlType\":\"date\",\"label\":\"请假时间\",\"clearable\":true,\"format\":\"YYYY-MM-DD\",\"valueFormat\":\"YYYY-MM-DD\",\"display\":true,\"span\":12,\"disabled\":false,\"required\":true,\"hideLabel\":false,\"value\":[],\"moreOptionStr\":\"return {\\n\\n}\"},\"qj_num\":{\"type\":\"input\",\"controlType\":\"input\",\"label\":\"请假天数\",\"readonly\":false,\"clearable\":true,\"display\":true,\"span\":12,\"disabled\":true,\"required\":false,\"hideLabel\":false},\"qj_yy\":{\"type\":\"textarea\",\"controlType\":\"input\",\"label\":\"请假原因\",\"readonly\":false,\"minRows\":3,\"maxRows\":5,\"display\":true,\"span\":24,\"disabled\":false,\"required\":true,\"hideLabel\":false}},\"group\":[]}', NULL, 'N', 'N'); + +-- ---------------------------- +-- Table structure for lowcode_group_dbform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_group_dbform`; +CREATE TABLE `lowcode_group_dbform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `pid` bigint(0) NULL DEFAULT NULL COMMENT 'pid', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发分组' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_group_dbform +-- ---------------------------- +INSERT INTO `lowcode_group_dbform` VALUES (1814507446697771010, '1', 1, '2024-07-20 11:47:42', 101, 1, '2024-07-20 14:45:46', 0, 0, '测试中'); +INSERT INTO `lowcode_group_dbform` VALUES (1814537807121133570, '1', 1, '2024-07-20 13:48:20', 101, 1, '2024-07-20 14:07:55', 0, 0, '开发中'); +INSERT INTO `lowcode_group_dbform` VALUES (1814558316630147073, '1', 1, '2024-07-20 15:09:50', 101, NULL, NULL, 0, 0, '演示表'); + +-- ---------------------------- +-- Table structure for lowcode_group_desform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_group_desform`; +CREATE TABLE `lowcode_group_desform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `pid` bigint(0) NULL DEFAULT NULL COMMENT 'pid', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单设计分组' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_group_desform +-- ---------------------------- +INSERT INTO `lowcode_group_desform` VALUES (1814565091165110274, '1', 1, '2024-07-20 15:36:45', 101, NULL, NULL, 0, 0, '测试表单'); +INSERT INTO `lowcode_group_desform` VALUES (1814565111251632129, '1', 1, '2024-07-20 15:36:50', 101, NULL, NULL, 0, 0, '演示表单'); +INSERT INTO `lowcode_group_desform` VALUES (1814566297392414721, '1', 1, '2024-07-20 15:41:33', 101, NULL, '2024-07-20 15:41:39', 1, 1814565091165110274, '11122'); +INSERT INTO `lowcode_group_desform` VALUES (1820725650445041666, '1', 1, '2024-08-06 15:36:37', 101, NULL, NULL, 0, 0, '流程表单'); +INSERT INTO `lowcode_group_desform` VALUES (1829755922813607939, '1', 1, '2024-08-31 13:39:42', 101, NULL, NULL, 0, 0, '示例表单'); +INSERT INTO `lowcode_group_desform` VALUES (1829756131023052802, '1', 1, '2024-08-31 13:40:32', 101, NULL, NULL, 0, 1829755922813607939, '步骤类型表单'); + +-- ---------------------------- +-- Table structure for lowcode_group_report +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_group_report`; +CREATE TABLE `lowcode_group_report` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `pid` bigint(0) NULL DEFAULT NULL COMMENT 'pid', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据报表分组' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_group_report +-- ---------------------------- +INSERT INTO `lowcode_group_report` VALUES (1814565091165110274, '1', 1, '2024-07-20 15:36:45', 101, 1, '2024-10-30 16:42:07', 0, 0, '测试报表'); +INSERT INTO `lowcode_group_report` VALUES (1814565111251632129, '1', 1, '2024-07-20 15:36:50', 101, NULL, '2024-10-30 16:41:59', 1, 0, '演示表单'); +INSERT INTO `lowcode_group_report` VALUES (1814566297392414721, '1', 1, '2024-07-20 15:41:33', 101, NULL, '2024-07-20 15:41:39', 1, 1814565091165110274, '11122'); +INSERT INTO `lowcode_group_report` VALUES (1820725650445041666, '1', 1, '2024-08-06 15:36:37', 101, NULL, '2024-10-30 16:41:56', 1, 0, '流程表单'); +INSERT INTO `lowcode_group_report` VALUES (1829755922813607939, '1', 1, '2024-08-31 13:39:42', 101, NULL, '2024-10-30 16:41:54', 1, 0, '示例表单'); +INSERT INTO `lowcode_group_report` VALUES (1829756131023052802, '1', 1, '2024-08-31 13:40:32', 101, NULL, '2024-10-30 16:42:21', 1, 1829755922813607939, '步骤类型表单'); + +-- ---------------------------- +-- Table structure for lowcode_log_api +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_api`; +CREATE TABLE `lowcode_log_api` ( + `id` bigint(0) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求标题', + `model_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块标题', + `request_uri` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `request_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式', + `request_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数', + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `time` bigint(0) NULL DEFAULT NULL COMMENT '执行时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE, + INDEX `ind_time`(`time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请求日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_api +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_api_error +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_api_error`; +CREATE TABLE `lowcode_log_api_error` ( + `id` bigint(0) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求标题', + `model_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块标题', + `request_uri` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `request_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式', + `request_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数', + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `time` bigint(0) NULL DEFAULT NULL COMMENT '执行时间', + `error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误原因', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE, + INDEX `ind_time`(`time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请求错误日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_api_error +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_excel_file +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_excel_file`; +CREATE TABLE `lowcode_log_excel_file` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` int(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名', + `import_state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否导入', + `total_num` int(0) NULL DEFAULT NULL COMMENT '总条数', + `success_num` int(0) NULL DEFAULT NULL COMMENT '成功条数', + `error_num` int(0) NULL DEFAULT NULL COMMENT '失败条数', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_code_id`(`dbform_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Excel导入数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_excel_file +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_excel_file_data +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_excel_file_data`; +CREATE TABLE `lowcode_log_excel_file_data` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` int(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `excel_file_id` bigint(0) NULL DEFAULT NULL COMMENT 'Excel文件id', + `sort` int(0) NULL DEFAULT NULL COMMENT '序号', + `data_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '导入数据', + `handle_state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理状态 Y=已处理 N=未处理', + `handle_result` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理结果', + `handle_time` datetime(0) NULL DEFAULT NULL COMMENT '处理时间', + `error_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误原因', + `data_id` bigint(0) NULL DEFAULT NULL COMMENT '数据id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Excel导入数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_excel_file_data +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_history_dbform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_history_dbform`; +CREATE TABLE `lowcode_log_history_dbform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `dbform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单开发id', + `service_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型', + `service_id` bigint(0) NULL DEFAULT NULL COMMENT '业务id', + `service_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '业务数据', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbform_id`(`dbform_id`) USING BTREE, + INDEX `ind_service_type`(`service_type`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单开发-历史数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_history_dbform +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_history_desform +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_history_desform`; +CREATE TABLE `lowcode_log_history_desform` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` int(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `desform_id` bigint(0) NULL DEFAULT NULL COMMENT '表单设计id', + `desform_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表单设计名称', + `desform_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表单设计JSON', + `group_desform_id` bigint(0) NULL DEFAULT NULL COMMENT '分组id', + `is_open` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否开放', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ' 创建人名称', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_desform_id`(`desform_id`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '表单设计-历史数据' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_history_desform +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_module_usage_records +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_module_usage_records`; +CREATE TABLE `lowcode_log_module_usage_records` ( + `id` bigint(0) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `model_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块标题', + `users_num` bigint(0) NULL DEFAULT NULL COMMENT '使用用户数', + `use_num` bigint(0) NULL DEFAULT NULL COMMENT '模块使用数', + `record_date` date NULL DEFAULT NULL COMMENT '记录日期', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模块使用记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_module_usage_records +-- ---------------------------- +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163381379073, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, 'Button增强', 4, 40, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163440099330, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, 'JAVA增强', 4, 18, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163494625281, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, 'Js增强', 2, 10, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163544956930, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, 'Sql增强', 4, 18, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163595288578, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '地区管理', 2, 21, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163658203137, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '字典管理', 4, 34, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163708534786, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '报表统计', 3, 38, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163767255041, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '授权管理', 4, 16, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163821780994, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '文件管理', 1, 9, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163872112641, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '流程管理', 1, 4, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163939221506, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '用户管理', 2, 3, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659163993747458, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '租户管理', 4, 20, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659164044079105, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '自定义表单', 3, 59, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659164094410753, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '自定义表单分组', 2, 5, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659164144742402, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '菜单管理', 2, 5, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659164195074049, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '表单开发', 4, 228, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866659164253794306, '1', 1, '2024-12-11 09:40:00', 101, 1, '2024-12-11 10:00:00', 0, '表单开发分组', 4, 18, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866661680156717057, '1', 1, '2024-12-11 09:50:00', 101, 1, '2024-12-11 10:00:00', 0, '报表分组', 1, 1, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664197354217474, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, 'OAuth2.0管理', 1, 2, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664197698150401, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '岗位管理', 1, 2, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664198285352962, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '短信管理', 1, 3, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664198390210562, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '社交管理', 1, 1, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664198985801730, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '通知公告', 1, 1, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664199086465026, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '邮箱管理', 1, 1, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1866664199195516930, '1', 1, '2024-12-11 10:00:00', 101, NULL, NULL, 0, '部门管理', 1, 4, '2024-12-11'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776426274818, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, 'Button增强', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776526938114, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, 'JAVA增强', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776623407106, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, 'Sql增强', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776703098882, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '字典管理', 3, 16, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776778596354, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '岗位管理', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776862482434, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '报表统计', 3, 14, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881776937979906, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '授权管理', 3, 49, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777013477378, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '用户管理', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777080586241, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '租户管理', 3, 56, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777147695106, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '自定义表单', 3, 89, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777223192577, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '芋道适配器', 1, 21, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777307078658, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '获取部署模型', 1, 6, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777378381826, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '菜单管理', 3, 84, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777453879297, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '表单开发', 3, 57, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777516793857, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '表单开发分组', 1, 3, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777588097025, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '部门管理', 1, 4, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777655205889, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '钉钉流程', 3, 167, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777726509057, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '钉钉流程列表', 3, 124, '2024-12-28'); +INSERT INTO `lowcode_log_module_usage_records` VALUES (1872881777781035009, '1', 1, '2024-12-28 13:46:27', 101, NULL, NULL, 0, '验证码管理', 3, 10, '2024-12-28'); + +-- ---------------------------- +-- Table structure for lowcode_report +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_report`; +CREATE TABLE `lowcode_report` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `report_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报表名称', + `report_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '报表编号', + `group_report_id` bigint(0) NULL DEFAULT NULL COMMENT '报表分组id', + `java_config` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'java增强配置', + `data_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '数据配置', + `table_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表格配置', + `data_sources_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '表视图数据来源配置', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_table_name`(`report_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据报表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_report +-- ---------------------------- +INSERT INTO `lowcode_report` VALUES (1846065445409247234, '1', 1, '2024-10-15 13:47:55', 101, 1, '2024-10-17 10:37:44', 1, '统计人数性别', 'test_lin_sex_cou', NULL, 'linReportClassEnhance', 'page,authTrue', 'height,index,border,stripe', '{\"dataOrigin\":\"1823193954808283138\",\"executeSql\":\"SELECT\\n tbl_lt.sex,\\n count(tbl_lt.id) as cou\\nFROM\\n lin_tongji AS tbl_lt\\nGROUP BY\\n tbl_lt.sex\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"sex(性别)\",\"value\":\"sex\",\"tableName\":\"lin_tongji\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2355496\",\"controlType\":\"text\",\"alias\":\"\"},{\"label\":\"自定义SQL\",\"controlType\":\"custom\",\"value\":\"count(tbl_lt.id) as cou\",\"prop\":\"option_2650944\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"lin_tongji\",\"type\":\"table\",\"prop\":\"option_6478169\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[],\"groupBy\":\"tbl_lt.sex\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"lin_tongji\":\"tbl_lt\"}}}'); +INSERT INTO `lowcode_report` VALUES (1846452434541326337, '1', 1, '2024-10-16 15:25:40', 101, 1, '2024-10-24 11:42:40', 1, '测试报表', 'test_cs', NULL, '', 'page,authOpen', 'height,index,border,stripe', '{\"dataOrigin\":\"1846121741006647298,1846103236139950082\",\"executeSql\":\"\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_staff_management\":\"tbl_esm\",\"example_user_management_czjl\":\"tbl_eumc\"}}}'); +INSERT INTO `lowcode_report` VALUES (1846489760285958146, '1', 1, '2024-10-16 17:54:00', 101, 1, '2024-10-17 11:00:25', 1, '统计人数性别_copy', 'copy_test_lin_sex_cou', NULL, 'linReportClassEnhance', 'authFalse,page', 'height,index,border,stripe', '{\"dataOrigin\":\"1823193954808283138\",\"executeSql\":\"SELECT\\n tbl_lt.sex,\\n count(tbl_lt.id) as cou\\nFROM\\n lin_tongji AS tbl_lt\\nGROUP BY\\n tbl_lt.sex\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"sex(性别)\",\"value\":\"sex\",\"tableName\":\"lin_tongji\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2355496\",\"controlType\":\"text\",\"alias\":\"\"},{\"label\":\"自定义SQL\",\"controlType\":\"custom\",\"value\":\"count(tbl_lt.id) as cou\",\"prop\":\"option_2650944\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"lin_tongji\",\"type\":\"table\",\"prop\":\"option_6478169\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[],\"groupBy\":\"tbl_lt.sex\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"lin_tongji\":\"tbl_lt\"}}}'); +INSERT INTO `lowcode_report` VALUES (1847095793067110402, '1', 1, '2024-10-18 10:02:09', 101, 1, '2024-10-26 11:21:19', 0, '系统首页-数据看板1-每日数据', 'example_today_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'实时数据\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_6114586\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3678822\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_91400\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2229905\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4911400\",\"controlType\":\"default\",\"conditionValue\":\"实时数据\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_today_data\":\"tbl_etd\",\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847188299477860353, '1', 1, '2024-10-18 16:09:44', 101, 1, '2024-10-26 11:20:53', 0, '系统首页-数据看板1-订单及销量趋势', 'example_order_sales', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'订单及销量趋势\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1411236\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_8226402\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2872221\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3847160\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_449374\",\"controlType\":\"default\",\"conditionValue\":\"订单及销量趋势\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847205485940473858, '1', 1, '2024-10-18 17:18:02', 101, 1, '2024-10-26 11:20:37', 0, '系统首页-数据看板1-商品销售占比', 'example_order_sales_percentage', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'商品销售占比\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_4766454\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6465565\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_3838476\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3514764\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9465630\",\"controlType\":\"default\",\"conditionValue\":\"商品销售占比\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847211713336938498, '1', 1, '2024-10-18 17:42:47', 101, 1, '2024-10-26 11:20:23', 0, '系统首页-数据看板1-新增用户及会员趋势', 'example_new_user_num', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'新增用户及会员趋势\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_9276880\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_9929767\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_4034545\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8193637\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3092772\",\"controlType\":\"default\",\"conditionValue\":\"新增用户及会员趋势\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847214874885853186, '1', 1, '2024-10-18 17:55:20', 101, 1, '2024-10-26 11:17:58', 0, '系统首页-数据看板1-用户访问趋势', 'example_user_visits', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'用户访问趋势\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8599487\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3300613\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1540788\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2563393\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1444886\",\"controlType\":\"default\",\"conditionValue\":\"用户访问趋势\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847453022714732546, '1', 1, '2024-10-19 09:41:39', 101, 1, '2024-10-19 09:42:28', 1, '系统首页数据看板1-待处理订单', 'example_pending_orders', NULL, '', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'待处理订单\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_3866922\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7374458\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_7962636\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1226024\",\"controlType\":\"default\",\"conditionValue\":\"待处理订单\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"}}}'); +INSERT INTO `lowcode_report` VALUES (1847475681523539969, '1', 1, '2024-10-19 11:11:42', 101, 1, '2024-10-26 11:17:42', 0, '系统首页-数据看板1-本月单品销量排名', 'example_product_sales_rank', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板1\'\\n AND tbl_erd.table_type = \'本月单品销量排名\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_9187986\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_4577205\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_9322929\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1852922\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板1\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_444915\",\"controlType\":\"default\",\"conditionValue\":\"本月单品销量排名\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847484758257442818, '1', 1, '2024-10-19 11:47:46', 101, 1, '2024-10-26 11:17:26', 0, '系统首页-客户管理-本月数据', 'example_client_month_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'本月数据\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_439382\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_9837434\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_3146376\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_7026782\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3321131\",\"controlType\":\"default\",\"conditionValue\":\"本月数据\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847487778391203842, '1', 1, '2024-10-19 11:59:46', 101, 1, '2024-10-26 11:17:07', 0, '系统首页-客户管理-数据简报', 'example_client_data_briefs', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'数据简报\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_353772\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5028238\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_16559\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_7476099\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_430414\",\"controlType\":\"default\",\"conditionValue\":\"数据简报\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847522676099391489, '1', 1, '2024-10-19 14:18:26', 101, 1, '2024-10-26 11:13:50', 0, '系统首页-客户管理-业绩目标', 'example_client_sales_target', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'业绩目标\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8331456\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5099294\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1235208\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6415915\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2416711\",\"controlType\":\"default\",\"conditionValue\":\"业绩目标\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847523207228301314, '1', 1, '2024-10-19 14:20:33', 101, 1, '2024-10-26 11:13:30', 0, '系统首页-客户管理-销售预测', 'example_client_sales_forecast', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'销售预测\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_9032445\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_1813385\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_6602209\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9075154\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_366401\",\"controlType\":\"default\",\"conditionValue\":\"销售预测\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847524393532661762, '1', 1, '2024-10-19 14:25:15', 101, 1, '2024-10-26 11:13:04', 0, '系统首页-客户管理-销售漏斗图', 'example_client_sales_funnelgraphic', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'销售漏斗图\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1189648\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6510102\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5899904\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8615388\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2613005\",\"controlType\":\"default\",\"conditionValue\":\"销售漏斗图\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847525106199437313, '1', 1, '2024-10-19 14:28:05', 101, 1, '2024-10-26 11:06:35', 0, '系统首页-客户管理-销售排名', 'example_client_salesman_rank', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'销售排名\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_484669\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_1006469\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_8316724\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9634001\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5791513\",\"controlType\":\"default\",\"conditionValue\":\"销售排名\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847525621318688769, '1', 1, '2024-10-19 14:30:08', 101, 1, '2024-10-26 11:06:18', 0, '系统首页-客户管理-系统通知', 'example_client_system_notification', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页客户管理\'\\n AND tbl_erd.table_type = \'系统通知\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_9826770\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3615705\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_9940652\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_195453\",\"controlType\":\"default\",\"conditionValue\":\"系统首页客户管理\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8149720\",\"controlType\":\"default\",\"conditionValue\":\"系统通知\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847528287872622594, '1', 1, '2024-10-19 14:40:44', 101, 1, '2024-10-26 11:37:31', 0, '系统首页-商户统计-统计数据', 'example_trader_count_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'统计数据\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2070814\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_924296\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5244133\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9954683\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1963225\",\"controlType\":\"default\",\"conditionValue\":\"统计数据\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847528840077910017, '1', 1, '2024-10-19 14:42:56', 101, 1, '2024-10-26 10:58:26', 0, '系统首页-商户统计-商户外拓', 'example_trader_expansion', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'商户外拓\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2392070\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6147463\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_4082249\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1308069\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_22575\",\"controlType\":\"default\",\"conditionValue\":\"商户外拓\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847531061758795778, '1', 1, '2024-10-19 14:51:45', 101, 1, '2024-10-26 10:58:09', 0, '系统首页-商户统计-日交易额', 'example_trader_daily_turnover', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'日交易额\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8414924\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_9349119\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1789631\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2389872\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4463391\",\"controlType\":\"default\",\"conditionValue\":\"日交易额\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847532664964390914, '1', 1, '2024-10-19 14:58:07', 101, 1, '2024-10-26 10:57:52', 0, '系统首页-商户统计-周订单量', 'example_trader_weekly_orders', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'周订单量\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1615685\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5599345\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_7797528\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3062171\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2551897\",\"controlType\":\"default\",\"conditionValue\":\"周订单量\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847533689980985346, '1', 1, '2024-10-19 15:02:12', 101, 1, '2024-10-26 10:57:35', 0, '系统首页-商户统计-开拓商家', 'example_trader_expansion_number', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'开拓商家\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8766767\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_9949310\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1766037\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2163578\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6804736\",\"controlType\":\"default\",\"conditionValue\":\"开拓商家\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847534747478269953, '1', 1, '2024-10-19 15:06:24', 101, 1, '2024-10-26 10:57:12', 0, '系统首页-商户统计-成交金额趋势', 'example_trader_transaction_amount', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'成交金额趋势\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8722454\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3130972\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_3521004\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6285137\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_456472\",\"controlType\":\"default\",\"conditionValue\":\"成交金额趋势\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847539302530162690, '1', 1, '2024-10-19 15:24:30', 101, 1, '2024-10-26 10:56:46', 0, '系统首页-系统监控-服务器基本信息', 'example_systemmonitor_server_information', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页系统监控\'\\n AND tbl_erd.table_type = \'服务器基本信息\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_9210875\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_275374\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_9709793\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4570263\",\"controlType\":\"default\",\"conditionValue\":\"系统首页系统监控\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8523467\",\"controlType\":\"default\",\"conditionValue\":\"服务器基本信息\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_xmgl_rwlb\":\"tbl_exr\",\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847540171430567937, '1', 1, '2024-10-19 15:27:57', 101, 1, '2024-10-26 10:56:28', 0, '系统首页-系统监控-cpu使用率', 'example_systemmonitor_cpu_utilization', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页系统监控\'\\n AND tbl_erd.table_type = \'CPU使用率\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_194414\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_120838\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_7913725\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_838715\",\"controlType\":\"default\",\"conditionValue\":\"系统首页系统监控\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8696870\",\"controlType\":\"default\",\"conditionValue\":\"CPU使用率\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847540601183150081, '1', 1, '2024-10-19 15:29:40', 101, 1, '2024-10-26 10:56:09', 0, '系统首页-系统监控-内存使用率', 'example_systemmonitor_memory_utilization', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页系统监控\'\\n AND tbl_erd.table_type = \'内存使用率\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_7337463\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7660689\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5078497\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9727116\",\"controlType\":\"default\",\"conditionValue\":\"系统首页系统监控\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2684230\",\"controlType\":\"default\",\"conditionValue\":\"内存使用率\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847541410490884097, '1', 1, '2024-10-19 15:32:53', 101, 1, '2024-10-26 10:55:52', 0, '系统首页-系统监控-服务器流量', 'example_systemmonitor_server_traffic', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页系统监控\'\\n AND tbl_erd.table_type = \'服务器流量\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_4048182\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5286513\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2987209\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1373735\",\"controlType\":\"default\",\"conditionValue\":\"系统首页系统监控\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3096447\",\"controlType\":\"default\",\"conditionValue\":\"服务器流量\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847541972397596673, '1', 1, '2024-10-19 15:35:07', 101, 1, '2024-10-26 10:55:34', 0, '系统首页-系统监控-服务器磁盘IO', 'example_systemmonitor_disk_io', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页系统监控\'\\n AND tbl_erd.table_type = \'服务器磁盘IO\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8954207\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_4152224\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2172530\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4547983\",\"controlType\":\"default\",\"conditionValue\":\"系统首页系统监控\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1707591\",\"controlType\":\"default\",\"conditionValue\":\"服务器磁盘IO\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847544052189372418, '1', 1, '2024-10-19 15:43:22', 101, 1, '2024-10-26 10:55:08', 0, '系统首页-数据看板2-我的待办', 'example_signagetwo_pending', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'我的待办\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_8921880\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_8889024\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2941518\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_183791\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3824921\",\"controlType\":\"default\",\"conditionValue\":\"我的待办\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847553655417479169, '1', 1, '2024-10-19 16:21:32', 101, 1, '2024-10-26 10:54:51', 0, '系统首页-数据看板2-业务处理', 'example_systemmonitor_business_processing', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'业务处理\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_735951\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5724702\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_7454407\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5241865\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4664686\",\"controlType\":\"default\",\"conditionValue\":\"业务处理\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847554193446019074, '1', 1, '2024-10-19 16:23:40', 101, 1, '2024-10-26 10:54:17', 0, '系统首页-数据看板2-预警信息', 'example_systemmonitor_warning_messages', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'预警信息\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2865743\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7923724\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_6311478\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1087990\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6516055\",\"controlType\":\"default\",\"conditionValue\":\"预警信息\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847554720070246402, '1', 1, '2024-10-19 16:25:46', 101, 1, '2024-10-26 10:53:57', 0, '系统首页-数据看板2-年度经营目标', 'example_systemmonitor_business_target', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'年度经营目标\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_5941749\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6526936\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5390303\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5556558\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9515800\",\"controlType\":\"default\",\"conditionValue\":\"年度经营目标\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847555485300039681, '1', 1, '2024-10-19 16:28:48', 101, 1, '2024-10-26 10:53:24', 0, '系统首页-数据看板2-年度回款目标', 'example_systemmonitor_payback_target', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'年度回款目标\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_148005\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_4692298\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_8261349\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2286450\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2171895\",\"controlType\":\"default\",\"conditionValue\":\"年度回款目标\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847556092589121537, '1', 1, '2024-10-19 16:31:13', 101, 1, '2024-10-26 10:53:07', 0, '系统首页-数据看板2-账户余额', 'example_systemmonitor_account_balance', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'账户余额\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2438398\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3783454\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_7956668\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8846483\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4210252\",\"controlType\":\"default\",\"conditionValue\":\"账户余额\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847556968112332802, '1', 1, '2024-10-19 16:34:42', 101, 1, '2024-10-26 10:52:49', 0, '系统首页-数据看板2-收支预测', 'example_systemmonitor_Income_expenditure_forecasts', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'收支预测\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1014541\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6725136\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1216641\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6813755\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1120096\",\"controlType\":\"default\",\"conditionValue\":\"收支预测\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847557539405897730, '1', 1, '2024-10-19 16:36:58', 101, 1, '2024-10-26 10:52:34', 0, '系统首页-数据看板2-费用结构', 'example_systemmonitor_fee_structure', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'费用结构\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_4531333\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3401274\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_9964473\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1926508\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2754761\",\"controlType\":\"default\",\"conditionValue\":\"费用结构\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847558240001466370, '1', 1, '2024-10-19 16:39:45', 101, 1, '2024-10-26 10:52:12', 0, '系统首页-数据看板2-收入结构', 'example_systemmonitor_Income_structure', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据看板2\'\\n AND tbl_erd.table_type = \'收入结构\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_4422418\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6937330\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5310869\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4639924\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据看板2\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8651128\",\"controlType\":\"default\",\"conditionValue\":\"收入结构\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847559363265437698, '1', 1, '2024-10-19 16:44:13', 101, 1, '2024-10-28 15:02:46', 0, '系统首页-数据会员-统计数据', 'example_member_count_data', NULL, '', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1850061360061427714\",\"executeSql\":\"SELECT\\r\\n\\tjrfks AS today_visitors,\\r\\n\\tjrhyfws AS today_member_visitors,\\r\\n\\tjrhyffs AS today_paid_member,\\r\\n\\txzhys AS today_new_member \\r\\nFROM\\r\\n\\texample_sjhy_tjsj \\r\\nWHERE\\r\\n\\tis_deleted = 0\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\",\"tbl_student_demo1\":\"tbl_tsd\",\"example_today_data\":\"tbl_etd\",\"example_sjhy_tjsj\":\"tbl_est\"},\"typeKey\":\"custom\"}}'); +INSERT INTO `lowcode_report` VALUES (1847560096136175617, '1', 1, '2024-10-19 16:47:08', 101, 1, '2024-10-26 17:14:53', 0, '系统首页-数据会员-实时访问量', 'example_member_realtime_visits', NULL, 'exampleMemberRealtimeVisitsReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1850092582611345409\",\"executeSql\":\"SELECT\\r\\n\\tfkl AS ssfkl,\\r\\n\\tsj AS `date` \\r\\nFROM\\r\\n\\texample_sjhy_ssfkl \\r\\nWHERE\\r\\n\\tis_deleted = 0\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\",\"example_sjhy_ssfkl\":\"tbl_ess\"},\"typeKey\":\"custom\"}}'); +INSERT INTO `lowcode_report` VALUES (1847560577587748866, '1', 1, '2024-10-19 16:49:02', 101, 1, '2024-10-26 16:56:13', 0, '系统首页-数据会员-销售额', 'example_member_sale', NULL, 'exampleMemberSaleReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1850094920386371586\",\"executeSql\":\"SELECT\\r\\n\\txse AS xse,\\r\\n\\trq AS `date`\\r\\nFROM\\r\\n\\texample_sjhy_xse \\r\\nWHERE\\r\\n\\tis_deleted = 0\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\",\"example_sjhy_xse\":\"tbl_esx\"},\"typeKey\":\"custom\"}}'); +INSERT INTO `lowcode_report` VALUES (1847562045543817218, '1', 1, '2024-10-19 16:54:52', 101, 1, '2024-10-28 15:00:00', 0, '系统首页-数据会员-各品类占比', 'example_member_product_percentage', NULL, 'exampleMemberProductPercentageReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1850109346514632706\",\"executeSql\":\"SELECT\\r\\n\\tsm,\\r\\n\\tnz,\\r\\n\\tmy,\\r\\n\\txb,\\r\\n\\trq AS `date`,\\r\\n\\tje \\r\\nFROM\\r\\n\\texample_sjhy_gplzb \\r\\nWHERE\\r\\n\\tis_deleted = 0\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\",\"example_sjhy_gplzb\":\"tbl_esg\"},\"typeKey\":\"custom\"}}'); +INSERT INTO `lowcode_report` VALUES (1847563067897028610, '1', 1, '2024-10-19 16:58:56', 101, 1, '2024-10-26 10:50:40', 0, '系统首页-数据首页-店铺业绩', 'example_datahome_store_performance', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据首页\'\\n AND tbl_erd.table_type = \'店铺业绩\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2165318\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3278099\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5718651\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5128590\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据首页\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3770594\",\"controlType\":\"default\",\"conditionValue\":\"店铺业绩\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847563490544459778, '1', 1, '2024-10-19 17:00:37', 101, 1, '2024-10-26 10:50:22', 0, '系统首页-数据首页-销售数据', 'example_datahome_sales_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据首页\'\\n AND tbl_erd.table_type = \'销售数据\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_4904665\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_9813150\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_3160796\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3383733\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据首页\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2702475\",\"controlType\":\"default\",\"conditionValue\":\"销售数据\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847564562159771649, '1', 1, '2024-10-19 17:04:52', 101, 1, '2024-10-26 10:50:04', 0, '系统首页-数据首页-本周数据详情', 'example_datahome_thisweek_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据首页\'\\n AND tbl_erd.table_type = \'本周数据详情\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_3172423\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_1000473\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5661428\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9669886\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据首页\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3963024\",\"controlType\":\"default\",\"conditionValue\":\"本周数据详情\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1847565182564442113, '1', 1, '2024-10-19 17:07:20', 101, 1, '2024-10-26 10:49:44', 0, '系统首页-数据首页-上周综合提升', 'example_datahome_lastweek_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页数据首页\'\\n AND tbl_erd.table_type = \'上周综合提升\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2387406\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7310409\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_196593\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4945004\",\"controlType\":\"default\",\"conditionValue\":\"系统首页数据首页\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9326966\",\"controlType\":\"default\",\"conditionValue\":\"上周综合提升\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1848615607371812865, '1', 1, '2024-10-22 14:41:21', 101, 1, '2024-10-26 10:49:09', 0, '系统首页-商户统计-商户分布', 'example_trader_merchant_distribution', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'商户分布\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_3198271\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5982266\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_1537509\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_6693060\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3266334\",\"controlType\":\"default\",\"conditionValue\":\"商户分布\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1848616633076273154, '1', 1, '2024-10-22 14:45:26', 101, 1, '2024-10-26 10:48:49', 0, '系统首页-商户统计-交易漏斗', 'example_trader_transaction_funneldiagram', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页商户统计\'\\n AND tbl_erd.table_type = \'交易漏斗\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_6715149\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7422046\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2751707\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4794919\",\"controlType\":\"default\",\"conditionValue\":\"系统首页商户统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5026857\",\"controlType\":\"default\",\"conditionValue\":\"交易漏斗\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849335032441905154, '1', 1, '2024-10-24 14:20:05', 101, NULL, '2024-10-24 14:20:05', 0, '系统首页-首页概览-转化率', 'example_overview_conversion', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'转化率\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_5665411\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_3730703\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_6506735\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5339483\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_2468538\",\"controlType\":\"default\",\"conditionValue\":\"转化率\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_today_data\":\"tbl_etd\",\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849341642828587010, '1', 1, '2024-10-24 14:46:21', 101, 1, '2024-10-24 14:51:37', 0, '系统首页-首页概览-实时数据', 'example_overview_realtime_data', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'实时数据\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1177523\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_405810\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_93254\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_653354\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4522098\",\"controlType\":\"default\",\"conditionValue\":\"实时数据\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849346947750731777, '1', 1, '2024-10-24 15:07:26', 101, NULL, '2024-10-24 15:07:26', 0, '系统首页-首页概览-智能助手', 'example_overview_intelligent_assistants', NULL, 'exampleXtsyFormReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'智能助手\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_3322310\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7008306\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2054759\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8299718\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_9275583\",\"controlType\":\"default\",\"conditionValue\":\"智能助手\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849350930384986114, '1', 1, '2024-10-24 15:23:16', 101, NULL, '2024-10-24 15:23:16', 0, '系统首页-首页概览-智能助手待处理', 'example_overview_pending', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'智能助手待处理\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_6935887\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_6582734\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5548534\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_644829\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_7794184\",\"controlType\":\"default\",\"conditionValue\":\"智能助手待处理\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849352515299221505, '1', 1, '2024-10-24 15:29:34', 101, NULL, '2024-10-24 15:29:34', 0, '系统首页-首页概览-服务通知', 'example_overview_service_notices', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'服务通知\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1761448\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_1770234\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_8372154\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_824956\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_7777219\",\"controlType\":\"default\",\"conditionValue\":\"服务通知\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849354274285461506, '1', 1, '2024-10-24 15:36:33', 101, NULL, '2024-10-24 15:36:33', 0, '系统首页-首页概览-规则中心', 'example_overview_rulescenter', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'规则中心\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_147796\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_5586232\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_7105583\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8549800\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5176110\",\"controlType\":\"default\",\"conditionValue\":\"规则中心\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849355503283642369, '1', 1, '2024-10-24 15:41:26', 101, NULL, '2024-10-24 15:41:26', 0, '系统首页-首页概览-产品动态', 'example_overview_productnews', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'产品动态\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_2920363\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7544005\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_5870128\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_1345979\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_4289856\",\"controlType\":\"default\",\"conditionValue\":\"产品动态\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849356669027524609, '1', 1, '2024-10-24 15:46:04', 101, NULL, '2024-10-24 15:46:04', 0, '系统首页-首页概览-学习中心', 'example_overview_learningcenter', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'学习中心\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1736527\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_8608209\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2315494\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8087389\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5366843\",\"controlType\":\"default\",\"conditionValue\":\"学习中心\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849720504500207617, '1', 1, '2024-10-25 15:51:50', 101, 1, '2024-10-25 15:56:32', 0, '系统首页-首页概览-商家', 'example_overview_merchant', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'商家\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1736527\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_8608209\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2315494\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8087389\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5366843\",\"controlType\":\"default\",\"conditionValue\":\"商家\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1849723305129263105, '1', 1, '2024-10-25 16:02:57', 101, 1, '2024-10-25 16:06:44', 0, '系统首页-首页概览-商家经验数量', 'example_overview_merchant_cou', NULL, 'exampleXtsyLineReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"1847167244620152834\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\n AND tbl_erd.table_type = \'商家经验数量\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_1736527\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_8608209\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_2315494\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_8087389\",\"controlType\":\"default\",\"conditionValue\":\"系统首页首页概览\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5366843\",\"controlType\":\"default\",\"conditionValue\":\"商家经验数量\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1851549188884660226, '1', 1, '2024-10-30 16:58:21', 101, 1, '2024-10-31 17:30:55', 0, '系统首页-使用统计-登录使用人数', 'example_sytj_dlsyrs', NULL, 'exampleTrafficStatisticsReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"\",\"executeSql\":\"\",\"optionData\":{\"optionObj\":{\"select\":[],\"from\":[],\"where\":[],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_demo\":\"tbl_ed\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1851877239195578370, '1', 1, '2024-10-31 14:41:55', 101, 1, '2024-11-04 15:32:59', 0, '系统首页-使用统计-使用人数最多模块', 'example_sytj_syzdmk', NULL, 'exampleSytjSyzdmkReportEnhance', 'page,authFalse', 'height,header,menu,index,border', '{\"dataOrigin\":\"\",\"executeSql\":\"SELECT\\n tbl_erd.value\\nFROM\\n example_report_data AS tbl_erd\\nWHERE\\n tbl_erd.is_deleted = 0\\n AND tbl_erd.type_index = \'系统首页使用统计\'\\n AND tbl_erd.table_type = \'使用最多模块\'\",\"optionData\":{\"optionObj\":{\"select\":[{\"label\":\"value(json数据)\",\"value\":\"value\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Text\",\"prop\":\"option_5830526\",\"controlType\":\"text\",\"alias\":\"\"}],\"from\":[{\"tableName\":\"example_report_data\",\"type\":\"table\",\"prop\":\"option_7111734\",\"controlType\":\"text\",\"connectType\":\"INNER JOIN\"}],\"where\":[{\"label\":\"is_deleted(是否删除)\",\"value\":\"is_deleted\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"Integer\",\"prop\":\"option_9099601\",\"controlType\":\"default\",\"conditionValue\":\"0\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"type_index(首页类型)\",\"value\":\"type_index\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_5223893\",\"controlType\":\"default\",\"conditionValue\":\"系统首页使用统计\",\"condition\":\"EQ\",\"width_where\":\"44px\"},{\"label\":\"table_type(报表类型)\",\"value\":\"table_type\",\"tableName\":\"example_report_data\",\"type\":\"field\",\"fieldType\":\"String\",\"prop\":\"option_3337900\",\"controlType\":\"default\",\"conditionValue\":\"使用最多模块\",\"condition\":\"EQ\",\"width_where\":\"44px\"}],\"groupBy\":\"\",\"having\":\"\",\"orderBy\":[]},\"aliasObj\":{\"example_report_data\":\"tbl_erd\"},\"typeKey\":\"option\"}}'); +INSERT INTO `lowcode_report` VALUES (1851881182579535873, '1', 1, '2024-10-31 14:57:35', 101, 1, '2024-11-04 16:46:40', 0, '系统首页-使用统计-使用人数最少模块', 'example_sytj_syzsmk', NULL, 'exampleSytjSyzsmkReportEnhance', 'page,authFalse', 'height,header,menu,index,border', NULL); + +-- ---------------------------- +-- Table structure for lowcode_report_field +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_report_field`; +CREATE TABLE `lowcode_report_field` ( + `id` bigint(0) NOT NULL COMMENT 'id', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户编号', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门id', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `report_id` bigint(0) NULL DEFAULT NULL COMMENT '报表id', + `field_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段', + `field_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段名称', + `field_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段类型', + `sort_num` int(0) NULL DEFAULT NULL COMMENT '排序', + `query_is_db` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否开启数据库查询;N=不开启 Y=开启', + `query_is_web` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否显示查询控件;N=不显示 Y=显示', + `query_mode` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询模式;EQ=精确 LIKE=模糊', + `dict_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典code', + `is_export` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否支持导出', + `is_show_sort` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否排序;N=不显示 Y=显示', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_dbformid`(`report_id`) USING BTREE, + INDEX `ind_fieldcode`(`field_code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据报表-字段表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_report_field +-- ---------------------------- +INSERT INTO `lowcode_report_field` VALUES (1846065446701092865, NULL, NULL, NULL, NULL, NULL, '2024-10-15 14:05:55', 1, 1846065445409247234, 'sex', '性别', 'String', 1, 'Y', 'Y', 'EQ', 'lin_sex', 'Y', 'Y'); +INSERT INTO `lowcode_report_field` VALUES (1846065446701092866, NULL, NULL, NULL, NULL, NULL, '2024-10-16 10:14:30', 1, 1846065445409247234, 'cou', '数量', 'String', 2, '', '', '', '', 'Y', ''); +INSERT INTO `lowcode_report_field` VALUES (1846452435837366273, NULL, NULL, NULL, NULL, NULL, '2024-10-16 15:36:51', 1, 1846452434541326337, 'test', '测试', 'String', 1, '', '', '', '', '', ''); +INSERT INTO `lowcode_report_field` VALUES (1846489761183539201, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846489760285958146, 'sex', '性别', 'String', 1, 'Y', 'Y', 'EQ', 'lin_sex', 'Y', 'Y'); +INSERT INTO `lowcode_report_field` VALUES (1846489761183539202, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846489760285958146, 'cou', '数量', 'String', 2, '', '', '', '', 'Y', ''); +INSERT INTO `lowcode_report_field` VALUES (1846840290047070210, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846840289443090434, 'sex', '性别', 'String', 1, 'Y', 'Y', 'EQ', 'lin_sex', 'Y', 'Y'); +INSERT INTO `lowcode_report_field` VALUES (1846840290047070211, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1846840289443090434, 'cou', '数量', 'String', 2, '', '', '', '', 'Y', ''); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905985, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'turnover', '交易额', 'BigDecimal', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905986, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'order_quantity', '订单量', 'Integer', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905987, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'page_views', '浏览量', 'Integer', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905988, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'visitors', '访问用户', 'Integer', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905989, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'registered_users', '注册用户', 'Integer', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905990, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'members', '新增会员', 'Integer', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847095793364905991, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847095793067110402, 'day', '日期', 'Date', 7, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847177728623820801, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:55:29', 0, 1847095793067110402, 'jrjye', '今日交易额', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847188299800821761, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:12:46', 0, 1847188299477860353, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847205486204715010, NULL, NULL, NULL, NULL, NULL, '2024-10-22 17:19:46', 0, 1847205485940473858, 'name', '商品名', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847211713601179649, NULL, NULL, NULL, NULL, NULL, '2024-10-22 18:01:22', 0, 1847211713336938498, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847214875200425985, NULL, NULL, NULL, NULL, NULL, '2024-10-22 18:13:08', 0, 1847214874885853186, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847453022949613569, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1847453022714732546, 'value', 'json数据', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847475681783586817, NULL, NULL, NULL, NULL, NULL, '2024-10-24 09:34:01', 0, 1847475681523539969, 'pm', '排名', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847484758525878274, NULL, NULL, NULL, NULL, NULL, '2024-10-22 11:35:15', 0, 1847484758257442818, 'yxsje', '月销售金额', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847487778668027905, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:48:40', 0, 1847487778391203842, 'xzkh', '新增客户', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847522676392992769, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:51:11', 0, 1847522676099391489, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847523207517708289, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:53:15', 0, 1847523207228301314, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847524393801097218, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:55:20', 0, 1847524393532661762, 'cbqt', '初步洽谈', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847525106484649986, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:57:00', 0, 1847525106199437313, 'name', '姓名', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847525621587124225, NULL, NULL, NULL, NULL, NULL, '2024-10-22 13:58:25', 0, 1847525621318688769, 'label', '通知', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847528288141058049, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:18:30', 0, 1847528287872622594, 'shzs', '商户总数', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847528840367316994, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:36:40', 0, 1847528840077910017, 'yjh', '已计划', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847531062039814145, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:50:59', 0, 1847531061758795778, 'time', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847532665241214978, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:54:43', 0, 1847532664964390914, 'date', '周', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847533690253615105, NULL, NULL, NULL, NULL, NULL, '2024-10-22 14:59:05', 0, 1847533689980985346, 'date', '周', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847534747767676930, NULL, NULL, NULL, NULL, NULL, '2024-10-22 15:18:24', 0, 1847534747478269953, 'date', '日期', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847539302735683585, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:35:05', 0, 1847539302530162690, 'xtyxsj', '系统运行时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847540171636088833, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:38:28', 0, 1847540171430567937, 'time', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847540601447391234, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:40:04', 0, 1847540601183150081, 'time', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847541410834817026, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:43:08', 0, 1847541410490884097, 'time', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847541973035130882, NULL, NULL, NULL, NULL, NULL, '2024-10-22 16:45:31', 0, 1847541972397596673, 'time', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847544052474585090, NULL, NULL, NULL, NULL, NULL, '2024-10-24 09:43:56', 0, 1847544052189372418, 'dclgd', '待处理工单', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847553655744634881, NULL, NULL, NULL, NULL, NULL, '2024-10-24 09:53:32', 0, 1847553655417479169, 'tjsj', '提交时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847554193643151362, NULL, NULL, NULL, NULL, NULL, '2024-10-24 09:56:42', 0, 1847554193446019074, 'dqysk', '到期应收款', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847554720330293249, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:00:02', 0, 1847554720070246402, 'ndjymb', '年度经营目标', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847555485618806786, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:02:07', 0, 1847555485300039681, 'ndhkmb', '年度回款目标', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847556092920471553, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:11:20', 0, 1847556092589121537, 'name', '名称', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847556968443682817, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:17:38', 0, 1847556968112332802, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847557539594641409, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:21:05', 0, 1847557539405897730, 'name', '名称', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847558240324427778, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:22:51', 0, 1847558240001466370, 'name', '名称', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847559363462569986, NULL, NULL, NULL, NULL, NULL, '2024-10-21 15:14:24', 0, 1847559363265437698, 'today_visitors', '今日访客数(人)', 'Integer', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847560096329113601, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:33:01', 0, 1847560096136175617, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847560577847795714, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:36:56', 0, 1847560577587748866, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847562045820641282, NULL, NULL, NULL, NULL, NULL, '2024-10-24 10:58:59', 0, 1847562045543817218, 'je', '金额', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847563068169658369, NULL, NULL, NULL, NULL, NULL, '2024-10-24 11:18:19', 0, 1847563067897028610, 'jrxse', '今日销售额', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847563490821283841, NULL, NULL, NULL, NULL, NULL, '2024-10-24 11:29:49', 0, 1847563490544459778, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847564562369486849, NULL, NULL, NULL, NULL, NULL, '2024-10-24 11:39:01', 0, 1847564562159771649, 'tycs', '提衣次数', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1847565182849654786, NULL, NULL, NULL, NULL, NULL, '2024-10-24 13:43:50', 0, 1847565182564442113, 'xsl', '销售量', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848261535322013698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847559363265437698, 'today_member_visitors', '今日会员访问数(人)', 'Integer', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848261535322013699, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847559363265437698, 'today_paid_member', '今日会员付费数(人)', 'Integer', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848261535322013700, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847559363265437698, 'today_new_member', '新增会员数(人)', 'Integer', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848542925151895554, NULL, NULL, NULL, NULL, NULL, '2024-10-22 09:54:18', 0, 1848542924271091713, 'sex', '性别', 'String', 1, '', '', '', '', '', ''); +INSERT INTO `lowcode_report_field` VALUES (1848543366367510530, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848542924271091713, 'cou', '数量', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848568772124934145, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847484758257442818, 'yhkje', '月回款金额', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848568772124934146, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847484758257442818, 'bycjdd', '本月成交订单', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848568772124934147, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847484758257442818, 'wcxsmb', '完成销售目标', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848568772124934148, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847484758257442818, 'hkdcl', '回款达成率', 'Text', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743489, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'xzxs', '新增线索', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'xzsj', '新增商机', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'xzdd', '新增订单', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'xnlxr', '新增联系人', 'Text', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'gjcs', '跟进次数', 'Text', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'clrw', '处理任务', 'Text', 7, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602347943743495, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847487778391203842, 'clgd', '处理工单', 'Text', 8, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602981468196866, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847522676099391489, 'mbje', '目标金额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848602981468196867, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847522676099391489, 'cjje', '成交金额', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848603503214448642, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847523207228301314, 'yjxsje', '预计销售金额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848603503214448643, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847523207228301314, 'glje', '概率金额', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604026407735297, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847524393532661762, 'srgt', '深入沟通', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604026407735298, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847524393532661762, 'cpbj', '产品报价', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604026407735299, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847524393532661762, 'cjsj', '成交商机', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604026407735300, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847524393532661762, 'lssj', '流失商机', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604444881833985, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847525106199437313, 'money', '销售金额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604444881833986, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847525106199437313, 'percent', '完成目标', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848604803230584833, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847525621318688769, 'time', '时间', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848609856569987073, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528287872622594, 'ktzsh', '开拓中商户', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848609856569987074, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528287872622594, 'zfwl', '总访问量', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848609856569987075, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528287872622594, 'zjye', '总交易额', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848609856569987076, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528287872622594, 'zddl', '总订单量', 'Text', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848609856569987077, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528287872622594, 'kdj', '客单价', 'Text', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848614430328475650, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528840077910017, 'ywc', '已完成', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848614430328475651, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528840077910017, 'ktz', '开拓中', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848614430328475652, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847528840077910017, 'qtz', '洽谈中', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848615607648636929, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848615607371812865, 'value', '值', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848615607648636930, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848615607371812865, 'name', '名', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848616633428594689, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848616633076273154, 'value', '值', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848616633428594690, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1848616633076273154, 'name', '名', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848618030962298881, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847531061758795778, 'data', '交易额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848618968817061889, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847532664964390914, 'data', '订单量', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848620070572642306, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847533689980985346, 'mbkts', '目标开拓数', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848620070572642307, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847533689980985346, 'sjkts', '实际开拓数', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848624930714013697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847534747478269953, 'xscj', '线上成交', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848624930714013698, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847534747478269953, 'xxcj', '线下成交', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314881, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'cpuhxs', 'cpu核心数', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314882, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'nczl', '内存总量', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314883, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'xtpjfz', '系统平均负载', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314884, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'cpusyl', 'cpu使用率', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314885, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'ncsyl', '内存使用率', 'String', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848644227016314886, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847539302530162690, 'xtpjfzl', '系统平均负载率', 'String', 7, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848645082113265666, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847540171430567937, 'syl', '使用率', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848645483092922369, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847540601183150081, 'syl', '使用率', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848646254928744449, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847541410490884097, 'sc', '上传', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848646254928744450, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847541410490884097, 'xz', '下载', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848646852541566978, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847541972397596673, 'sc', '输出', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848646852541566979, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847541972397596673, 'sr', '输入', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848649361133817858, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847095793067110402, 'jrddl', '今日订单量', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848649361133817859, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847095793067110402, 'jrlll', '今日浏览量', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848649361133817860, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847095793067110402, 'jrfwyh', '今日访问用户', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848649361133817861, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847095793067110402, 'jrzcyh', '今日注册用户', 'Text', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848649361133817862, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847095793067110402, 'jrxzhy', '今日新增会员', 'Text', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848653713818939393, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847188299477860353, 'xse', '销售额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848653713818939394, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847188299477860353, 'ddl', '订单量', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848655473052643330, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847205485940473858, 'value', '占比', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848665943432179714, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847211713336938498, 'xzyh', '新增用户', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848665943432179715, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847211713336938498, 'xzhy', '新增会员', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1848668905810374658, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847214874885853186, 'fwyh', '访问用户', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849263040032313346, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847475681523539969, 'name', '商品名称', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849263040032313347, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847475681523539969, 'sl', '销量', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849263040032313348, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847475681523539969, 'sse', '销售额', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849265537237032961, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847544052189372418, 'dbxmx', '待报销明细', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849265537237032962, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847544052189372418, 'dtjhb', '待提交汇报', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849265537237032963, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847544052189372418, 'dtjbb', '待提交报表', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849267953286160386, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847553655417479169, 'bxlx', '报销类型', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849267953286160387, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847553655417479169, 'spdh', '审批单号', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849267953286160388, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847553655417479169, 'bxje', '报销金额', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849267953286160389, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847553655417479169, 'spdx', '审批对象', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849268749016932353, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847554193446019074, 'yqysk', '逾期应收款', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849268749016932354, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847554193446019074, 'dqyfk', '到期应付款', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849268749016932355, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847554193446019074, 'yqyfk', '预期应付款', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849269587777069057, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847554720070246402, 'ywcmb', '已完成目标', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849269587777069058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847554720070246402, 'wcl', '完成率', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849270112178315266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847555485300039681, 'ywcmb', '已完成目标', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849270112178315267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847555485300039681, 'wcl', '完成率', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849272429766156289, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847556092589121537, 'num', '余额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849272429766156290, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847556092589121537, 'jdt', '进度条', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849274017171808257, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847556968112332802, 'yjsr', '预计收入', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849274017171808258, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847556968112332802, 'yjzc', '预计支出', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849274882586746882, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847557539405897730, 'value', '费用', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849275327308800001, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847558240001466370, 'value', '费用', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849277888392765441, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847560096136175617, 'ssfkl', '实时访客量', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849278873055961090, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847560577587748866, 'xse', '销售额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849284397768024066, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847562045543817218, 'date', '时间', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849284397768024067, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847562045543817218, 'nz', '男装', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849284397768024068, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847562045543817218, 'xb', '鞋包', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849284397768024069, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847562045543817218, 'my', '母婴', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849284397768024070, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847562045543817218, 'sm', '数码', 'String', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849288177603485697, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847205485940473858, 'xse', '销售额', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849289285939929090, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563067897028610, 'bzxse', '本周销售额', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849289285939929091, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563067897028610, 'byxse', '本月销售额', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849289285939929092, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563067897028610, 'bnxse', '本月销售额', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849292180395565058, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563490544459778, 'sczhl', '试穿转化率', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849292180395565059, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563490544459778, 'je', '金额', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849292180395565060, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847563490544459778, 'rje', '金额红', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637122, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'tycszhl', '提衣转化率', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637123, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'sccs', '试穿次数', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637124, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'sccszhl', '试穿转化率', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637125, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'xssl', '销售次数', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637126, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'xsslzhl', '销售转化率', 'String', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637127, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'ldv', '连单率', 'String', 7, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637128, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'yjdl', '一件单量/件', 'String', 8, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637129, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'ddl', '大单量/件', 'String', 9, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849294498549637130, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847564562159771649, 'gjdp', '高价单品/件', 'String', 10, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849325908597579778, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847565182564442113, 'xse', '销售额', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849325908597579779, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1847565182564442113, 'sczh', '试穿转化', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849335032722923522, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849335032441905154, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849335032722923523, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849335032441905154, 'cgkhs', '成功客户数', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849335032722923524, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849335032441905154, 'xzhys', '新增会员数', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849335032722923525, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849335032441905154, 'kdj', '客单价', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849335032722923526, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849335032441905154, 'fwzfzhl', '访问支付转化率', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017410, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'zfje', '支付金额', 'Text', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017411, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'zfdd', '支付订单', 'Text', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017412, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'lll', '浏览量', 'Text', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017413, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'fks', '访客数', 'Text', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017414, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'gxsj', '更新时间', 'Text', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849341643248017415, NULL, NULL, NULL, NULL, NULL, '2024-10-24 14:51:37', 0, 1849341642828587010, 'data', '折线图数据', 'Text', 6, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849346948077887490, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849346947750731777, 'dfhdd', '代发货订单', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849346948077887491, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849346947750731777, 'dhfkf', '待回复客服', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849346948077887492, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849346947750731777, 'yzxsp', '已滞销商品', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849346948077887493, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849346947750731777, 'dtkdd', '带退款订单', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849346948077887494, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849346947750731777, 'pdzkh', '排队中客户', 'String', 5, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849350930649227266, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849350930384986114, 'xxnra', '消息内容', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849350930649227267, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849350930384986114, 'xxnrb', '消息内容_灰', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849350930649227268, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849350930384986114, 'jjcd', '紧急程度', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849352515622182913, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849352515299221505, 'title', '标题', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849352515622182914, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849352515299221505, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849354274604228610, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849354274285461506, 'title', '标题', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849354274604228611, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849354274285461506, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849355503635963905, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849355503283642369, 'date', '时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849355503635963906, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849355503283642369, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849356669321125890, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849356669027524609, 'title', '标题', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849356669321125891, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849356669027524609, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849720507557855233, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849720504500207617, 'title', '标题', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849720507557855234, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849720504500207617, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849723307675205633, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849723305129263105, 'title', '标题', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1849723307675205634, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1849723305129263105, 'content', '内容', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851549189287313410, NULL, NULL, NULL, NULL, NULL, '2024-10-31 09:35:49', 0, 1851549188884660226, 'date', '日期时间', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851549189287313411, NULL, NULL, NULL, NULL, NULL, '2024-10-31 09:35:49', 0, 1851549188884660226, 'users_num', '使用人数', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851549189287313412, NULL, NULL, NULL, NULL, NULL, '2024-10-31 09:35:49', 0, 1851549188884660226, 'login_num', '登录人数', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851877239644368898, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851877239195578370, 'pm', '排名', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851877239652757506, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851877239195578370, 'mk', '模块', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851877239652757507, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851877239195578370, 'syyhs', '使用用户数', 'String', 3, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851877239652757508, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:50:05', 1, 1851877239195578370, 'mksys', '模块使用数', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851881183829438466, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851881182579535873, 'pm', '排名', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851881183829438467, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1851881182579535873, 'mk', '模块', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851881183829438468, NULL, NULL, NULL, NULL, NULL, '2024-11-04 16:46:40', 0, 1851881182579535873, 'syyhs', '使用用户数', 'String', 3, 'Y', 'Y', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851881183829438469, NULL, NULL, NULL, NULL, NULL, '2024-11-02 16:51:28', 0, 1851881182579535873, 'mksys', '模块使用数', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1851920004315045889, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851920004096942081, 'aaa', 'aaa', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1852634383498047490, NULL, NULL, NULL, NULL, NULL, '2024-11-04 15:32:16', 0, 1851877239195578370, 'mksys', '模块使用数', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1852634474535415809, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851877239195578370, 'mksys', '模块使用数', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1852634540746698754, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1851877239195578370, 'mksys', '模块使用数', 'String', 4, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1853354498272165889, NULL, NULL, NULL, NULL, NULL, '2024-11-04 17:37:06', 1, 1853354498028896257, 'aaa', 'aaa', 'String', 1, 'Y', 'Y', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1853364215526653953, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853364215203692546, 'aaa', 'aaaa', 'String', 1, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1853611411517976577, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853354498028896257, 'aaa', 'aaa', 'String', 2, 'N', 'N', 'LIKE', '', 'Y', 'N'); +INSERT INTO `lowcode_report_field` VALUES (1853623625841864706, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853354498028896257, 'type_index', '首页类型', 'String', 1, '', '', '', '', '', ''); +INSERT INTO `lowcode_report_field` VALUES (1853634967202131970, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1853354498028896257, 'type_index', '首页类型', 'String', 1, '', '', '', '', '', ''); +INSERT INTO `lowcode_report_field` VALUES (1854056873144225794, NULL, NULL, NULL, NULL, NULL, '2024-11-06 15:03:20', 1, 1853354498028896257, 'aaa', '首页类型', 'String', 1, '', '', '', '', '', ''); +INSERT INTO `lowcode_report_field` VALUES (1854056999048843265, NULL, NULL, NULL, NULL, NULL, '2024-11-06 15:04:02', 0, 1853354498028896257, 'aaa', '首页类型', 'String', 1, '', '', '', '', '', ''); + +-- ---------------------------- +-- Table structure for qrtz_blob_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_blob_triggers`; +CREATE TABLE `qrtz_blob_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `BLOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_blob_triggers +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_calendars +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_calendars`; +CREATE TABLE `qrtz_calendars` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CALENDAR` blob NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_calendars +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_cron_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_cron_triggers`; +CREATE TABLE `qrtz_cron_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_cron_triggers +-- ---------------------------- +INSERT INTO `qrtz_cron_triggers` VALUES ('schedulerName', 'clearExcelDataJob', 'DEFAULT', '0 0 0 * * ?', 'Asia/Shanghai'); +INSERT INTO `qrtz_cron_triggers` VALUES ('schedulerName', 'saveModelUsageRecordsJob', 'DEFAULT', '0 0/10 * * * ?', 'Asia/Shanghai'); + +-- ---------------------------- +-- Table structure for qrtz_fired_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_fired_triggers`; +CREATE TABLE `qrtz_fired_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `FIRED_TIME` bigint(0) NOT NULL, + `SCHED_TIME` bigint(0) NOT NULL, + `PRIORITY` int(0) NOT NULL, + `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE, + INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE, + INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE, + INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_fired_triggers +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_job_details +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_job_details`; +CREATE TABLE `qrtz_job_details` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE, + INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_job_details +-- ---------------------------- +INSERT INTO `qrtz_job_details` VALUES ('schedulerName', 'clearExcelDataJob', 'DEFAULT', NULL, 'cn.iocoder.yudao.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000001F7400104A4F425F48414E444C45525F4E414D45740011636C656172457863656C446174614A6F627800); +INSERT INTO `qrtz_job_details` VALUES ('schedulerName', 'saveModelUsageRecordsJob', 'DEFAULT', NULL, 'cn.iocoder.yudao.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000207400104A4F425F48414E444C45525F4E414D45740018736176654D6F64656C55736167655265636F7264734A6F627800); + +-- ---------------------------- +-- Table structure for qrtz_locks +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_locks`; +CREATE TABLE `qrtz_locks` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_locks +-- ---------------------------- +INSERT INTO `qrtz_locks` VALUES ('schedulerName', 'STATE_ACCESS'); +INSERT INTO `qrtz_locks` VALUES ('schedulerName', 'TRIGGER_ACCESS'); + +-- ---------------------------- +-- Table structure for qrtz_paused_trigger_grps +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`; +CREATE TABLE `qrtz_paused_trigger_grps` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_paused_trigger_grps +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_scheduler_state +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_scheduler_state`; +CREATE TABLE `qrtz_scheduler_state` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `LAST_CHECKIN_TIME` bigint(0) NOT NULL, + `CHECKIN_INTERVAL` bigint(0) NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_scheduler_state +-- ---------------------------- +INSERT INTO `qrtz_scheduler_state` VALUES ('schedulerName', 'WIN-20200825TYM1735364769255', 1735364981332, 15000); + +-- ---------------------------- +-- Table structure for qrtz_simple_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_simple_triggers`; +CREATE TABLE `qrtz_simple_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `REPEAT_COUNT` bigint(0) NOT NULL, + `REPEAT_INTERVAL` bigint(0) NOT NULL, + `TIMES_TRIGGERED` bigint(0) NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_simple_triggers +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_simprop_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_simprop_triggers`; +CREATE TABLE `qrtz_simprop_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `INT_PROP_1` int(0) NULL DEFAULT NULL, + `INT_PROP_2` int(0) NULL DEFAULT NULL, + `LONG_PROP_1` bigint(0) NULL DEFAULT NULL, + `LONG_PROP_2` bigint(0) NULL DEFAULT NULL, + `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL, + `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL, + `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_simprop_triggers +-- ---------------------------- + +-- ---------------------------- +-- Table structure for qrtz_triggers +-- ---------------------------- +DROP TABLE IF EXISTS `qrtz_triggers`; +CREATE TABLE `qrtz_triggers` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `NEXT_FIRE_TIME` bigint(0) NULL DEFAULT NULL, + `PREV_FIRE_TIME` bigint(0) NULL DEFAULT NULL, + `PRIORITY` int(0) NULL DEFAULT NULL, + `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `START_TIME` bigint(0) NOT NULL, + `END_TIME` bigint(0) NULL DEFAULT NULL, + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `MISFIRE_INSTR` smallint(0) NULL DEFAULT NULL, + `JOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE, + INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE, + INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE, + INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE, + INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE, + CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of qrtz_triggers +-- ---------------------------- +INSERT INTO `qrtz_triggers` VALUES ('schedulerName', 'clearExcelDataJob', 'DEFAULT', 'clearExcelDataJob', 'DEFAULT', NULL, 1735401600000, 1735364786371, 5, 'WAITING', 'CRON', 1730961513000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D7400007400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000C7800); +INSERT INTO `qrtz_triggers` VALUES ('schedulerName', 'saveModelUsageRecordsJob', 'DEFAULT', 'saveModelUsageRecordsJob', 'DEFAULT', NULL, 1735365000000, 1735364786351, 5, 'WAITING', 'CRON', 1730961591000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D7400007400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000C7800); + +-- ---------------------------- +-- Table structure for system_dept +-- ---------------------------- +DROP TABLE IF EXISTS `system_dept`; +CREATE TABLE `system_dept` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '部门id', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '部门名称', + `parent_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '父部门id', + `sort` int(0) NOT NULL DEFAULT 0 COMMENT '显示顺序', + `leader_user_id` bigint(0) NULL DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `status` tinyint(0) NOT NULL COMMENT '部门状态(0正常 1停用)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 116 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_dept +-- ---------------------------- +INSERT INTO `system_dept` VALUES (100, 'JeeLowCode', 0, 0, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2024-10-26 10:58:08', 0, 1); +INSERT INTO `system_dept` VALUES (101, '深圳总公司', 100, 1, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2024-12-09 14:49:21', 0, 1); +INSERT INTO `system_dept` VALUES (102, '长沙分公司', 100, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:40', 0, 1); +INSERT INTO `system_dept` VALUES (103, '研发部门', 101, 1, 146, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2024-12-09 14:49:29', 0, 1); +INSERT INTO `system_dept` VALUES (104, '市场部门', 101, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2024-12-09 14:44:10', 0, 1); +INSERT INTO `system_dept` VALUES (105, '测试部门', 101, 3, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-05-16 20:25:15', 0, 1); +INSERT INTO `system_dept` VALUES (106, '财务部门', 101, 4, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2024-12-09 14:49:43', 0, 1); +INSERT INTO `system_dept` VALUES (107, '运维部门', 101, 5, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2023-12-02 09:28:22', 0, 1); +INSERT INTO `system_dept` VALUES (108, '市场部门', 102, 1, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-02-16 08:35:45', 0, 1); +INSERT INTO `system_dept` VALUES (109, '财务部门', 102, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:29', 0, 1); +INSERT INTO `system_dept` VALUES (110, '新部门', 0, 1, NULL, NULL, NULL, 0, '110', '2022-02-23 20:46:30', '110', '2022-02-23 20:46:30', 0, 121); +INSERT INTO `system_dept` VALUES (111, '顶级部门', 0, 1, NULL, NULL, NULL, 0, '113', '2022-03-07 21:44:50', '113', '2022-03-07 21:44:50', 0, 122); +INSERT INTO `system_dept` VALUES (112, '产品部门', 101, 100, 1, NULL, NULL, 1, '1', '2023-12-02 09:45:13', '1', '2023-12-02 09:45:31', 0, 1); +INSERT INTO `system_dept` VALUES (113, '支持部门', 102, 3, 1, NULL, NULL, 1, '1', '2023-12-02 09:47:38', '1', '2024-12-09 14:49:51', 0, 1); +INSERT INTO `system_dept` VALUES (114, '测试总公司', 0, 1, NULL, '', '', 0, '1', '2024-06-05 10:58:53', '1', '2024-12-11 09:58:55', 1, 1); + +-- ---------------------------- +-- Table structure for system_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_data`; +CREATE TABLE `system_dict_data` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `sort` int(0) NOT NULL DEFAULT 0 COMMENT '字典排序', + `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '字典标签', + `value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', + `color_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '颜色类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT 'css 样式', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1723 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_dict_data +-- ---------------------------- +INSERT INTO `system_dict_data` VALUES (1, 1, '男', '1', 'system_user_sex', 0, 'default', 'A', '性别男', 'admin', '2021-01-05 17:03:48', '1', '2022-03-29 00:14:39', 0); +INSERT INTO `system_dict_data` VALUES (2, 2, '女', '2', 'system_user_sex', 0, 'success', '', '性别女', 'admin', '2021-01-05 17:03:48', '1', '2023-11-15 23:30:37', 0); +INSERT INTO `system_dict_data` VALUES (8, 1, '正常', '1', 'infra_job_status', 0, 'success', '', '正常状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:38', 0); +INSERT INTO `system_dict_data` VALUES (9, 2, '暂停', '2', 'infra_job_status', 0, 'danger', '', '停用状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:45', 0); +INSERT INTO `system_dict_data` VALUES (12, 1, '系统内置', '1', 'infra_config_type', 0, 'danger', '', '参数类型 - 系统内置', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:06:02', 0); +INSERT INTO `system_dict_data` VALUES (13, 2, '自定义', '2', 'infra_config_type', 0, 'primary', '', '参数类型 - 自定义', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:06:07', 0); +INSERT INTO `system_dict_data` VALUES (14, 1, '通知', '1', 'system_notice_type', 0, 'success', '', '通知', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:05:57', 0); +INSERT INTO `system_dict_data` VALUES (15, 2, '公告', '2', 'system_notice_type', 0, 'info', '', '公告', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:06:01', 0); +INSERT INTO `system_dict_data` VALUES (16, 0, '其它', '0', 'system_operate_type', 0, 'default', '', '其它操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:46', 0); +INSERT INTO `system_dict_data` VALUES (17, 1, '查询', '1', 'system_operate_type', 0, 'info', '', '查询操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:16', 0); +INSERT INTO `system_dict_data` VALUES (18, 2, '新增', '2', 'system_operate_type', 0, 'primary', '', '新增操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:13', 0); +INSERT INTO `system_dict_data` VALUES (19, 3, '修改', '3', 'system_operate_type', 0, 'warning', '', '修改操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:22', 0); +INSERT INTO `system_dict_data` VALUES (20, 4, '删除', '4', 'system_operate_type', 0, 'danger', '', '删除操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:27', 0); +INSERT INTO `system_dict_data` VALUES (22, 5, '导出', '5', 'system_operate_type', 0, 'default', '', '导出操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:32', 0); +INSERT INTO `system_dict_data` VALUES (23, 6, '导入', '6', 'system_operate_type', 0, 'default', '', '导入操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:35', 0); +INSERT INTO `system_dict_data` VALUES (27, 1, '开启', '0', 'common_status', 0, 'primary', '', '开启状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 08:00:39', 0); +INSERT INTO `system_dict_data` VALUES (28, 2, '关闭', '1', 'common_status', 0, 'info', '', '关闭状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 08:00:44', 0); +INSERT INTO `system_dict_data` VALUES (29, 1, '目录', '1', 'system_menu_type', 0, '', '', '目录', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:45', 0); +INSERT INTO `system_dict_data` VALUES (30, 2, '菜单', '2', 'system_menu_type', 0, '', '', '菜单', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:41', 0); +INSERT INTO `system_dict_data` VALUES (31, 3, '按钮', '3', 'system_menu_type', 0, '', '', '按钮', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:39', 0); +INSERT INTO `system_dict_data` VALUES (32, 1, '内置', '1', 'system_role_type', 0, 'danger', '', '内置角色', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:02:08', 0); +INSERT INTO `system_dict_data` VALUES (33, 2, '自定义', '2', 'system_role_type', 0, 'primary', '', '自定义角色', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:02:12', 0); +INSERT INTO `system_dict_data` VALUES (34, 1, '全部数据权限', '1', 'system_data_scope', 0, '', '', '全部数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:17', 0); +INSERT INTO `system_dict_data` VALUES (35, 2, '指定部门数据权限', '2', 'system_data_scope', 0, '', '', '指定部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:18', 0); +INSERT INTO `system_dict_data` VALUES (36, 3, '本部门数据权限', '3', 'system_data_scope', 0, '', '', '本部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:16', 0); +INSERT INTO `system_dict_data` VALUES (37, 4, '本部门及以下数据权限', '4', 'system_data_scope', 0, '', '', '本部门及以下数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:21', 0); +INSERT INTO `system_dict_data` VALUES (38, 5, '仅本人数据权限', '5', 'system_data_scope', 0, '', '', '仅本人数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:23', 0); +INSERT INTO `system_dict_data` VALUES (39, 0, '成功', '0', 'system_login_result', 0, 'success', '', '登陆结果 - 成功', '', '2021-01-18 06:17:36', '1', '2022-02-16 13:23:49', 0); +INSERT INTO `system_dict_data` VALUES (40, 10, '账号或密码不正确', '10', 'system_login_result', 0, 'primary', '', '登陆结果 - 账号或密码不正确', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:27', 0); +INSERT INTO `system_dict_data` VALUES (41, 20, '用户被禁用', '20', 'system_login_result', 0, 'warning', '', '登陆结果 - 用户被禁用', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:23:57', 0); +INSERT INTO `system_dict_data` VALUES (42, 30, '验证码不存在', '30', 'system_login_result', 0, 'info', '', '登陆结果 - 验证码不存在', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:07', 0); +INSERT INTO `system_dict_data` VALUES (43, 31, '验证码不正确', '31', 'system_login_result', 0, 'info', '', '登陆结果 - 验证码不正确', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:11', 0); +INSERT INTO `system_dict_data` VALUES (44, 100, '未知异常', '100', 'system_login_result', 0, 'danger', '', '登陆结果 - 未知异常', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:23', 0); +INSERT INTO `system_dict_data` VALUES (45, 1, '是', 'true', 'infra_boolean_string', 0, 'danger', '', 'Boolean 是否类型 - 是', '', '2021-01-19 03:20:55', '1', '2022-03-15 23:01:45', 0); +INSERT INTO `system_dict_data` VALUES (46, 1, '否', 'false', 'infra_boolean_string', 0, 'info', '', 'Boolean 是否类型 - 否', '', '2021-01-19 03:20:55', '1', '2022-03-15 23:09:45', 0); +INSERT INTO `system_dict_data` VALUES (50, 1, '单表(增删改查)', '1', 'infra_codegen_template_type', 0, '', '', NULL, '', '2021-02-05 07:09:06', '', '2022-03-10 16:33:15', 0); +INSERT INTO `system_dict_data` VALUES (51, 2, '树表(增删改查)', '2', 'infra_codegen_template_type', 0, '', '', NULL, '', '2021-02-05 07:14:46', '', '2022-03-10 16:33:19', 0); +INSERT INTO `system_dict_data` VALUES (53, 0, '初始化中', '0', 'infra_job_status', 0, 'primary', '', NULL, '', '2021-02-07 07:46:49', '1', '2022-02-16 19:33:29', 0); +INSERT INTO `system_dict_data` VALUES (57, 0, '运行中', '0', 'infra_job_log_status', 0, 'primary', '', 'RUNNING', '', '2021-02-08 10:04:24', '1', '2022-02-16 19:07:48', 0); +INSERT INTO `system_dict_data` VALUES (58, 1, '成功', '1', 'infra_job_log_status', 0, 'success', '', NULL, '', '2021-02-08 10:06:57', '1', '2022-02-16 19:07:52', 0); +INSERT INTO `system_dict_data` VALUES (59, 2, '失败', '2', 'infra_job_log_status', 0, 'warning', '', '失败', '', '2021-02-08 10:07:38', '1', '2022-02-16 19:07:56', 0); +INSERT INTO `system_dict_data` VALUES (60, 1, '会员', '1', 'user_type', 0, 'primary', '', NULL, '', '2021-02-26 00:16:27', '1', '2022-02-16 10:22:19', 0); +INSERT INTO `system_dict_data` VALUES (61, 2, '管理员', '2', 'user_type', 0, 'success', '', NULL, '', '2021-02-26 00:16:34', '1', '2022-02-16 10:22:22', 0); +INSERT INTO `system_dict_data` VALUES (62, 0, '未处理', '0', 'infra_api_error_log_process_status', 0, 'primary', '', NULL, '', '2021-02-26 07:07:19', '1', '2022-02-16 20:14:17', 0); +INSERT INTO `system_dict_data` VALUES (63, 1, '已处理', '1', 'infra_api_error_log_process_status', 0, 'success', '', NULL, '', '2021-02-26 07:07:26', '1', '2022-02-16 20:14:08', 0); +INSERT INTO `system_dict_data` VALUES (64, 2, '已忽略', '2', 'infra_api_error_log_process_status', 0, 'danger', '', NULL, '', '2021-02-26 07:07:34', '1', '2022-02-16 20:14:14', 0); +INSERT INTO `system_dict_data` VALUES (66, 2, '阿里云', 'ALIYUN', 'system_sms_channel_code', 0, 'primary', '', NULL, '1', '2021-04-05 01:05:26', '1', '2022-02-16 10:09:52', 0); +INSERT INTO `system_dict_data` VALUES (67, 1, '验证码', '1', 'system_sms_template_type', 0, 'warning', '', NULL, '1', '2021-04-05 21:50:57', '1', '2022-02-16 12:48:30', 0); +INSERT INTO `system_dict_data` VALUES (68, 2, '通知', '2', 'system_sms_template_type', 0, 'primary', '', NULL, '1', '2021-04-05 21:51:08', '1', '2022-02-16 12:48:27', 0); +INSERT INTO `system_dict_data` VALUES (69, 0, '营销', '3', 'system_sms_template_type', 0, 'danger', '', NULL, '1', '2021-04-05 21:51:15', '1', '2022-02-16 12:48:22', 0); +INSERT INTO `system_dict_data` VALUES (70, 0, '初始化', '0', 'system_sms_send_status', 0, 'primary', '', NULL, '1', '2021-04-11 20:18:33', '1', '2022-02-16 10:26:07', 0); +INSERT INTO `system_dict_data` VALUES (71, 1, '发送成功', '10', 'system_sms_send_status', 0, 'success', '', NULL, '1', '2021-04-11 20:18:43', '1', '2022-02-16 10:25:56', 0); +INSERT INTO `system_dict_data` VALUES (72, 2, '发送失败', '20', 'system_sms_send_status', 0, 'danger', '', NULL, '1', '2021-04-11 20:18:49', '1', '2022-02-16 10:26:03', 0); +INSERT INTO `system_dict_data` VALUES (73, 3, '不发送', '30', 'system_sms_send_status', 0, 'info', '', NULL, '1', '2021-04-11 20:19:44', '1', '2022-02-16 10:26:10', 0); +INSERT INTO `system_dict_data` VALUES (74, 0, '等待结果', '0', 'system_sms_receive_status', 0, 'primary', '', NULL, '1', '2021-04-11 20:27:43', '1', '2022-02-16 10:28:24', 0); +INSERT INTO `system_dict_data` VALUES (75, 1, '接收成功', '10', 'system_sms_receive_status', 0, 'success', '', NULL, '1', '2021-04-11 20:29:25', '1', '2022-02-16 10:28:28', 0); +INSERT INTO `system_dict_data` VALUES (76, 2, '接收失败', '20', 'system_sms_receive_status', 0, 'danger', '', NULL, '1', '2021-04-11 20:29:31', '1', '2022-02-16 10:28:32', 0); +INSERT INTO `system_dict_data` VALUES (77, 0, '调试(钉钉)', 'DEBUG_DING_TALK', 'system_sms_channel_code', 0, 'info', '', NULL, '1', '2021-04-13 00:20:37', '1', '2022-02-16 10:10:00', 0); +INSERT INTO `system_dict_data` VALUES (78, 1, '自动生成', '1', 'system_error_code_type', 0, 'warning', '', NULL, '1', '2021-04-21 00:06:48', '1', '2022-02-16 13:57:20', 0); +INSERT INTO `system_dict_data` VALUES (79, 2, '手动编辑', '2', 'system_error_code_type', 0, 'primary', '', NULL, '1', '2021-04-21 00:07:14', '1', '2022-02-16 13:57:24', 0); +INSERT INTO `system_dict_data` VALUES (80, 100, '账号登录', '100', 'system_login_type', 0, 'primary', '', '账号登录', '1', '2021-10-06 00:52:02', '1', '2022-02-16 13:11:34', 0); +INSERT INTO `system_dict_data` VALUES (81, 101, '社交登录', '101', 'system_login_type', 0, 'info', '', '社交登录', '1', '2021-10-06 00:52:17', '1', '2022-02-16 13:11:40', 0); +INSERT INTO `system_dict_data` VALUES (83, 200, '主动登出', '200', 'system_login_type', 0, 'primary', '', '主动登出', '1', '2021-10-06 00:52:58', '1', '2022-02-16 13:11:49', 0); +INSERT INTO `system_dict_data` VALUES (85, 202, '强制登出', '202', 'system_login_type', 0, 'danger', '', '强制退出', '1', '2021-10-06 00:53:41', '1', '2022-02-16 13:11:57', 0); +INSERT INTO `system_dict_data` VALUES (86, 0, '病假', '1', 'bpm_oa_leave_type', 0, 'primary', '', NULL, '1', '2021-09-21 22:35:28', '1', '2022-02-16 10:00:41', 0); +INSERT INTO `system_dict_data` VALUES (87, 1, '事假', '2', 'bpm_oa_leave_type', 0, 'info', '', NULL, '1', '2021-09-21 22:36:11', '1', '2022-02-16 10:00:49', 0); +INSERT INTO `system_dict_data` VALUES (88, 2, '婚假', '3', 'bpm_oa_leave_type', 0, 'warning', '', NULL, '1', '2021-09-21 22:36:38', '1', '2022-02-16 10:00:53', 0); +INSERT INTO `system_dict_data` VALUES (113, 1, '微信公众号支付', 'wx_pub', 'pay_channel_code', 0, 'success', '', '微信公众号支付', '1', '2021-12-03 10:40:24', '1', '2023-07-19 20:08:47', 0); +INSERT INTO `system_dict_data` VALUES (114, 2, '微信小程序支付', 'wx_lite', 'pay_channel_code', 0, 'success', '', '微信小程序支付', '1', '2021-12-03 10:41:06', '1', '2023-07-19 20:08:50', 0); +INSERT INTO `system_dict_data` VALUES (115, 3, '微信 App 支付', 'wx_app', 'pay_channel_code', 0, 'success', '', '微信 App 支付', '1', '2021-12-03 10:41:20', '1', '2023-07-19 20:08:56', 0); +INSERT INTO `system_dict_data` VALUES (116, 10, '支付宝 PC 网站支付', 'alipay_pc', 'pay_channel_code', 0, 'primary', '', '支付宝 PC 网站支付', '1', '2021-12-03 10:42:09', '1', '2023-07-19 20:09:12', 0); +INSERT INTO `system_dict_data` VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', 0); +INSERT INTO `system_dict_data` VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', 0); +INSERT INTO `system_dict_data` VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', 0); +INSERT INTO `system_dict_data` VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2024-10-26 15:10:49', 1); +INSERT INTO `system_dict_data` VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2024-10-26 15:10:49', 1); +INSERT INTO `system_dict_data` VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2024-10-26 15:10:48', 1); +INSERT INTO `system_dict_data` VALUES (123, 10, '支付成功', '10', 'pay_order_status', 0, 'success', '', '支付成功', '1', '2021-12-03 11:18:29', '1', '2024-10-26 15:10:54', 1); +INSERT INTO `system_dict_data` VALUES (124, 30, '支付关闭', '30', 'pay_order_status', 0, 'info', '', '支付关闭', '1', '2021-12-03 11:18:42', '1', '2024-10-26 15:10:55', 1); +INSERT INTO `system_dict_data` VALUES (125, 0, '等待支付', '0', 'pay_order_status', 0, 'info', '', '未支付', '1', '2021-12-03 11:18:18', '1', '2024-10-26 15:10:54', 1); +INSERT INTO `system_dict_data` VALUES (600, 5, '首页', '1', 'promotion_banner_position', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2023-10-11 07:45:38', 0); +INSERT INTO `system_dict_data` VALUES (601, 4, '秒杀活动页', '2', 'promotion_banner_position', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2023-10-11 07:45:38', 0); +INSERT INTO `system_dict_data` VALUES (602, 3, '砍价活动页', '3', 'promotion_banner_position', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2023-10-11 07:45:38', 0); +INSERT INTO `system_dict_data` VALUES (603, 2, '限时折扣页', '4', 'promotion_banner_position', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2023-10-11 07:45:38', 0); +INSERT INTO `system_dict_data` VALUES (604, 1, '满减送页', '5', 'promotion_banner_position', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2023-10-11 07:45:38', 0); +INSERT INTO `system_dict_data` VALUES (1118, 0, '等待退款', '0', 'pay_refund_status', 0, 'info', '', '等待退款', '1', '2021-12-10 16:44:59', '1', '2024-10-26 15:11:00', 1); +INSERT INTO `system_dict_data` VALUES (1119, 20, '退款失败', '20', 'pay_refund_status', 0, 'danger', '', '退款失败', '1', '2021-12-10 16:45:10', '1', '2024-10-26 15:11:01', 1); +INSERT INTO `system_dict_data` VALUES (1124, 10, '退款成功', '10', 'pay_refund_status', 0, 'success', '', '退款成功', '1', '2021-12-10 16:46:26', '1', '2024-10-26 15:11:01', 1); +INSERT INTO `system_dict_data` VALUES (1125, 0, '默认', '1', 'bpm_model_category', 0, 'primary', '', '流程分类 - 默认', '1', '2022-01-02 08:41:11', '1', '2022-02-16 20:01:42', 0); +INSERT INTO `system_dict_data` VALUES (1126, 0, 'OA', '2', 'bpm_model_category', 0, 'success', '', '流程分类 - OA', '1', '2022-01-02 08:41:22', '1', '2022-02-16 20:01:50', 0); +INSERT INTO `system_dict_data` VALUES (1127, 0, '进行中', '1', 'bpm_process_instance_status', 0, 'primary', '', '流程实例的状态 - 进行中', '1', '2022-01-07 23:47:22', '1', '2022-02-16 20:07:49', 0); +INSERT INTO `system_dict_data` VALUES (1128, 2, '已完成', '2', 'bpm_process_instance_status', 0, 'success', '', '流程实例的状态 - 已完成', '1', '2022-01-07 23:47:49', '1', '2022-02-16 20:07:54', 0); +INSERT INTO `system_dict_data` VALUES (1129, 1, '处理中', '1', 'bpm_process_instance_result', 0, 'primary', '', '流程实例的结果 - 处理中', '1', '2022-01-07 23:48:32', '1', '2022-02-16 09:53:26', 0); +INSERT INTO `system_dict_data` VALUES (1130, 2, '通过', '2', 'bpm_process_instance_result', 0, 'success', '', '流程实例的结果 - 通过', '1', '2022-01-07 23:48:45', '1', '2022-02-16 09:53:31', 0); +INSERT INTO `system_dict_data` VALUES (1131, 3, '流程终止', '3', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 流程终止', '1', '2022-01-07 23:48:55', '1', '2024-08-23 09:44:15', 0); +INSERT INTO `system_dict_data` VALUES (1132, 4, '已取消', '4', 'bpm_process_instance_result', 0, 'info', '', '流程实例的结果 - 撤销', '1', '2022-01-07 23:49:06', '1', '2022-02-16 09:53:42', 0); +INSERT INTO `system_dict_data` VALUES (1133, 10, '流程表单', '10', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 流程表单', '103', '2022-01-11 23:51:30', '103', '2022-01-11 23:51:30', 0); +INSERT INTO `system_dict_data` VALUES (1134, 20, '业务表单', '20', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 业务表单', '103', '2022-01-11 23:51:47', '103', '2022-01-11 23:51:47', 0); +INSERT INTO `system_dict_data` VALUES (1135, 10, '角色', '10', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 角色', '103', '2022-01-12 23:21:22', '1', '2022-02-16 20:06:14', 0); +INSERT INTO `system_dict_data` VALUES (1136, 20, '部门的成员', '20', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的成员', '103', '2022-01-12 23:21:47', '1', '2022-02-16 20:05:28', 0); +INSERT INTO `system_dict_data` VALUES (1137, 21, '部门的负责人', '21', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的负责人', '103', '2022-01-12 23:33:36', '1', '2022-02-16 20:05:31', 0); +INSERT INTO `system_dict_data` VALUES (1138, 30, '用户', '30', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 用户', '103', '2022-01-12 23:34:02', '1', '2022-02-16 20:05:50', 0); +INSERT INTO `system_dict_data` VALUES (1139, 40, '用户组', '40', 'bpm_task_assign_rule_type', 0, 'warning', '', '任务分配规则的类型 - 用户组', '103', '2022-01-12 23:34:21', '1', '2022-02-16 20:05:57', 0); +INSERT INTO `system_dict_data` VALUES (1140, 50, '自定义脚本', '50', 'bpm_task_assign_rule_type', 0, 'danger', '', '任务分配规则的类型 - 自定义脚本', '103', '2022-01-12 23:34:43', '1', '2022-02-16 20:06:01', 0); +INSERT INTO `system_dict_data` VALUES (1141, 22, '岗位', '22', 'bpm_task_assign_rule_type', 0, 'success', '', '任务分配规则的类型 - 岗位', '103', '2022-01-14 18:41:55', '1', '2022-02-16 20:05:39', 0); +INSERT INTO `system_dict_data` VALUES (1142, 10, '流程发起人', '10', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人', '103', '2022-01-15 00:10:57', '103', '2022-01-15 21:24:10', 0); +INSERT INTO `system_dict_data` VALUES (1143, 20, '流程发起人的一级领导', '20', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的一级领导', '103', '2022-01-15 21:24:31', '103', '2022-01-15 21:24:31', 0); +INSERT INTO `system_dict_data` VALUES (1144, 21, '流程发起人的二级领导', '21', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的二级领导', '103', '2022-01-15 21:24:46', '103', '2022-01-15 21:24:57', 0); +INSERT INTO `system_dict_data` VALUES (1145, 1, '管理后台', '1', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 管理后台', '1', '2022-02-02 13:15:06', '1', '2022-03-10 16:32:59', 0); +INSERT INTO `system_dict_data` VALUES (1146, 2, '用户 APP', '2', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 用户 APP', '1', '2022-02-02 13:15:19', '1', '2022-03-10 16:33:03', 0); +INSERT INTO `system_dict_data` VALUES (1150, 1, '数据库', '1', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:28', '1', '2022-03-15 00:25:28', 0); +INSERT INTO `system_dict_data` VALUES (1151, 10, '本地磁盘', '10', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:41', '1', '2022-03-15 00:25:56', 0); +INSERT INTO `system_dict_data` VALUES (1152, 11, 'FTP 服务器', '11', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:06', '1', '2022-03-15 00:26:10', 0); +INSERT INTO `system_dict_data` VALUES (1153, 12, 'SFTP 服务器', '12', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:22', '1', '2022-03-15 00:26:22', 0); +INSERT INTO `system_dict_data` VALUES (1154, 20, 'S3 对象存储', '20', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:31', '1', '2022-03-15 00:26:45', 0); +INSERT INTO `system_dict_data` VALUES (1155, 103, '短信登录', '103', 'system_login_type', 0, 'default', '', NULL, '1', '2022-05-09 23:57:58', '1', '2022-05-09 23:58:09', 0); +INSERT INTO `system_dict_data` VALUES (1156, 1, 'password', 'password', 'system_oauth2_grant_type', 0, 'default', '', '密码模式', '1', '2022-05-12 00:22:05', '1', '2022-05-11 16:26:01', 0); +INSERT INTO `system_dict_data` VALUES (1157, 2, 'authorization_code', 'authorization_code', 'system_oauth2_grant_type', 0, 'primary', '', '授权码模式', '1', '2022-05-12 00:22:59', '1', '2022-05-11 16:26:02', 0); +INSERT INTO `system_dict_data` VALUES (1158, 3, 'implicit', 'implicit', 'system_oauth2_grant_type', 0, 'success', '', '简化模式', '1', '2022-05-12 00:23:40', '1', '2022-05-11 16:26:05', 0); +INSERT INTO `system_dict_data` VALUES (1159, 4, 'client_credentials', 'client_credentials', 'system_oauth2_grant_type', 0, 'default', '', '客户端模式', '1', '2022-05-12 00:23:51', '1', '2022-05-11 16:26:08', 0); +INSERT INTO `system_dict_data` VALUES (1160, 5, 'refresh_token', 'refresh_token', 'system_oauth2_grant_type', 0, 'info', '', '刷新模式', '1', '2022-05-12 00:24:02', '1', '2022-05-11 16:26:11', 0); +INSERT INTO `system_dict_data` VALUES (1162, 1, '销售中', '1', 'product_spu_status', 0, 'success', '', '商品 SPU 状态 - 销售中', '1', '2022-10-24 21:19:47', '1', '2024-10-26 15:26:15', 1); +INSERT INTO `system_dict_data` VALUES (1163, 0, '仓库中', '0', 'product_spu_status', 0, 'info', '', '商品 SPU 状态 - 仓库中', '1', '2022-10-24 21:20:54', '1', '2024-10-26 15:26:14', 1); +INSERT INTO `system_dict_data` VALUES (1164, 0, '回收站', '-1', 'product_spu_status', 0, 'default', '', '商品 SPU 状态 - 回收站', '1', '2022-10-24 21:21:11', '1', '2024-10-26 15:26:14', 1); +INSERT INTO `system_dict_data` VALUES (1165, 1, '满减', '1', 'promotion_discount_type', 0, 'success', '', '优惠类型 - 满减', '1', '2022-11-01 12:46:41', '1', '2024-10-26 15:26:19', 1); +INSERT INTO `system_dict_data` VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2024-10-26 15:26:19', 1); +INSERT INTO `system_dict_data` VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2024-10-26 15:26:24', 1); +INSERT INTO `system_dict_data` VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2024-10-26 15:26:25', 1); +INSERT INTO `system_dict_data` VALUES (1169, 1, '通用劵', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2024-10-26 15:26:29', 1); +INSERT INTO `system_dict_data` VALUES (1170, 2, '商品劵', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2024-10-26 15:26:29', 1); +INSERT INTO `system_dict_data` VALUES (1171, 1, '未使用', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2024-10-26 15:26:34', 1); +INSERT INTO `system_dict_data` VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2024-10-26 15:26:35', 1); +INSERT INTO `system_dict_data` VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2024-10-26 15:26:35', 1); +INSERT INTO `system_dict_data` VALUES (1174, 1, '直接领取', '1', 'promotion_coupon_take_type', 0, 'primary', '', '优惠劵的领取方式 - 直接领取', '1', '2022-11-04 19:13:00', '1', '2024-10-26 15:26:40', 1); +INSERT INTO `system_dict_data` VALUES (1175, 2, '指定发放', '2', 'promotion_coupon_take_type', 0, 'success', '', '优惠劵的领取方式 - 指定发放', '1', '2022-11-04 19:13:13', '1', '2024-10-26 15:26:40', 1); +INSERT INTO `system_dict_data` VALUES (1176, 10, '未开始', '10', 'promotion_activity_status', 0, 'primary', '', '促销活动的状态枚举 - 未开始', '1', '2022-11-04 22:54:49', '1', '2024-10-26 15:26:45', 1); +INSERT INTO `system_dict_data` VALUES (1177, 20, '进行中', '20', 'promotion_activity_status', 0, 'success', '', '促销活动的状态枚举 - 进行中', '1', '2022-11-04 22:55:06', '1', '2024-10-26 15:26:46', 1); +INSERT INTO `system_dict_data` VALUES (1178, 30, '已结束', '30', 'promotion_activity_status', 0, 'info', '', '促销活动的状态枚举 - 已结束', '1', '2022-11-04 22:55:41', '1', '2024-10-26 15:26:46', 1); +INSERT INTO `system_dict_data` VALUES (1179, 40, '已关闭', '40', 'promotion_activity_status', 0, 'warning', '', '促销活动的状态枚举 - 已关闭', '1', '2022-11-04 22:56:10', '1', '2024-10-26 15:26:46', 1); +INSERT INTO `system_dict_data` VALUES (1180, 10, '满 N 元', '10', 'promotion_condition_type', 0, 'primary', '', '营销的条件类型 - 满 N 元', '1', '2022-11-04 22:59:45', '1', '2024-10-26 15:26:52', 1); +INSERT INTO `system_dict_data` VALUES (1181, 20, '满 N 件', '20', 'promotion_condition_type', 0, 'success', '', '营销的条件类型 - 满 N 件', '1', '2022-11-04 23:00:02', '1', '2024-10-26 15:26:52', 1); +INSERT INTO `system_dict_data` VALUES (1182, 10, '申请售后', '10', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 申请售后', '1', '2022-11-19 20:53:33', '1', '2024-10-26 15:27:00', 1); +INSERT INTO `system_dict_data` VALUES (1183, 20, '商品待退货', '20', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商品待退货', '1', '2022-11-19 20:54:36', '1', '2024-10-26 15:27:00', 1); +INSERT INTO `system_dict_data` VALUES (1184, 30, '商家待收货', '30', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商家待收货', '1', '2022-11-19 20:56:56', '1', '2024-10-26 15:27:00', 1); +INSERT INTO `system_dict_data` VALUES (1185, 40, '等待退款', '40', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 等待退款', '1', '2022-11-19 20:59:54', '1', '2024-10-26 15:27:00', 1); +INSERT INTO `system_dict_data` VALUES (1186, 50, '退款成功', '50', 'trade_after_sale_status', 0, 'default', '', '交易售后状态 - 退款成功', '1', '2022-11-19 21:00:33', '1', '2024-10-26 15:27:01', 1); +INSERT INTO `system_dict_data` VALUES (1187, 61, '买家取消', '61', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 买家取消', '1', '2022-11-19 21:01:29', '1', '2024-10-26 15:27:01', 1); +INSERT INTO `system_dict_data` VALUES (1188, 62, '商家拒绝', '62', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒绝', '1', '2022-11-19 21:02:17', '1', '2024-10-26 15:27:01', 1); +INSERT INTO `system_dict_data` VALUES (1189, 63, '商家拒收货', '63', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒收货', '1', '2022-11-19 21:02:37', '1', '2024-10-26 15:27:01', 1); +INSERT INTO `system_dict_data` VALUES (1190, 10, '售中退款', '10', 'trade_after_sale_type', 0, 'success', '', '交易售后的类型 - 售中退款', '1', '2022-11-19 21:05:05', '1', '2024-10-26 15:27:06', 1); +INSERT INTO `system_dict_data` VALUES (1191, 20, '售后退款', '20', 'trade_after_sale_type', 0, 'primary', '', '交易售后的类型 - 售后退款', '1', '2022-11-19 21:05:32', '1', '2024-10-26 15:27:06', 1); +INSERT INTO `system_dict_data` VALUES (1192, 10, '仅退款', '10', 'trade_after_sale_way', 0, 'primary', '', '交易售后的方式 - 仅退款', '1', '2022-11-19 21:39:19', '1', '2024-10-26 15:27:31', 1); +INSERT INTO `system_dict_data` VALUES (1193, 20, '退货退款', '20', 'trade_after_sale_way', 0, 'success', '', '交易售后的方式 - 退货退款', '1', '2022-11-19 21:39:38', '1', '2024-10-26 15:27:32', 1); +INSERT INTO `system_dict_data` VALUES (1194, 10, '微信小程序', '10', 'terminal', 0, 'default', '', '终端 - 微信小程序', '1', '2022-12-10 10:51:11', '1', '2022-12-10 10:51:57', 0); +INSERT INTO `system_dict_data` VALUES (1195, 20, 'H5 网页', '20', 'terminal', 0, 'default', '', '终端 - H5 网页', '1', '2022-12-10 10:51:30', '1', '2022-12-10 10:51:59', 0); +INSERT INTO `system_dict_data` VALUES (1196, 11, '微信公众号', '11', 'terminal', 0, 'default', '', '终端 - 微信公众号', '1', '2022-12-10 10:54:16', '1', '2022-12-10 10:52:01', 0); +INSERT INTO `system_dict_data` VALUES (1197, 31, '苹果 App', '31', 'terminal', 0, 'default', '', '终端 - 苹果 App', '1', '2022-12-10 10:54:42', '1', '2022-12-10 10:52:18', 0); +INSERT INTO `system_dict_data` VALUES (1198, 32, '安卓 App', '32', 'terminal', 0, 'default', '', '终端 - 安卓 App', '1', '2022-12-10 10:55:02', '1', '2022-12-10 10:59:17', 0); +INSERT INTO `system_dict_data` VALUES (1199, 0, '普通订单', '0', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 普通订单', '1', '2022-12-10 16:34:14', '1', '2024-10-26 15:27:40', 1); +INSERT INTO `system_dict_data` VALUES (1200, 1, '秒杀订单', '1', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 秒杀订单', '1', '2022-12-10 16:34:26', '1', '2024-10-26 15:27:41', 1); +INSERT INTO `system_dict_data` VALUES (1201, 2, '拼团订单', '2', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 拼团订单', '1', '2022-12-10 16:34:36', '1', '2024-10-26 15:27:41', 1); +INSERT INTO `system_dict_data` VALUES (1202, 3, '砍价订单', '3', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 砍价订单', '1', '2022-12-10 16:34:48', '1', '2024-10-26 15:27:41', 1); +INSERT INTO `system_dict_data` VALUES (1203, 0, '待支付', '0', 'trade_order_status', 0, 'default', '', '交易订单状态 - 待支付', '1', '2022-12-10 16:49:29', '1', '2024-10-26 15:27:45', 1); +INSERT INTO `system_dict_data` VALUES (1204, 10, '待发货', '10', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 待发货', '1', '2022-12-10 16:49:53', '1', '2024-10-26 15:27:46', 1); +INSERT INTO `system_dict_data` VALUES (1205, 20, '已发货', '20', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 已发货', '1', '2022-12-10 16:50:13', '1', '2024-10-26 15:27:46', 1); +INSERT INTO `system_dict_data` VALUES (1206, 30, '已完成', '30', 'trade_order_status', 0, 'success', '', '交易订单状态 - 已完成', '1', '2022-12-10 16:50:30', '1', '2024-10-26 15:27:46', 1); +INSERT INTO `system_dict_data` VALUES (1207, 40, '已取消', '40', 'trade_order_status', 0, 'danger', '', '交易订单状态 - 已取消', '1', '2022-12-10 16:50:50', '1', '2024-10-26 15:27:46', 1); +INSERT INTO `system_dict_data` VALUES (1208, 0, '未售后', '0', 'trade_order_item_after_sale_status', 0, 'info', '', '交易订单项的售后状态 - 未售后', '1', '2022-12-10 20:58:42', '1', '2024-10-26 15:27:51', 1); +INSERT INTO `system_dict_data` VALUES (1209, 1, '售后中', '1', 'trade_order_item_after_sale_status', 0, 'primary', '', '交易订单项的售后状态 - 售后中', '1', '2022-12-10 20:59:21', '1', '2024-10-26 15:27:51', 1); +INSERT INTO `system_dict_data` VALUES (1210, 2, '已退款', '2', 'trade_order_item_after_sale_status', 0, 'success', '', '交易订单项的售后状态 - 已退款', '1', '2022-12-10 20:59:46', '1', '2024-10-26 15:27:52', 1); +INSERT INTO `system_dict_data` VALUES (1211, 1, '完全匹配', '1', 'mp_auto_reply_request_match', 0, 'primary', '', '公众号自动回复的请求关键字匹配模式 - 完全匹配', '1', '2023-01-16 23:30:39', '1', '2024-10-28 14:19:48', 1); +INSERT INTO `system_dict_data` VALUES (1212, 2, '半匹配', '2', 'mp_auto_reply_request_match', 0, 'success', '', '公众号自动回复的请求关键字匹配模式 - 半匹配', '1', '2023-01-16 23:30:55', '1', '2024-10-28 14:19:48', 1); +INSERT INTO `system_dict_data` VALUES (1213, 1, '文本', 'text', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 文本', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1214, 2, '图片', 'image', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图片', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1215, 3, '语音', 'voice', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 语音', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1216, 4, '视频', 'video', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 视频', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1217, 5, '小视频', 'shortvideo', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 小视频', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1218, 6, '图文', 'news', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图文', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1219, 7, '音乐', 'music', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 音乐', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1220, 8, '地理位置', 'location', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 地理位置', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1221, 9, '链接', 'link', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 链接', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1222, 10, '事件', 'event', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 事件', '1', '2023-01-17 22:17:32', '1', '2024-10-28 14:19:59', 1); +INSERT INTO `system_dict_data` VALUES (1223, 0, '初始化', '0', 'system_mail_send_status', 0, 'primary', '', '邮件发送状态 - 初始化\n', '1', '2023-01-26 09:53:49', '1', '2023-01-26 16:36:14', 0); +INSERT INTO `system_dict_data` VALUES (1224, 10, '发送成功', '10', 'system_mail_send_status', 0, 'success', '', '邮件发送状态 - 发送成功', '1', '2023-01-26 09:54:28', '1', '2023-01-26 16:36:22', 0); +INSERT INTO `system_dict_data` VALUES (1225, 20, '发送失败', '20', 'system_mail_send_status', 0, 'danger', '', '邮件发送状态 - 发送失败', '1', '2023-01-26 09:54:50', '1', '2023-01-26 16:36:26', 0); +INSERT INTO `system_dict_data` VALUES (1226, 30, '不发送', '30', 'system_mail_send_status', 0, 'info', '', '邮件发送状态 - 不发送', '1', '2023-01-26 09:55:06', '1', '2023-01-26 16:36:36', 0); +INSERT INTO `system_dict_data` VALUES (1227, 1, '通知公告', '1', 'system_notify_template_type', 0, 'primary', '', '站内信模版的类型 - 通知公告', '1', '2023-01-28 10:35:59', '1', '2023-01-28 10:35:59', 0); +INSERT INTO `system_dict_data` VALUES (1228, 2, '系统消息', '2', 'system_notify_template_type', 0, 'success', '', '站内信模版的类型 - 系统消息', '1', '2023-01-28 10:36:20', '1', '2023-01-28 10:36:25', 0); +INSERT INTO `system_dict_data` VALUES (1230, 13, '支付宝条码支付', 'alipay_bar', 'pay_channel_code', 0, 'primary', '', '支付宝条码支付', '1', '2023-02-18 23:32:24', '1', '2023-07-19 20:09:23', 0); +INSERT INTO `system_dict_data` VALUES (1231, 10, 'Vue2 Element UI 标准模版', '10', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:03:55', '1', '2023-04-13 00:03:55', 0); +INSERT INTO `system_dict_data` VALUES (1232, 20, 'Vue3 Element Plus 标准模版', '20', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:08', '1', '2023-04-13 00:04:08', 0); +INSERT INTO `system_dict_data` VALUES (1233, 21, 'Vue3 Element Plus Schema 模版', '21', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:26', '1', '2023-04-13 00:04:26', 0); +INSERT INTO `system_dict_data` VALUES (1234, 30, 'Vue3 vben 模版', '30', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:26', '1', '2023-04-13 00:04:26', 0); +INSERT INTO `system_dict_data` VALUES (1235, 1, '个', '1', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:00', 1); +INSERT INTO `system_dict_data` VALUES (1236, 1, '件', '2', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1237, 1, '盒', '3', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1238, 1, '袋', '4', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1239, 1, '箱', '5', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1240, 1, '套', '6', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1241, 1, '包', '7', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1242, 1, '双', '8', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1243, 1, '卷', '9', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2024-10-26 15:28:01', 1); +INSERT INTO `system_dict_data` VALUES (1244, 0, '按件', '1', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:40', '1', '2024-10-26 15:28:05', 1); +INSERT INTO `system_dict_data` VALUES (1245, 1, '按重量', '2', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:58', '1', '2024-10-26 15:28:06', 1); +INSERT INTO `system_dict_data` VALUES (1246, 2, '按体积', '3', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:47:18', '1', '2024-10-26 15:28:06', 1); +INSERT INTO `system_dict_data` VALUES (1335, 11, '订单积分抵扣', '11', 'member_point_biz_type', 0, '', '', '', '1', '2023-06-10 12:15:27', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1336, 1, '签到', '1', 'member_point_biz_type', 0, '', '', '', '1', '2023-06-10 12:15:48', '1', '2024-10-26 15:28:12', 1); +INSERT INTO `system_dict_data` VALUES (1341, 20, '已退款', '20', 'pay_order_status', 0, 'danger', '', '已退款', '1', '2023-07-19 18:05:37', '1', '2024-10-26 15:10:54', 1); +INSERT INTO `system_dict_data` VALUES (1342, 21, '请求成功,但是结果失败', '21', 'pay_notify_status', 0, 'warning', '', '请求成功,但是结果失败', '1', '2023-07-19 18:10:47', '1', '2024-10-26 15:10:49', 1); +INSERT INTO `system_dict_data` VALUES (1343, 22, '请求失败', '22', 'pay_notify_status', 0, 'warning', '', NULL, '1', '2023-07-19 18:11:05', '1', '2024-10-26 15:10:49', 1); +INSERT INTO `system_dict_data` VALUES (1344, 4, '微信扫码支付', 'wx_native', 'pay_channel_code', 0, 'success', '', '微信扫码支付', '1', '2023-07-19 20:07:47', '1', '2023-07-19 20:09:03', 0); +INSERT INTO `system_dict_data` VALUES (1345, 5, '微信条码支付', 'wx_bar', 'pay_channel_code', 0, 'success', '', '微信条码支付\n', '1', '2023-07-19 20:08:06', '1', '2023-07-19 20:09:08', 0); +INSERT INTO `system_dict_data` VALUES (1346, 1, '支付单', '1', 'pay_notify_type', 0, 'primary', '', '支付单', '1', '2023-07-20 12:23:17', '1', '2023-07-20 12:23:17', 0); +INSERT INTO `system_dict_data` VALUES (1347, 2, '退款单', '2', 'pay_notify_type', 0, 'danger', '', NULL, '1', '2023-07-20 12:23:26', '1', '2023-07-20 12:23:26', 0); +INSERT INTO `system_dict_data` VALUES (1348, 20, '模拟支付', 'mock', 'pay_channel_code', 0, 'default', '', '模拟支付', '1', '2023-07-29 11:10:51', '1', '2023-07-29 03:14:10', 0); +INSERT INTO `system_dict_data` VALUES (1349, 12, '订单积分抵扣(整单取消)', '12', 'member_point_biz_type', 0, '', '', '', '1', '2023-08-20 12:00:03', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1350, 0, '管理员调整', '0', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2024-10-26 15:28:28', 1); +INSERT INTO `system_dict_data` VALUES (1351, 1, '邀新奖励', '1', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1352, 11, '下单奖励', '11', 'member_experience_biz_type', 0, 'success', '', NULL, '', '2023-08-22 12:41:01', '1', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1353, 12, '下单奖励(整单取消)', '12', 'member_experience_biz_type', 0, 'warning', '', NULL, '', '2023-08-22 12:41:01', '1', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1354, 4, '签到奖励', '4', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1355, 5, '抽奖奖励', '5', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1356, 1, '快递发货', '1', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:04:55', '1', '2024-10-26 15:28:35', 1); +INSERT INTO `system_dict_data` VALUES (1357, 2, '用户自提', '2', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:05:05', '1', '2024-10-26 15:28:35', 1); +INSERT INTO `system_dict_data` VALUES (1358, 3, '品类劵', '3', 'promotion_product_scope', 0, 'default', '', '', '1', '2023-09-01 23:43:07', '1', '2024-10-26 15:26:29', 1); +INSERT INTO `system_dict_data` VALUES (1359, 1, '人人分销', '1', 'brokerage_enabled_condition', 0, '', '', '所有用户都可以分销', '', '2023-09-28 02:46:05', '', '2024-10-26 15:28:41', 1); +INSERT INTO `system_dict_data` VALUES (1360, 2, '指定分销', '2', 'brokerage_enabled_condition', 0, '', '', '仅可后台手动设置推广员', '', '2023-09-28 02:46:05', '', '2024-10-26 15:28:41', 1); +INSERT INTO `system_dict_data` VALUES (1361, 1, '首次绑定', '1', 'brokerage_bind_mode', 0, '', '', '只要用户没有推广人,随时都可以绑定推广关系', '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1362, 2, '注册绑定', '2', 'brokerage_bind_mode', 0, '', '', '仅新用户注册时才能绑定推广关系', '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1363, 3, '覆盖绑定', '3', 'brokerage_bind_mode', 0, '', '', '如果用户已经有推广人,推广人会被变更', '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1364, 1, '钱包', '1', 'brokerage_withdraw_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1365, 2, '银行卡', '2', 'brokerage_withdraw_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1366, 3, '微信', '3', 'brokerage_withdraw_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1367, 4, '支付宝', '4', 'brokerage_withdraw_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1368, 1, '订单返佣', '1', 'brokerage_record_biz_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1369, 2, '申请提现', '2', 'brokerage_record_biz_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1370, 3, '申请提现驳回', '3', 'brokerage_record_biz_type', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1371, 0, '待结算', '0', 'brokerage_record_status', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1372, 1, '已结算', '1', 'brokerage_record_status', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1373, 2, '已取消', '2', 'brokerage_record_status', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1374, 0, '审核中', '0', 'brokerage_withdraw_status', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1375, 10, '审核通过', '10', 'brokerage_withdraw_status', 0, 'success', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1376, 11, '提现成功', '11', 'brokerage_withdraw_status', 0, 'success', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1377, 20, '审核不通过', '20', 'brokerage_withdraw_status', 0, 'danger', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1378, 21, '提现失败', '21', 'brokerage_withdraw_status', 0, 'danger', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1379, 0, '工商银行', '0', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1380, 1, '建设银行', '1', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1381, 2, '农业银行', '2', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1382, 3, '中国银行', '3', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1383, 4, '交通银行', '4', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1384, 5, '招商银行', '5', 'brokerage_bank_name', 0, '', '', NULL, '', '2023-09-28 02:46:05', '', '2023-09-28 02:46:05', 0); +INSERT INTO `system_dict_data` VALUES (1385, 21, '钱包', 'wallet', 'pay_channel_code', 0, 'primary', '', '', '1', '2023-10-01 21:46:19', '1', '2023-10-01 21:48:01', 0); +INSERT INTO `system_dict_data` VALUES (1386, 1, '砍价中', '1', 'promotion_bargain_record_status', 0, 'default', '', '', '1', '2023-10-05 10:41:26', '1', '2023-10-05 10:41:26', 0); +INSERT INTO `system_dict_data` VALUES (1387, 2, '砍价成功', '2', 'promotion_bargain_record_status', 0, 'success', '', '', '1', '2023-10-05 10:41:39', '1', '2023-10-05 10:41:39', 0); +INSERT INTO `system_dict_data` VALUES (1388, 3, '砍价失败', '3', 'promotion_bargain_record_status', 0, 'warning', '', '', '1', '2023-10-05 10:41:57', '1', '2023-10-05 10:41:57', 0); +INSERT INTO `system_dict_data` VALUES (1389, 1, '拼团中', '1', 'promotion_combination_record_status', 0, '', '', '', '1', '2023-10-08 07:24:44', '1', '2023-10-08 07:24:44', 0); +INSERT INTO `system_dict_data` VALUES (1390, 2, '拼团成功', '2', 'promotion_combination_record_status', 0, 'success', '', '', '1', '2023-10-08 07:24:56', '1', '2023-10-08 07:24:56', 0); +INSERT INTO `system_dict_data` VALUES (1391, 3, '拼团失败', '3', 'promotion_combination_record_status', 0, 'warning', '', '', '1', '2023-10-08 07:25:11', '1', '2023-10-08 07:25:11', 0); +INSERT INTO `system_dict_data` VALUES (1392, 2, '管理员修改', '2', 'member_point_biz_type', 0, 'default', '', '', '1', '2023-10-11 07:41:34', '1', '2024-10-26 15:28:12', 1); +INSERT INTO `system_dict_data` VALUES (1393, 13, '订单积分抵扣(单个退款)', '13', 'member_point_biz_type', 0, '', '', '', '1', '2023-10-11 07:42:29', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1394, 21, '订单积分奖励', '21', 'member_point_biz_type', 0, 'default', '', '', '1', '2023-10-11 07:42:44', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1395, 22, '订单积分奖励(整单取消)', '22', 'member_point_biz_type', 0, 'default', '', '', '1', '2023-10-11 07:42:55', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1396, 23, '订单积分奖励(单个退款)', '23', 'member_point_biz_type', 0, 'default', '', '', '1', '2023-10-11 07:43:16', '1', '2024-10-26 15:28:13', 1); +INSERT INTO `system_dict_data` VALUES (1397, 13, '下单奖励(单个退款)', '13', 'member_experience_biz_type', 0, 'warning', '', '', '1', '2023-10-11 07:45:24', '1', '2024-10-26 15:28:29', 1); +INSERT INTO `system_dict_data` VALUES (1398, 5, '网上转账', '5', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:55:24', '1', '2023-10-18 21:55:24', 0); +INSERT INTO `system_dict_data` VALUES (1399, 6, '支付宝', '6', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:55:38', '1', '2023-10-18 21:55:38', 0); +INSERT INTO `system_dict_data` VALUES (1400, 7, '微信支付', '7', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:55:53', '1', '2023-10-18 21:55:53', 0); +INSERT INTO `system_dict_data` VALUES (1401, 8, '其他', '8', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:56:06', '1', '2023-10-18 21:56:06', 0); +INSERT INTO `system_dict_data` VALUES (1402, 1, 'A 农、林、牧、渔业', '1', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:02:15', '1', '2023-10-28 23:02:15', 0); +INSERT INTO `system_dict_data` VALUES (1403, 2, 'B 采矿业', '2', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:02:29', '1', '2023-10-28 23:02:29', 0); +INSERT INTO `system_dict_data` VALUES (1404, 3, 'C 制造业', '3', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:02:41', '1', '2023-10-28 23:02:41', 0); +INSERT INTO `system_dict_data` VALUES (1405, 4, 'D 电力、热力、燃气及水生产和供应业', '4', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:02:54', '1', '2023-10-28 23:02:54', 0); +INSERT INTO `system_dict_data` VALUES (1406, 5, 'E 建筑业', '5', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:03', '1', '2023-10-28 23:03:03', 0); +INSERT INTO `system_dict_data` VALUES (1407, 6, 'F 批发和零售业', '6', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:13', '1', '2023-10-28 23:03:13', 0); +INSERT INTO `system_dict_data` VALUES (1408, 7, 'G 交通运输、仓储和邮政业', '7', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:27', '1', '2023-10-28 23:03:27', 0); +INSERT INTO `system_dict_data` VALUES (1409, 8, 'H 住宿和餐饮业', '8', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:37', '1', '2023-10-28 23:03:37', 0); +INSERT INTO `system_dict_data` VALUES (1410, 9, 'I 信息传输、软件和信息技术服务业', '9', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:47', '1', '2023-10-28 23:03:47', 0); +INSERT INTO `system_dict_data` VALUES (1411, 10, 'J 金融业', '10', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:03:57', '1', '2023-10-28 23:03:57', 0); +INSERT INTO `system_dict_data` VALUES (1412, 11, 'K 房地产业', '11', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:04:15', '1', '2023-10-28 23:04:22', 0); +INSERT INTO `system_dict_data` VALUES (1413, 12, 'L 租赁和商务服务业', '12', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:04:33', '1', '2023-10-28 23:04:33', 0); +INSERT INTO `system_dict_data` VALUES (1414, 13, 'M 科学研究和技术服务业', '13', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:04:43', '1', '2023-10-28 23:04:43', 0); +INSERT INTO `system_dict_data` VALUES (1415, 14, 'N 水利、环境和公共设施管理业', '14', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:04:53', '1', '2023-10-28 23:04:53', 0); +INSERT INTO `system_dict_data` VALUES (1416, 15, 'O 居民服务、修理和其他服务业', '15', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:05:05', '1', '2023-10-28 23:05:05', 0); +INSERT INTO `system_dict_data` VALUES (1417, 16, 'P 教育', '16', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:05:15', '1', '2023-10-28 23:05:15', 0); +INSERT INTO `system_dict_data` VALUES (1418, 17, 'Q 卫生和社会工作', '17', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:05:44', '1', '2023-10-28 23:05:44', 0); +INSERT INTO `system_dict_data` VALUES (1419, 18, 'R 文化、体育和娱乐业', '18', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:05:55', '1', '2023-10-28 23:05:55', 0); +INSERT INTO `system_dict_data` VALUES (1420, 19, 'S 公共管理、社会保障和社会组织', '19', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:06:05', '1', '2023-10-28 23:06:05', 0); +INSERT INTO `system_dict_data` VALUES (1421, 20, 'T 国际组织', '20', 'crm_customer_industry', 0, 'default', '', '', '1', '2023-10-28 23:06:15', '1', '2023-10-28 23:06:15', 0); +INSERT INTO `system_dict_data` VALUES (1422, 1, 'A (重点客户)', '1', 'crm_customer_level', 0, 'primary', '', '', '1', '2023-10-28 23:07:13', '1', '2023-10-28 23:07:13', 0); +INSERT INTO `system_dict_data` VALUES (1423, 2, 'B (普通客户)', '2', 'crm_customer_level', 0, 'info', '', '', '1', '2023-10-28 23:07:35', '1', '2023-10-28 23:07:35', 0); +INSERT INTO `system_dict_data` VALUES (1424, 3, 'C (非优先客户)', '3', 'crm_customer_level', 0, 'default', '', '', '1', '2023-10-28 23:07:53', '1', '2023-10-28 23:07:53', 0); +INSERT INTO `system_dict_data` VALUES (1425, 1, '促销', '1', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:08:29', '1', '2023-10-28 23:08:29', 0); +INSERT INTO `system_dict_data` VALUES (1426, 2, '搜索引擎', '2', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:08:39', '1', '2023-10-28 23:08:39', 0); +INSERT INTO `system_dict_data` VALUES (1427, 3, '广告', '3', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:08:47', '1', '2023-10-28 23:08:47', 0); +INSERT INTO `system_dict_data` VALUES (1428, 4, '转介绍', '4', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:08:58', '1', '2023-10-28 23:08:58', 0); +INSERT INTO `system_dict_data` VALUES (1429, 5, '线上注册', '5', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:09:12', '1', '2023-10-28 23:09:12', 0); +INSERT INTO `system_dict_data` VALUES (1430, 6, '线上咨询', '6', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:09:22', '1', '2023-10-28 23:09:22', 0); +INSERT INTO `system_dict_data` VALUES (1431, 7, '预约上门', '7', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:09:39', '1', '2023-10-28 23:09:39', 0); +INSERT INTO `system_dict_data` VALUES (1432, 8, '陌拜', '8', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:10:04', '1', '2023-10-28 23:10:04', 0); +INSERT INTO `system_dict_data` VALUES (1433, 9, '电话咨询', '9', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:10:18', '1', '2023-10-28 23:10:18', 0); +INSERT INTO `system_dict_data` VALUES (1434, 10, '邮件咨询', '10', 'crm_customer_source', 0, 'default', '', '', '1', '2023-10-28 23:10:33', '1', '2023-10-28 23:10:33', 0); +INSERT INTO `system_dict_data` VALUES (1435, 10, 'Gitee', '10', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:04:42', '1', '2023-11-04 13:04:42', 0); +INSERT INTO `system_dict_data` VALUES (1436, 20, '钉钉', '20', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:04:54', '1', '2023-11-04 13:04:54', 0); +INSERT INTO `system_dict_data` VALUES (1437, 30, '企业微信', '30', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:05:09', '1', '2023-11-04 13:05:09', 0); +INSERT INTO `system_dict_data` VALUES (1438, 31, '微信公众平台', '31', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:05:18', '1', '2023-11-04 13:05:18', 0); +INSERT INTO `system_dict_data` VALUES (1439, 32, '微信开放平台', '32', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:05:30', '1', '2023-11-04 13:05:30', 0); +INSERT INTO `system_dict_data` VALUES (1440, 34, '微信小程序', '34', 'system_social_type', 0, '', '', '', '1', '2023-11-04 13:05:38', '1', '2023-11-04 13:07:16', 0); +INSERT INTO `system_dict_data` VALUES (1441, 1, '上架', '1', 'crm_product_status', 0, 'success', '', '', '1', '2023-10-30 21:49:34', '1', '2023-10-30 21:49:34', 0); +INSERT INTO `system_dict_data` VALUES (1442, 0, '下架', '0', 'crm_product_status', 0, 'success', '', '', '1', '2023-10-30 21:49:13', '1', '2023-10-30 21:49:13', 0); +INSERT INTO `system_dict_data` VALUES (1443, 15, '子表', '15', 'infra_codegen_template_type', 0, 'default', '', '', '1', '2023-11-13 23:06:16', '1', '2023-11-13 23:06:16', 0); +INSERT INTO `system_dict_data` VALUES (1444, 10, '主表(标准模式)', '10', 'infra_codegen_template_type', 0, 'default', '', '', '1', '2023-11-14 12:32:49', '1', '2023-11-14 12:32:49', 0); +INSERT INTO `system_dict_data` VALUES (1445, 11, '主表(ERP 模式)', '11', 'infra_codegen_template_type', 0, 'default', '', '', '1', '2023-11-14 12:33:05', '1', '2023-11-14 12:33:05', 0); +INSERT INTO `system_dict_data` VALUES (1446, 12, '主表(内嵌模式)', '12', 'infra_codegen_template_type', 0, '', '', '', '1', '2023-11-14 12:33:31', '1', '2023-11-14 12:33:31', 0); +INSERT INTO `system_dict_data` VALUES (1447, 1, '负责人', '1', 'crm_permission_level', 0, 'default', '', '', '1', '2023-11-30 09:53:12', '1', '2023-11-30 09:53:12', 0); +INSERT INTO `system_dict_data` VALUES (1448, 2, '只读', '2', 'crm_permission_level', 0, '', '', '', '1', '2023-11-30 09:53:29', '1', '2023-11-30 09:53:29', 0); +INSERT INTO `system_dict_data` VALUES (1449, 3, '读写', '3', 'crm_permission_level', 0, '', '', '', '1', '2023-11-30 09:53:36', '1', '2023-11-30 09:53:36', 0); +INSERT INTO `system_dict_data` VALUES (1450, 0, '未提交', '0', 'crm_audit_status', 0, '', '', '', '1', '2023-11-30 18:56:59', '1', '2023-11-30 18:56:59', 0); +INSERT INTO `system_dict_data` VALUES (1451, 10, '审批中', '10', 'crm_audit_status', 0, '', '', '', '1', '2023-11-30 18:57:10', '1', '2023-11-30 18:57:10', 0); +INSERT INTO `system_dict_data` VALUES (1452, 20, '审核通过', '20', 'crm_audit_status', 0, '', '', '', '1', '2023-11-30 18:57:24', '1', '2023-11-30 18:57:24', 0); +INSERT INTO `system_dict_data` VALUES (1453, 30, '审核不通过', '30', 'crm_audit_status', 0, '', '', '', '1', '2023-11-30 18:57:32', '1', '2023-11-30 18:57:32', 0); +INSERT INTO `system_dict_data` VALUES (1454, 40, '已取消', '40', 'crm_audit_status', 0, '', '', '', '1', '2023-11-30 18:57:42', '1', '2023-11-30 18:57:42', 0); +INSERT INTO `system_dict_data` VALUES (1456, 1, '支票', '1', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:54:29', '1', '2023-10-18 21:54:29', 0); +INSERT INTO `system_dict_data` VALUES (1457, 2, '现金', '2', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:54:41', '1', '2023-10-18 21:54:41', 0); +INSERT INTO `system_dict_data` VALUES (1458, 3, '邮政汇款', '3', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:54:53', '1', '2023-10-18 21:54:53', 0); +INSERT INTO `system_dict_data` VALUES (1459, 4, '电汇', '4', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:55:07', '1', '2023-10-18 21:55:07', 0); +INSERT INTO `system_dict_data` VALUES (1460, 5, '网上转账', '5', 'crm_receivable_return_type', 0, 'default', '', '', '1', '2023-10-18 21:55:24', '1', '2023-10-18 21:55:24', 0); +INSERT INTO `system_dict_data` VALUES (1461, 1, '个', '1', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:02:26', '1', '2023-12-05 23:02:26', 0); +INSERT INTO `system_dict_data` VALUES (1462, 2, '块', '2', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:02:34', '1', '2023-12-05 23:02:34', 0); +INSERT INTO `system_dict_data` VALUES (1463, 3, '只', '3', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:02:57', '1', '2023-12-05 23:02:57', 0); +INSERT INTO `system_dict_data` VALUES (1464, 4, '把', '4', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:05', '1', '2023-12-05 23:03:05', 0); +INSERT INTO `system_dict_data` VALUES (1465, 5, '枚', '5', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:14', '1', '2023-12-05 23:03:14', 0); +INSERT INTO `system_dict_data` VALUES (1466, 6, '瓶', '6', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:20', '1', '2023-12-05 23:03:20', 0); +INSERT INTO `system_dict_data` VALUES (1467, 7, '盒', '7', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:30', '1', '2023-12-05 23:03:30', 0); +INSERT INTO `system_dict_data` VALUES (1468, 8, '台', '8', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:41', '1', '2023-12-05 23:03:41', 0); +INSERT INTO `system_dict_data` VALUES (1469, 9, '吨', '9', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:03:48', '1', '2023-12-05 23:03:48', 0); +INSERT INTO `system_dict_data` VALUES (1470, 10, '千克', '10', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:04:03', '1', '2023-12-05 23:04:03', 0); +INSERT INTO `system_dict_data` VALUES (1471, 11, '米', '11', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:04:12', '1', '2023-12-05 23:04:12', 0); +INSERT INTO `system_dict_data` VALUES (1472, 12, '箱', '12', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:04:25', '1', '2023-12-05 23:04:25', 0); +INSERT INTO `system_dict_data` VALUES (1473, 13, '套', '13', 'crm_product_unit', 0, '', '', '', '1', '2023-12-05 23:04:34', '1', '2023-12-05 23:04:34', 0); +INSERT INTO `system_dict_data` VALUES (1474, 1, '打电话', '1', 'crm_follow_up_type', 0, '', '', '', '1', '2024-01-15 20:48:20', '1', '2024-01-15 20:48:20', 0); +INSERT INTO `system_dict_data` VALUES (1475, 2, '发短信', '2', 'crm_follow_up_type', 0, '', '', '', '1', '2024-01-15 20:48:31', '1', '2024-01-15 20:48:31', 0); +INSERT INTO `system_dict_data` VALUES (1476, 3, '上门拜访', '3', 'crm_follow_up_type', 0, '', '', '', '1', '2024-01-15 20:49:07', '1', '2024-01-15 20:49:07', 0); +INSERT INTO `system_dict_data` VALUES (1477, 4, '微信沟通', '4', 'crm_follow_up_type', 0, '', '', '', '1', '2024-01-15 20:49:15', '1', '2024-01-15 20:49:15', 0); +INSERT INTO `system_dict_data` VALUES (1478, 4, '钱包余额', '4', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:37', '1', '2024-03-25 13:39:10', 0); +INSERT INTO `system_dict_data` VALUES (1479, 3, '银行卡', '3', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:28:21', '1', '2024-03-25 13:39:07', 0); +INSERT INTO `system_dict_data` VALUES (1480, 2, '微信余额', '2', 'pay_transfer_type', 0, 'info', '', '', '1', '2023-10-28 16:28:07', '1', '2024-03-25 13:39:04', 0); +INSERT INTO `system_dict_data` VALUES (1481, 1, '支付宝余额', '1', 'pay_transfer_type', 0, 'default', '', '', '1', '2023-10-28 16:27:44', '1', '2023-10-28 16:27:44', 0); +INSERT INTO `system_dict_data` VALUES (1482, 4, '转账失败', '30', 'pay_transfer_status', 0, 'warning', '', '', '1', '2023-10-28 16:24:16', '1', '2023-10-28 16:24:16', 0); +INSERT INTO `system_dict_data` VALUES (1483, 3, '转账成功', '20', 'pay_transfer_status', 0, 'success', '', '', '1', '2023-10-28 16:23:50', '1', '2023-10-28 16:23:50', 0); +INSERT INTO `system_dict_data` VALUES (1484, 2, '转账进行中', '10', 'pay_transfer_status', 0, 'info', '', '', '1', '2023-10-28 16:23:12', '1', '2023-10-28 16:23:12', 0); +INSERT INTO `system_dict_data` VALUES (1485, 1, '等待转账', '0', 'pay_transfer_status', 0, 'default', '', '', '1', '2023-10-28 16:21:43', '1', '2023-10-28 16:23:22', 0); +INSERT INTO `system_dict_data` VALUES (1486, 10, '其它入库', '10', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-05 18:07:25', '1', '2024-10-28 14:21:26', 1); +INSERT INTO `system_dict_data` VALUES (1487, 11, '其它入库(作废)', '11', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-05 18:08:07', '1', '2024-10-28 14:21:26', 1); +INSERT INTO `system_dict_data` VALUES (1488, 20, '其它出库', '20', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-05 18:08:51', '1', '2024-10-28 14:21:26', 1); +INSERT INTO `system_dict_data` VALUES (1489, 21, '其它出库(作废)', '21', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-05 18:09:00', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1490, 10, '未审核', '10', 'erp_audit_status', 0, 'default', '', '', '1', '2024-02-06 00:00:21', '1', '2024-10-28 14:21:34', 1); +INSERT INTO `system_dict_data` VALUES (1491, 20, '已审核', '20', 'erp_audit_status', 0, 'success', '', '', '1', '2024-02-06 00:00:35', '1', '2024-10-28 14:21:34', 1); +INSERT INTO `system_dict_data` VALUES (1492, 30, '调拨入库', '30', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-07 20:34:19', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1493, 31, '调拨入库(作废)', '31', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-07 20:34:29', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1494, 32, '调拨出库', '32', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-07 20:34:38', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1495, 33, '调拨出库(作废)', '33', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-07 20:34:49', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1496, 40, '盘盈入库', '40', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-08 08:53:00', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1497, 41, '盘盈入库(作废)', '41', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-08 08:53:39', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1498, 42, '盘亏出库', '42', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-08 08:54:16', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1499, 43, '盘亏出库(作废)', '43', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-08 08:54:31', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1500, 50, '销售出库', '50', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-11 21:47:25', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1501, 51, '销售出库(作废)', '51', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-11 21:47:37', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1502, 60, '销售退货入库', '60', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-12 06:51:05', '1', '2024-10-28 14:21:27', 1); +INSERT INTO `system_dict_data` VALUES (1503, 61, '销售退货入库(作废)', '61', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-12 06:51:18', '1', '2024-10-28 14:21:28', 1); +INSERT INTO `system_dict_data` VALUES (1504, 70, '采购入库', '70', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-16 13:10:02', '1', '2024-10-28 14:21:28', 1); +INSERT INTO `system_dict_data` VALUES (1505, 71, '采购入库(作废)', '71', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:10', '1', '2024-10-28 14:21:28', 1); +INSERT INTO `system_dict_data` VALUES (1506, 80, '采购退货出库', '80', 'erp_stock_record_biz_type', 0, '', '', '', '1', '2024-02-16 13:10:17', '1', '2024-10-28 14:21:28', 1); +INSERT INTO `system_dict_data` VALUES (1507, 81, '采购退货出库(作废)', '81', 'erp_stock_record_biz_type', 0, 'danger', '', '', '1', '2024-02-16 13:10:26', '1', '2024-10-28 14:21:28', 1); +INSERT INTO `system_dict_data` VALUES (1508, 3, '测试', 'test', 'erp_audit_status', 0, 'danger', '', '', '1', '2024-03-02 10:56:03', '1', '2024-03-02 10:55:57', 1); +INSERT INTO `system_dict_data` VALUES (1509, 0, '未知', '0', 'system_user_sex', 0, 'default', '', '', '1', '2024-06-26 09:31:30', '1', '2024-06-26 09:31:30', 0); +INSERT INTO `system_dict_data` VALUES (1510, 5, '回退', '5', 'bpm_process_instance_result', 0, 'warning', '', '流程实例的结果 - 回退', '1', '2024-08-23 09:44:53', '1', '2024-08-23 14:50:39', 0); +INSERT INTO `system_dict_data` VALUES (1511, 6, '驳回', '51', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 驳回', '1', '2024-08-23 09:46:44', '1', '2024-08-23 14:50:49', 0); +INSERT INTO `system_dict_data` VALUES (1512, 7, '流程被驳回', '52', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 流程被驳回(已结束)', '1', '2024-08-23 11:04:46', '1', '2024-08-23 11:06:32', 0); +INSERT INTO `system_dict_data` VALUES (1513, 1, '男', '1', 'test_sex', 0, 'primary', '', '', '1', '2024-09-09 14:04:41', '1', '2024-09-09 14:06:00', 1); +INSERT INTO `system_dict_data` VALUES (1514, 1, '男', '1', 'test_sex', 0, 'warning', '', '', '1', '2024-09-09 14:20:58', '1', '2024-09-09 14:20:58', 0); +INSERT INTO `system_dict_data` VALUES (1515, 2, '女', '2', 'test_sex', 0, 'success', '', '', '1', '2024-09-09 14:21:43', '1', '2024-09-09 14:21:43', 0); +INSERT INTO `system_dict_data` VALUES (1516, 0, '家用电器', '1', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:57:38', '1', '2024-09-10 09:57:38', 0); +INSERT INTO `system_dict_data` VALUES (1517, 1, '交通运输', '2', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:57:58', '1', '2024-09-10 09:57:58', 0); +INSERT INTO `system_dict_data` VALUES (1518, 2, '商务服务', '3', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:58:28', '1', '2024-09-10 09:58:28', 0); +INSERT INTO `system_dict_data` VALUES (1519, 3, '家居用品', '4', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:58:38', '1', '2024-09-10 09:58:38', 0); +INSERT INTO `system_dict_data` VALUES (1520, 4, '电工电气', '5', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:58:50', '1', '2024-09-10 09:58:50', 0); +INSERT INTO `system_dict_data` VALUES (1521, 5, '数码产品', '6', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:59:11', '1', '2024-09-10 09:59:31', 0); +INSERT INTO `system_dict_data` VALUES (1522, 6, '通信产品', '7', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 09:59:48', '1', '2024-09-10 09:59:48', 0); +INSERT INTO `system_dict_data` VALUES (1523, 7, '办公文教', '8', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 10:00:01', '1', '2024-09-10 10:00:01', 0); +INSERT INTO `system_dict_data` VALUES (1524, 8, '运动休闲', '9', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 10:00:15', '1', '2024-09-10 10:00:15', 0); +INSERT INTO `system_dict_data` VALUES (1525, 9, '传媒广电', '10', 'type_of_industry', 0, 'default', '', '', '1', '2024-09-10 10:00:27', '1', '2024-09-10 10:00:27', 0); +INSERT INTO `system_dict_data` VALUES (1526, 0, '了解产品', '1', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:01:14', '1', '2024-09-10 10:01:14', 0); +INSERT INTO `system_dict_data` VALUES (1527, 1, '正在跟进', '2', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:01:25', '1', '2024-09-10 10:01:25', 0); +INSERT INTO `system_dict_data` VALUES (1528, 2, '正在试用', '3', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:01:40', '1', '2024-09-10 10:01:40', 0); +INSERT INTO `system_dict_data` VALUES (1529, 3, '准备购买', '4', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:01:50', '1', '2024-09-10 10:01:50', 0); +INSERT INTO `system_dict_data` VALUES (1530, 4, '准备付款', '5', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:02:00', '1', '2024-09-10 10:02:00', 0); +INSERT INTO `system_dict_data` VALUES (1531, 5, '已经购买', '6', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:02:13', '1', '2024-09-10 10:02:13', 0); +INSERT INTO `system_dict_data` VALUES (1532, 6, '暂时搁置', '7', 'customer_status', 0, 'default', '', '', '1', '2024-09-10 10:02:25', '1', '2024-09-10 10:02:25', 0); +INSERT INTO `system_dict_data` VALUES (1533, 0, '市场与销售总监', '1', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:45:55', '1', '2024-09-11 09:45:55', 0); +INSERT INTO `system_dict_data` VALUES (1534, 1, '销售经理', '2', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:46:06', '1', '2024-09-11 09:46:06', 0); +INSERT INTO `system_dict_data` VALUES (1535, 2, '渠道发展经理', '3', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:46:17', '1', '2024-09-11 09:46:17', 0); +INSERT INTO `system_dict_data` VALUES (1536, 3, '售前技术支持经理', '4', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:46:31', '1', '2024-09-11 09:46:31', 0); +INSERT INTO `system_dict_data` VALUES (1537, 4, '总经理', '5', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:46:47', '1', '2024-09-11 09:46:47', 0); +INSERT INTO `system_dict_data` VALUES (1538, 5, '普通员工', '6', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:47:02', '1', '2024-09-11 09:47:02', 0); +INSERT INTO `system_dict_data` VALUES (1539, 6, '财务', '7', 'current_title', 0, 'default', '', '', '1', '2024-09-11 09:47:17', '1', '2024-09-11 09:47:17', 0); +INSERT INTO `system_dict_data` VALUES (1540, 1, 'app', '1', 'order_source', 0, 'default', '', '', '1', '2024-09-13 14:29:28', '1', '2024-09-13 14:29:28', 0); +INSERT INTO `system_dict_data` VALUES (1541, 2, '小程序', '2', 'order_source', 0, 'default', '', '', '1', '2024-09-13 14:29:42', '1', '2024-09-13 14:29:42', 0); +INSERT INTO `system_dict_data` VALUES (1542, 3, 'web', '3', 'order_source', 0, 'default', '', '', '1', '2024-09-13 14:29:55', '1', '2024-09-13 14:29:55', 0); +INSERT INTO `system_dict_data` VALUES (1543, 1, '普通订单', '1', 'order_type', 0, 'default', '', '', '1', '2024-09-13 14:30:59', '1', '2024-09-13 14:30:59', 0); +INSERT INTO `system_dict_data` VALUES (1544, 2, '加急订单', '2', 'order_type', 0, 'default', '', '', '1', '2024-09-13 14:31:25', '1', '2024-09-13 14:31:25', 0); +INSERT INTO `system_dict_data` VALUES (1545, 1, '已发货', '1', 'order_status', 0, 'success', '', '', '1', '2024-09-13 14:33:29', '1', '2024-09-13 14:33:29', 0); +INSERT INTO `system_dict_data` VALUES (1546, 2, '待发货', '2', 'order_status', 0, 'default', '', '', '1', '2024-09-13 14:33:45', '1', '2024-09-13 14:33:45', 0); +INSERT INTO `system_dict_data` VALUES (1547, 3, '待评价', '3', 'order_status', 0, 'default', '', '', '1', '2024-09-13 14:34:08', '1', '2024-09-13 14:34:08', 0); +INSERT INTO `system_dict_data` VALUES (1548, 1, '微信', '1', 'mode_payment', 0, 'default', '', '', '1', '2024-09-13 14:34:56', '1', '2024-09-13 14:34:56', 0); +INSERT INTO `system_dict_data` VALUES (1549, 2, '支付宝', '2', 'mode_payment', 0, 'default', '', '', '1', '2024-09-13 14:35:10', '1', '2024-09-13 14:35:10', 0); +INSERT INTO `system_dict_data` VALUES (1550, 3, '银行卡', '3', 'mode_payment', 0, 'default', '', '', '1', '2024-09-13 14:35:24', '1', '2024-09-13 14:35:24', 0); +INSERT INTO `system_dict_data` VALUES (1551, 4, '其他', '4', 'mode_payment', 0, 'default', '', '', '1', '2024-09-13 14:36:00', '1', '2024-09-13 14:36:00', 0); +INSERT INTO `system_dict_data` VALUES (1552, 1, '顺丰快递', '1', 'mode_distribution', 0, 'default', '', '', '1', '2024-09-13 14:37:31', '1', '2024-09-13 14:37:31', 0); +INSERT INTO `system_dict_data` VALUES (1553, 2, '自营配送', '2', 'mode_distribution', 0, 'default', '', '', '1', '2024-09-13 14:39:51', '1', '2024-09-13 14:39:51', 0); +INSERT INTO `system_dict_data` VALUES (1554, 3, '申通快递', '3', 'mode_distribution', 0, 'default', '', '', '1', '2024-09-13 14:42:02', '1', '2024-09-13 14:42:02', 0); +INSERT INTO `system_dict_data` VALUES (1555, 1, '已支付', '1', 'payment_status', 0, 'default', '', '', '1', '2024-09-18 16:23:27', '1', '2024-09-18 16:23:27', 0); +INSERT INTO `system_dict_data` VALUES (1556, 2, '未支付', '2', 'payment_status', 0, 'default', '', '', '1', '2024-09-18 16:23:38', '1', '2024-09-18 16:23:38', 0); +INSERT INTO `system_dict_data` VALUES (1557, 3, '已退款', '3', 'payment_status', 0, 'default', '', '', '1', '2024-09-18 16:23:51', '1', '2024-09-18 16:23:51', 0); +INSERT INTO `system_dict_data` VALUES (1558, 1, '已发货', '1', 'delivery_status', 0, 'default', '', '', '1', '2024-09-18 16:24:57', '1', '2024-09-18 16:24:57', 0); +INSERT INTO `system_dict_data` VALUES (1559, 1, '未发货', '2', 'delivery_status', 0, 'default', '', '', '1', '2024-09-18 16:25:09', '1', '2024-09-18 16:25:09', 0); +INSERT INTO `system_dict_data` VALUES (1560, 1, '电子普通发票', '1', 'Invoice_type', 0, 'default', '', '', '1', '2024-09-19 11:07:24', '1', '2024-09-19 11:07:24', 0); +INSERT INTO `system_dict_data` VALUES (1561, 2, '增值税专用发票', '2', 'Invoice_type', 0, 'default', '', '', '1', '2024-09-19 11:07:47', '1', '2024-09-19 11:07:47', 0); +INSERT INTO `system_dict_data` VALUES (1562, 1, '一星客户', '1', 'customer_star', 0, 'default', '', '', '1', '2024-09-24 09:39:12', '1', '2024-09-24 09:39:12', 0); +INSERT INTO `system_dict_data` VALUES (1563, 2, '二星客户', '2', 'customer_star', 0, 'default', '', '', '1', '2024-09-24 09:39:25', '1', '2024-09-24 09:39:25', 0); +INSERT INTO `system_dict_data` VALUES (1564, 3, '三星客户', '3', 'customer_star', 0, 'default', '', '', '1', '2024-09-24 09:39:36', '1', '2024-09-24 09:39:36', 0); +INSERT INTO `system_dict_data` VALUES (1565, 4, '四星客户', '4', 'customer_star', 0, 'default', '', '', '1', '2024-09-24 09:39:46', '1', '2024-09-24 09:39:46', 0); +INSERT INTO `system_dict_data` VALUES (1566, 5, '五星客户', '5', 'customer_star', 0, 'default', '', '', '1', '2024-09-24 09:39:56', '1', '2024-09-24 09:39:56', 0); +INSERT INTO `system_dict_data` VALUES (1567, 1, '已完成', '1', 'type', 0, 'success', '', '', '1', '2024-09-24 14:52:22', '1', '2024-09-24 14:52:22', 0); +INSERT INTO `system_dict_data` VALUES (1568, 2, '未完成', '2', 'type', 0, 'danger', '', '', '1', '2024-09-24 14:52:45', '1', '2024-09-24 14:52:45', 0); +INSERT INTO `system_dict_data` VALUES (1569, 1, '正在跟进', '1', 'khzt', 0, 'primary', '', '', '1', '2024-09-24 17:08:14', '1', '2024-09-24 17:08:14', 0); +INSERT INTO `system_dict_data` VALUES (1570, 1, '启用', '1', 'tree_grid_status', 0, 'default', '', '', '1', '2024-09-25 09:34:29', '1', '2024-09-25 09:34:29', 0); +INSERT INTO `system_dict_data` VALUES (1571, 2, '关闭', '2', 'tree_grid_status', 0, 'default', '', '', '1', '2024-09-25 09:34:39', '1', '2024-09-25 09:34:39', 0); +INSERT INTO `system_dict_data` VALUES (1572, 1, '已通过', '1', 'gjxqy_flbq_spzt', 0, 'default', '', '', '1', '2024-09-29 13:53:06', '1', '2024-09-29 13:53:06', 0); +INSERT INTO `system_dict_data` VALUES (1573, 2, '未通过', '2', 'gjxqy_flbq_spzt', 0, 'default', '', '', '1', '2024-09-29 13:53:18', '1', '2024-09-29 13:53:18', 0); +INSERT INTO `system_dict_data` VALUES (1574, 1, '全部消息', '1', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:36:50', '1', '2024-09-30 14:36:50', 0); +INSERT INTO `system_dict_data` VALUES (1575, 2, '服务消息', '2', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:37:02', '1', '2024-09-30 14:37:02', 0); +INSERT INTO `system_dict_data` VALUES (1576, 3, '活动消息', '3', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:37:17', '1', '2024-09-30 14:37:17', 0); +INSERT INTO `system_dict_data` VALUES (1577, 4, '产品消息', '4', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:37:29', '1', '2024-09-30 14:37:29', 0); +INSERT INTO `system_dict_data` VALUES (1578, 5, '安全消息', '5', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:37:47', '1', '2024-09-30 14:37:47', 0); +INSERT INTO `system_dict_data` VALUES (1579, 6, '故障消息', '6', 'grzx_xttz_lx', 0, 'default', '', '', '1', '2024-09-30 14:37:58', '1', '2024-09-30 14:37:58', 0); +INSERT INTO `system_dict_data` VALUES (1580, 1, '已读', '1', 'grzx_xttz_zt', 0, 'default', '', '', '1', '2024-09-30 14:42:15', '1', '2024-09-30 14:42:15', 0); +INSERT INTO `system_dict_data` VALUES (1581, 2, '未读', '2', 'grzx_xttz_zt', 0, 'default', '', '', '1', '2024-09-30 14:42:28', '1', '2024-09-30 14:42:28', 0); +INSERT INTO `system_dict_data` VALUES (1582, 1, '待付款', '1', 'ddgl-zt', 0, 'default', '', '', '1', '2024-10-10 15:15:32', '1', '2024-10-10 15:15:32', 0); +INSERT INTO `system_dict_data` VALUES (1583, 2, '待发货', '2', 'ddgl-zt', 0, 'default', '', '', '1', '2024-10-10 15:15:48', '1', '2024-10-10 15:15:48', 0); +INSERT INTO `system_dict_data` VALUES (1584, 3, '已发货', '3', 'ddgl-zt', 0, 'default', '', '', '1', '2024-10-10 15:16:04', '1', '2024-10-10 15:16:04', 0); +INSERT INTO `system_dict_data` VALUES (1585, 4, '已完成', '4', 'ddgl-zt', 0, 'success', '', '', '1', '2024-10-10 15:16:26', '1', '2024-10-10 15:16:26', 0); +INSERT INTO `system_dict_data` VALUES (1586, 5, '已关闭', '5', 'ddgl-zt', 0, 'default', '', '', '1', '2024-10-10 15:16:42', '1', '2024-10-10 15:16:42', 0); +INSERT INTO `system_dict_data` VALUES (1587, 1, '未支付', '1', 'ddgl-zffs', 0, 'default', '', '', '1', '2024-10-10 15:21:19', '1', '2024-10-10 15:21:19', 0); +INSERT INTO `system_dict_data` VALUES (1588, 2, '已支付', '2', 'ddgl-zffs', 0, 'default', '', '', '1', '2024-10-10 15:21:32', '1', '2024-10-10 15:21:32', 0); +INSERT INTO `system_dict_data` VALUES (1589, 1, '普通订单', '1', 'ddgl-ddlx', 0, 'default', '', '', '1', '2024-10-10 15:23:57', '1', '2024-10-10 15:23:57', 0); +INSERT INTO `system_dict_data` VALUES (1590, 2, '秒杀订单', '2', 'ddgl-ddlx', 0, 'default', '', '', '1', '2024-10-10 15:24:13', '1', '2024-10-10 15:24:13', 0); +INSERT INTO `system_dict_data` VALUES (1591, 3, '拼团订单', '3', 'ddgl-ddlx', 0, 'default', '', '', '1', '2024-10-10 15:24:38', '1', '2024-10-10 15:24:38', 0); +INSERT INTO `system_dict_data` VALUES (1592, 4, '其他订单', '4', 'ddgl-ddlx', 0, 'default', '', '', '1', '2024-10-10 15:24:54', '1', '2024-10-10 15:24:54', 0); +INSERT INTO `system_dict_data` VALUES (1593, 1, '普通工单', '1', 'gdlx', 0, 'default', '', '', '1', '2024-10-11 14:10:47', '1', '2024-10-11 14:10:47', 0); +INSERT INTO `system_dict_data` VALUES (1594, 2, '售后工单', '2', 'gdlx', 0, 'default', '', '', '1', '2024-10-11 14:11:03', '1', '2024-10-11 14:11:03', 0); +INSERT INTO `system_dict_data` VALUES (1595, 3, '维修工单', '3', 'gdlx', 0, 'default', '', '', '1', '2024-10-11 14:11:18', '1', '2024-10-11 14:11:18', 0); +INSERT INTO `system_dict_data` VALUES (1596, 1, '待处理', '1', 'gdzt', 0, 'default', '', '', '1', '2024-10-11 14:12:10', '1', '2024-10-11 14:12:10', 0); +INSERT INTO `system_dict_data` VALUES (1597, 2, '已完结', '2', 'gdzt', 0, 'default', '', '', '1', '2024-10-11 14:12:37', '1', '2024-10-11 14:12:37', 0); +INSERT INTO `system_dict_data` VALUES (1598, 3, '已退回', '3', 'gdzt', 0, 'default', '', '', '1', '2024-10-11 14:12:52', '1', '2024-10-11 14:12:52', 0); +INSERT INTO `system_dict_data` VALUES (1599, 4, '已撤销', '4', 'gdzt', 0, 'default', '', '', '1', '2024-10-11 14:13:08', '1', '2024-10-11 14:13:08', 0); +INSERT INTO `system_dict_data` VALUES (1600, 1, '重要', '1', 'jycd', 0, 'default', '', '', '1', '2024-10-11 14:13:45', '1', '2024-10-11 14:13:45', 0); +INSERT INTO `system_dict_data` VALUES (1601, 2, '紧急', '2', 'jycd', 0, 'default', '', '', '1', '2024-10-11 14:13:59', '1', '2024-10-11 14:13:59', 0); +INSERT INTO `system_dict_data` VALUES (1602, 3, '普通', '3', 'jycd', 0, 'default', '', '', '1', '2024-10-11 14:14:25', '1', '2024-10-11 14:14:25', 0); +INSERT INTO `system_dict_data` VALUES (1603, 4, '较低', '4', 'jycd', 0, 'default', '', '', '1', '2024-10-11 14:14:41', '1', '2024-10-11 14:14:41', 0); +INSERT INTO `system_dict_data` VALUES (1604, 1, '1小时', '1', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:18:21', '1', '2024-10-11 14:18:21', 0); +INSERT INTO `system_dict_data` VALUES (1605, 2, '2小时', '2', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:18:31', '1', '2024-10-11 14:18:31', 0); +INSERT INTO `system_dict_data` VALUES (1606, 3, '4小时', '3', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:18:47', '1', '2024-10-11 14:18:47', 0); +INSERT INTO `system_dict_data` VALUES (1607, 4, '8小时', '4', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:18:59', '1', '2024-10-11 14:18:59', 0); +INSERT INTO `system_dict_data` VALUES (1608, 5, '12小时', '5', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:19:16', '1', '2024-10-11 14:19:16', 0); +INSERT INTO `system_dict_data` VALUES (1609, 6, '24小时', '6', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:19:32', '1', '2024-10-11 14:19:32', 0); +INSERT INTO `system_dict_data` VALUES (1610, 7, '3天', '7', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:19:53', '1', '2024-10-11 14:19:53', 0); +INSERT INTO `system_dict_data` VALUES (1611, 8, '7天', '8', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:20:06', '1', '2024-10-11 14:20:06', 0); +INSERT INTO `system_dict_data` VALUES (1612, 9, '7天以上', '9', 'ddsc', 0, 'default', '', '', '1', '2024-10-11 14:20:23', '1', '2024-10-11 14:20:23', 0); +INSERT INTO `system_dict_data` VALUES (1613, 1, '深圳木卫二科技有限公司', '1', 'xx', 0, 'default', '', '选项一', '1', '2024-10-11 14:31:36', '1', '2024-10-12 15:42:59', 0); +INSERT INTO `system_dict_data` VALUES (1614, 2, '选项二', '2', 'xx', 0, 'default', '', '选项二', '1', '2024-10-11 14:31:56', '1', '2024-10-11 14:31:56', 0); +INSERT INTO `system_dict_data` VALUES (1615, 3, '选项三', '3', 'xx', 0, 'default', '', '选项三', '1', '2024-10-11 14:32:16', '1', '2024-10-11 14:32:16', 0); +INSERT INTO `system_dict_data` VALUES (1616, 4, '选项四', '4', 'xx', 0, 'default', '', '选项四', '1', '2024-10-11 14:32:34', '1', '2024-10-11 14:32:34', 0); +INSERT INTO `system_dict_data` VALUES (1617, 5, '选项五', '5', 'xx', 0, 'default', '', '选项五', '1', '2024-10-11 14:32:54', '1', '2024-10-11 14:32:54', 0); +INSERT INTO `system_dict_data` VALUES (1618, 1, '普通会员', '1', 'user_management-level', 0, 'default', '', '', '1', '2024-10-12 16:34:01', '1', '2024-10-12 16:34:01', 0); +INSERT INTO `system_dict_data` VALUES (1619, 2, '黄金会员', '2', 'user_management-level', 0, 'default', '', '', '1', '2024-10-12 16:34:23', '1', '2024-10-12 16:34:23', 0); +INSERT INTO `system_dict_data` VALUES (1620, 3, '白金会员', '3', 'user_management-level', 0, 'default', '', '', '1', '2024-10-12 16:34:45', '1', '2024-10-12 16:34:45', 0); +INSERT INTO `system_dict_data` VALUES (1621, 4, '钻石会员', '4', 'user_management-level', 0, 'default', '', '', '1', '2024-10-12 16:35:09', '1', '2024-10-12 16:35:09', 0); +INSERT INTO `system_dict_data` VALUES (1622, 1, '用户标签一', '1', 'user_management_label', 0, 'default', '', '', '1', '2024-10-12 16:37:19', '1', '2024-10-12 16:37:19', 0); +INSERT INTO `system_dict_data` VALUES (1623, 2, '用户标签二', '2', 'user_management_label', 0, 'default', '', '', '1', '2024-10-12 16:37:29', '1', '2024-10-12 16:37:29', 0); +INSERT INTO `system_dict_data` VALUES (1624, 3, '用户标签三', '3', 'user_management_label', 0, 'default', '', '', '1', '2024-10-12 16:37:55', '1', '2024-10-12 16:37:55', 0); +INSERT INTO `system_dict_data` VALUES (1625, 4, '用户标签四', '4', 'user_management_label', 0, 'default', '', '', '1', '2024-10-12 16:38:04', '1', '2024-10-12 16:38:04', 0); +INSERT INTO `system_dict_data` VALUES (1626, 5, '用户标签五', '5', 'user_management_label', 0, 'default', '', '', '1', '2024-10-12 16:38:15', '1', '2024-10-12 16:38:15', 0); +INSERT INTO `system_dict_data` VALUES (1627, 1, 'APP', '1', 'user_management_registration_channel', 0, 'default', '', '', '1', '2024-10-12 16:39:10', '1', '2024-10-12 16:39:10', 0); +INSERT INTO `system_dict_data` VALUES (1628, 2, '网站', '2', 'user_management_registration_channel', 0, 'default', '', '', '1', '2024-10-12 16:39:20', '1', '2024-10-12 16:39:20', 0); +INSERT INTO `system_dict_data` VALUES (1629, 3, '小程序', '3', 'user_management_registration_channel', 0, 'default', '', '', '1', '2024-10-12 16:39:30', '1', '2024-10-12 16:39:30', 0); +INSERT INTO `system_dict_data` VALUES (1630, 4, '其它渠道', '4', 'user_management_registration_channel', 0, 'default', '', '', '1', '2024-10-12 16:39:44', '1', '2024-10-12 16:39:44', 0); +INSERT INTO `system_dict_data` VALUES (1631, 1, '正常', '1', 'user_management_type', 0, 'default', '', '', '1', '2024-10-12 16:46:54', '1', '2024-10-12 16:46:54', 0); +INSERT INTO `system_dict_data` VALUES (1632, 2, '异常', '2', 'user_management_type', 0, 'default', '', '', '1', '2024-10-12 16:47:02', '1', '2024-10-12 17:03:05', 0); +INSERT INTO `system_dict_data` VALUES (1633, 1, '启用', '1', 'bmgl_zt', 0, 'default', '', '', '1', '2024-10-15 10:14:42', '1', '2024-10-15 10:25:37', 1); +INSERT INTO `system_dict_data` VALUES (1634, 0, '禁用', '0', 'bmgl_zt', 0, 'default', '', '', '1', '2024-10-15 10:15:06', '1', '2024-10-15 10:25:35', 1); +INSERT INTO `system_dict_data` VALUES (1635, 1, '启用', '1', 'bmzt', 0, 'default', '', '', '1', '2024-10-15 11:24:03', '1', '2024-10-15 11:24:03', 0); +INSERT INTO `system_dict_data` VALUES (1636, 2, '禁用', '2', 'bmzt', 0, 'default', '', '', '1', '2024-10-15 11:24:20', '1', '2024-10-15 11:27:59', 0); +INSERT INTO `system_dict_data` VALUES (1637, 0, '男生', '男', 'lin_sex', 0, 'primary', '', '', '1', '2024-10-15 14:03:46', '1', '2024-10-15 14:03:46', 0); +INSERT INTO `system_dict_data` VALUES (1638, 0, '女生', '女', 'lin_sex', 0, 'info', '', '', '1', '2024-10-15 14:04:28', '1', '2024-10-15 14:13:36', 0); +INSERT INTO `system_dict_data` VALUES (1639, 1, '修改资料', '1', 'user_management_czlx', 0, 'default', '', '', '1', '2024-10-15 16:20:53', '1', '2024-10-15 16:20:53', 0); +INSERT INTO `system_dict_data` VALUES (1640, 2, '设置状态', '2', 'user_management_czlx', 0, 'default', '', '', '1', '2024-10-15 16:21:04', '1', '2024-10-15 16:21:04', 0); +INSERT INTO `system_dict_data` VALUES (1641, 3, '重置密码', '3', 'user_management_czlx', 0, 'default', '', '', '1', '2024-10-15 16:21:16', '1', '2024-10-15 16:21:16', 0); +INSERT INTO `system_dict_data` VALUES (1642, 1, '启用', '1', 'zhzt', 0, 'default', '', '', '1', '2024-10-15 17:39:53', '1', '2024-10-15 17:39:53', 0); +INSERT INTO `system_dict_data` VALUES (1643, 2, '禁用', '2', 'zhzt', 0, 'default', '', '', '1', '2024-10-15 17:40:02', '1', '2024-10-15 17:40:02', 0); +INSERT INTO `system_dict_data` VALUES (1644, 1, '在线', '1', 'xzt', 0, 'default', '', '', '1', '2024-10-15 17:40:28', '1', '2024-10-15 17:40:28', 0); +INSERT INTO `system_dict_data` VALUES (1645, 2, '离线', '2', 'xzt', 0, 'default', '', '', '1', '2024-10-15 17:40:46', '1', '2024-10-15 17:40:46', 0); +INSERT INTO `system_dict_data` VALUES (1646, 1, '在线', '1', 'zxzt', 0, 'default', '', '', '1', '2024-10-15 17:55:35', '1', '2024-10-15 17:55:35', 0); +INSERT INTO `system_dict_data` VALUES (1647, 2, '离线', '2', 'zxzt', 0, 'default', '', '', '1', '2024-10-15 17:56:09', '1', '2024-10-15 17:56:09', 0); +INSERT INTO `system_dict_data` VALUES (1648, 1, 'WEB端', '1', 'ygxq_zdlx', 0, 'default', '', '', '1', '2024-10-17 10:20:13', '1', '2024-10-17 10:20:13', 0); +INSERT INTO `system_dict_data` VALUES (1649, 2, 'APP端', '2', 'ygxq_zdlx', 0, 'default', '', '', '1', '2024-10-17 10:20:30', '1', '2024-10-17 10:20:30', 0); +INSERT INTO `system_dict_data` VALUES (1650, 1, '修改状态', '1', 'ygxq_czzt', 0, 'default', '', '', '1', '2024-10-17 10:56:38', '1', '2024-10-17 10:56:38', 0); +INSERT INTO `system_dict_data` VALUES (1651, 2, '修改部门', '2', 'ygxq_czzt', 0, 'default', '', '', '1', '2024-10-17 10:56:51', '1', '2024-10-17 10:56:51', 0); +INSERT INTO `system_dict_data` VALUES (1652, 3, '修改职务', '3', 'ygxq_czzt', 0, 'default', '', '', '1', '2024-10-17 10:57:04', '1', '2024-10-17 10:57:04', 0); +INSERT INTO `system_dict_data` VALUES (1653, 1, '准时提醒', '1', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:25:44', '1', '2024-10-18 10:25:44', 0); +INSERT INTO `system_dict_data` VALUES (1654, 2, '提前5分钟', '2', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:25:55', '1', '2024-10-18 10:25:55', 0); +INSERT INTO `system_dict_data` VALUES (1655, 3, '提前15分钟', '3', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:26:06', '1', '2024-10-18 10:26:06', 0); +INSERT INTO `system_dict_data` VALUES (1656, 4, '提前30分钟', '4', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:26:18', '1', '2024-10-18 10:26:18', 0); +INSERT INTO `system_dict_data` VALUES (1657, 5, '提前1小时', '5', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:26:29', '1', '2024-10-18 10:26:29', 0); +INSERT INTO `system_dict_data` VALUES (1658, 6, '提前2小时', '6', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:26:42', '1', '2024-10-18 10:26:42', 0); +INSERT INTO `system_dict_data` VALUES (1659, 7, '提前1天', '7', 'rwgl_rwtx', 0, 'default', '', '', '1', '2024-10-18 10:26:54', '1', '2024-10-18 10:26:54', 0); +INSERT INTO `system_dict_data` VALUES (1660, 1, '重要', '1', 'rwgl_jycd', 0, 'default', '', '', '1', '2024-10-18 10:27:51', '1', '2024-10-18 10:27:51', 0); +INSERT INTO `system_dict_data` VALUES (1661, 2, '紧急', '2', 'rwgl_jycd', 0, 'default', '', '', '1', '2024-10-18 10:28:02', '1', '2024-10-18 10:28:02', 0); +INSERT INTO `system_dict_data` VALUES (1662, 3, '普通', '3', 'rwgl_jycd', 0, 'default', '', '', '1', '2024-10-18 10:28:13', '1', '2024-10-18 10:28:13', 0); +INSERT INTO `system_dict_data` VALUES (1663, 4, '较低', '4', 'rwgl_jycd', 0, 'default', '', '', '1', '2024-10-18 10:28:28', '1', '2024-10-18 10:28:28', 0); +INSERT INTO `system_dict_data` VALUES (1664, 1, '进行中', '1', 'rwgl_zt', 0, 'default', '', '', '1', '2024-10-18 10:31:09', '1', '2024-10-18 10:31:09', 0); +INSERT INTO `system_dict_data` VALUES (1665, 2, '已完成', '2', 'rwgl_zt', 0, 'default', '', '', '1', '2024-10-18 10:31:17', '1', '2024-10-18 10:31:17', 0); +INSERT INTO `system_dict_data` VALUES (1666, 3, '未完成', '3', 'rwgl_zt', 0, 'default', '', '', '1', '2024-10-18 10:31:25', '1', '2024-10-18 10:31:25', 0); +INSERT INTO `system_dict_data` VALUES (1667, 1, '系统消息', '1', 'rwgl_txfs', 0, 'default', '', '', '1', '2024-10-18 14:59:53', '1', '2024-10-18 14:59:53', 0); +INSERT INTO `system_dict_data` VALUES (1668, 2, '邮件通知', '2', 'rwgl_txfs', 0, 'default', '', '', '1', '2024-10-18 15:00:03', '1', '2024-10-18 15:00:03', 0); +INSERT INTO `system_dict_data` VALUES (1669, 3, '短信通知', '3', 'rwgl_txfs', 0, 'default', '', '', '1', '2024-10-18 15:00:14', '1', '2024-10-18 15:00:14', 0); +INSERT INTO `system_dict_data` VALUES (1670, 1, '更新至已发布状态', '1', 'tddt_sjlx', 0, 'default', '', '', '1', '2024-11-02 11:44:14', '1', '2024-11-02 11:44:14', 0); +INSERT INTO `system_dict_data` VALUES (1671, 2, '指派了新的工作任务', '2', 'tddt_sjlx', 0, 'default', '', '', '1', '2024-11-02 11:44:34', '1', '2024-11-02 11:44:34', 0); +INSERT INTO `system_dict_data` VALUES (1672, 1, ' 全部联系人', '1', 'lxrgl_xbss', 0, 'default', '', '', '1', '2024-11-02 16:11:37', '1', '2024-11-02 16:35:13', 0); +INSERT INTO `system_dict_data` VALUES (1673, 2, '星标联系人', '2', 'lxrgl_xbss', 0, 'default', '', '', '1', '2024-11-02 16:11:47', '1', '2024-11-02 16:11:47', 0); +INSERT INTO `system_dict_data` VALUES (1674, 1, '工作周报', '1', 'bglx', 0, 'default', '', '', '1', '2024-11-04 11:23:59', '1', '2024-11-04 11:23:59', 0); +INSERT INTO `system_dict_data` VALUES (1675, 2, '工作日报', '2', 'bglx', 0, 'default', '', '', '1', '2024-11-04 11:24:15', '1', '2024-11-04 11:24:15', 0); +INSERT INTO `system_dict_data` VALUES (1676, 3, '工作月报', '3', 'bglx', 0, 'default', '', '', '1', '2024-11-04 11:24:30', '1', '2024-11-04 11:24:30', 0); +INSERT INTO `system_dict_data` VALUES (1677, 0, '未批阅', '0', 'pyzt', 0, 'default', '', '', '1', '2024-11-04 11:25:44', '1', '2024-11-04 11:25:44', 0); +INSERT INTO `system_dict_data` VALUES (1678, 1, '已批阅', '1', 'pyzt', 0, 'default', '', '', '1', '2024-11-04 11:25:56', '1', '2024-11-04 11:25:56', 0); +INSERT INTO `system_dict_data` VALUES (1679, 0, '客户', '0', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:50:17', '1', '2024-11-06 15:50:17', 0); +INSERT INTO `system_dict_data` VALUES (1680, 1, '商机', '1', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:50:31', '1', '2024-11-06 15:50:31', 0); +INSERT INTO `system_dict_data` VALUES (1681, 2, '订单', '2', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:50:46', '1', '2024-11-06 15:50:46', 0); +INSERT INTO `system_dict_data` VALUES (1682, 3, '财务', '3', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:50:59', '1', '2024-11-06 15:50:59', 0); +INSERT INTO `system_dict_data` VALUES (1683, 4, '报表', '4', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:51:16', '1', '2024-11-06 15:51:16', 0); +INSERT INTO `system_dict_data` VALUES (1684, 5, '工单', '5', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:51:45', '1', '2024-11-06 15:51:45', 0); +INSERT INTO `system_dict_data` VALUES (1685, 6, '办公', '6', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:52:03', '1', '2024-11-06 15:52:03', 0); +INSERT INTO `system_dict_data` VALUES (1686, 7, '营销', '7', 'rzgl_ssmk', 0, 'default', '', '', '1', '2024-11-06 15:52:23', '1', '2024-11-06 15:52:23', 0); +INSERT INTO `system_dict_data` VALUES (1687, 0, '新建', '0', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:53:37', '1', '2024-11-06 15:53:37', 0); +INSERT INTO `system_dict_data` VALUES (1688, 1, '编辑', '1', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:53:47', '1', '2024-11-06 15:53:47', 0); +INSERT INTO `system_dict_data` VALUES (1689, 2, '删除', '2', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:54:09', '1', '2024-11-06 15:54:09', 0); +INSERT INTO `system_dict_data` VALUES (1690, 3, '处理', '3', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:54:27', '1', '2024-11-06 15:54:27', 0); +INSERT INTO `system_dict_data` VALUES (1691, 4, '通过', '4', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:54:42', '1', '2024-11-06 15:54:42', 0); +INSERT INTO `system_dict_data` VALUES (1692, 5, '撤销', '5', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:55:07', '1', '2024-11-06 15:55:07', 0); +INSERT INTO `system_dict_data` VALUES (1693, 6, '导入', '6', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:55:19', '1', '2024-11-06 15:55:19', 0); +INSERT INTO `system_dict_data` VALUES (1694, 7, '导出', '7', 'rzgl_czlx', 0, 'default', '', '', '1', '2024-11-06 15:55:43', '1', '2024-11-06 15:55:43', 0); +INSERT INTO `system_dict_data` VALUES (1695, 0, '订单', '0', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:22:55', '1', '2024-11-07 09:22:55', 0); +INSERT INTO `system_dict_data` VALUES (1696, 1, '回款', '1', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:23:21', '1', '2024-11-07 09:23:21', 0); +INSERT INTO `system_dict_data` VALUES (1697, 2, '退款', '2', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:23:35', '1', '2024-11-07 09:23:35', 0); +INSERT INTO `system_dict_data` VALUES (1698, 3, ' 报销', '3', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:23:56', '1', '2024-11-07 09:23:56', 0); +INSERT INTO `system_dict_data` VALUES (1699, 4, '请假', '4', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:24:08', '1', '2024-11-07 09:24:08', 0); +INSERT INTO `system_dict_data` VALUES (1700, 5, '出差', '5', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:24:35', '1', '2024-11-07 09:24:35', 0); +INSERT INTO `system_dict_data` VALUES (1701, 6, '借款', '6', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:24:47', '1', '2024-11-07 09:24:47', 0); +INSERT INTO `system_dict_data` VALUES (1702, 7, '请示', '7', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:25:12', '1', '2024-11-07 09:25:12', 0); +INSERT INTO `system_dict_data` VALUES (1703, 8, '拜访', '8', 'rzgl_splx', 0, 'default', '', '', '1', '2024-11-07 09:25:27', '1', '2024-11-07 09:25:27', 0); +INSERT INTO `system_dict_data` VALUES (1704, 0, '审批通过', '0', 'rzgl_spjg', 0, 'default', '', '', '1', '2024-11-07 09:27:07', '1', '2024-11-07 09:27:07', 0); +INSERT INTO `system_dict_data` VALUES (1705, 1, '审批否决', '1', 'rzgl_spjg', 0, 'default', '', '', '1', '2024-11-07 09:27:28', '1', '2024-11-07 09:27:28', 0); +INSERT INTO `system_dict_data` VALUES (1706, 2, '驳回审批', '2', 'rzgl_spjg', 0, 'default', '', '', '1', '2024-11-07 09:27:40', '1', '2024-11-07 09:27:40', 0); +INSERT INTO `system_dict_data` VALUES (1707, 0, 'WEB端', '0', 'dllx', 0, 'default', '', '', '1', '2024-11-07 09:58:02', '1', '2024-11-07 09:58:02', 0); +INSERT INTO `system_dict_data` VALUES (1708, 1, 'App', '1', 'dllx', 0, 'default', '', '', '1', '2024-11-07 09:58:14', '1', '2024-11-07 09:58:14', 0); +INSERT INTO `system_dict_data` VALUES (1709, 2, '小程序', '2', 'dllx', 0, 'default', '', '', '1', '2024-11-07 09:58:24', '1', '2024-11-07 09:58:24', 0); +INSERT INTO `system_dict_data` VALUES (1710, 1, '已读', '1', 'gggl_ggzt', 0, 'default', '', '', '1', '2024-11-07 10:18:34', '1', '2024-11-07 10:18:34', 0); +INSERT INTO `system_dict_data` VALUES (1711, 2, '未读', '2', 'gggl_ggzt', 0, 'default', '', '', '1', '2024-11-07 10:18:46', '1', '2024-11-07 10:18:46', 0); +INSERT INTO `system_dict_data` VALUES (1712, 1, '公告类型一', '1', 'gggl_gglx', 0, 'default', '', '', '1', '2024-11-07 10:37:10', '1', '2024-11-07 10:37:10', 0); +INSERT INTO `system_dict_data` VALUES (1713, 2, '公告类型二', '2', 'gggl_gglx', 0, 'default', '', '', '1', '2024-11-07 10:37:22', '1', '2024-11-07 10:37:22', 0); +INSERT INTO `system_dict_data` VALUES (1714, 3, '公告类型三', '3', 'gggl_gglx', 0, 'default', '', '', '1', '2024-11-07 10:37:33', '1', '2024-11-07 10:37:33', 0); +INSERT INTO `system_dict_data` VALUES (1715, 4, '公告类型四', '4', 'gggl_gglx', 0, 'default', '', '', '1', '2024-11-07 10:37:46', '1', '2024-11-07 10:37:46', 0); +INSERT INTO `system_dict_data` VALUES (1716, 1, '全天事件', '1', 'sjlx', 0, 'default', '', '', '1', '2024-11-13 09:21:01', '1', '2024-11-13 09:38:08', 0); +INSERT INTO `system_dict_data` VALUES (1717, 0, '仅自己可见', '1', 'kjcd', 0, 'default', '', '', '1', '2024-11-13 09:22:24', '1', '2024-11-13 09:22:24', 0); +INSERT INTO `system_dict_data` VALUES (1718, 0, '不重复', '0', 'cfrc', 0, 'default', '', '', '1', '2024-11-13 09:26:58', '1', '2024-11-13 09:26:58', 0); +INSERT INTO `system_dict_data` VALUES (1719, 1, '每天重复', '1', 'cfrc', 0, 'default', '', '', '1', '2024-11-13 09:27:12', '1', '2024-11-13 09:27:12', 0); +INSERT INTO `system_dict_data` VALUES (1720, 2, '每周重复', '2', 'cfrc', 0, 'default', '', '', '1', '2024-11-13 09:27:42', '1', '2024-11-13 09:27:42', 0); +INSERT INTO `system_dict_data` VALUES (1721, 3, '每月重复', '3', 'cfrc', 0, 'default', '', '', '1', '2024-11-13 09:27:57', '1', '2024-11-13 09:27:57', 0); +INSERT INTO `system_dict_data` VALUES (1722, 4, '每年重复', '4', 'cfrc', 0, 'default', '', '', '1', '2024-11-13 09:28:15', '1', '2024-11-13 09:28:15', 0); + +-- ---------------------------- +-- Table structure for system_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_type`; +CREATE TABLE `system_dict_type` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '字典名称', + `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `deleted_time` datetime(0) NULL DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `dict_type`(`type`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 676 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_dict_type +-- ---------------------------- +INSERT INTO `system_dict_type` VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-05-16 20:29:32', 0, NULL); +INSERT INTO `system_dict_type` VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', 0, NULL); +INSERT INTO `system_dict_type` VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', 0, NULL); +INSERT INTO `system_dict_type` VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', 0, NULL); +INSERT INTO `system_dict_type` VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', 0, NULL); +INSERT INTO `system_dict_type` VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', 0, NULL); +INSERT INTO `system_dict_type` VALUES (104, '登陆结果', 'system_login_result', 0, '登陆结果', '', '2021-01-18 06:17:11', '', '2022-02-01 16:36:00', 0, NULL); +INSERT INTO `system_dict_type` VALUES (106, '代码生成模板类型', 'infra_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '1', '2022-05-16 20:26:50', 0, NULL); +INSERT INTO `system_dict_type` VALUES (107, '定时任务状态', 'infra_job_status', 0, NULL, '', '2021-02-07 07:44:16', '', '2022-02-01 16:51:11', 0, NULL); +INSERT INTO `system_dict_type` VALUES (108, '定时任务日志状态', 'infra_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2022-02-01 16:50:43', 0, NULL); +INSERT INTO `system_dict_type` VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', 0, NULL); +INSERT INTO `system_dict_type` VALUES (110, 'API 异常数据的处理状态', 'infra_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2022-02-01 16:50:53', 0, NULL); +INSERT INTO `system_dict_type` VALUES (111, '短信渠道编码', 'system_sms_channel_code', 0, NULL, '1', '2021-04-05 01:04:50', '1', '2022-02-16 02:09:08', 0, NULL); +INSERT INTO `system_dict_type` VALUES (112, '短信模板的类型', 'system_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:43', '1', '2022-02-01 16:35:06', 0, NULL); +INSERT INTO `system_dict_type` VALUES (113, '短信发送状态', 'system_sms_send_status', 0, NULL, '1', '2021-04-11 20:18:03', '1', '2022-02-01 16:35:09', 0, NULL); +INSERT INTO `system_dict_type` VALUES (114, '短信接收状态', 'system_sms_receive_status', 0, NULL, '1', '2021-04-11 20:27:14', '1', '2022-02-01 16:35:14', 0, NULL); +INSERT INTO `system_dict_type` VALUES (115, '错误码的类型', 'system_error_code_type', 0, NULL, '1', '2021-04-21 00:06:30', '1', '2022-02-01 16:36:49', 0, NULL); +INSERT INTO `system_dict_type` VALUES (116, '登陆日志的类型', 'system_login_type', 0, '登陆日志的类型', '1', '2021-10-06 00:50:46', '1', '2022-02-01 16:35:56', 0, NULL); +INSERT INTO `system_dict_type` VALUES (117, 'OA 请假类型', 'bpm_oa_leave_type', 0, NULL, '1', '2021-09-21 22:34:33', '1', '2022-01-22 10:41:37', 0, NULL); +INSERT INTO `system_dict_type` VALUES (130, '支付渠道编码类型', 'pay_channel_code', 0, '支付渠道的编码', '1', '2021-12-03 10:35:08', '1', '2023-07-10 10:11:39', 0, NULL); +INSERT INTO `system_dict_type` VALUES (131, '支付回调状态', 'pay_notify_status', 0, '支付回调状态(包括退款回调)', '1', '2021-12-03 10:53:29', '1', '2024-10-26 15:10:49', 1, '2024-10-26 15:10:55'); +INSERT INTO `system_dict_type` VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2024-10-26 15:10:55', 1, '2024-10-26 15:11:01'); +INSERT INTO `system_dict_type` VALUES (134, '退款订单状态', 'pay_refund_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2024-10-26 15:11:01', 1, '2024-10-26 15:11:07'); +INSERT INTO `system_dict_type` VALUES (138, '流程分类', 'bpm_model_category', 0, '流程分类', '1', '2022-01-02 08:40:45', '1', '2022-01-02 08:40:45', 0, NULL); +INSERT INTO `system_dict_type` VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', 0, NULL); +INSERT INTO `system_dict_type` VALUES (140, '流程实例的结果', 'bpm_process_instance_result', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2022-01-07 23:48:10', 0, NULL); +INSERT INTO `system_dict_type` VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', 0, NULL); +INSERT INTO `system_dict_type` VALUES (142, '任务分配规则的类型', 'bpm_task_assign_rule_type', 0, '任务分配规则的类型', '103', '2022-01-12 23:21:04', '103', '2022-01-12 15:46:10', 0, NULL); +INSERT INTO `system_dict_type` VALUES (143, '任务分配自定义脚本', 'bpm_task_assign_script', 0, '任务分配自定义脚本', '103', '2022-01-15 00:10:35', '103', '2022-01-15 00:10:35', 0, NULL); +INSERT INTO `system_dict_type` VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', 0, NULL); +INSERT INTO `system_dict_type` VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', 0, NULL); +INSERT INTO `system_dict_type` VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', 0, NULL); +INSERT INTO `system_dict_type` VALUES (147, 'OAuth 2.0 授权类型', 'system_oauth2_grant_type', 0, 'OAuth 2.0 授权类型(模式)', '1', '2022-05-12 00:20:52', '1', '2022-05-11 16:25:49', 0, NULL); +INSERT INTO `system_dict_type` VALUES (149, '商品 SPU 状态', 'product_spu_status', 0, '商品 SPU 状态', '1', '2022-10-24 21:19:04', '1', '2024-10-26 15:26:15', 1, '2024-10-26 15:26:21'); +INSERT INTO `system_dict_type` VALUES (160, '终端', 'terminal', 0, '终端', '1', '2022-12-10 10:50:50', '1', '2022-12-10 10:53:11', 0, NULL); +INSERT INTO `system_dict_type` VALUES (164, '公众号自动回复的请求关键字匹配模式', 'mp_auto_reply_request_match', 0, '公众号自动回复的请求关键字匹配模式', '1', '2023-01-16 23:29:56', '1', '2024-10-28 14:19:48', 1, '2024-10-28 14:19:54'); +INSERT INTO `system_dict_type` VALUES (165, '公众号的消息类型', 'mp_message_type', 0, '公众号的消息类型', '1', '2023-01-17 22:17:09', '1', '2024-10-28 14:19:59', 1, '2024-10-28 14:20:05'); +INSERT INTO `system_dict_type` VALUES (166, '邮件发送状态', 'system_mail_send_status', 0, '邮件发送状态', '1', '2023-01-26 09:53:13', '1', '2023-01-26 09:53:13', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (167, '站内信模版的类型', 'system_notify_template_type', 0, '站内信模版的类型', '1', '2023-01-28 10:35:10', '1', '2023-01-28 10:35:10', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (168, '代码生成的前端类型', 'infra_codegen_front_type', 0, '', '1', '2023-04-12 23:57:52', '1', '2023-04-12 23:57:52', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (173, '支付通知类型', 'pay_notify_type', 0, NULL, '1', '2023-07-20 12:23:03', '1', '2023-07-20 12:23:03', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (600, 'Banner 位置', 'promotion_banner_position', 0, '', '1', '2023-10-08 07:24:25', '1', '2023-11-04 13:04:02', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (601, '社交类型', 'system_social_type', 0, '', '1', '2023-11-04 13:03:54', '1', '2023-11-04 13:03:54', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (609, '支付转账类型', 'pay_transfer_type', 0, '', '1', '2023-10-28 16:27:18', '1', '2023-10-28 16:27:18', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (610, '转账订单状态', 'pay_transfer_status', 0, '', '1', '2023-10-28 16:18:32', '1', '2023-10-28 16:18:32', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (611, 'ERP 库存明细的业务类型', 'erp_stock_record_biz_type', 0, 'ERP 库存明细的业务类型', '1', '2024-02-05 18:07:02', '1', '2024-10-28 14:21:28', 1, '2024-10-28 14:21:34'); +INSERT INTO `system_dict_type` VALUES (612, 'ERP 审批状态', 'erp_audit_status', 0, '', '1', '2024-02-06 00:00:07', '1', '2024-10-28 14:21:34', 1, '2024-10-28 14:21:40'); +INSERT INTO `system_dict_type` VALUES (620, '行业类型', 'type_of_industry', 0, '', '1', '2024-09-10 09:57:19', '1', '2024-09-10 09:57:19', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (621, '客户状态', 'customer_status', 0, '', '1', '2024-09-10 10:00:59', '1', '2024-09-10 10:00:59', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (622, '当前职位', 'current_title', 0, '', '1', '2024-09-11 09:45:33', '1', '2024-09-11 09:45:33', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (623, '订单来源', 'order_source', 0, '', '1', '2024-09-13 14:29:09', '1', '2024-09-13 14:29:09', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (624, '订单类型', 'order_type', 0, '', '1', '2024-09-13 14:30:29', '1', '2024-09-13 14:30:29', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (625, '订单状态', 'order_status', 0, '', '1', '2024-09-13 14:33:02', '1', '2024-09-13 14:33:02', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (626, '支付方式', 'mode_payment', 0, '', '1', '2024-09-13 14:34:38', '1', '2024-09-13 14:34:38', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (627, '配送方式', 'mode_distribution', 0, '', '1', '2024-09-13 14:36:50', '1', '2024-09-13 14:36:50', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (628, '付款状态', 'payment_status', 0, '', '1', '2024-09-18 16:23:06', '1', '2024-09-18 16:23:06', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (629, '发货状态', 'delivery_status', 0, '', '1', '2024-09-18 16:24:37', '1', '2024-09-18 16:24:37', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (630, '发票类型', 'Invoice_type', 0, '', '1', '2024-09-19 11:07:08', '1', '2024-09-19 11:07:08', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (631, '客户星级', 'customer_star', 0, '', '1', '2024-09-24 09:38:56', '1', '2024-09-24 09:38:56', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (632, '状态', 'type', 0, '', '1', '2024-09-24 14:51:39', '1', '2024-09-24 14:51:39', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (633, '客户-状态', 'khzt', 0, '', '1', '2024-09-24 17:07:39', '1', '2024-09-24 17:07:39', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (634, '树形表格-状态', 'tree_grid_status', 0, '', '1', '2024-09-25 09:34:15', '1', '2024-09-25 09:34:15', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (635, '通用页面-高级详情页-分类标签-审批状态', 'gjxqy_flbq_spzt', 0, '', '1', '2024-09-29 13:52:27', '1', '2024-09-29 13:52:27', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (636, '通用页面-个人中心-系统通知-类型', 'grzx_xttz_lx', 0, '', '1', '2024-09-30 14:36:20', '1', '2024-09-30 14:36:20', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (637, '通用页面-个人中心-系统通知-状态', 'grzx_xttz_zt', 0, '', '1', '2024-09-30 14:39:30', '1', '2024-09-30 14:39:30', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (638, '订单管理-状态', 'ddgl-zt', 0, '', '1', '2024-10-10 15:14:46', '1', '2024-10-10 15:14:46', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (639, '订单管理-支付方式', 'ddgl-zffs', 0, '', '1', '2024-10-10 15:21:02', '1', '2024-10-10 15:21:02', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (640, '订单管理-订单类型', 'ddgl-ddlx', 0, '', '1', '2024-10-10 15:23:33', '1', '2024-10-10 15:23:33', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (641, '工单类型', 'gdlx', 0, '', '1', '2024-10-11 14:10:18', '1', '2024-10-11 14:10:18', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (642, '工单状态', 'gdzt', 0, '', '1', '2024-10-11 14:11:50', '1', '2024-10-11 14:11:50', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (643, '紧要程度', 'jycd', 0, '', '1', '2024-10-11 14:13:31', '1', '2024-10-11 14:13:31', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (644, '等待时长', 'ddsc', 0, '', '1', '2024-10-11 14:18:05', '1', '2024-10-11 14:18:05', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (645, '选项', 'xx', 0, '', '1', '2024-10-11 14:30:57', '1', '2024-10-11 14:30:57', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (646, '用户管理-会员等级', 'user_management-level', 0, '', '1', '2024-10-12 16:33:41', '1', '2024-10-12 16:33:41', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (647, '用户管理-会员标签', 'user_management_label', 0, '', '1', '2024-10-12 16:36:11', '1', '2024-10-12 16:36:11', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (648, '用户管理-注册渠道', 'user_management_registration_channel', 0, '', '1', '2024-10-12 16:38:52', '1', '2024-10-12 16:38:52', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (649, '用户管理-用户状态', 'user_management_type', 0, '', '1', '2024-10-12 16:46:36', '1', '2024-10-12 16:46:36', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (650, '部门管理-状态', 'bmgl_zt', 0, '', '1', '2024-10-15 10:13:52', '1', '2024-10-15 10:25:41', 1, '2024-10-15 10:25:42'); +INSERT INTO `system_dict_type` VALUES (651, '部门状态', 'bmzt', 0, '', '1', '2024-10-15 11:23:41', '1', '2024-10-15 11:23:41', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (653, '用户管理-操作记录-操作类型', 'user_management_czlx', 0, '', '1', '2024-10-15 16:20:34', '1', '2024-10-15 16:20:34', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (654, '账号状态', 'zhzt', 0, '', '1', '2024-10-15 17:39:43', '1', '2024-10-15 17:39:43', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (655, '在线状态', 'zxzt', 0, '', '1', '2024-10-15 17:40:18', '1', '2024-10-15 17:40:55', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (656, '员工详情-终端类型', 'ygxq_zdlx', 0, '', '1', '2024-10-17 10:19:16', '1', '2024-10-17 10:19:16', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (657, '员工详情-操作状态', 'ygxq_czzt', 0, '', '1', '2024-10-17 10:56:12', '1', '2024-10-17 10:56:12', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (658, '任务管理-任务提醒', 'rwgl_rwtx', 0, '', '1', '2024-10-18 10:25:23', '1', '2024-10-18 10:25:23', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (659, '任务管理-紧要程度', 'rwgl_jycd', 0, '', '1', '2024-10-18 10:27:39', '1', '2024-10-18 10:27:39', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (660, '任务管理-状态', 'rwgl_zt', 0, '', '1', '2024-10-18 10:30:55', '1', '2024-10-18 10:30:55', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (661, '任务管理-提醒方式', 'rwgl_txfs', 0, '', '1', '2024-10-18 14:59:38', '1', '2024-10-18 14:59:38', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (662, '团队动态-事件类型', 'tddt_sjlx', 0, '', '1', '2024-11-02 11:43:58', '1', '2024-11-02 11:43:58', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (663, '联系人管理-星标搜索', 'lxrgl_xbss', 0, '', '1', '2024-11-02 16:11:24', '1', '2024-11-02 16:11:24', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (664, '工作报告-报告类型', 'bglx', 0, '', '1', '2024-11-04 11:23:29', '1', '2024-11-04 11:23:29', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (665, '批阅状态', 'pyzt', 0, '', '1', '2024-11-04 11:25:07', '1', '2024-11-04 11:25:21', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (666, '日志管理-所属模块', 'rzgl_ssmk', 0, '', '1', '2024-11-06 15:49:53', '1', '2024-11-06 15:49:53', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (667, '日志管理-操作类型', 'rzgl_czlx', 0, '', '1', '2024-11-06 15:53:21', '1', '2024-11-06 15:53:21', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (668, '日志管理-审批类型', 'rzgl_splx', 0, '', '1', '2024-11-07 09:22:37', '1', '2024-11-07 09:22:37', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (669, '日志管理-审批结果', 'rzgl_spjg', 0, '', '1', '2024-11-07 09:26:20', '1', '2024-11-07 09:26:20', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (670, '登录类型', 'dllx', 0, '', '1', '2024-11-07 09:57:33', '1', '2024-11-07 09:57:33', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (671, '公告管理-公告状态', 'gggl_ggzt', 0, '', '1', '2024-11-07 10:18:11', '1', '2024-11-07 10:18:11', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (672, '公告管理-公告类型', 'gggl_gglx', 0, '', '1', '2024-11-07 10:36:37', '1', '2024-11-07 10:36:37', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (673, '事件类型', 'sjlx', 0, '', '1', '2024-11-13 09:20:44', '1', '2024-11-13 09:20:44', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (674, '可见程度', 'kjcd', 0, '', '1', '2024-11-13 09:21:44', '1', '2024-11-13 09:21:44', 0, '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` VALUES (675, '重复日程', 'cfrc', 0, '', '1', '2024-11-13 09:26:40', '1', '2024-11-13 09:26:40', 0, '1970-01-01 00:00:00'); + +-- ---------------------------- +-- Table structure for system_error_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_error_code`; +CREATE TABLE `system_error_code` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '错误码编号', + `type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '错误码类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用名', + `code` int(0) NOT NULL DEFAULT 0 COMMENT '错误码编码', + `message` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '错误码错误提示', + `memo` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6190 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错误码表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_error_code +-- ---------------------------- +INSERT INTO `system_error_code` VALUES (6039, 2, '12', 1, '1', '', '1', '2024-03-07 16:41:07', '1', '2024-03-08 09:50:46', 0); +INSERT INTO `system_error_code` VALUES (6040, 1, 'yudao-server', 1001000001, '参数配置不存在', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6041, 1, 'yudao-server', 1001000002, '参数配置 key 重复', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6042, 1, 'yudao-server', 1001000003, '不能删除类型为系统内置的参数配置', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6043, 1, 'yudao-server', 1001000004, '获取参数配置失败,原因:不允许获取不可见配置', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6044, 1, 'yudao-server', 1001001000, '定时任务不存在', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6045, 1, 'yudao-server', 1001001001, '定时任务的处理器已经存在', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6046, 1, 'yudao-server', 1001001002, '只允许修改为开启或者关闭状态', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6047, 1, 'yudao-server', 1001001003, '定时任务已经处于该状态,无需修改', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6048, 1, 'yudao-server', 1001001004, '只有开启状态的任务,才可以修改', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6049, 1, 'yudao-server', 1001001005, 'CRON 表达式不正确', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6050, 1, 'yudao-server', 1001002000, 'API 错误日志不存在', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6051, 1, 'yudao-server', 1001002001, 'API 错误日志已处理', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6052, 1, 'yudao-server', 1001003000, '文件路径已存在', '', NULL, '2024-03-15 10:13:56', NULL, '2024-03-15 10:13:56', 0); +INSERT INTO `system_error_code` VALUES (6053, 1, 'yudao-server', 1001003001, '文件不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6054, 1, 'yudao-server', 1001003002, '文件为空', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6055, 1, 'yudao-server', 1003001000, '表定义已经存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6056, 1, 'yudao-server', 1003001001, '导入的表不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6057, 1, 'yudao-server', 1003001002, '导入的字段不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6058, 1, 'yudao-server', 1003001004, '表定义不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6059, 1, 'yudao-server', 1003001005, '字段义不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6060, 1, 'yudao-server', 1003001006, '同步的字段不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6061, 1, 'yudao-server', 1003001007, '同步失败,不存在改变', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6062, 1, 'yudao-server', 1003001008, '数据库的表注释未填写', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6063, 1, 'yudao-server', 1003001009, '数据库的表字段({})注释未填写', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6064, 1, 'yudao-server', 1003001010, '主表(id={})定义不存在,请检查', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6065, 1, 'yudao-server', 1003001011, '子表的字段(id={})不存在,请检查', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6066, 1, 'yudao-server', 1003001012, '主表生成代码失败,原因:它没有子表', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6067, 1, 'yudao-server', 1003001013, '主表生成代码失败,原因:它的子表({})没有字段', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6068, 1, 'yudao-server', 1001006000, '文件配置不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6069, 1, 'yudao-server', 1001006001, '该文件配置不允许删除,原因:它是主配置,删除会导致无法上传文件', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6070, 1, 'yudao-server', 1001007000, '数据源配置不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6071, 1, 'yudao-server', 1001007001, '数据源配置不正确,无法进行连接', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6072, 1, 'yudao-server', 1001107000, '学生不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6073, 1, 'yudao-server', 1001201000, '示例联系人不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6074, 1, 'yudao-server', 1001201001, '示例分类不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6075, 1, 'yudao-server', 1001201002, '存在存在子示例分类,无法删除', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6076, 1, 'yudao-server', 1001201003, '父级示例分类不存在', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6077, 1, 'yudao-server', 1001201004, '不能设置自己为父示例分类', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6078, 1, 'yudao-server', 1001201005, '已经存在该名字的示例分类', '', NULL, '2024-03-15 10:13:57', NULL, '2024-03-15 10:13:57', 0); +INSERT INTO `system_error_code` VALUES (6079, 1, 'yudao-server', 1001201006, '不能设置自己的子示例分类为父示例分类', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6080, 1, 'yudao-server', 1001201007, '学生不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6081, 1, 'yudao-server', 1001201008, '学生班级不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6082, 1, 'yudao-server', 1001201009, '学生班级已存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6083, 1, 'yudao-server', 1002000000, '登录失败,账号密码不正确', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6084, 1, 'yudao-server', 1002000001, '登录失败,账号被禁用', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6085, 1, 'yudao-server', 1002000004, '验证码不正确,原因:{}', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6086, 1, 'yudao-server', 1002000005, '未绑定账号,需要进行绑定', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6087, 1, 'yudao-server', 1002000006, 'Token 已经过期', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6088, 1, 'yudao-server', 1002000007, '手机号不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6089, 1, 'yudao-server', 1002001000, '已经存在该名字的菜单', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6090, 1, 'yudao-server', 1002001001, '父菜单不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6091, 1, 'yudao-server', 1002001002, '不能设置自己为父菜单', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6092, 1, 'yudao-server', 1002001003, '菜单不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6093, 1, 'yudao-server', 1002001004, '存在子菜单,无法删除', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6094, 1, 'yudao-server', 1002001005, '父菜单的类型必须是目录或者菜单', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6095, 1, 'yudao-server', 1002002000, '角色不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6096, 1, 'yudao-server', 1002002001, '已经存在名为【{}】的角色', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6097, 1, 'yudao-server', 1002002002, '已经存在编码为【{}】的角色', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6098, 1, 'yudao-server', 1002002003, '不能操作类型为系统内置的角色', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6099, 1, 'yudao-server', 1002002004, '名字为【{}】的角色已被禁用', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6100, 1, 'yudao-server', 1002002005, '编码【{}】不能使用', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6101, 1, 'yudao-server', 1002003000, '用户账号已经存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6102, 1, 'yudao-server', 1002003001, '手机号已经存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6103, 1, 'yudao-server', 1002003002, '邮箱已经存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6104, 1, 'yudao-server', 1002003003, '用户不存在', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6105, 1, 'yudao-server', 1002003004, '导入用户数据不能为空!', '', NULL, '2024-03-15 10:13:58', NULL, '2024-03-15 10:13:58', 0); +INSERT INTO `system_error_code` VALUES (6106, 1, 'yudao-server', 1002003005, '用户密码校验失败', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6107, 1, 'yudao-server', 1002003006, '名字为【{}】的用户已被禁用', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6108, 1, 'yudao-server', 1002003008, '创建用户失败,原因:超过租户最大租户配额({})!', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6109, 1, 'yudao-server', 1002004000, '已经存在该名字的部门', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6110, 1, 'yudao-server', 1002004001, '父级部门不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6111, 1, 'yudao-server', 1002004002, '当前部门不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6112, 1, 'yudao-server', 1002004003, '存在子部门,无法删除', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6113, 1, 'yudao-server', 1002004004, '不能设置自己为父部门', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6114, 1, 'yudao-server', 1002004005, '部门中存在员工,无法删除', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6115, 1, 'yudao-server', 1002004006, '部门({})不处于开启状态,不允许选择', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6116, 1, 'yudao-server', 1002004007, '不能设置自己的子部门为父部门', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6117, 1, 'yudao-server', 1002005000, '当前岗位不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6118, 1, 'yudao-server', 1002005001, '岗位({}) 不处于开启状态,不允许选择', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6119, 1, 'yudao-server', 1002005002, '已经存在该名字的岗位', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6120, 1, 'yudao-server', 1002005003, '已经存在该标识的岗位', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6121, 1, 'yudao-server', 1002006001, '当前字典类型不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6122, 1, 'yudao-server', 1002006002, '字典类型不处于开启状态,不允许选择', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6123, 1, 'yudao-server', 1002006003, '已经存在该名字的字典类型', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6124, 1, 'yudao-server', 1002006004, '已经存在该类型的字典类型', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6125, 1, 'yudao-server', 1002006005, '无法删除,该字典类型还有字典数据', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6126, 1, 'yudao-server', 1002007001, '当前字典数据不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6127, 1, 'yudao-server', 1002007002, '字典数据({})不处于开启状态,不允许选择', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6128, 1, 'yudao-server', 1002007003, '已经存在该值的字典数据', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6129, 1, 'yudao-server', 1002008001, '当前通知公告不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6130, 1, 'yudao-server', 1002011000, '短信渠道不存在', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6131, 1, 'yudao-server', 1002011001, '短信渠道不处于开启状态,不允许选择', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6132, 1, 'yudao-server', 1002011002, '无法删除,该短信渠道还有短信模板', '', NULL, '2024-03-15 10:13:59', NULL, '2024-03-15 10:13:59', 0); +INSERT INTO `system_error_code` VALUES (6133, 1, 'yudao-server', 1002012000, '短信模板不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6134, 1, 'yudao-server', 1002012001, '已经存在编码为【{}】的短信模板', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6135, 1, 'yudao-server', 1002012002, '短信 API 模板调用失败,原因是:{}', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6136, 1, 'yudao-server', 1002012003, '短信 API 模版无法使用,原因:审批中', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6137, 1, 'yudao-server', 1002012004, '短信 API 模版无法使用,原因:审批不通过,{}', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6138, 1, 'yudao-server', 1002012005, '短信 API 模版无法使用,原因:模版不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6139, 1, 'yudao-server', 1002013000, '手机号不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6140, 1, 'yudao-server', 1002013001, '模板参数({})缺失', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6141, 1, 'yudao-server', 1002013002, '短信模板不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6142, 1, 'yudao-server', 1002014000, '验证码不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6143, 1, 'yudao-server', 1002014001, '验证码已过期', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6144, 1, 'yudao-server', 1002014002, '验证码已使用', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6145, 1, 'yudao-server', 1002014003, '验证码不正确', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6146, 1, 'yudao-server', 1002014004, '超过每日短信发送数量', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6147, 1, 'yudao-server', 1002014005, '短信发送过于频繁', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6148, 1, 'yudao-server', 1002014006, '手机号已被使用', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6149, 1, 'yudao-server', 1002014007, '验证码未被使用', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6150, 1, 'yudao-server', 1002015000, '租户不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6151, 1, 'yudao-server', 1002015001, '名字为【{}】的租户已被禁用', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6152, 1, 'yudao-server', 1002015002, '名字为【{}】的租户已过期', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6153, 1, 'yudao-server', 1002015003, '系统租户不能进行修改、删除等操作!', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6154, 1, 'yudao-server', 1002015004, '名字为【{}】的租户已存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6155, 1, 'yudao-server', 1002015005, '域名为【{}】的租户已存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6156, 1, 'yudao-server', 1002016000, '租户套餐不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6157, 1, 'yudao-server', 1002016001, '租户正在使用该套餐,请给租户重新设置套餐后再尝试删除', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6158, 1, 'yudao-server', 1002016002, '名字为【{}】的租户套餐已被禁用', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6159, 1, 'yudao-server', 1002017000, '错误码不存在', '', NULL, '2024-03-15 10:14:00', NULL, '2024-03-15 10:14:00', 0); +INSERT INTO `system_error_code` VALUES (6160, 1, 'yudao-server', 1002017001, '已经存在编码为【{}】的错误码', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6161, 1, 'yudao-server', 1002018000, '社交授权失败,原因是:{}', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6162, 1, 'yudao-server', 1002018001, '社交授权失败,找不到对应的用户', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6163, 1, 'yudao-server', 1002018200, '获得手机号失败', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6164, 1, 'yudao-server', 1002018201, '社交客户端不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6165, 1, 'yudao-server', 1002018201, '社交客户端已存在配置', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6166, 1, 'yudao-server', 1002019000, '系统敏感词在所有标签中都不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6167, 1, 'yudao-server', 1002019001, '系统敏感词已在标签中存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6168, 1, 'yudao-server', 1002020000, 'OAuth2 客户端不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6169, 1, 'yudao-server', 1002020001, 'OAuth2 客户端编号已存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6170, 1, 'yudao-server', 1002020002, 'OAuth2 客户端已禁用', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6171, 1, 'yudao-server', 1002020003, '不支持该授权类型', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6172, 1, 'yudao-server', 1002020004, '授权范围过大', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6173, 1, 'yudao-server', 1002020005, '无效 redirect_uri: {}', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6174, 1, 'yudao-server', 1002020006, '无效 client_secret: {}', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6175, 1, 'yudao-server', 1002021000, 'client_id 不匹配', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6176, 1, 'yudao-server', 1002021001, 'redirect_uri 不匹配', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6177, 1, 'yudao-server', 1002021002, 'state 不匹配', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6178, 1, 'yudao-server', 1002021003, 'code 不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6179, 1, 'yudao-server', 1002022000, 'code 不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6180, 1, 'yudao-server', 1002022001, 'code 已过期', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6181, 1, 'yudao-server', 1002023000, '邮箱账号不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6182, 1, 'yudao-server', 1002023001, '无法删除,该邮箱账号还有邮件模板', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6183, 1, 'yudao-server', 1002024000, '邮件模版不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6184, 1, 'yudao-server', 1002024001, '邮件模版 code({}) 已存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6185, 1, 'yudao-server', 1002025000, '模板参数({})缺失', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6186, 1, 'yudao-server', 1002025001, '邮箱不存在', '', NULL, '2024-03-15 10:14:01', NULL, '2024-03-15 10:14:01', 0); +INSERT INTO `system_error_code` VALUES (6187, 1, 'yudao-server', 1002026000, '站内信模版不存在', '', NULL, '2024-03-15 10:14:02', NULL, '2024-03-15 10:14:02', 0); +INSERT INTO `system_error_code` VALUES (6188, 1, 'yudao-server', 1002026001, '已经存在编码为【{}】的站内信模板', '', NULL, '2024-03-15 10:14:02', NULL, '2024-03-15 10:14:02', 0); +INSERT INTO `system_error_code` VALUES (6189, 1, 'yudao-server', 1002028000, '模板参数({})缺失', '', NULL, '2024-03-15 10:14:02', NULL, '2024-03-15 10:14:02', 0); + +-- ---------------------------- +-- Table structure for system_login_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_login_log`; +CREATE TABLE `system_login_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `log_type` bigint(0) NOT NULL COMMENT '日志类型', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '用户类型', + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户账号', + `result` tinyint(0) NOT NULL COMMENT '登陆结果', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '浏览器 UA', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4578 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_login_log +-- ---------------------------- +INSERT INTO `system_login_log` VALUES (4573, 100, '', 1, 2, 'admin', 0, '192.168.5.7', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', NULL, '2024-12-11 09:39:04', NULL, '2024-12-11 09:39:04', 0, 1); +INSERT INTO `system_login_log` VALUES (4574, 100, '', 1, 2, 'admin', 0, '192.168.5.8', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', NULL, '2024-12-11 09:55:39', NULL, '2024-12-11 09:55:39', 0, 1); +INSERT INTO `system_login_log` VALUES (4575, 100, '', 1, 2, 'admin', 0, '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', NULL, '2024-12-28 13:46:37', NULL, '2024-12-28 13:46:37', 0, 1); +INSERT INTO `system_login_log` VALUES (4576, 100, '', 1, 2, 'admin', 0, '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', NULL, '2024-12-28 13:47:16', NULL, '2024-12-28 13:47:16', 0, 1); +INSERT INTO `system_login_log` VALUES (4577, 200, '', 1, 2, 'admin', 0, '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', '1', '2024-12-28 13:49:40', '1', '2024-12-28 13:49:40', 0, 1); + +-- ---------------------------- +-- Table structure for system_mail_account +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_account`; +CREATE TABLE `system_mail_account` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '邮箱', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码', + `host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SMTP 服务器域名', + `port` int(0) NOT NULL COMMENT 'SMTP 服务器端口', + `ssl_enable` int(0) NOT NULL DEFAULT 0 COMMENT '是否开启 SSL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '邮箱账号表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_mail_account +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_mail_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_log`; +CREATE TABLE `system_mail_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint(0) NULL DEFAULT NULL COMMENT '用户类型', + `to_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '接收邮箱地址', + `account_id` bigint(0) NOT NULL COMMENT '邮箱账号编号', + `from_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发送邮箱地址', + `template_id` bigint(0) NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模版发送人名称', + `template_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '邮件标题', + `template_content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '邮件内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '邮件参数', + `send_status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '发送状态', + `send_time` datetime(0) NULL DEFAULT NULL COMMENT '发送时间', + `send_message_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送返回的消息 ID', + `send_exception` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送异常', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 360 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '邮件日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_mail_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_mail_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_template`; +CREATE TABLE `system_mail_template` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板编码', + `account_id` bigint(0) NOT NULL COMMENT '发送的邮箱账号编号', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送人名称', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板标题', + `content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数数组', + `status` tinyint(0) NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '邮件模版表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_mail_template +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_menu`; +CREATE TABLE `system_menu` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称', + `permission` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '权限标识', + `type` tinyint(0) NOT NULL COMMENT '菜单类型', + `sort` int(0) NOT NULL DEFAULT 0 COMMENT '显示顺序', + `parent_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '父菜单ID', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径', + `component_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件名', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '菜单状态', + `visible` int(0) NOT NULL DEFAULT 1 COMMENT '是否可见', + `keep_alive` int(0) NOT NULL DEFAULT 1 COMMENT '是否缓存', + `always_show` int(0) NOT NULL DEFAULT 1 COMMENT '是否总是显示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2932 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_menu +-- ---------------------------- +INSERT INTO `system_menu` VALUES (1, '系统管理', '', 1, 10, 0, '/system', 'tdesign:system-3', NULL, NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 15:58:28', 0); +INSERT INTO `system_menu` VALUES (2, '基础设施', '', 1, 20, 0, '/infra', 'streamline:industry-innovation-and-infrastructure', NULL, NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 15:59:20', 0); +INSERT INTO `system_menu` VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'mdi:table-user', 'system/user/index', 'SystemUser', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:09:51', 0); +INSERT INTO `system_menu` VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'oui:app-users-roles', 'system/role/index', 'SystemRole', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:10:34', 0); +INSERT INTO `system_menu` VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'hugeicons:menu-square', 'system/menu/index', 'SystemMenu', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:11:28', 0); +INSERT INTO `system_menu` VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'carbon:cloud-service-management', 'system/dept/index', 'SystemDept', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:13:33', 0); +INSERT INTO `system_menu` VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'ic:sharp-work-history', 'system/post/index', 'SystemPost', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:16:47', 0); +INSERT INTO `system_menu` VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'streamline:dictionary-language-book-solid', 'system/dict/index', 'SystemDictType', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:17:43', 0); +INSERT INTO `system_menu` VALUES (106, '配置管理', '', 2, 6, 2, 'config', 'eos-icons:configuration-file-outlined', 'infra/config/index', 'InfraConfig', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:51:34', 0); +INSERT INTO `system_menu` VALUES (107, '通知公告', '', 2, 8, 1, 'notice', 'fe:notice-active', 'system/notice/index', 'SystemNotice', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:19:07', 0); +INSERT INTO `system_menu` VALUES (108, '审计日志', '', 1, 9, 2930, 'log', 'icon-park-solid:audit', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-12-09 15:09:22', 0); +INSERT INTO `system_menu` VALUES (109, '令牌管理', '', 2, 2, 1261, 'token', 'material-symbols-light:token', 'system/oauth2/token/index', 'SystemTokenClient', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:24:49', 0); +INSERT INTO `system_menu` VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'mdi:invoice-text-scheduled', 'infra/job/index', 'InfraJob', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:56:58', 0); +INSERT INTO `system_menu` VALUES (111, 'MySQL 监控', '', 2, 9, 2931, 'druid', 'eos-icons:monitoring', 'infra/druid/index', 'InfraDruid', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-12-09 15:17:18', 0); +INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2931, 'admin-server', 'material-symbols-light:monitoring-rounded', 'infra/server/index', 'InfraAdminServer', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-12-09 15:17:31', 0); +INSERT INTO `system_menu` VALUES (113, 'Redis 监控', '', 2, 10, 2931, 'redis', 'carbon:cloud-monitoring', 'infra/redis/index', 'InfraRedis', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-12-09 15:17:24', 0); +INSERT INTO `system_menu` VALUES (116, '系统接口', 'infra:swagger:list', 2, 3, 2, 'swagger', 'carbon:ibm-engineering-systems-design-rhapsody-model-manager', 'infra/swagger/index', 'InfraSwagger', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:47:16', 0); +INSERT INTO `system_menu` VALUES (500, '操作日志', '', 2, 1, 108, 'operate-log', 'ant-design:audit-outlined', 'system/operatelog/index', 'SystemOperateLog', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:20:33', 0); +INSERT INTO `system_menu` VALUES (501, '登录日志', '', 2, 2, 108, 'login-log', 'basil:login-outline', 'system/loginlog/index', 'SystemLoginLog', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-08-08 16:22:29', 0); +INSERT INTO `system_menu` VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1002, '用户新增', 'system:user:create', 3, 2, 100, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:31:16', 0); +INSERT INTO `system_menu` VALUES (1003, '用户修改', 'system:user:update', 3, 3, 100, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1004, '用户删除', 'system:user:delete', 3, 4, 100, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:31:21', 0); +INSERT INTO `system_menu` VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:31:26', 0); +INSERT INTO `system_menu` VALUES (1007, '重置密码', 'system:user:update-password', 3, 7, 100, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1009, '角色新增', 'system:role:create', 3, 2, 101, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1010, '角色修改', 'system:role:update', 3, 3, 101, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1011, '角色删除', 'system:role:delete', 3, 4, 101, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:40:54', 0); +INSERT INTO `system_menu` VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1014, '菜单新增', 'system:menu:create', 3, 2, 102, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1015, '菜单修改', 'system:menu:update', 3, 3, 102, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1016, '菜单删除', 'system:menu:delete', 3, 4, 102, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1018, '部门新增', 'system:dept:create', 3, 2, 103, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1019, '部门修改', 'system:dept:update', 3, 3, 103, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1020, '部门删除', 'system:dept:delete', 3, 4, 103, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1022, '岗位新增', 'system:post:create', 3, 2, 104, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1023, '岗位修改', 'system:post:update', 3, 3, 104, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1024, '岗位删除', 'system:post:delete', 3, 4, 104, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:46:19', 0); +INSERT INTO `system_menu` VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1027, '字典新增', 'system:dict:create', 3, 2, 105, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1028, '字典修改', 'system:dict:update', 3, 3, 105, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1029, '字典删除', 'system:dict:delete', 3, 4, 105, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 10:52:59', 0); +INSERT INTO `system_menu` VALUES (1031, '配置查询', 'infra:config:query', 3, 1, 106, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1032, '配置新增', 'infra:config:create', 3, 2, 106, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1033, '配置修改', 'infra:config:update', 3, 3, 106, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1034, '配置删除', 'infra:config:delete', 3, 4, 106, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1035, '配置导出', 'infra:config:export', 3, 5, 106, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1037, '公告新增', 'system:notice:create', 3, 2, 107, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1038, '公告修改', 'system:notice:update', 3, 3, 107, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1039, '公告删除', 'system:notice:delete', 3, 4, 107, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1040, '操作查询', 'system:operate-log:query', 3, 1, 500, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1042, '日志导出', 'system:operate-log:export', 3, 2, 500, '', '', '', '', 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-07-16 11:00:42', 0); +INSERT INTO `system_menu` VALUES (1043, '登录查询', 'system:login-log:query', 3, 1, 501, '#', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1045, '日志导出', 'system:login-log:export', 3, 3, 501, '#', '#', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1046, '令牌列表', 'system:oauth2-token:page', 3, 1, 109, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:42', 0); +INSERT INTO `system_menu` VALUES (1048, '令牌删除', 'system:oauth2-token:delete', 3, 2, 109, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:53', 0); +INSERT INTO `system_menu` VALUES (1050, '任务新增', 'infra:job:create', 3, 2, 110, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1051, '任务修改', 'infra:job:update', 3, 3, 110, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1052, '任务删除', 'infra:job:delete', 3, 4, 110, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1053, '状态修改', 'infra:job:update', 3, 5, 110, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1054, '任务导出', 'infra:job:export', 3, 7, 110, '', '', '', NULL, 0, 1, 1, 1, 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', '', 0, 1, 1, 1, '', '2021-01-06 17:53:44', '1', '2024-07-16 10:40:59', 0); +INSERT INTO `system_menu` VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', NULL, 0, 1, 1, 1, '', '2021-01-06 17:56:31', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1065, '设置用户角色', 'system:permission:assign-user-role', 3, 8, 101, '', '', '', NULL, 0, 1, 1, 1, '', '2021-01-07 10:23:28', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1066, '获得 Redis 监控信息', 'infra:redis:get-monitor-info', 3, 1, 113, '', '', '', NULL, 0, 1, 1, 1, '', '2021-01-26 01:02:31', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1067, '获得 Redis Key 列表', 'infra:redis:get-key-list', 3, 2, 113, '', '', '', NULL, 0, 1, 1, 1, '', '2021-01-26 01:02:52', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-02-07 13:03:10', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'fluent:document-database-24-regular', 'infra/dbDoc/index', 'InfraDBDoc', 0, 1, 1, 1, '', '2021-02-08 01:41:47', '1', '2024-08-08 16:47:54', 0); +INSERT INTO `system_menu` VALUES (1087, '任务查询', 'infra:job:query', 3, 1, 110, '', '', '', NULL, 0, 1, 1, 1, '1', '2021-03-10 01:26:19', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1090, '文件列表', '', 2, 5, 1243, 'file', 'tdesign:file-1', 'infra/file/index', 'InfraFile', 0, 1, 1, 1, '', '2021-03-12 20:16:20', '1', '2024-12-09 11:03:25', 0); +INSERT INTO `system_menu` VALUES (1093, '短信管理', '', 1, 11, 1, 'sms', 'fa6-solid:comment-sms', NULL, NULL, 0, 1, 1, 1, '1', '2021-04-05 01:10:16', '1', '2024-08-08 16:26:10', 0); +INSERT INTO `system_menu` VALUES (1094, '短信渠道', '', 2, 0, 1093, 'sms-channel', 'ic:round-sms-failed', 'system/sms/channel/index', 'SystemSmsChannel', 0, 1, 1, 1, '', '2021-04-01 11:07:15', '1', '2024-08-08 16:26:43', 0); +INSERT INTO `system_menu` VALUES (1095, '短信渠道查询', 'system:sms-channel:query', 3, 1, 1094, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1096, '短信渠道创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1097, '短信渠道更新', 'system:sms-channel:update', 3, 3, 1094, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1098, '短信渠道删除', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1100, '短信模板', '', 2, 1, 1093, 'sms-template', 'material-symbols:sms-outline', 'system/sms/template/index', 'SystemSmsTemplate', 0, 1, 1, 1, '', '2021-04-01 17:35:17', '1', '2024-08-08 16:27:05', 0); +INSERT INTO `system_menu` VALUES (1101, '短信模板查询', 'system:sms-template:query', 3, 1, 1100, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1102, '短信模板创建', 'system:sms-template:create', 3, 2, 1100, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1103, '短信模板更新', 'system:sms-template:update', 3, 3, 1100, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1104, '短信模板删除', 'system:sms-template:delete', 3, 4, 1100, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1105, '短信模板导出', 'system:sms-template:export', 3, 5, 1100, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1106, '发送测试短信', 'system:sms-template:send-sms', 3, 6, 1100, '', '', '', NULL, 0, 1, 1, 1, '1', '2021-04-11 00:26:40', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1107, '短信日志', '', 2, 2, 1093, 'sms-log', 'material-symbols:sms', 'system/sms/log/index', 'SystemSmsLog', 0, 1, 1, 1, '', '2021-04-11 08:37:05', '1', '2024-08-08 16:27:37', 0); +INSERT INTO `system_menu` VALUES (1108, '短信日志查询', 'system:sms-log:query', 3, 1, 1107, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1109, '短信日志导出', 'system:sms-log:export', 3, 5, 1107, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1110, '错误码管理', '', 2, 12, 1, 'error-code', 'iconoir:shopping-code-error', 'system/errorCode/index', 'SystemErrorCode', 0, 1, 1, 1, '', '2021-04-13 21:46:42', '1', '2024-08-08 16:36:10', 0); +INSERT INTO `system_menu` VALUES (1111, '错误码查询', 'system:error-code:query', 3, 1, 1110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1112, '错误码创建', 'system:error-code:create', 3, 2, 1110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1113, '错误码更新', 'system:error-code:update', 3, 3, 1110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1114, '错误码删除', 'system:error-code:delete', 3, 4, 1110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1115, '错误码导出', 'system:error-code:export', 3, 5, 1110, '', '', '', NULL, 0, 1, 1, 1, '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1138, '租户列表', '', 2, 0, 1224, 'list', 'material-symbols-light:patient-list', 'system/tenant/index', 'SystemTenant', 0, 1, 1, 1, '', '2021-12-14 12:31:43', '1', '2024-08-08 16:06:14', 0); +INSERT INTO `system_menu` VALUES (1139, '租户查询', 'system:tenant:query', 3, 1, 1138, '', '', '', NULL, 0, 1, 1, 1, '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1140, '租户创建', 'system:tenant:create', 3, 2, 1138, '', '', '', NULL, 0, 1, 1, 1, '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1141, '租户更新', 'system:tenant:update', 3, 3, 1138, '', '', '', NULL, 0, 1, 1, 1, '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1142, '租户删除', 'system:tenant:delete', 3, 4, 1138, '', '', '', NULL, 0, 1, 1, 1, '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1143, '租户导出', 'system:tenant:export', 3, 5, 1138, '', '', '', NULL, 0, 1, 1, 1, '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'mdi:workflow-outline', NULL, NULL, 0, 1, 1, 1, '1', '2021-12-30 20:26:36', '1', '2024-08-08 16:03:06', 0); +INSERT INTO `system_menu` VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'oui:app-index-management', NULL, NULL, 0, 1, 1, 1, '1', '2021-12-30 20:28:30', '1', '2024-08-08 17:20:14', 0); +INSERT INTO `system_menu` VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'radix-icons:transform', 'bpm/model/index', 'BpmModel', 0, 1, 1, 1, '1', '2021-12-31 23:24:58', '1', '2024-08-08 17:23:03', 0); +INSERT INTO `system_menu` VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1200, '任务管理', '', 1, 20, 1185, 'task', 'eos-icons:cluster-management-outlined', NULL, NULL, 0, 1, 1, 1, '1', '2022-01-07 23:51:48', '1', '2024-08-08 17:21:02', 0); +INSERT INTO `system_menu` VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'hugeicons:user-switch', 'bpm/processInstance/index', 'BpmProcessInstance', 0, 1, 1, 1, '', '2022-01-07 15:53:44', '1', '2024-08-08 17:24:08', 0); +INSERT INTO `system_menu` VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', NULL, 0, 1, 1, 1, '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'mingcute:to-do-line', 'bpm/task/todo/index', 'BpmTodoTask', 0, 1, 1, 1, '1', '2022-01-08 10:33:37', '1', '2024-08-08 17:24:54', 0); +INSERT INTO `system_menu` VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'lucide:list-todo', 'bpm/task/done/index', 'BpmDoneTask', 0, 1, 1, 1, '1', '2022-01-08 10:34:13', '1', '2024-08-08 17:25:18', 0); +INSERT INTO `system_menu` VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'heroicons:user-group-20-solid', 'bpm/group/index', 'BpmUserGroup', 0, 1, 1, 1, '', '2022-01-14 02:14:20', '1', '2024-08-08 17:23:38', 0); +INSERT INTO `system_menu` VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', NULL, 0, 1, 1, 1, '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', NULL, 0, 1, 1, 1, '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', NULL, 0, 1, 1, 1, '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1213, '用户组删除', 'bpm:user-group:delete', 3, 4, 1209, '', '', '', NULL, 0, 1, 1, 1, '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1215, '流程定义查询', 'bpm:process-definition:query', 3, 10, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:21:43', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1216, '流程任务分配规则查询', 'bpm:task-assign-rule:query', 3, 20, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:26:53', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1217, '流程任务分配规则创建', 'bpm:task-assign-rule:create', 3, 21, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:28:15', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1218, '流程任务分配规则更新', 'bpm:task-assign-rule:update', 3, 22, 1193, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:28:41', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1219, '流程实例的创建', 'bpm:process-instance:create', 3, 2, 1201, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:36:15', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1220, '流程实例的取消', 'bpm:process-instance:cancel', 3, 3, 1201, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:36:33', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1221, '流程任务的查询', 'bpm:task:query', 3, 1, 1207, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:38:52', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1222, '流程任务的更新', 'bpm:task:update', 3, 2, 1207, '', '', '', NULL, 0, 1, 1, 1, '1', '2022-01-23 00:39:24', '1', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1224, '租户管理', '', 1, 0, 1, 'tenant', 'oui:app-index-management', NULL, NULL, 0, 1, 1, 1, '1', '2022-02-20 01:41:13', '1', '2024-08-08 16:04:46', 0); +INSERT INTO `system_menu` VALUES (1225, '租户套餐', '', 2, 0, 1224, 'package', 'iconoir:package-lock', 'system/tenantPackage/index', 'SystemTenantPackage', 0, 1, 1, 1, '', '2022-02-19 17:44:06', '1', '2024-08-08 16:07:58', 0); +INSERT INTO `system_menu` VALUES (1226, '租户套餐查询', 'system:tenant-package:query', 3, 1, 1225, '', '', '', NULL, 0, 1, 1, 1, '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1227, '租户套餐创建', 'system:tenant-package:create', 3, 2, 1225, '', '', '', NULL, 0, 1, 1, 1, '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1228, '租户套餐更新', 'system:tenant-package:update', 3, 3, 1225, '', '', '', NULL, 0, 1, 1, 1, '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1229, '租户套餐删除', 'system:tenant-package:delete', 3, 4, 1225, '', '', '', NULL, 0, 1, 1, 1, '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1237, '文件配置', '', 2, 0, 1243, 'file-config', 'flowbite:file-pen-outline', 'infra/fileConfig/index', 'InfraFileConfig', 0, 1, 1, 1, '', '2022-03-15 14:35:28', '1', '2024-12-09 10:59:54', 0); +INSERT INTO `system_menu` VALUES (1238, '文件配置查询', 'infra:file-config:query', 3, 1, 1237, '', '', '', NULL, 0, 1, 1, 1, '', '2022-03-15 14:35:28', '', '2024-12-09 10:59:54', 0); +INSERT INTO `system_menu` VALUES (1239, '文件配置创建', 'infra:file-config:create', 3, 2, 1237, '', '', '', NULL, 0, 1, 1, 1, '', '2022-03-15 14:35:28', '', '2024-12-09 10:59:54', 0); +INSERT INTO `system_menu` VALUES (1240, '文件配置更新', 'infra:file-config:update', 3, 3, 1237, '', '', '', NULL, 0, 1, 1, 1, '', '2022-03-15 14:35:28', '', '2024-12-09 10:59:54', 0); +INSERT INTO `system_menu` VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', NULL, 0, 1, 1, 1, '', '2022-03-15 14:35:28', '', '2024-12-09 10:59:54', 0); +INSERT INTO `system_menu` VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', NULL, 0, 1, 1, 1, '', '2022-03-15 14:35:28', '', '2024-12-09 11:00:03', 0); +INSERT INTO `system_menu` VALUES (1243, '文件管理', '', 1, 5, 2, 'file', 'mdi:file-cog', NULL, '', 0, 1, 1, 1, '1', '2022-03-16 23:47:40', '1', '2024-12-09 11:01:06', 0); +INSERT INTO `system_menu` VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'ooui:search-case-sensitive', 'system/sensitiveWord/index', 'SystemSensitiveWord', 0, 1, 1, 1, '', '2022-04-07 16:55:03', '1', '2024-08-08 16:37:02', 0); +INSERT INTO `system_menu` VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', 0); +INSERT INTO `system_menu` VALUES (1255, '数据源配置', '', 2, 1, 2, 'data-source-config', 'icon-park-outline:data-display', 'infra/dataSourceConfig/index', 'InfraDataSourceConfig', 0, 1, 1, 1, '', '2022-04-27 14:37:32', '1', '2024-08-08 16:45:04', 0); +INSERT INTO `system_menu` VALUES (1256, '数据源配置查询', 'infra:data-source-config:query', 3, 1, 1255, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', 0); +INSERT INTO `system_menu` VALUES (1257, '数据源配置创建', 'infra:data-source-config:create', 3, 2, 1255, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', 0); +INSERT INTO `system_menu` VALUES (1258, '数据源配置更新', 'infra:data-source-config:update', 3, 3, 1255, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', 0); +INSERT INTO `system_menu` VALUES (1259, '数据源配置删除', 'infra:data-source-config:delete', 3, 4, 1255, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', 0); +INSERT INTO `system_menu` VALUES (1260, '数据源配置导出', 'infra:data-source-config:export', 3, 5, 1255, '', '', '', NULL, 0, 1, 1, 1, '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', 0); +INSERT INTO `system_menu` VALUES (1261, 'OAuth 2.0', '', 1, 10, 1, 'oauth2', 'tabler:brand-oauth', NULL, NULL, 0, 1, 1, 1, '1', '2022-05-09 23:38:17', '1', '2024-08-08 16:22:53', 0); +INSERT INTO `system_menu` VALUES (1263, '应用管理', '', 2, 0, 1261, 'oauth2/application', 'icon-park-outline:all-application', 'system/oauth2/client/index', 'SystemOAuth2Client', 0, 1, 1, 1, '', '2022-05-10 16:26:33', '1', '2024-08-08 16:23:41', 0); +INSERT INTO `system_menu` VALUES (1264, '客户端查询', 'system:oauth2-client:query', 3, 1, 1263, '', '', '', NULL, 0, 1, 1, 1, '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:06', 0); +INSERT INTO `system_menu` VALUES (1265, '客户端创建', 'system:oauth2-client:create', 3, 2, 1263, '', '', '', NULL, 0, 1, 1, 1, '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:23', 0); +INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client:update', 3, 3, 1263, '', '', '', NULL, 0, 1, 1, 1, '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:28', 0); +INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', NULL, 0, 1, 1, 1, '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', 0); +INSERT INTO `system_menu` VALUES (2083, '地区管理', '', 2, 14, 1, 'area', 'ep:location', 'system/area/index', 'SystemArea', 0, 1, 1, 1, '1', '2022-12-23 17:35:05', '1', '2024-12-09 11:45:58', 0); +INSERT INTO `system_menu` VALUES (2130, '邮箱管理', '', 2, 11, 1, 'mail', 'solar:mailbox-outline', NULL, NULL, 0, 1, 1, 1, '1', '2023-01-25 17:27:44', '1', '2024-08-08 16:29:07', 0); +INSERT INTO `system_menu` VALUES (2131, '邮箱账号', '', 2, 0, 2130, 'mail-account', 'material-symbols:deployed-code-account-outline-rounded', 'system/mail/account/index', 'SystemMailAccount', 0, 1, 1, 1, '', '2023-01-25 09:33:48', '1', '2024-08-08 16:30:06', 0); +INSERT INTO `system_menu` VALUES (2132, '账号查询', 'system:mail-account:query', 3, 1, 2131, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', 0); +INSERT INTO `system_menu` VALUES (2133, '账号创建', 'system:mail-account:create', 3, 2, 2131, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', 0); +INSERT INTO `system_menu` VALUES (2134, '账号更新', 'system:mail-account:update', 3, 3, 2131, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', 0); +INSERT INTO `system_menu` VALUES (2135, '账号删除', 'system:mail-account:delete', 3, 4, 2131, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', 0); +INSERT INTO `system_menu` VALUES (2136, '邮件模版', '', 2, 0, 2130, 'mail-template', 'fluent:mail-template-20-regular', 'system/mail/template/index', 'SystemMailTemplate', 0, 1, 1, 1, '', '2023-01-25 12:05:31', '1', '2024-08-08 16:31:05', 0); +INSERT INTO `system_menu` VALUES (2137, '模版查询', 'system:mail-template:query', 3, 1, 2136, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', 0); +INSERT INTO `system_menu` VALUES (2138, '模版创建', 'system:mail-template:create', 3, 2, 2136, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', 0); +INSERT INTO `system_menu` VALUES (2139, '模版更新', 'system:mail-template:update', 3, 3, 2136, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', 0); +INSERT INTO `system_menu` VALUES (2140, '模版删除', 'system:mail-template:delete', 3, 4, 2136, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', 0); +INSERT INTO `system_menu` VALUES (2141, '邮件记录', '', 2, 0, 2130, 'mail-log', 'icon-park-twotone:email-search', 'system/mail/log/index', 'SystemMailLog', 0, 1, 1, 1, '', '2023-01-26 02:16:50', '1', '2024-08-08 16:32:30', 0); +INSERT INTO `system_menu` VALUES (2142, '日志查询', 'system:mail-log:query', 3, 1, 2141, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-26 02:16:50', '', '2023-01-26 02:16:50', 0); +INSERT INTO `system_menu` VALUES (2143, '发送测试邮件', 'system:mail-template:send-mail', 3, 5, 2136, '', '', '', '', 0, 1, 1, 1, '1', '2023-01-26 23:29:15', '1', '2024-07-16 11:52:14', 0); +INSERT INTO `system_menu` VALUES (2144, '站内信管理', '', 1, 11, 1, 'notify', 'mdi:email-newsletter', NULL, NULL, 0, 1, 1, 1, '1', '2023-01-28 10:25:18', '1', '2024-08-08 16:34:23', 0); +INSERT INTO `system_menu` VALUES (2145, '模板管理', '', 2, 0, 2144, 'notify-template', 'marketeq:email-file', 'system/notify/template/index', 'SystemNotifyTemplate', 0, 1, 1, 1, '', '2023-01-28 02:26:42', '1', '2024-08-08 16:35:27', 0); +INSERT INTO `system_menu` VALUES (2146, '站内信模板查询', 'system:notify-template:query', 3, 1, 2145, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', 0); +INSERT INTO `system_menu` VALUES (2147, '站内信模板创建', 'system:notify-template:create', 3, 2, 2145, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', 0); +INSERT INTO `system_menu` VALUES (2148, '站内信模板更新', 'system:notify-template:update', 3, 3, 2145, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', 0); +INSERT INTO `system_menu` VALUES (2149, '站内信模板删除', 'system:notify-template:delete', 3, 4, 2145, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', 0); +INSERT INTO `system_menu` VALUES (2150, '发送测试站内信', 'system:notify-template:send-notify', 3, 5, 2145, '', '', '', NULL, 0, 1, 1, 1, '1', '2023-01-28 10:54:43', '1', '2023-01-28 10:54:43', 0); +INSERT INTO `system_menu` VALUES (2151, '消息记录', '', 2, 0, 2144, 'notify-message', 'material-symbols:mark-email-unread-outline-rounded', 'system/notify/message/index', 'SystemNotifyMessage', 0, 1, 1, 1, '', '2023-01-28 04:28:22', '1', '2024-08-08 16:34:53', 0); +INSERT INTO `system_menu` VALUES (2152, '站内信消息查询', 'system:notify-message:query', 3, 1, 2151, '', '', '', NULL, 0, 1, 1, 1, '', '2023-01-28 04:28:22', '', '2023-01-28 04:28:22', 0); +INSERT INTO `system_menu` VALUES (2447, '三方登录', '', 1, 10, 1, 'social', 'fa:500px', '', '', 0, 1, 1, 1, '1', '2023-11-04 12:12:01', '1', '2023-11-04 13:06:45', 0); +INSERT INTO `system_menu` VALUES (2448, '三方应用', '', 2, 1, 2447, 'client', 'ep:set-up', 'views/system/social/client/index.vue', 'SocialClient', 0, 1, 1, 1, '1', '2023-11-04 12:17:19', '1', '2023-11-04 12:17:19', 0); +INSERT INTO `system_menu` VALUES (2449, '三方应用查询', 'system:social-client:query', 3, 1, 2448, '', '', '', '', 0, 1, 1, 1, '1', '2023-11-04 12:43:12', '1', '2023-11-04 12:43:33', 0); +INSERT INTO `system_menu` VALUES (2450, '三方应用创建', 'system:social-client:create', 3, 2, 2448, '', '', '', '', 0, 1, 1, 1, '1', '2023-11-04 12:43:58', '1', '2023-11-04 12:43:58', 0); +INSERT INTO `system_menu` VALUES (2451, '三方应用更新', 'system:social-client:update', 3, 3, 2448, '', '', '', '', 0, 1, 1, 1, '1', '2023-11-04 12:44:27', '1', '2023-11-04 12:44:27', 0); +INSERT INTO `system_menu` VALUES (2452, '三方应用删除', 'system:social-client:delete', 3, 4, 2448, '', '', '', '', 0, 1, 1, 1, '1', '2023-11-04 12:44:43', '1', '2023-11-04 12:44:43', 0); +INSERT INTO `system_menu` VALUES (2453, '三方用户', 'system:social-user:query', 2, 2, 2447, 'user', 'ep:avatar', 'system/social/user/index.vue', 'SocialUser', 0, 1, 1, 1, '1', '2023-11-04 14:01:05', '1', '2023-11-04 14:01:05', 0); +INSERT INTO `system_menu` VALUES (2525, 'WebSocket 测试', '', 2, 7, 2, 'websocket', 'ep:connection', 'infra/webSocket/index', 'InfraWebSocket', 0, 1, 1, 1, '1', '2023-11-23 19:41:55', '1', '2023-11-24 19:22:30', 0); +INSERT INTO `system_menu` VALUES (2761, '在线开发', '', 1, 5, 0, '/lowdev', 'carbon:development', '', '', 0, 1, 1, 1, '1', '2024-06-12 13:44:12', '1', '2024-08-08 15:50:31', 0); +INSERT INTO `system_menu` VALUES (2762, '表单开发', '', 2, 1, 2761, 'tableDesign', 'hugeicons:property-edit', 'lowdesign/tableDesign/index', 'TableDesign', 0, 1, 1, 1, '1', '2024-06-12 13:46:40', '1', '2024-09-05 16:04:31', 0); +INSERT INTO `system_menu` VALUES (2763, '自定义表单', '', 2, 2, 2761, 'formDesign', 'flowbite:file-pen-outline', 'lowdesign/formDesign/index', 'FormDesign', 0, 1, 1, 1, '1', '2024-06-12 13:50:47', '1', '2024-10-28 14:23:38', 0); +INSERT INTO `system_menu` VALUES (2765, '表单设计示例', '', 1, 11, 2835, 'formexample', 'fluent:form-28-regular', '', '', 0, 1, 1, 1, '1', '2024-07-15 09:40:22', '1', '2024-12-09 11:21:13', 0); +INSERT INTO `system_menu` VALUES (2794, '数据查询', 'jeelowcode:dbform:query', 3, 1, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:50:32', '136', '2024-08-24 11:12:32', 0); +INSERT INTO `system_menu` VALUES (2795, '数据新增', 'jeelowcode:dbform:create', 3, 2, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:50:52', '1', '2024-07-20 17:50:52', 0); +INSERT INTO `system_menu` VALUES (2796, '数据修改', 'jeelowcode:dbform:update', 3, 3, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:51:01', '1', '2024-07-20 17:51:05', 0); +INSERT INTO `system_menu` VALUES (2797, '数据删除', 'jeelowcode:dbform:delete', 3, 4, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:51:42', '1', '2024-07-20 17:51:47', 0); +INSERT INTO `system_menu` VALUES (2798, '同步数据库', 'jeelowcode:dbform:sync', 3, 5, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:52:00', '1', '2024-07-20 17:52:00', 0); +INSERT INTO `system_menu` VALUES (2799, '自定义按钮', 'jeelowcode:button', 3, 6, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:52:37', '1', '2024-07-20 17:52:37', 0); +INSERT INTO `system_menu` VALUES (2800, '前端增强', 'jeelowcode:web', 3, 7, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:53:02', '1', '2024-07-20 17:53:02', 0); +INSERT INTO `system_menu` VALUES (2801, 'SQL增强', 'jeelowcode:sql', 3, 8, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:53:18', '1', '2024-07-20 17:53:18', 0); +INSERT INTO `system_menu` VALUES (2802, 'JAVA增强', 'jeelowcode:java', 3, 9, 2762, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:53:34', '1', '2024-07-20 17:53:34', 0); +INSERT INTO `system_menu` VALUES (2803, '表单查询', 'jeelowcode:desform:query', 3, 1, 2763, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:54:38', '1', '2024-07-20 17:54:38', 0); +INSERT INTO `system_menu` VALUES (2804, '表单新增', 'jeelowcode:desform:create', 3, 2, 2763, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:54:59', '1', '2024-07-20 17:54:59', 0); +INSERT INTO `system_menu` VALUES (2805, '表单修改', 'jeelowcode:desform:update', 3, 3, 2763, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:55:17', '1', '2024-07-20 17:55:17', 0); +INSERT INTO `system_menu` VALUES (2806, '表单删除', 'jeelowcode:desform:delete', 3, 4, 2763, '', '', '', '', 0, 1, 1, 1, '1', '2024-07-20 17:55:34', '1', '2024-07-20 17:55:34', 0); +INSERT INTO `system_menu` VALUES (2809, '步骤类型表单(垂直)', '', 2, 1, 2765, 'stepverticalform', 'ph:file-duotone', 'lowexample/form/step/StepVerticalForm', 'StepVerticalForm', 0, 1, 1, 1, '1', '2024-08-31 11:44:23', '1', '2024-09-20 10:56:56', 0); +INSERT INTO `system_menu` VALUES (2810, '表单开发示例', '', 1, 10, 2835, 'tableexample', 'fluent:form-28-regular', '', '', 0, 1, 1, 1, '1', '2024-09-05 14:10:30', '1', '2024-12-09 11:21:04', 0); +INSERT INTO `system_menu` VALUES (2811, '单表示例', '', 2, 1, 2810, 'table/view/1831577841380671489', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-05 15:49:25', '1', '2024-09-05 16:01:19', 0); +INSERT INTO `system_menu` VALUES (2812, '树表示例', '', 2, 2, 2810, 'table/view/1831582331282440193', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-05 15:50:10', '1', '2024-09-05 16:01:23', 0); +INSERT INTO `system_menu` VALUES (2813, '主附表示例', '', 2, 3, 2810, 'table/view/1831606724024909825', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-05 16:36:35', '1', '2024-09-05 16:46:20', 0); +INSERT INTO `system_menu` VALUES (2821, '主附表示例(ERP)', '', 1, 4, 2810, 'table/view/1831879666549944322', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-06 10:39:15', '1', '2024-09-06 10:39:28', 0); +INSERT INTO `system_menu` VALUES (2822, '主附表示例(内嵌)', '', 1, 5, 2810, 'table/view/1831883128176119810', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-06 10:39:55', '1', '2024-09-06 10:39:55', 0); +INSERT INTO `system_menu` VALUES (2823, '控件使用示例', '', 1, 6, 2810, 'table/view/1831939951830798338', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-06 14:23:36', '1', '2024-09-06 14:23:49', 0); +INSERT INTO `system_menu` VALUES (2824, '前端增强示例', '', 1, 7, 2810, 'table/view/1833055212327694337', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-09 16:13:37', '1', '2024-09-09 16:13:51', 0); +INSERT INTO `system_menu` VALUES (2825, '基础类型表单', '', 2, 2, 2765, 'acrossform', 'ph:file-duotone', 'lowexample/form/AcrossForm', 'AcrossForm', 0, 1, 1, 1, '1', '2024-09-10 10:08:17', '1', '2024-09-20 11:07:24', 0); +INSERT INTO `system_menu` VALUES (2826, '自定义按钮结合Js增强示例', '', 1, 8, 2810, 'table/view/1833320018125299714', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-10 10:57:32', '1', '2024-09-10 10:57:32', 0); +INSERT INTO `system_menu` VALUES (2827, '请求日志', '', 1, 9, 2930, 'apilog', 'ep:paperclip', '', '', 0, 1, 1, 1, '1', '2024-09-10 14:49:41', '1', '2024-12-09 15:09:33', 0); +INSERT INTO `system_menu` VALUES (2828, '成功日志', 'api:log', 2, 1, 2827, 'success-log', 'ep:success-filled', 'system/apilog/successlog/index', 'SystemApiSuccessLog', 0, 1, 1, 1, '1', '2024-09-10 14:52:35', '1', '2024-09-12 11:52:39', 0); +INSERT INTO `system_menu` VALUES (2829, '失败日志', 'api:log', 2, 2, 2827, 'failure-log', 'ep:circle-close-filled', 'system/apilog/failurelog/index', 'SystemApiFailureLog', 0, 1, 1, 1, '1', '2024-09-10 14:53:36', '1', '2024-09-12 11:53:45', 0); +INSERT INTO `system_menu` VALUES (2830, '标签页类型表单', '', 2, 3, 2765, 'tabsform', 'ph:file-duotone', 'lowexample/form/TabsForm', 'TabsForm', 0, 1, 1, 1, '1', '2024-09-10 16:40:01', '1', '2024-09-20 11:14:31', 0); +INSERT INTO `system_menu` VALUES (2831, 'tab标签页风格', '', 2, 9, 2810, 'tabscardform', 'ph:file-duotone', 'lowexample/form/TabsCardForm', 'TabsCardForm', 0, 1, 1, 1, '1', '2024-09-11 17:17:49', '1', '2024-09-20 13:43:30', 0); +INSERT INTO `system_menu` VALUES (2832, '订单详情表单', '', 2, 6, 2765, 'orderform', 'ph:file-duotone', 'lowexample/form/OrderForm', 'OrderForm', 0, 1, 1, 1, '1', '2024-09-13 14:00:29', '1', '2024-09-20 13:39:05', 0); +INSERT INTO `system_menu` VALUES (2834, '步骤类型表单(水平)', '', 2, 1, 2765, 'stephorizontalform', 'ph:file-duotone', 'lowexample/form/step/StepHorizontalForm', 'StepHorizontalForm', 0, 1, 1, 1, '1', '2024-09-20 10:59:05', '1', '2024-09-20 10:59:31', 0); +INSERT INTO `system_menu` VALUES (2835, '页面模板', '', 1, 6, 0, '/template', 'ep:cellphone', '', '', 0, 1, 1, 1, '1', '2024-09-23 09:44:39', '1', '2024-09-23 11:38:29', 0); +INSERT INTO `system_menu` VALUES (2836, '系统首页', '', 1, 1, 2835, 'thome', 'ep:house', '', '', 0, 1, 1, 1, '1', '2024-09-23 09:45:20', '1', '2024-09-23 15:54:11', 0); +INSERT INTO `system_menu` VALUES (2837, '客户管理', '', 2, 1, 2836, 'index4', 'ph:file-duotone', 'Home/Index4', 'Index4', 0, 1, 1, 1, '1', '2024-09-23 09:47:43', '1', '2024-09-23 15:53:01', 0); +INSERT INTO `system_menu` VALUES (2838, '系统监控', '', 2, 3, 2836, 'index3', 'ph:file-duotone', 'Home/Index3', 'Index3', 0, 1, 1, 1, '1', '2024-09-23 09:50:33', '1', '2024-09-23 15:52:08', 0); +INSERT INTO `system_menu` VALUES (2839, '数据看板1', '', 2, 4, 2836, 'index5', 'ph:file-duotone', 'Home/Index5', 'Index5', 0, 1, 1, 1, '1', '2024-09-23 09:52:09', '1', '2024-09-23 15:52:06', 0); +INSERT INTO `system_menu` VALUES (2840, '商户统计', '', 2, 2, 2836, 'index6', 'ph:file-duotone', 'Home/Index6', 'Index6', 0, 1, 1, 1, '1', '2024-09-23 09:53:27', '1', '2024-09-23 15:52:05', 0); +INSERT INTO `system_menu` VALUES (2841, '数据看板2', '', 2, 5, 2836, 'index7', 'ph:file-duotone', 'Home/Index7', 'Index7', 0, 1, 1, 1, '1', '2024-09-23 09:54:57', '1', '2024-10-28 14:22:21', 0); +INSERT INTO `system_menu` VALUES (2842, '通用页面', '', 1, 1, 2835, 'general', 'ep:reading', '', '', 0, 1, 1, 1, '1', '2024-09-23 09:56:20', '1', '2024-09-23 15:54:15', 0); +INSERT INTO `system_menu` VALUES (2843, '数据表格页(原生表格)', '', 2, 1, 2842, 'table/view/1838392378859741185', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 10:10:50', '1', '2024-09-24 16:56:23', 0); +INSERT INTO `system_menu` VALUES (2844, '数据表格页(动态数据)', '', 2, 2, 2842, 'table/view/1838494733815050242', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 10:39:07', '1', '2024-09-24 16:25:32', 0); +INSERT INTO `system_menu` VALUES (2845, '数据表格页(固定表列)', '', 2, 3, 2842, 'table/view/1838505719016001538', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 10:42:34', '1', '2024-09-24 17:46:52', 0); +INSERT INTO `system_menu` VALUES (2846, '数据表格页(多级表头)', '', 2, 4, 2842, 'table/view/1838748849153835009', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 10:49:54', '1', '2024-09-25 09:39:06', 0); +INSERT INTO `system_menu` VALUES (2847, '数据表格页(可展开表格)', '', 2, 5, 2842, 'table/view/1840646327436394498', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 10:56:05', '1', '2024-09-30 18:01:02', 0); +INSERT INTO `system_menu` VALUES (2848, '数据表格页(树形表格)', '', 2, 6, 2842, 'table/view/1838754174162501633', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:01:36', '1', '2024-09-25 10:18:32', 0); +INSERT INTO `system_menu` VALUES (2850, '数据表格页(专题列表)', '', 2, 8, 2842, 'table/view/1838141821641318402', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:05:11', '1', '2024-09-25 16:09:36', 0); +INSERT INTO `system_menu` VALUES (2851, '数据表格页(卡片列表)', '', 2, 9, 2842, 'table/view/1838855934516420610', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:06:27', '1', '2024-09-25 16:58:21', 0); +INSERT INTO `system_menu` VALUES (2852, '常用表单页(基础表单)', '', 2, 10, 2842, 'form/view/fillout/1838755734082879489', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:07:46', '1', '2024-09-25 09:45:29', 0); +INSERT INTO `system_menu` VALUES (2853, '常用表单页(横排表单)', '', 2, 11, 2842, 'form/view/fillout/1838765995711856642', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:10:05', '1', '2024-09-25 10:38:13', 0); +INSERT INTO `system_menu` VALUES (2854, '常用表单页(高级表单)', '', 2, 12, 2842, 'form/view/fillout/1838766864943611906', 'ph:file-duotone', '', '', 0, 1, 1, 1, '1', '2024-09-23 11:16:19', '1', '2024-09-25 10:26:35', 0); +INSERT INTO `system_menu` VALUES (2855, '发布表单页(横向分步)', '', 2, 13, 2842, 'form_hxfb', 'ph:file-duotone', 'lowTemplate/generalPage/form/form_hxfb', 'FormHxfb', 0, 1, 1, 1, '1', '2024-09-23 11:18:12', '1', '2024-09-25 13:43:27', 0); +INSERT INTO `system_menu` VALUES (2856, '发布表单页(纵向分步)', '', 2, 14, 2842, 'form_zxfb', 'ph:file-duotone', 'lowTemplate/generalPage/form/form_zxfb', 'FormZxfb', 0, 1, 1, 1, '1', '2024-09-23 11:18:54', '1', '2024-09-25 13:46:34', 0); +INSERT INTO `system_menu` VALUES (2857, '基础详情页', '', 2, 15, 2842, 'group_jcxqy', 'ph:file-duotone', 'lowTemplate/generalPage/group/group_jcxqy', 'GroupJcxqy', 0, 1, 1, 1, '1', '2024-09-23 11:20:56', '1', '2024-09-25 13:47:59', 0); +INSERT INTO `system_menu` VALUES (2858, '高级详情页', '', 2, 16, 2842, 'group_gjxqy', 'ph:file-duotone', 'lowTemplate/generalPage/group/group_gjxqy', 'GroupGjxqy', 0, 1, 1, 1, '1', '2024-09-23 11:22:33', '1', '2024-09-23 14:26:52', 0); +INSERT INTO `system_menu` VALUES (2859, '数据报表页', '', 2, 17, 2842, 'group_sjbby', 'ph:file-duotone', 'lowTemplate/generalPage/group/group_sjbby', 'GroupSjbby', 0, 1, 1, 1, '1', '2024-09-23 11:26:32', '1', '2024-09-25 13:49:22', 0); +INSERT INTO `system_menu` VALUES (2861, '个人中心1', '', 2, 19, 2842, 'feature_grzx1', 'ph:file-duotone', 'lowTemplate/generalPage/feature/feature_grzx1', 'FeatureGrzx1', 0, 1, 1, 1, '1', '2024-09-23 11:34:28', '1', '2024-09-23 14:26:47', 0); +INSERT INTO `system_menu` VALUES (2862, '个人中心2', '', 2, 20, 2842, 'feature_grzx2', 'ph:file-duotone', 'lowTemplate/generalPage/feature/feature_grzx2', 'FeatureGrzx2', 0, 1, 1, 1, '1', '2024-09-23 11:35:27', '1', '2024-09-23 14:26:45', 0); +INSERT INTO `system_menu` VALUES (2863, '数据会员', '', 2, 6, 2836, 'index8', 'ph:file-duotone', 'Home/Index8', 'Index8', 0, 1, 1, 1, '1', '2024-10-09 09:36:57', '1', '2024-10-09 09:36:57', 0); +INSERT INTO `system_menu` VALUES (2864, '数据首页', '', 2, 7, 2836, 'index9', 'ph:file-duotone', 'Home/Index9', 'Index9', 0, 1, 1, 1, '1', '2024-10-09 10:16:37', '1', '2024-10-12 15:29:55', 0); +INSERT INTO `system_menu` VALUES (2865, '管理模块', '', 1, 3, 2835, 'three', 'ep:menu', '', '', 0, 1, 1, 1, '1', '2024-10-10 14:37:38', '1', '2024-10-10 14:37:38', 0); +INSERT INTO `system_menu` VALUES (2866, '订单管理', '', 2, 1, 2865, 'table/view/1844275960258019330', 'ep:tickets', '', '', 0, 1, 1, 1, '1', '2024-10-10 15:41:20', '1', '2024-10-10 15:43:45', 0); +INSERT INTO `system_menu` VALUES (2867, '工单管理', '', 2, 2, 2865, 'workorder', 'ep:document', 'lowexample/form/workOrder', 'workOrder', 0, 1, 1, 1, '1', '2024-10-11 14:46:43', '1', '2024-10-11 14:46:43', 0); +INSERT INTO `system_menu` VALUES (2868, '首页概览', '', 2, 8, 2836, 'index10', 'ph:file-duotone', 'Home/Index10', 'Index10', 0, 1, 1, 1, '1', '2024-10-12 15:29:57', '1', '2024-10-12 15:29:57', 0); +INSERT INTO `system_menu` VALUES (2869, '报表设计', '', 2, 3, 2761, 'reportDesign', 'lsicon:report-outline', 'lowdesign/reportDesign/index', 'ReportDesign', 0, 1, 1, 1, '1', '2024-10-14 09:37:17', '1', '2024-10-14 09:37:17', 0); +INSERT INTO `system_menu` VALUES (2870, '部门管理', '', 2, 4, 2865, 'table/view/1846009550756601857', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-10-15 11:42:47', '1', '2024-10-15 11:42:47', 0); +INSERT INTO `system_menu` VALUES (2872, '职务管理', '', 2, 4, 2865, 'table/view/1846083503466356737', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-10-15 15:07:41', '1', '2024-10-15 16:44:37', 0); +INSERT INTO `system_menu` VALUES (2873, '用户管理', '', 2, 5, 2865, 'table/view/1845019389086736386', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-10-15 16:43:53', '1', '2024-10-15 16:44:34', 0); +INSERT INTO `system_menu` VALUES (2874, '员工管理', '', 2, 6, 2865, 'StaffManagement', 'ep:document', 'lowTemplate/generalPage/staffManagement', 'StaffManagement', 0, 1, 1, 1, '1', '2024-10-15 16:52:25', '1', '2024-10-15 16:55:58', 0); +INSERT INTO `system_menu` VALUES (2875, '日程管理', '', 2, 7, 2865, 'schedule', 'ep:document', 'views/lowTemplate/generalPage/schedule/schedule', 'schedule', 0, 1, 1, 1, '1', '2024-10-16 15:56:04', '1', '2024-10-28 09:14:49', 0); +INSERT INTO `system_menu` VALUES (2881, '数据查询', 'jeelowcode:report:query', 3, 1, 2869, '', '', '', '', 0, 1, 1, 1, '1', '2024-10-17 13:48:18', '1', '2024-10-17 13:48:18', 0); +INSERT INTO `system_menu` VALUES (2882, '数据新增', 'jeelowcode:report:create', 3, 2, 2869, '', '', '', '', 0, 1, 1, 1, '1', '2024-10-17 13:48:28', '1', '2024-10-17 13:48:28', 0); +INSERT INTO `system_menu` VALUES (2883, '数据修改', 'jeelowcode:report:update', 3, 3, 2869, '', '', '', '', 0, 1, 1, 1, '1', '2024-10-17 13:48:35', '1', '2024-10-17 13:48:35', 0); +INSERT INTO `system_menu` VALUES (2884, '数据删除', 'jeelowcode:report:delete', 3, 4, 2869, '', '', '', '', 0, 1, 1, 1, '1', '2024-10-17 13:48:43', '1', '2024-10-17 13:48:43', 0); +INSERT INTO `system_menu` VALUES (2886, '项目管理', '', 2, 9, 2865, 'project', 'ep:document', 'views/lowTemplate/generalPage/project/project', 'project', 0, 1, 1, 1, '1', '2024-10-18 13:56:32', '1', '2024-10-18 13:57:49', 0); +INSERT INTO `system_menu` VALUES (2887, '任务管理', '', 2, 10, 2865, 'taskManagement', 'ep:document', 'views/lowTemplate/generalPage/taskManagement', 'TaskManagement', 0, 1, 1, 1, '1', '2024-10-30 14:31:04', '1', '2024-10-30 14:31:04', 0); +INSERT INTO `system_menu` VALUES (2888, '相册管理', '', 2, 11, 2865, 'table/view/1851796249232203778', 'ep:picture-filled', '', '', 0, 1, 1, 1, '1', '2024-10-31 16:31:28', '1', '2024-10-31 16:31:28', 0); +INSERT INTO `system_menu` VALUES (2889, '使用统计', '', 2, 9, 2836, 'index11', 'ph:file-duotone', 'Home/Index11', 'Index11', 0, 1, 1, 1, '1', '2024-10-31 17:19:08', '1', '2024-10-31 17:19:08', 0); +INSERT INTO `system_menu` VALUES (2890, '团队管理', '', 2, 12, 2865, 'table/view/1851205230887346177', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-11-02 15:42:38', '1', '2024-11-02 15:43:29', 0); +INSERT INTO `system_menu` VALUES (2891, '联系人管理', '', 2, 13, 2865, 'table/view/1852624838914699265', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-11-04 15:58:39', '1', '2024-11-04 15:58:39', 0); +INSERT INTO `system_menu` VALUES (2901, '日志管理', '', 2, 14, 2865, 'journal', 'ep:document', 'views/lowTemplate/generalPage/journal/journal', 'journal', 0, 1, 1, 1, '1', '2024-11-06 15:04:19', '1', '2024-11-06 15:04:19', 0); +INSERT INTO `system_menu` VALUES (2902, '工作报告', '', 2, 15, 2865, 'WorkReport', 'ep:document', 'lowTemplate/generalPage/workReport/index.vue', 'WorkReport', 0, 1, 1, 1, '1', '2024-11-07 10:14:45', '1', '2024-11-07 10:15:22', 0); +INSERT INTO `system_menu` VALUES (2903, '公告管理', '', 2, 17, 2865, 'table/view/1854048263491252226', 'ep:document', '', '', 0, 1, 1, 1, '1', '2024-11-07 11:04:11', '1', '2024-11-07 11:04:11', 0); +INSERT INTO `system_menu` VALUES (2904, '数据查询', 'jeelowcode:dbform-data:query:1854048263491252226', 3, 1, 2903, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-07 12:00:31', '1', '2024-11-07 12:00:31', 0); +INSERT INTO `system_menu` VALUES (2905, '数据创建', 'jeelowcode:dbform-data:create:1854048263491252226', 3, 1, 2903, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-07 12:00:31', '1', '2024-11-07 12:00:31', 0); +INSERT INTO `system_menu` VALUES (2906, '数据删除', 'jeelowcode:dbform-data:delete:1854048263491252226', 3, 1, 2903, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-07 12:00:31', '1', '2024-11-07 12:00:31', 0); +INSERT INTO `system_menu` VALUES (2907, '详情', 'jeelowcode:dbform-data:xqBtn:1854048263491252226', 3, 1, 2903, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-07 14:04:03', '1', '2024-11-07 14:04:03', 0); +INSERT INTO `system_menu` VALUES (2908, '团队知识库', '', 2, 18, 2865, 'team', 'ep:document', 'views/lowTemplate/generalPage/team/team', 'team', 0, 1, 1, 1, '1', '2024-11-07 15:50:46', '1', '2024-11-07 15:50:46', 0); +INSERT INTO `system_menu` VALUES (2909, '交流论坛', '', 2, 19, 2865, 'RiendshipForum', 'ep:document', 'views/lowTemplate/generalPage/riendshipForum/index.vue', 'RiendshipForum', 0, 1, 1, 1, '1', '2024-11-09 11:59:08', '1', '2024-11-09 12:00:07', 0); +INSERT INTO `system_menu` VALUES (2910, '数据查询', 'jeelowcode:dbform-data:query:1844275960258019330', 3, 1, 2866, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:07', '1', '2024-11-11 09:28:07', 0); +INSERT INTO `system_menu` VALUES (2911, '数据导出', 'jeelowcode:dbform-data:export:1844275960258019330', 3, 1, 2866, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:07', '1', '2024-11-11 09:28:07', 0); +INSERT INTO `system_menu` VALUES (2912, '详情', 'jeelowcode:dbform-data:xqBtn:1844275960258019330', 3, 1, 2866, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:07', '1', '2024-11-11 09:28:07', 0); +INSERT INTO `system_menu` VALUES (2913, '备注', 'jeelowcode:dbform-data:bzBtn:1844275960258019330', 3, 1, 2866, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:08', '1', '2024-11-11 09:28:08', 0); +INSERT INTO `system_menu` VALUES (2914, '关闭', 'jeelowcode:dbform-data:gbBtn:1844275960258019330', 3, 1, 2866, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:08', '1', '2024-11-11 09:28:08', 0); +INSERT INTO `system_menu` VALUES (2915, '数据查询', 'jeelowcode:dbform-data:query:1846009550756601857', 3, 1, 2870, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:25', '1', '2024-11-11 09:28:25', 0); +INSERT INTO `system_menu` VALUES (2916, '数据创建', 'jeelowcode:dbform-data:create:1846009550756601857', 3, 1, 2870, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:25', '1', '2024-11-11 09:28:25', 0); +INSERT INTO `system_menu` VALUES (2917, '数据更新', 'jeelowcode:dbform-data:update:1846009550756601857', 3, 1, 2870, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:25', '1', '2024-11-11 09:28:25', 0); +INSERT INTO `system_menu` VALUES (2918, '数据删除', 'jeelowcode:dbform-data:delete:1846009550756601857', 3, 1, 2870, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:25', '1', '2024-11-11 09:28:25', 0); +INSERT INTO `system_menu` VALUES (2919, '设置状态', 'jeelowcode:dbform-data:szztBtn:1846009550756601857', 3, 1, 2870, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:25', '1', '2024-11-11 09:28:25', 0); +INSERT INTO `system_menu` VALUES (2920, '数据查询', 'jeelowcode:dbform-data:query:1846083503466356737', 3, 1, 2872, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:34', '1', '2024-11-11 09:28:34', 0); +INSERT INTO `system_menu` VALUES (2921, '数据创建', 'jeelowcode:dbform-data:create:1846083503466356737', 3, 1, 2872, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:34', '1', '2024-11-11 09:28:34', 0); +INSERT INTO `system_menu` VALUES (2922, '数据更新', 'jeelowcode:dbform-data:update:1846083503466356737', 3, 1, 2872, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:34', '1', '2024-11-11 09:28:34', 0); +INSERT INTO `system_menu` VALUES (2923, '数据删除', 'jeelowcode:dbform-data:delete:1846083503466356737', 3, 1, 2872, '', '', '', '', 0, 1, 1, 1, '1', '2024-11-11 09:28:34', '1', '2024-11-11 09:28:34', 0); +INSERT INTO `system_menu` VALUES (2930, '日志管理', '', 1, 60, 0, '/log', 'ep:document-copy', '', '', 0, 1, 1, 1, '1', '2024-12-09 15:09:06', '1', '2024-12-09 15:23:46', 0); +INSERT INTO `system_menu` VALUES (2931, '性能监控', '', 1, 70, 0, '/mon', 'ep:monitor', '', '', 0, 1, 1, 1, '1', '2024-12-09 15:15:56', '1', '2024-12-09 15:23:41', 0); + +-- ---------------------------- +-- Table structure for system_notice +-- ---------------------------- +DROP TABLE IF EXISTS `system_notice`; +CREATE TABLE `system_notice` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告内容', + `type` tinyint(0) NOT NULL COMMENT '公告类型(1通知 2公告)', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '公告状态(0正常 1关闭)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1844311901073105769 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_notice +-- ---------------------------- +INSERT INTO `system_notice` VALUES (1, '芋道的公众', '

新版本内容

', 1, 0, 'admin', '2021-01-05 17:03:48', '1', '2024-10-26 15:25:49', 1, 1); +INSERT INTO `system_notice` VALUES (2, '维护通知:2018-07-01 系统凌晨维护', '

\"\"11112222344

', 2, 1, 'admin', '2021-01-05 17:03:48', '1', '2024-03-02 14:50:44', 0, 1); +INSERT INTO `system_notice` VALUES (4, '我是测试标题', '

哈哈哈哈123

', 1, 0, '110', '2022-02-22 01:01:25', '110', '2022-02-22 01:01:46', 0, 121); +INSERT INTO `system_notice` VALUES (5, '测试', '

测试

', 2, 0, '1', '2024-07-22 09:46:25', '1', '2024-10-26 15:25:51', 1, 1); + +-- ---------------------------- +-- Table structure for system_notify_message +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_message`; +CREATE TABLE `system_notify_message` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `user_id` bigint(0) NOT NULL COMMENT '用户id', + `user_type` tinyint(0) NOT NULL COMMENT '用户类型', + `template_id` bigint(0) NOT NULL COMMENT '模版编号', + `template_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版发送人名称', + `template_content` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版内容', + `template_type` int(0) NOT NULL COMMENT '模版类型', + `template_params` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版参数', + `read_status` int(0) NOT NULL COMMENT '是否已读', + `read_time` datetime(0) NULL DEFAULT NULL COMMENT '阅读时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 24 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站内信消息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_notify_message +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_notify_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_template`; +CREATE TABLE `system_notify_template` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版编码', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发送人名称', + `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模版内容', + `type` int(0) NOT NULL COMMENT '类型', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数数组', + `status` int(0) NOT NULL COMMENT '状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '站内信模板表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_notify_template +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_oauth2_access_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_access_token`; +CREATE TABLE `system_oauth2_access_token` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` int(0) NOT NULL COMMENT '用户类型', + `access_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '访问令牌', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '刷新令牌', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime(0) NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_access_token`(`access_token`) USING BTREE, + INDEX `idx_refresh_token`(`refresh_token`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 19339 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OAuth2 访问令牌' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_oauth2_access_token +-- ---------------------------- +INSERT INTO `system_oauth2_access_token` VALUES (19336, 1, 2, 'b61ceb71f2d84f419d521b64f24e2649', 'fe78049081824178abbaa4c06924f57d', 'default', NULL, '2024-12-11 10:25:39', NULL, '2024-12-11 09:55:39', NULL, '2024-12-11 09:55:39', 0, 1); +INSERT INTO `system_oauth2_access_token` VALUES (19337, 1, 2, '10543912573f40d4b183de08a46bc1f2', '076a98e9b611427aa7903687fd194637', 'default', NULL, '2024-12-28 14:16:37', NULL, '2024-12-28 13:46:37', NULL, '2024-12-28 13:46:37', 0, 1); +INSERT INTO `system_oauth2_access_token` VALUES (19338, 1, 2, '59afdf9714994a89a1482bda829becb4', '2fd3040f25f44f8bbe22200600ad3d50', 'default', NULL, '2024-12-28 14:17:16', NULL, '2024-12-28 13:47:16', NULL, '2024-12-28 13:49:40', 1, 1); + +-- ---------------------------- +-- Table structure for system_oauth2_approve +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_approve`; +CREATE TABLE `system_oauth2_approve` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` int(0) NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `scope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '授权范围', + `approved` int(0) NOT NULL DEFAULT 0 COMMENT '是否接受', + `expires_time` datetime(0) NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OAuth2 批准表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_oauth2_approve +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_oauth2_client +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_client`; +CREATE TABLE `system_oauth2_client` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用名', + `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用图标', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用描述', + `status` tinyint(0) NOT NULL COMMENT '状态', + `access_token_validity_seconds` int(0) NOT NULL COMMENT '访问令牌的有效期', + `refresh_token_validity_seconds` int(0) NOT NULL COMMENT '刷新令牌的有效期', + `redirect_uris` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '可重定向的 URI 地址', + `authorized_grant_types` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权类型', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权范围', + `auto_approve_scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自动通过的授权范围', + `authorities` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限', + `resource_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加信息', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OAuth2 客户端表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_oauth2_client +-- ---------------------------- +INSERT INTO `system_oauth2_client` VALUES (1, 'default', 'admin123', 'JeeLowCode', 'http://oss.yckxt.com/chatgpt/upload/1/2024-12-09/1/logo_min_2.png', '我是描述', 0, 1800, 43200, '[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2024-12-09 16:00:22', 0); +INSERT INTO `system_oauth2_client` VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yudao.iocoder.cn/277a899d573723f1fcdfb57340f00379.png', '啦啦啦啦', 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2024-10-26 15:14:48', 1); +INSERT INTO `system_oauth2_client` VALUES (41, 'yudao-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/fe4ed36596adad5120036ef61a6d0153654544d44af8dd4ad3ffe8f759933d6f.png', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"authorization_code\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-09-29 13:28:31', '1', '2024-10-26 15:14:15', 1); +INSERT INTO `system_oauth2_client` VALUES (42, 'yudao-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"password\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-10-04 17:40:16', '1', '2024-10-26 15:14:13', 1); + +-- ---------------------------- +-- Table structure for system_oauth2_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_code`; +CREATE TABLE `system_oauth2_code` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` int(0) NOT NULL COMMENT '用户类型', + `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权码', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '授权范围', + `expires_time` datetime(0) NOT NULL COMMENT '过期时间', + `redirect_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '可重定向的 URI 地址', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OAuth2 授权码表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_oauth2_code +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_oauth2_refresh_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_refresh_token`; +CREATE TABLE `system_oauth2_refresh_token` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '刷新令牌', + `user_type` int(0) NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime(0) NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2666 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OAuth2 刷新令牌' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_oauth2_refresh_token +-- ---------------------------- +INSERT INTO `system_oauth2_refresh_token` VALUES (2663, 1, 'fe78049081824178abbaa4c06924f57d', 2, 'default', NULL, '2024-12-11 21:55:39', NULL, '2024-12-11 09:55:39', NULL, '2024-12-11 09:55:39', 0, 1); +INSERT INTO `system_oauth2_refresh_token` VALUES (2664, 1, '076a98e9b611427aa7903687fd194637', 2, 'default', NULL, '2024-12-29 01:46:37', NULL, '2024-12-28 13:46:37', NULL, '2024-12-28 13:46:37', 0, 1); +INSERT INTO `system_oauth2_refresh_token` VALUES (2665, 1, '2fd3040f25f44f8bbe22200600ad3d50', 2, 'default', NULL, '2024-12-29 01:47:16', NULL, '2024-12-28 13:47:16', NULL, '2024-12-28 13:49:40', 1, 1); + +-- ---------------------------- +-- Table structure for system_operate_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_operate_log`; +CREATE TABLE `system_operate_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '用户类型', + `module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模块标题', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作名', + `type` bigint(0) NOT NULL DEFAULT 0 COMMENT '操作分类', + `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '操作内容', + `exts` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '拓展字段', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求地址', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户 IP', + `user_agent` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器 UA', + `java_method` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Java 方法名', + `java_method_args` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'Java 方法的参数', + `start_time` datetime(0) NOT NULL COMMENT '操作时间', + `duration` int(0) NOT NULL COMMENT '执行时长', + `result_code` int(0) NOT NULL DEFAULT 0 COMMENT '结果码', + `result_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '结果提示', + `result_data` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_operate_log +-- ---------------------------- +INSERT INTO `system_operate_log` VALUES (1, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter', '192.168.5.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter\",\"req\":\"[ignore]\"}', '2024-12-28 13:46:44', 86, 0, '', '{\"code\":0,\"data\":{\"example_overview_learningcenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[资讯]支持极速开通小程序\"},{\"type\":\"info\",\"title\":\"[报名]爱逛8月活动招商活动\"},{\"type\":\"info\",\"title\":\"[报名]销售员版商品详情页内测招募\"},{\"type\":\"info\",\"title\":\"[公告]精选7月消暑清凉节招商\"}]},\"example_overview_rulescenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[投票]生态管理与违规处理规范\"},{\"type\":\"info\",\"title\":\"[协议]隐私政策\"},{\"type\":\"info\",\"title\":\"[协议]担保服务协议\"},{\"type\":\"info\",\"title\":\"[协议]商家经营规范\"}]},\"example_overview_productnews\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[07-27]悬浮窗增加微信引导分享\"},{\"type\":\"info\",\"title\":\"[07-22]退货包运费准入门槛降低\"},{\"type\":\"info\",\"title\":\"[07-17]分享有礼帮助商家裂变引流\"},{\"type\":\"info\",\"title\":\"[07-17]积分兑换库存商详页展示优化\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:46:44', NULL, '2024-12-28 13:46:44', 0, 0); +INSERT INTO `system_operate_log` VALUES (2, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter\",\"req\":\"[ignore]\"}', '2024-12-28 13:47:18', 73, 0, '', '{\"code\":0,\"data\":{\"example_overview_learningcenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[资讯]支持极速开通小程序\"},{\"type\":\"info\",\"title\":\"[报名]爱逛8月活动招商活动\"},{\"type\":\"info\",\"title\":\"[报名]销售员版商品详情页内测招募\"},{\"type\":\"info\",\"title\":\"[公告]精选7月消暑清凉节招商\"}]},\"example_overview_rulescenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[投票]生态管理与违规处理规范\"},{\"type\":\"info\",\"title\":\"[协议]隐私政策\"},{\"type\":\"info\",\"title\":\"[协议]担保服务协议\"},{\"type\":\"info\",\"title\":\"[协议]商家经营规范\"}]},\"example_overview_productnews\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[07-27]悬浮窗增加微信引导分享\"},{\"type\":\"info\",\"title\":\"[07-22]退货包运费准入门槛降低\"},{\"type\":\"info\",\"title\":\"[07-17]分享有礼帮助商家裂变引流\"},{\"type\":\"info\",\"title\":\"[07-17]积分兑换库存商详页展示优化\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:47:19', NULL, '2024-12-28 13:47:19', 0, 0); +INSERT INTO `system_operate_log` VALUES (3, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter\",\"req\":\"[ignore]\"}', '2024-12-28 13:47:33', 69, 0, '', '{\"code\":0,\"data\":{\"example_overview_learningcenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[资讯]支持极速开通小程序\"},{\"type\":\"info\",\"title\":\"[报名]爱逛8月活动招商活动\"},{\"type\":\"info\",\"title\":\"[报名]销售员版商品详情页内测招募\"},{\"type\":\"info\",\"title\":\"[公告]精选7月消暑清凉节招商\"}]},\"example_overview_rulescenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[投票]生态管理与违规处理规范\"},{\"type\":\"info\",\"title\":\"[协议]隐私政策\"},{\"type\":\"info\",\"title\":\"[协议]担保服务协议\"},{\"type\":\"info\",\"title\":\"[协议]商家经营规范\"}]},\"example_overview_productnews\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[07-27]悬浮窗增加微信引导分享\"},{\"type\":\"info\",\"title\":\"[07-22]退货包运费准入门槛降低\"},{\"type\":\"info\",\"title\":\"[07-17]分享有礼帮助商家裂变引流\"},{\"type\":\"info\",\"title\":\"[07-17]积分兑换库存商详页展示优化\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:47:33', NULL, '2024-12-28 13:47:33', 0, 0); +INSERT INTO `system_operate_log` VALUES (4, '', 1, 2, '低代码框架-框架接口', '表单开发 - 获取分页数据', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.getPageDbFormConfig(PageDbFormParam,PageVo)', '{\"param\":{\"tableName\":null,\"tableDescribe\":null,\"tableType\":null,\"tableClassify\":null,\"isDbSync\":null,\"id\":null,\"groupDbformId\":null},\"pageVo\":{\"pageNo\":1,\"pageSize\":10}}', '2024-12-28 13:47:44', 260, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1854716968965484545\",\"tableName\":\"example_jllt_htlb\",\"tableDescribe\":\"交流论坛-话题列表\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854438272522235905\",\"tableName\":\"example_mkgl_tdzsk\",\"tableDescribe\":\"模版管理-团队知识库\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854408557228961794\",\"tableName\":\"example_jllt_tlbk\",\"tableDescribe\":\"交流论坛-讨论板块\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854341001851940865\",\"tableName\":\"example_mkgl_dlrz\",\"tableDescribe\":\"模块管理-登录日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18},{\"id\":\"1854331399533998082\",\"tableName\":\"example_mkgl_sprz\",\"tableDescribe\":\"模块管理-审批日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":15},{\"id\":\"1854067250698612737\",\"tableName\":\"example_mkgl_rzgl\",\"tableDescribe\":\"模块管理-日志管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854048263491252226\",\"tableName\":\"example_mkgl_gggl\",\"tableDescribe\":\"模块管理-公告管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":1,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1853269839533273090\",\"tableName\":\"example_mkgl_gzbg\",\"tableDescribe\":\"模块管理-工作报告\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":3,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1852624838914699265\",\"tableName\":\"example_contact_manager\",\"tableDescribe\":\"管理模块-联系人管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":5,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18},{\"id\":\"1852241979997646849\",\"tableName\":\"example_xcgl_view\",\"tableDescribe\":\"管理模块-相册管理_详情\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":13}],\"total\":78,\"size\":10,\"current\":1,\"pages\":8},\"msg\":\"\"}', NULL, '2024-12-28 13:47:44', NULL, '2024-12-28 13:47:44', 0, 0); +INSERT INTO `system_operate_log` VALUES (5, '', 1, 2, '低代码框架-表单设计器接口', '获取列表', 2, '', '', 'POST', '/admin-api/jeelowcode/desform/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DesFormController.page(PageDesFormParam,PageVo)', '{\"param\":{\"id\":null,\"desformName\":null,\"functionType\":null,\"isOpen\":null,\"isTemplate\":null,\"groupDesformId\":null},\"pageVo\":{\"pageNo\":1,\"pageSize\":10}}', '2024-12-28 13:47:59', 39, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1862065125842554881\",\"createTime\":1732785896000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1732787660000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"学生请假申请表\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1856521825921736705\",\"createTime\":1731464270000,\"createUser\":1,\"createDept\":null,\"updateUser\":1,\"updateTime\":1731483461000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"日历新增\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854442042421391362\",\"createTime\":1730968411000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731124586000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"交流论坛-创建话题\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854399122108559362\",\"createTime\":1730958178000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731313904000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"公告管理-详情\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854359628093304834\",\"createTime\":1730948762000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730950763000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"公告管理-新增\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853994635845922818\",\"createTime\":1730861741000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731727656000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告-报告详情-右\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853701496069386242\",\"createTime\":1730791851000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731721289000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告-报告详情-左\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853325190400012289\",\"createTime\":1730702133000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730791812000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853285742086909953\",\"createTime\":1730692728000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730711157000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"联系人管理-添加联系人\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1852253282782900226\",\"createTime\":1730446570000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730447099000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"相册管理-上传图片\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"}],\"total\":72,\"size\":10,\"current\":1,\"pages\":8},\"msg\":\"\"}', NULL, '2024-12-28 13:47:59', NULL, '2024-12-28 13:47:59', 0, 0); +INSERT INTO `system_operate_log` VALUES (6, '', 1, 2, '低代码框架-报表接口', '数据 - 获取分页数据', 2, '', '', 'POST', '/admin-api/jeelowcode/report/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportController.getPageReportConfig(PageReportParam,PageVo)', '{\"param\":{\"reportName\":null,\"reportCode\":null,\"javaConfig\":null,\"groupReportId\":null},\"pageVo\":{\"pageNo\":1,\"pageSize\":10}}', '2024-12-28 13:48:05', 54, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1851881182579535873\",\"createTime\":1730357855000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730710000000,\"isDeleted\":0,\"tenantId\":\"1\",\"reportName\":\"系统首页-使用统计-使用人数最少模块\",\"reportCode\":\"example_sytj_syzsmk\",\"groupReportId\":null,\"javaConfig\":\"exampleSytjSyzsmkReportEnhance\",\"dataConfig\":\"page,authFalse\",\"tableConfig\":\"height,header,menu,index,border\",\"dataSourcesConfig\":null},{\"id\":\"1851877239195578370\",\"createTime\":1730356915000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730705579000,\"isDeleted\":0,\"tenantId\":\"1\",\"reportName\":\"系统首页-使用统计-使用人数最多模块\",\"reportCode\":\"example_sytj_syzdmk\",\"groupReportId\":null,\"javaConfig\":\"exampleSytjSyzdmkReportEnhance\",\"dataConfig\":\"page,authFalse\",\"tableConfig\":\"height,header,menu,index,border\",\"dataSourcesConfig\":\"{\\\"dataOrigin\\\":\\\"\\\",\\\"executeSql\\\":\\\"SELECT\\\\n tbl_erd.value\\\\nFROM\\\\n example_report_data AS tbl_erd\\\\nWHERE\\\\n tbl_erd.is_deleted = 0\\\\n AND tbl_erd.type_index = \'系统首页使用统计\'\\\\n AND tbl_erd.table_type = \'使用最多模块\'\\\",\\\"optionData\\\":{\\\"optionObj\\\":{\\\"select\\\":[{\\\"label\\\":\\\"value(json数据)\\\",\\\"value\\\":\\\"value\\\",\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"field\\\",\\\"fieldType\\\":\\\"Text\\\",\\\"prop\\\":\\\"option_5830526\\\",\\\"controlType\\\":\\\"text\\\",\\\"alias\\\":\\\"\\\"}],\\\"from\\\":[{\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"table\\\",\\\"prop\\\":\\\"option_7111734\\\",\\\"controlType\\\":\\\"text\\\",\\\"connectType\\\":\\\"INNER JOIN\\\"}],\\\"where\\\":[{\\\"label\\\":\\\"is_deleted(是否删除)\\\",\\\"value\\\":\\\"is_deleted\\\",\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"field\\\",\\\"fieldType\\\":\\\"Integer\\\",\\\"prop\\\":\\\"option_9099601\\\",\\\"controlType\\\":\\\"default\\\",\\\"conditionValue\\\":\\\"0\\\",\\\"condition\\\":\\\"EQ\\\",\\\"width_where\\\":\\\"44px\\\"},{\\\"label\\\":\\\"type_index(首页类型)\\\",\\\"value\\\":\\\"type_index\\\",\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"field\\\",\\\"fieldType\\\":\\\"String\\\",\\\"prop\\\":\\\"option_5223893\\\",\\\"controlType\\\":\\\"default\\\",\\\"conditionValue\\\":\\\"系统首页使用统计\\\",\\\"condition\\\":\\\"EQ\\\",\\\"width_where\\\":\\\"44px\\\"},{\\\"label\\\":\\\"table_type(报表类型)\\\",\\\"value\\\":\\\"table_type\\\",\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"field\\\",\\\"fieldType\\\":\\\"String\\\",\\\"prop\\\":\\\"option_3337900\\\",\\\"controlType\\\":\\\"default\\\",\\\"conditionValue\\\":\\\"使用最多模块\\\",\\\"condition\\\":\\\"EQ\\\",\\\"width_where\\\":\\\"44px\\\"}],\\\"groupBy\\\":\\\"\\\",\\\"having\\\":\\\"\\\",\\\"orderBy\\\":[]},\\\"aliasObj\\\":{\\\"example_report_data\\\":\\\"tbl_erd\\\"},\\\"typeKey\\\":\\\"option\\\"}}\"},{\"id\":\"1851549188884660226\",\"createTime\":1730278701000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730367055000,\"isDeleted\":0,\"tenantId\":\"1\",\"reportName\":\"系统首页-使用统计-登录使用人数\",\"reportCode\":\"example_sytj_dlsyrs\",\"groupReportId\":null,\"javaConfig\":\"exampleTrafficStatisticsReportEnhance\",\"dataConfig\":\"page,authFalse\",\"tableConfig\":\"height,header,menu,index,border\",\"dataSourcesConfig\":\"{\\\"dataOrigin\\\":\\\"\\\",\\\"executeSql\\\":\\\"\\\",\\\"optionData\\\":{\\\"optionObj\\\":{\\\"select\\\":[],\\\"from\\\":[],\\\"where\\\":[],\\\"groupBy\\\":\\\"\\\",\\\"having\\\":\\\"\\\",\\\"orderBy\\\":[]},\\\"aliasObj\\\":{\\\"example_demo\\\":\\\"tbl_ed\\\"},\\\"typeKey\\\":\\\"option\\\"}}\"},{\"id\":\"1849723305129263105\",\"createTime\":1729843377000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1729843604000,\"isDeleted\":0,\"tenantId\":\"1\",\"reportName\":\"系统首页-首页概览-商家经验数量\",\"reportCode\":\"example_overview_merchant_cou\",\"groupReportId\":null,\"javaConfig\":\"exampleXtsyLineReportEnhance\",\"dataConfig\":\"page,authFalse\",\"tableConfig\":\"height,header,menu,index,border\",\"dataSourcesConfig\":\"{\\\"dataOrigin\\\":\\\"1847167244620152834\\\",\\\"executeSql\\\":\\\"SELECT\\\\n tbl_erd.value\\\\nFROM\\\\n example_report_data AS tbl_erd\\\\nWHERE\\\\n tbl_erd.is_deleted = 0\\\\n AND tbl_erd.type_index = \'系统首页首页概览\'\\\\n AND tbl_erd.table_type = \'商家经验数量\'\\\",\\\"optionData\\\":{\\\"optionObj\\\":{\\\"select\\\":[{\\\"label\\\":\\\"value(json数据)\\\",\\\"value\\\":\\\"value\\\",\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"field\\\",\\\"fieldType\\\":\\\"Text\\\",\\\"prop\\\":\\\"option_1736527\\\",\\\"controlType\\\":\\\"text\\\",\\\"alias\\\":\\\"\\\"}],\\\"from\\\":[{\\\"tableName\\\":\\\"example_report_data\\\",\\\"type\\\":\\\"table\\\",\\\"prop\\\":\\\"option_8608209\\\",\\\"co...', NULL, '2024-12-28 13:48:05', NULL, '2024-12-28 13:48:05', 0, 0); +INSERT INTO `system_operate_log` VALUES (7, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_client_month_data,example_client_data_briefs,example_client_salesman_rank,example_client_sales_target', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_client_month_data,example_client_data_briefs,example_client_salesman_rank,example_client_sales_target\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:12', 97, 0, '', '{\"code\":0,\"data\":{\"example_client_salesman_rank\":{\"exitFlag\":false,\"total\":10,\"records\":[{\"name\":\"张小刚\",\"money\":\"100.00万\",\"percent\":90},{\"name\":\"李小红\",\"money\":\"90.00万\",\"percent\":80},{\"name\":\"王小明\",\"money\":\"80.00万\",\"percent\":70},{\"name\":\"周小伟\",\"money\":\"70.00万\",\"percent\":65},{\"name\":\"郭小涛\",\"money\":\"60.00万\",\"percent\":50},{\"name\":\"邵小婷\",\"money\":\"55.00万\",\"percent\":50},{\"name\":\"叶小福\",\"money\":\"50.00万\",\"percent\":50},{\"name\":\"郭千秋\",\"money\":\"45.00万\",\"percent\":50},{\"name\":\"姜小风\",\"money\":\"42.00万\",\"percent\":50},{\"name\":\"吴小夏\",\"money\":\"40.00万\",\"percent\":50}]},\"example_client_month_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"yxsje\":{\"value\":\"120000\",\"ztb\":\"12%\",\"ztbType\":\"top\",\"rhb\":\"10%\",\"rhbType\":\"bottom\"},\"yhkje\":{\"value\":\"100000\",\"data\":[1,1,1,2,2,2,2,2,12,11,25,4,9,8,28,28,26,28,18,19,16,12,9,13,16,16,12,12,17,11,8,8,1,3,2,2,2,2,2,1,1]},\"bycjdd\":{\"value\":\"1000\",\"data\":[30,50,65,35,45,40,30,40,60,50,20,35,55,45,60]},\"wcxsmb\":{\"value\":75},\"hkdcl\":{\"value\":80}}]},\"example_client_sales_target\":{\"exitFlag\":false,\"total\":12,\"records\":[{\"date\":\"1月\",\"mbje\":\"1700000\",\"cjje\":\"2520000\"},{\"date\":\"2月\",\"mbje\":\"1660000\",\"cjje\":\"2650000\"},{\"date\":\"3月\",\"mbje\":\"1420000\",\"cjje\":\"2330000\"},{\"date\":\"4月\",\"mbje\":\"1520000\",\"cjje\":\"2150000\"},{\"date\":\"5月\",\"mbje\":\"1190000\",\"cjje\":\"1840000\"},{\"date\":\"6月\",\"mbje\":\"1030000\",\"cjje\":\"1830000\"},{\"date\":\"7月\",\"mbje\":\"1050000\",\"cjje\":\"1450000\"},{\"date\":\"8月\",\"mbje\":\"870000\",\"cjje\":\"950000\"},{\"date\":\"9月\",\"mbje\":\"690000\",\"cjje\":\"690000\"},{\"date\":\"10月\",\"mbje\":\"620000\",\"cjje\":\"2650000\"},{\"date\":\"11月\",\"mbje\":\"1320000\",\"cjje\":\"1230000\"},{\"date\":\"12月\",\"mbje\":\"1220000\",\"cjje\":\"1000000\"}]},\"example_client_data_briefs\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"xzkh\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"pos\"},\"xzxs\":{\"value\":\"1200\",\"percent\":\"15.9%\",\"type\":\"pos\"},\"xzsj\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"neg\"},\"xzdd\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"neg\"},\"xnlxr\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"pos\"},\"gjcs\":{\"value\":\"1200\",\"percent\":\"15.9%\",\"type\":\"pos\"},\"clrw\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"neg\"},\"clgd\":{\"value\":\"500\",\"percent\":\"15.9%\",\"type\":\"neg\"}}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:13', NULL, '2024-12-28 13:48:13', 0, 0); +INSERT INTO `system_operate_log` VALUES (8, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_client_sales_forecast,example_client_sales_funnelgraphic,example_client_system_notification', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_client_sales_forecast,example_client_sales_funnelgraphic,example_client_system_notification\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:13', 73, 0, '', '{\"code\":0,\"data\":{\"example_client_sales_funnelgraphic\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"cbqt\":\"36\",\"srgt\":\"25\",\"cpbj\":\"18\",\"cjsj\":\"10\",\"lssj\":\"8\"}]},\"example_client_system_notification\":{\"exitFlag\":false,\"total\":8,\"records\":[{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"},{\"label\":\"JeeLowCode低代码平台\",\"time\":\"2024-08-31 12:00:00\"}]},\"example_client_sales_forecast\":{\"exitFlag\":false,\"total\":12,\"records\":[{\"date\":\"1月\",\"yjxsje\":\"700000\",\"glje\":\"390000\"},{\"date\":\"2月\",\"yjxsje\":\"690000\",\"glje\":\"420000\"},{\"date\":\"3月\",\"yjxsje\":\"950000\",\"glje\":\"570000\"},{\"date\":\"4月\",\"yjxsje\":\"1450000\",\"glje\":\"850000\"},{\"date\":\"5月\",\"yjxsje\":\"1840000\",\"glje\":\"1190000\"},{\"date\":\"6月\",\"yjxsje\":\"2150000\",\"glje\":\"1520000\"},{\"date\":\"7月\",\"yjxsje\":\"2520000\",\"glje\":\"1700000\"},{\"date\":\"8月\",\"yjxsje\":\"2650000\",\"glje\":\"1660000\"},{\"date\":\"9月\",\"yjxsje\":\"2330000\",\"glje\":\"1420000\"},{\"date\":\"10月\",\"yjxsje\":\"1830000\",\"glje\":\"1030000\"},{\"date\":\"11月\",\"yjxsje\":\"1390000\",\"glje\":\"660000\"},{\"date\":\"12月\",\"yjxsje\":\"960000\",\"glje\":\"480000\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:13', NULL, '2024-12-28 13:48:13', 0, 0); +INSERT INTO `system_operate_log` VALUES (9, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_trader_count_data,example_trader_expansion,example_trader_merchant_distribution,example_trader_transaction_funneldiagram', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_trader_count_data,example_trader_expansion,example_trader_merchant_distribution,example_trader_transaction_funneldiagram\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:15', 116, 0, '', '{\"code\":0,\"data\":{\"example_trader_count_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"shzs\":{\"num\":\"1200\",\"percentage\":\"10%\",\"type\":\"pos\"},\"ktzsh\":{\"num\":\"1000\",\"percentage\":\"10%\",\"type\":\"pos\"},\"zfwl\":{\"num\":\"200000\",\"percentage\":\"10%\",\"type\":\"pos\"},\"zjye\":{\"num\":\"80000\"},\"zddl\":{\"num\":\"24200.00\",\"percentage\":\"20%\",\"type\":\"neg\"},\"kdj\":{\"num\":\"120.00\",\"percentage\":\"10%\",\"type\":\"pos\"}}]},\"example_trader_merchant_distribution\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"value\":8000,\"name\":\"娱乐\"},{\"value\":10000,\"name\":\"旅游\"},{\"value\":10000,\"name\":\"酒店\"},{\"value\":8000,\"name\":\"餐饮\"},{\"value\":6000,\"name\":\"医疗\"}]},\"example_trader_expansion\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"yjh\":{\"leftNum\":600,\"rightNum\":1000},\"ywc\":{\"leftNum\":500,\"rightNum\":1000},\"ktz\":{\"leftNum\":400,\"rightNum\":1000},\"qtz\":{\"leftNum\":400,\"rightNum\":1000}}]},\"example_trader_transaction_funneldiagram\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"value\":50000,\"name\":\"访问人数\"},{\"value\":35000,\"name\":\"提交订单\"},{\"value\":25000,\"name\":\"支付成功\"},{\"value\":15000,\"name\":\"到店消费\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:15', NULL, '2024-12-28 13:48:15', 0, 0); +INSERT INTO `system_operate_log` VALUES (10, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_trader_daily_turnover,example_trader_weekly_orders,example_trader_expansion_number,example_trader_transaction_amount', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_trader_daily_turnover,example_trader_weekly_orders,example_trader_expansion_number,example_trader_transaction_amount\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:15', 126, 0, '', '{\"code\":0,\"data\":{\"example_trader_transaction_amount\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"12-01\",\"xscj\":\"200000\",\"xxcj\":\"100000\"},{\"date\":\"12-02\",\"xscj\":\"330000\",\"xxcj\":\"200000\"},{\"date\":\"12-03\",\"xscj\":\"340000\",\"xxcj\":\"180000\"},{\"date\":\"12-04\",\"xscj\":\"350000\",\"xxcj\":\"320000\"},{\"date\":\"12-05\",\"xscj\":\"360000\",\"xxcj\":\"300000\"},{\"date\":\"12-06\",\"xscj\":\"430000\",\"xxcj\":\"400000\"},{\"date\":\"12-07\",\"xscj\":\"450000\",\"xxcj\":\"380000\"}]},\"example_trader_daily_turnover\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"time\":\"12:00\",\"data\":32000},{\"time\":\"14:00\",\"data\":35000},{\"time\":\"16:00\",\"data\":37000},{\"time\":\"18:00\",\"data\":32000},{\"time\":\"20:00\",\"data\":34000},{\"time\":\"22:00\",\"data\":33000},{\"time\":\"24:00\",\"data\":37000}]},\"example_trader_weekly_orders\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"周一\",\"data\":800},{\"date\":\"周二\",\"data\":3000},{\"date\":\"周三\",\"data\":2000},{\"date\":\"周四\",\"data\":3800},{\"date\":\"周五\",\"data\":3600},{\"date\":\"周六\",\"data\":4800},{\"date\":\"周日\",\"data\":4500}]},\"example_trader_expansion_number\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"周一\",\"mbkts\":1008,\"sjkts\":1800},{\"date\":\"周二\",\"mbkts\":2000,\"sjkts\":2500},{\"date\":\"周三\",\"mbkts\":2600,\"sjkts\":2100},{\"date\":\"周四\",\"mbkts\":1800,\"sjkts\":1300},{\"date\":\"周五\",\"mbkts\":3500,\"sjkts\":6000},{\"date\":\"周六\",\"mbkts\":5300,\"sjkts\":2800},{\"date\":\"周日\",\"mbkts\":3800,\"sjkts\":6000}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:15', NULL, '2024-12-28 13:48:15', 0, 0); +INSERT INTO `system_operate_log` VALUES (11, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1847537155101040642', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1847537155101040642\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:15', 474, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":3,\"records\":[{\"cancel\":\"2000\",\"tenant_id\":1,\"quantity\":\"5000\",\"create_time\":1729475200000,\"create_dept\":101,\"score\":\"80\",\"is_deleted\":0,\"money\":\"645452.00\",\"name\":\"Apple产品自营旗舰店\",\"ranking\":\"03\",\"pj\":\"3\",\"id\":\"1848179063250939905\",\"visit\":\"20000\",\"create_user\":1,\"jian\":\"20\"},{\"cancel\":\"2000\",\"tenant_id\":1,\"quantity\":\"5000\",\"create_time\":1729475168000,\"create_dept\":101,\"score\":\"80\",\"is_deleted\":0,\"money\":\"645452.00\",\"name\":\"Apple产品自营旗舰店\",\"ranking\":\"02\",\"pj\":\"3\",\"id\":\"1848178928341151746\",\"visit\":\"20000\",\"create_user\":1,\"jian\":\"20\"},{\"cancel\":\"2000\",\"tenant_id\":1,\"quantity\":\"5000\",\"create_time\":1729475132000,\"create_dept\":101,\"score\":\"80\",\"is_deleted\":0,\"money\":\"645452.00\",\"name\":\"Apple产品自营旗舰店\",\"ranking\":\"01\",\"pj\":\"3\",\"id\":\"1848178774867374082\",\"visit\":\"20000\",\"create_user\":1,\"zeng\":\"10\"}]},\"msg\":\"\"}', NULL, '2024-12-28 13:48:15', NULL, '2024-12-28 13:48:15', 0, 0); +INSERT INTO `system_operate_log` VALUES (12, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_systemmonitor_server_information,example_systemmonitor_cpu_utilization,example_systemmonitor_memory_utilization,example_systemmonitor_server_traffic,example_systemmonitor_disk_io', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_systemmonitor_server_information,example_systemmonitor_cpu_utilization,example_systemmonitor_memory_utilization,example_systemmonitor_server_traffic,example_systemmonitor_disk_io\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:16', 124, 0, '', '{\"code\":0,\"data\":{\"example_systemmonitor_server_traffic\":{\"exitFlag\":false,\"total\":6,\"records\":[{\"time\":\"12:00\",\"sc\":10,\"xz\":20},{\"time\":\"13:00\",\"sc\":15,\"xz\":12},{\"time\":\"14:00\",\"sc\":20,\"xz\":23},{\"time\":\"15:00\",\"sc\":25,\"xz\":22},{\"time\":\"16:00\",\"sc\":15,\"xz\":10},{\"time\":\"17:00\",\"sc\":20,\"xz\":5}]},\"example_systemmonitor_disk_io\":{\"exitFlag\":false,\"total\":6,\"records\":[{\"time\":\"12:00\",\"sc\":10,\"sr\":20},{\"time\":\"13:00\",\"sc\":15,\"sr\":12},{\"time\":\"14:00\",\"sc\":20,\"sr\":23},{\"time\":\"15:00\",\"sc\":25,\"sr\":22},{\"time\":\"16:00\",\"sc\":15,\"sr\":10},{\"time\":\"17:00\",\"sc\":20,\"sr\":5}]},\"example_systemmonitor_memory_utilization\":{\"exitFlag\":false,\"total\":6,\"records\":[{\"time\":\"12:00\",\"syl\":\"10\"},{\"time\":\"13:00\",\"syl\":\"22\"},{\"time\":\"14:00\",\"syl\":\"28\"},{\"time\":\"15:00\",\"syl\":\"43\"},{\"time\":\"16:00\",\"syl\":\"49\"},{\"time\":\"17:00\",\"syl\":\"40\"}]},\"example_systemmonitor_server_information\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"xtyxsj\":100,\"cpuhxs\":8,\"nczl\":50.0,\"xtpjfz\":0.08,\"cpusyl\":40,\"ncsyl\":40,\"xtpjfzl\":40}]},\"example_systemmonitor_cpu_utilization\":{\"exitFlag\":false,\"total\":6,\"records\":[{\"time\":\"12:00\",\"syl\":\"10\"},{\"time\":\"13:00\",\"syl\":\"22\"},{\"time\":\"14:00\",\"syl\":\"28\"},{\"time\":\"15:00\",\"syl\":\"43\"},{\"time\":\"16:00\",\"syl\":\"49\"},{\"time\":\"17:00\",\"syl\":\"40\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:16', NULL, '2024-12-28 13:48:16', 0, 0); +INSERT INTO `system_operate_log` VALUES (13, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_today_data,example_order_sales,example_order_sales_percentage', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_today_data,example_order_sales,example_order_sales_percentage\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:18', 67, 0, '', '{\"code\":0,\"data\":{\"example_today_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"jrjye\":{\"value\":715400,\"button\":\"+1.6%\",\"type\":1},\"jrddl\":{\"value\":5960,\"button\":\"-5.0%\",\"type\":\"0\"},\"jrlll\":{\"value\":211400,\"button\":\"+1.6%\",\"type\":\"1\"},\"jrfwyh\":{\"value\":12218,\"button\":\"-0.5%\",\"type\":\"0\"},\"jrzcyh\":{\"value\":5200,\"button\":\"+1.6%\",\"type\":\"1\"},\"jrxzhy\":{\"value\":2435,\"button\":\"-1.1%\",\"type\":\"0\"}}]},\"example_order_sales\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"星期一\",\"xse\":\"3244\",\"ddl\":\"1632\"},{\"date\":\"星期二\",\"xse\":\"3424\",\"ddl\":\"1695\"},{\"date\":\"星期三\",\"xse\":\"3232\",\"ddl\":\"1697\"},{\"date\":\"星期四\",\"xse\":\"5648\",\"ddl\":\"3599\"},{\"date\":\"星期五\",\"xse\":\"2000\",\"ddl\":\"2055\"},{\"date\":\"星期六\",\"xse\":\"6441\",\"ddl\":\"2687\"},{\"date\":\"星期日\",\"xse\":\"2959\",\"ddl\":\"3688\"}]},\"example_order_sales_percentage\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"name\":\"商品一\",\"xse\":214620,\"value\":30},{\"name\":\"商品二\",\"xse\":178850,\"value\":25},{\"name\":\"商品三\",\"xse\":107310,\"value\":15},{\"name\":\"商品四\",\"xse\":71540,\"value\":10},{\"name\":\"商品五\",\"xse\":35770,\"value\":5}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:18', NULL, '2024-12-28 13:48:18', 0, 0); +INSERT INTO `system_operate_log` VALUES (14, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_new_user_num,example_user_visits,example_product_sales_rank', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_new_user_num,example_user_visits,example_product_sales_rank\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:18', 67, 0, '', '{\"code\":0,\"data\":{\"example_product_sales_rank\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"pm\":1,\"name\":\"米家声波电动牙刷\",\"sl\":9500,\"sse\":90500},{\"pm\":2,\"name\":\"小米米家充电宝\",\"sl\":9500,\"sse\":90500},{\"pm\":3,\"name\":\"极米H3投影仪\",\"sl\":9500,\"sse\":90500},{\"pm\":4,\"name\":\"搜狗A智能录音笔\",\"sl\":9500,\"sse\":90500},{\"pm\":5,\"name\":\"石头扫地机器人\",\"sl\":9500,\"sse\":90500}]},\"example_user_visits\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"周一\",\"fwyh\":2500},{\"date\":\"周二\",\"fwyh\":1500},{\"date\":\"周三\",\"fwyh\":1000},{\"date\":\"周四\",\"fwyh\":2000},{\"date\":\"周五\",\"fwyh\":2000},{\"date\":\"周六\",\"fwyh\":2700},{\"date\":\"周日\",\"fwyh\":2300}]},\"example_new_user_num\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"周一\",\"xzyh\":2500,\"xzhy\":1234},{\"date\":\"周二\",\"xzyh\":1800,\"xzhy\":3456},{\"date\":\"周三\",\"xzyh\":4200,\"xzhy\":2345},{\"date\":\"周四\",\"xzyh\":3100,\"xzhy\":4567},{\"date\":\"周五\",\"xzyh\":2900,\"xzhy\":123},{\"date\":\"周六\",\"xzyh\":4700,\"xzhy\":4321},{\"date\":\"周日\",\"xzyh\":1300,\"xzhy\":3210}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:18', NULL, '2024-12-28 13:48:18', 0, 0); +INSERT INTO `system_operate_log` VALUES (15, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1847456813371498498', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1847456813371498498\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:18', 169, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"date\":1729304427000,\"tenant_id\":1,\"is_deleted\":0,\"money\":40,\"create_time\":1729304437000,\"create_dept\":101,\"bh\":\"8941651651541\",\"num\":3,\"name\":\"新款卡皮巴拉笔袋\",\"id\":\"1847462831912525825\",\"create_user\":1,\"status\":\"1\"},{\"date\":1729304389000,\"tenant_id\":1,\"is_deleted\":0,\"money\":100,\"create_time\":1729304399000,\"create_dept\":101,\"bh\":\"26914891561581\",\"num\":2,\"name\":\"peak匹克羽毛球拍\",\"id\":\"1847462670427627521\",\"create_user\":1,\"status\":\"1\"},{\"date\":1729304307000,\"tenant_id\":1,\"is_deleted\":0,\"money\":10,\"create_time\":1729304316000,\"create_dept\":101,\"bh\":\"45861611145651\",\"num\":1,\"name\":\"KDL826泰坦电视人3.0\",\"id\":\"1847462321453146113\",\"create_user\":1,\"status\":\"1\"},{\"date\":1729304271000,\"tenant_id\":1,\"is_deleted\":0,\"money\":50,\"create_time\":1729304281000,\"create_dept\":101,\"bh\":\"202290434567656\",\"num\":2,\"name\":\"手工毛线针织编织玫瑰永生花\",\"id\":\"1847462174346321922\",\"create_user\":1,\"status\":\"1\"},{\"date\":1729303612000,\"tenant_id\":1,\"is_deleted\":0,\"money\":300,\"create_time\":1729303636000,\"create_dept\":101,\"bh\":\"202290434567655\",\"num\":2,\"name\":\"米家声波电动牙刷\",\"id\":\"1847459470194647042\",\"create_user\":1,\"status\":\"1\"}]},\"msg\":\"\"}', NULL, '2024-12-28 13:48:18', NULL, '2024-12-28 13:48:18', 0, 0); +INSERT INTO `system_operate_log` VALUES (16, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_signagetwo_pending,example_systemmonitor_business_processing,example_systemmonitor_warning_messages,example_systemmonitor_business_target', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_signagetwo_pending,example_systemmonitor_business_processing,example_systemmonitor_warning_messages,example_systemmonitor_business_target\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:20', 96, 0, '', '{\"code\":0,\"data\":{\"example_systemmonitor_warning_messages\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"dqysk\":150,\"yqysk\":100,\"dqyfk\":120,\"yqyfk\":200}]},\"example_systemmonitor_business_processing\":{\"exitFlag\":false,\"total\":8,\"records\":[{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"},{\"tjsj\":\"2016-05-03 12:00\",\"bxlx\":\"交通费报销单\",\"spdh\":\"Bx78858439\",\"bxje\":\"¥250.00\",\"spdx\":\"部门经理\"}]},\"example_systemmonitor_business_target\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"ndjymb\":900,\"ywcmb\":585,\"wcl\":65}]},\"example_signagetwo_pending\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"dclgd\":50,\"dbxmx\":25,\"dtjhb\":23,\"dtjbb\":14}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:20', NULL, '2024-12-28 13:48:20', 0, 0); +INSERT INTO `system_operate_log` VALUES (17, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_systemmonitor_payback_target,example_systemmonitor_account_balance,example_systemmonitor_Income_expenditure_forecasts,example_systemmonitor_fee_structure,example_systemmonitor_Income_structure', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_systemmonitor_payback_target,example_systemmonitor_account_balance,example_systemmonitor_Income_expenditure_forecasts,example_systemmonitor_fee_structure,example_systemmonitor_Income_structure\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:20', 125, 0, '', '{\"code\":0,\"data\":{\"example_systemmonitor_Income_expenditure_forecasts\":{\"exitFlag\":false,\"total\":12,\"records\":[{\"date\":\"1月\",\"yjsr\":1008,\"yjzc\":1800},{\"date\":\"2月\",\"yjsr\":2000,\"yjzc\":2500},{\"date\":\"3月\",\"yjsr\":2600,\"yjzc\":2100},{\"date\":\"4月\",\"yjsr\":1800,\"yjzc\":1300},{\"date\":\"5月\",\"yjsr\":3500,\"yjzc\":6000},{\"date\":\"6月\",\"yjsr\":5300,\"yjzc\":2800},{\"date\":\"7月\",\"yjsr\":3200,\"yjzc\":4000},{\"date\":\"8月\",\"yjsr\":2800,\"yjzc\":5000},{\"date\":\"9月\",\"yjsr\":3300,\"yjzc\":2500},{\"date\":\"10月\",\"yjsr\":1100,\"yjzc\":2000},{\"date\":\"11月\",\"yjsr\":3800,\"yjzc\":2800},{\"date\":\"12月\",\"yjsr\":3800,\"yjzc\":6000}]},\"example_systemmonitor_Income_structure\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"name\":\"培训费用\",\"value\":500000},{\"name\":\"产品研发\",\"value\":900000},{\"name\":\"项目实施\",\"value\":600000},{\"name\":\"其他费用\",\"value\":500000}]},\"example_systemmonitor_fee_structure\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"name\":\"培训费用\",\"value\":500000},{\"name\":\"产品研发\",\"value\":900000},{\"name\":\"项目实施\",\"value\":600000},{\"name\":\"其他费用\",\"value\":500000}]},\"example_systemmonitor_account_balance\":{\"exitFlag\":false,\"total\":6,\"records\":[{\"name\":\"招商银行\",\"num\":3500,\"jdt\":80},{\"name\":\"建设银行\",\"num\":3000,\"jdt\":70},{\"name\":\"工商银行\",\"num\":2500,\"jdt\":60},{\"name\":\"农业银行\",\"num\":2000,\"jdt\":50},{\"name\":\"广州银行\",\"num\":1500,\"jdt\":40},{\"name\":\"其它\",\"num\":1200,\"jdt\":30}]},\"example_systemmonitor_payback_target\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"ndhkmb\":800,\"ywcmb\":440,\"wcl\":55}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:20', NULL, '2024-12-28 13:48:20', 0, 0); +INSERT INTO `system_operate_log` VALUES (18, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_member_count_data,example_member_realtime_visits', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_member_count_data,example_member_realtime_visits\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:21', 46, 0, '', '{\"code\":0,\"data\":{\"example_member_realtime_visits\":{\"exitFlag\":false,\"total\":9,\"records\":[{\"date\":\"10:00\",\"ssfkl\":1500},{\"date\":\"11:00\",\"ssfkl\":3000},{\"date\":\"12:00\",\"ssfkl\":2000},{\"date\":\"13:00\",\"ssfkl\":1000},{\"date\":\"14:00\",\"ssfkl\":1300},{\"date\":\"15:00\",\"ssfkl\":1600},{\"date\":\"16:00\",\"ssfkl\":2100},{\"date\":\"17:00\",\"ssfkl\":1400},{\"date\":\"18:00\",\"ssfkl\":1300}]},\"example_member_count_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"today_new_member\":267,\"today_paid_member\":5996,\"today_member_visitors\":12553,\"today_visitors\":521555}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:21', NULL, '2024-12-28 13:48:21', 0, 0); +INSERT INTO `system_operate_log` VALUES (19, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_member_sale,example_member_product_percentage', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_member_sale,example_member_product_percentage\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:21', 48, 0, '', '{\"code\":0,\"data\":{\"example_member_product_percentage\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"date\":\"2024-10\",\"sm\":37.50,\"xb\":12.50,\"je\":3967.00,\"nz\":31.25,\"my\":18.75}]},\"example_member_sale\":{\"exitFlag\":false,\"total\":9,\"records\":[{\"date\":\"7日\",\"xse\":0},{\"date\":\"8日\",\"xse\":3000},{\"date\":\"9日\",\"xse\":2000},{\"date\":\"10日\",\"xse\":1000},{\"date\":\"11日\",\"xse\":1300},{\"date\":\"12日\",\"xse\":1600},{\"date\":\"13日\",\"xse\":2100},{\"date\":\"14日\",\"xse\":2100},{\"date\":\"15日\",\"xse\":0}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:21', NULL, '2024-12-28 13:48:21', 0, 0); +INSERT INTO `system_operate_log` VALUES (20, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_datahome_store_performance,example_datahome_sales_data,example_datahome_thisweek_data,example_datahome_lastweek_data', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_datahome_store_performance,example_datahome_sales_data,example_datahome_thisweek_data,example_datahome_lastweek_data\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:24', 97, 0, '', '{\"code\":0,\"data\":{\"example_datahome_sales_data\":{\"exitFlag\":false,\"total\":7,\"records\":[{\"date\":\"44周\",\"sczhl\":120,\"je\":150},{\"date\":\"45周\",\"sczhl\":132,\"je\":182},{\"date\":\"46周\",\"sczhl\":101,\"je\":151,\"rje\":100},{\"date\":\"47周\",\"sczhl\":134,\"je\":164},{\"date\":\"48周\",\"sczhl\":90,\"je\":120,\"rje\":100},{\"date\":\"49周\",\"sczhl\":230,\"je\":160},{\"date\":\"本周\",\"sczhl\":160,\"je\":100,\"rje\":100}]},\"example_datahome_store_performance\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"jrxse\":{\"num\":8987.0,\"bf\":68,\"bz\":36},\"bzxse\":{\"num\":17128.0,\"ts\":21.6,\"mbje\":13000.0},\"byxse\":{\"num\":80064.0,\"ts\":21.6,\"mbje\":100000.0},\"bnxse\":{\"num\":907064.0,\"ts\":92,\"mbje\":1200000.0}}]},\"example_datahome_thisweek_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"tycs\":875,\"tycszhl\":45,\"sccs\":326,\"sccszhl\":45,\"xssl\":124,\"xsslzhl\":36,\"ldv\":5,\"yjdl\":23,\"ddl\":8,\"gjdp\":0}]},\"example_datahome_lastweek_data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"xsl\":\"6%\",\"xse\":\"15%\",\"sczh\":\"6%\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:24', NULL, '2024-12-28 13:48:24', 0, 0); +INSERT INTO `system_operate_log` VALUES (21, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_overview_rulescenter,example_overview_productnews,example_overview_learningcenter\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:26', 64, 0, '', '{\"code\":0,\"data\":{\"example_overview_learningcenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[资讯]支持极速开通小程序\"},{\"type\":\"info\",\"title\":\"[报名]爱逛8月活动招商活动\"},{\"type\":\"info\",\"title\":\"[报名]销售员版商品详情页内测招募\"},{\"type\":\"info\",\"title\":\"[公告]精选7月消暑清凉节招商\"}]},\"example_overview_productnews\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[07-27]悬浮窗增加微信引导分享\"},{\"type\":\"info\",\"title\":\"[07-22]退货包运费准入门槛降低\"},{\"type\":\"info\",\"title\":\"[07-17]分享有礼帮助商家裂变引流\"},{\"type\":\"info\",\"title\":\"[07-17]积分兑换库存商详页展示优化\"}]},\"example_overview_rulescenter\":{\"exitFlag\":false,\"total\":4,\"records\":[{\"type\":\"success\",\"title\":\"[投票]生态管理与违规处理规范\"},{\"type\":\"info\",\"title\":\"[协议]隐私政策\"},{\"type\":\"info\",\"title\":\"[协议]担保服务协议\"},{\"type\":\"info\",\"title\":\"[协议]商家经营规范\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:26', NULL, '2024-12-28 13:48:26', 0, 0); +INSERT INTO `system_operate_log` VALUES (22, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 多个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/batch/list/example_sytj_syzdmk,example_sytj_syzsmk', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataPage(String,HttpServletRequest)', '{\"reportCodeListStr\":\"example_sytj_syzdmk,example_sytj_syzsmk\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:27', 64, 0, '', '{\"code\":0,\"data\":{\"example_sytj_syzsmk\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"syyhs\":1,\"mksys\":21,\"pm\":1,\"mk\":\"芋道适配器\"},{\"syyhs\":1,\"mksys\":6,\"pm\":2,\"mk\":\"获取部署模型\"},{\"syyhs\":1,\"mksys\":4,\"pm\":3,\"mk\":\"部门管理\"},{\"syyhs\":1,\"mksys\":3,\"pm\":4,\"mk\":\"JAVA增强\"},{\"syyhs\":1,\"mksys\":3,\"pm\":5,\"mk\":\"Sql增强\"}]},\"example_sytj_syzdmk\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"syyhs\":3,\"mksys\":167,\"pm\":1,\"mk\":\"钉钉流程\"},{\"syyhs\":3,\"mksys\":124,\"pm\":2,\"mk\":\"钉钉流程列表\"},{\"syyhs\":3,\"mksys\":89,\"pm\":3,\"mk\":\"自定义表单\"},{\"syyhs\":3,\"mksys\":84,\"pm\":4,\"mk\":\"菜单管理\"},{\"syyhs\":3,\"mksys\":57,\"pm\":5,\"mk\":\"表单开发\"}]}},\"msg\":\"\"}', NULL, '2024-12-28 13:48:27', NULL, '2024-12-28 13:48:27', 0, 0); +INSERT INTO `system_operate_log` VALUES (23, '', 1, 2, '低代码框架-报表接口', '获取数据列表 - 单个列表', 2, '', '', 'POST', '/admin-api/jeelowcode/report-data/list/example_sytj_dlsyrs', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.ReportDataController.getDataList(String,HttpServletRequest)', '{\"reportCode\":\"example_sytj_dlsyrs\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:27', 140, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":31,\"records\":[{\"date\":\"2024-12-01\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-02\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-03\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-04\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-05\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-06\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-07\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-08\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-09\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-10\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-11\",\"users_num\":2,\"login_num\":2},{\"date\":\"2024-12-12\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-13\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-14\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-15\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-16\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-17\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-18\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-19\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-20\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-21\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-22\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-23\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-24\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-25\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-26\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-27\",\"users_num\":0,\"login_num\":0},{\"date\":\"2024-12-28\",\"users_num\":2,\"login_num\":2},{\"date\":\"2024-12-29\"},{\"date\":\"2024-12-30\"},{\"date\":\"2024-12-31\"}]},\"msg\":\"\"}', NULL, '2024-12-28 13:48:27', NULL, '2024-12-28 13:48:27', 0, 0); +INSERT INTO `system_operate_log` VALUES (24, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1838392378859741185', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1838392378859741185\",\"req\":\"[ignore]\"}', '2024-12-28 13:48:29', 177, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":5,\"records\":[{\"tenant_id\":1,\"create_time\":1727400731000,\"create_dept\":101,\"bh\":\"20241001\",\"customer_star\":\"1\",\"industry_type\":\"2\",\"update_time\":1735264592000,\"update_user\":1,\"is_deleted\":0,\"company_name\":\"深圳木卫二科技有限公司\",\"customer_status\":\"2\",\"customer_source\":\"9\",\"id\":\"1839478107039907841\",\"add_people\":\"1\",\"create_user\":1},{\"tenant_id\":1,\"create_time\":1727167868000,\"create_dept\":101,\"bh\":\"20241001\",\"customer_star\":\"2\",\"industry_type\":\"3\",\"update_time\":1727400633000,\"update_user\":1,\"is_deleted\":0,\"company_name\":\"深圳木卫二科技有限公司\",\"customer_status\":\"2\",\"customer_source\":\"9\",\"id\":\"1838501409414770690\",\"add_people\":\"1\",\"create_user\":1},{\"tenant_id\":1,\"create_time\":1727164043000,\"create_dept\":101,\"bh\":\"20241001\",\"customer_star\":\"5\",\"industry_type\":\"3\",\"update_time\":1727400801000,\"update_user\":1,\"is_deleted\":0,\"company_name\":\"深圳木卫二科技有限公司\",\"customer_status\":\"2\",\"customer_source\":\"9\",\"id\":\"1838485365768519681\",\"add_people\":\"1\",\"create_user\":1},{\"tenant_id\":1,\"create_time\":1727148975000,\"create_dept\":101,\"bh\":\"202010001\",\"customer_star\":\"3\",\"industry_type\":\"3\",\"update_time\":1727400678000,\"update_user\":1,\"is_deleted\":0,\"company_name\":\"深圳木卫二科技有限公司\",\"customer_status\":\"2\",\"customer_source\":\"9\",\"id\":\"1838422167180042242\",\"add_people\":\"1\",\"create_user\":1},{\"tenant_id\":1,\"create_time\":1727142116000,\"create_dept\":101,\"bh\":\"202010001\",\"customer_star\":\"1\",\"industry_type\":\"3\",\"update_time\":1727400781000,\"update_user\":1,\"is_deleted\":0,\"company_name\":\"深圳木卫二科技有限公司\",\"customer_status\":\"2\",\"customer_source\":\"9\",\"id\":\"1838393398591512577\",\"add_people\":\"1\",\"create_user\":1}]},\"msg\":\"\"}', NULL, '2024-12-28 13:48:30', NULL, '2024-12-28 13:48:30', 0, 0); +INSERT INTO `system_operate_log` VALUES (25, '', 1, 2, '低代码框架-框架接口', '表字段回显', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/get/table-label', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.getTableLabel(HttpServletRequest)', '{\"req\":\"[ignore]\"}', '2024-12-28 13:48:30', 49, 0, '', '{\"code\":0,\"data\":{\"userList\":[{\"nickname\":\"超级管理员\",\"id\":1}]},\"msg\":\"\"}', NULL, '2024-12-28 13:48:30', NULL, '2024-12-28 13:48:30', 0, 0); +INSERT INTO `system_operate_log` VALUES (26, '', 1, 2, '低代码框架-表单设计器接口', '获取列表', 2, '', '', 'POST', '/admin-api/jeelowcode/desform/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DesFormController.page(PageDesFormParam,PageVo)', '{\"param\":{\"id\":null,\"desformName\":null,\"functionType\":null,\"isOpen\":null,\"isTemplate\":null,\"groupDesformId\":null},\"pageVo\":{\"pageNo\":null,\"pageSize\":null}}', '2024-12-28 13:48:51', 34, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1862065125842554881\",\"createTime\":1732785896000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1732787660000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"学生请假申请表\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1856521825921736705\",\"createTime\":1731464270000,\"createUser\":1,\"createDept\":null,\"updateUser\":1,\"updateTime\":1731483461000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"日历新增\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854442042421391362\",\"createTime\":1730968411000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731124586000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"交流论坛-创建话题\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854399122108559362\",\"createTime\":1730958178000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731313904000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"公告管理-详情\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1854359628093304834\",\"createTime\":1730948762000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730950763000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"公告管理-新增\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853994635845922818\",\"createTime\":1730861741000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731727656000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告-报告详情-右\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853701496069386242\",\"createTime\":1730791851000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731721289000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告-报告详情-左\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853325190400012289\",\"createTime\":1730702133000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730791812000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"工作报告\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1853285742086909953\",\"createTime\":1730692728000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730711157000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"联系人管理-添加联系人\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1852253282782900226\",\"createTime\":1730446570000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730447099000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"相册管理-上传图片\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"},{\"id\":\"1852223511034294274\",\"createTime\":1730439472000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731657311000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"相册详情-头部\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"},{\"id\":\"1852168337334951938\",\"createTime\":1730426318000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730510868000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"团队管理-创建团队\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"N\"},{\"id\":\"1851890190622343169\",\"createTime\":1730360003000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730363092000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"相册管理-创建相册\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"},{\"id\":\"1850839403742760962\",\"createTime\":1730109475000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731461942000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"日历管理\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"},{\"id\":\"1850716100125401090\",\"createTime\":1730080078000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1730165760000,\"isDeleted\":0,\"tenantId\":\"1\",\"desformName\":\"模板表单测试\",\"desformType\":null,\"groupDesformId\":null,\"isOpen\":\"N\",\"isTemplate\":\"Y\"},{\"id\":\"1850013430948507650\",\"createTime\":1729912548000,\"createUser\":1,\"createDept\":101,\"updateUser\":1,\"updateTime\":1731743693000,\"isDeleted\":0,\"ten...', NULL, '2024-12-28 13:48:51', NULL, '2024-12-28 13:48:51', 0, 0); +INSERT INTO `system_operate_log` VALUES (27, '', 1, 2, '低代码框架-框架接口', '表单开发 - 保存', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/save', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.saveDbFormConfig(DbFormAddOrUpdateParam,HttpServletRequest)', '{\"param\":{\"dbForm\":{\"id\":null,\"tableName\":\"test_demo\",\"tableDescribe\":\"测试\",\"tableType\":1,\"tableClassify\":1,\"tableIdType\":\"NATIVE\",\"tableSelect\":\"multiple\",\"isDbSync\":\"\",\"isDesForm\":\"N\",\"subTableMapping\":\"\",\"subTableSort\":0,\"subTableTitle\":\"\",\"themeTemplate\":\"normal\",\"desformWebId\":null,\"treeStyle\":\"default\",\"treeMode\":\"default\",\"treeLabelField\":\"\",\"operateMenuStyle\":\"more\",\"formStyle\":\"2\",\"subTableListStr\":\"\",\"viewDefaultField\":\"N\",\"groupDbformId\":null,\"orderbyConfig\":\"[{\\\"order\\\":\\\"desc\\\",\\\"column\\\":\\\"id\\\"}]\",\"whereConfig\":null,\"dataConfig\":\"page,initDataReq,authFalse\",\"basicFunction\":\"addBtn,editBtn,viewBtn,delBtn,batchDelBtn,importBtn,exportBtn\",\"basicConfig\":\"\",\"tableConfig\":\"height,header,menu,index,border,rollBottom\",\"dataSourcesConfig\":\"\",\"tableStyle\":\"{\\\"singleStyle\\\":\\\"default\\\",\\\"singleCardSpan\\\":\\\"\\\",\\\"expandShowNum\\\":null,\\\"expandMode\\\":\\\"\\\",\\\"searchStyle\\\":\\\"default\\\"}\"},\"fieldList\":[{\"id\":null,\"fieldCode\":\"id\",\"fieldName\":\"主键\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"BigInt\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"Y\",\"isNull\":\"N\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"name\",\"fieldName\":\"名称\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"String\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"age\",\"fieldName\":\"年龄\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"String\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"tenant_id\",\"fieldName\":\"租户编号\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"BigInt\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_user\",\"fieldName\":\"创建人\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"BigInt\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_time\",\"fieldName\":\"创建时间\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"DateTime\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_dept\",\"fieldName\":\"创建部门id\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"BigInt\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_user\",\"fieldName\":\"更新人\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"BigInt\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_time\",\"fieldName\":\"更新时间\",\"fieldLen\":128,\"fieldPointLen\":0,\"fieldDefaultVal\":\"\",\"fieldType\":\"DateTime\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"is_deleted\",\"fieldName\":\"是否删除\",\"fieldLen\":2,\"fieldPointLen\":0,\"fieldDefaultVal\":\"0\",\"fieldType\":\"Integer\",\"fieldRemark\":\"\",\"isPrimaryKey\":\"N\",\"isNull\":\"Y\",\"isDb\":\"Y\",\"isModify\":null}],\"dictList\":[{\"id\":null,\"fieldCode\":\"id\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"name\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"age\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"tenant_id\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_user\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_time\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_dept\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_user\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_time\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"is_deleted\",\"dictType\":\"\",\"dictCode\":\"\",\"dictTable\":\"\",\"dictText\":\"\",\"dictTableColumn\":\"\",\"isModify\":null}],\"exportList\":[{\"id\":null,\"fieldCode\":\"id\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"name\",\"isExport\":\"Y\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"age\",\"isExport\":\"Y\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"tenant_id\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_user\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_time\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_dept\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_user\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_time\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"is_deleted\",\"isExport\":\"N\",\"importExampleTxt\":\"\",\"isModify\":null}],\"foreignkeyList\":[{\"id\":null,\"fieldCode\":\"id\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"name\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"age\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"tenant_id\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_user\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_time\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_dept\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_user\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"update_time\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"is_deleted\",\"mainTable\":\"\",\"mainField\":\"\",\"isModify\":null}],\"webList\":[{\"id\":null,\"fieldCode\":\"id\",\"isDbSelect\":\"Y\",\"isShowList\":\"N\",\"isShowForm\":\"N\",\"isShowColumn\":\"N\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"input\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",\\\"formatJson\\\":{\\\"sql\\\":{},\\\"java\\\":{},\\\"fun\\\":\\\"\\\"}}\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"name\",\"isDbSelect\":\"Y\",\"isShowList\":\"Y\",\"isShowForm\":\"Y\",\"isShowColumn\":\"Y\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"input\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",\\\"formatJson\\\":{\\\"sql\\\":{},\\\"java\\\":{},\\\"fun\\\":\\\"\\\"}}\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"age\",\"isDbSelect\":\"Y\",\"isShowList\":\"Y\",\"isShowForm\":\"Y\",\"isShowColumn\":\"Y\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"input\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",\\\"formatJson\\\":{\\\"sql\\\":{},\\\"java\\\":{},\\\"fun\\\":\\\"\\\"}}\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"tenant_id\",\"isDbSelect\":\"Y\",\"isShowList\":\"N\",\"isShowForm\":\"N\",\"isShowColumn\":\"N\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"input\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",\\\"formatJson\\\":{\\\"sql\\\":{},\\\"java\\\":{},\\\"fun\\\":\\\"\\\"}}\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_user\",\"isDbSelect\":\"Y\",\"isShowList\":\"N\",\"isShowForm\":\"N\",\"isShowColumn\":\"N\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"userSelect\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",\\\"formatJson\\\":{\\\"sql\\\":{},\\\"java\\\":{},\\\"fun\\\":\\\"\\\"}}\",\"isModify\":null},{\"id\":null,\"fieldCode\":\"create_time\",\"isDbSelect\":\"Y\",\"isShowList\":\"N\",\"isShowForm\":\"N\",\"isShowColumn\":\"N\",\"isShowSort\":\"N\",\"isRequired\":\"N\",\"controlType\":\"date\",\"controlsConfig\":\"\",\"cellWidth\":\"\",\"cellWidthType\":\"min\",\"verifyConfig\":\"\",\"formatConfig\":\"{\\\"formatType\\\":\\\"\\\",...', '2024-12-28 13:49:13', 169, 0, '', '{\"code\":0,\"data\":\"成功\",\"msg\":\"\"}', NULL, '2024-12-28 13:49:14', NULL, '2024-12-28 13:49:14', 0, 0); +INSERT INTO `system_operate_log` VALUES (28, '', 1, 2, '低代码框架-框架接口', '表单开发 - 获取分页数据', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.getPageDbFormConfig(PageDbFormParam,PageVo)', '{\"param\":{\"tableName\":null,\"tableDescribe\":null,\"tableType\":null,\"tableClassify\":null,\"isDbSync\":null,\"id\":null,\"groupDbformId\":null},\"pageVo\":{\"pageNo\":1,\"pageSize\":10}}', '2024-12-28 13:49:14', 104, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1872882476103290882\",\"tableName\":\"test_demo\",\"tableDescribe\":\"测试\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"N\",\"jsCou\":0,\"scssCou\":0,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":10},{\"id\":\"1854716968965484545\",\"tableName\":\"example_jllt_htlb\",\"tableDescribe\":\"交流论坛-话题列表\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854438272522235905\",\"tableName\":\"example_mkgl_tdzsk\",\"tableDescribe\":\"模版管理-团队知识库\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854408557228961794\",\"tableName\":\"example_jllt_tlbk\",\"tableDescribe\":\"交流论坛-讨论板块\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854341001851940865\",\"tableName\":\"example_mkgl_dlrz\",\"tableDescribe\":\"模块管理-登录日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18},{\"id\":\"1854331399533998082\",\"tableName\":\"example_mkgl_sprz\",\"tableDescribe\":\"模块管理-审批日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":15},{\"id\":\"1854067250698612737\",\"tableName\":\"example_mkgl_rzgl\",\"tableDescribe\":\"模块管理-日志管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854048263491252226\",\"tableName\":\"example_mkgl_gggl\",\"tableDescribe\":\"模块管理-公告管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":1,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1853269839533273090\",\"tableName\":\"example_mkgl_gzbg\",\"tableDescribe\":\"模块管理-工作报告\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":3,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1852624838914699265\",\"tableName\":\"example_contact_manager\",\"tableDescribe\":\"管理模块-联系人管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":5,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18}],\"total\":79,\"size\":10,\"current\":1,\"pages\":8},\"msg\":\"\"}', NULL, '2024-12-28 13:49:14', NULL, '2024-12-28 13:49:14', 0, 0); +INSERT INTO `system_operate_log` VALUES (29, '', 1, 2, '低代码框架-框架接口', '同步数据库', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/sync-db/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.syncDb(Long,String)', '{\"syncModel\":\"default\",\"dbformId\":\"1872882476103290882\"}', '2024-12-28 13:49:18', 431, 0, '', '{\"code\":0,\"data\":\"同步完成\",\"msg\":\"\"}', NULL, '2024-12-28 13:49:19', NULL, '2024-12-28 13:49:19', 0, 0); +INSERT INTO `system_operate_log` VALUES (30, '', 1, 2, '低代码框架-框架接口', '表单开发 - 获取分页数据', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/page', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.getPageDbFormConfig(PageDbFormParam,PageVo)', '{\"param\":{\"tableName\":null,\"tableDescribe\":null,\"tableType\":null,\"tableClassify\":null,\"isDbSync\":null,\"id\":null,\"groupDbformId\":null},\"pageVo\":{\"pageNo\":1,\"pageSize\":10}}', '2024-12-28 13:49:19', 109, 0, '', '{\"code\":0,\"data\":{\"records\":[{\"id\":\"1872882476103290882\",\"tableName\":\"test_demo\",\"tableDescribe\":\"测试\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":0,\"scssCou\":0,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":10},{\"id\":\"1854716968965484545\",\"tableName\":\"example_jllt_htlb\",\"tableDescribe\":\"交流论坛-话题列表\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854438272522235905\",\"tableName\":\"example_mkgl_tdzsk\",\"tableDescribe\":\"模版管理-团队知识库\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":16},{\"id\":\"1854408557228961794\",\"tableName\":\"example_jllt_tlbk\",\"tableDescribe\":\"交流论坛-讨论板块\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854341001851940865\",\"tableName\":\"example_mkgl_dlrz\",\"tableDescribe\":\"模块管理-登录日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18},{\"id\":\"1854331399533998082\",\"tableName\":\"example_mkgl_sprz\",\"tableDescribe\":\"模块管理-审批日志\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":15},{\"id\":\"1854067250698612737\",\"tableName\":\"example_mkgl_rzgl\",\"tableDescribe\":\"模块管理-日志管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":0,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":14},{\"id\":\"1854048263491252226\",\"tableName\":\"example_mkgl_gggl\",\"tableDescribe\":\"模块管理-公告管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":1,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1853269839533273090\",\"tableName\":\"example_mkgl_gzbg\",\"tableDescribe\":\"模块管理-工作报告\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":3,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":17},{\"id\":\"1852624838914699265\",\"tableName\":\"example_contact_manager\",\"tableDescribe\":\"管理模块-联系人管理\",\"tableType\":1,\"tableClassify\":1,\"isDbSync\":\"Y\",\"jsCou\":1,\"scssCou\":1,\"buttonCou\":5,\"javaCou\":0,\"sqlCou\":0,\"fieldCou\":18}],\"total\":79,\"size\":10,\"current\":1,\"pages\":8},\"msg\":\"\"}', NULL, '2024-12-28 13:49:19', NULL, '2024-12-28 13:49:19', 0, 0); +INSERT INTO `system_operate_log` VALUES (31, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1872882476103290882\",\"req\":\"[ignore]\"}', '2024-12-28 13:49:23', 135, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":0,\"records\":[]},\"msg\":\"\"}', NULL, '2024-12-28 13:49:23', NULL, '2024-12-28 13:49:23', 0, 0); +INSERT INTO `system_operate_log` VALUES (32, '', 1, 2, '低代码框架-框架接口-数据相关', '新增表数据', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/save/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.addData(Long,JSONObject)', '{\"dbformId\":\"1872882476103290882\",\"jsonObject\":{\"name\":\"小米\",\"age\":\"12\",\"id\":\"1872882544210399234\",\"create_user\":1,\"create_time\":1735364969671,\"create_dept\":101,\"is_deleted\":0,\"tenant_id\":1}}', '2024-12-28 13:49:30', 96, 0, '', '{\"code\":0,\"data\":\"1872882544210399234\",\"msg\":\"\"}', NULL, '2024-12-28 13:49:30', NULL, '2024-12-28 13:49:30', 0, 0); +INSERT INTO `system_operate_log` VALUES (33, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1872882476103290882\",\"req\":\"[ignore]\"}', '2024-12-28 13:49:30', 168, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"tenant_id\":1,\"is_deleted\":0,\"create_time\":1735364969000,\"create_dept\":101,\"name\":\"小米\",\"id\":\"1872882544210399234\",\"create_user\":1,\"age\":\"12\"}]},\"msg\":\"\"}', NULL, '2024-12-28 13:49:30', NULL, '2024-12-28 13:49:30', 0, 0); +INSERT INTO `system_operate_log` VALUES (34, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据详情', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/detail/1872882476103290882/1872882544210399234', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataDetail(Long,Long,HttpServletRequest)', '{\"dataId\":\"1872882544210399234\",\"dbformId\":\"1872882476103290882\",\"req\":\"[ignore]\"}', '2024-12-28 13:49:32', 180, 0, '', '{\"code\":0,\"data\":{\"tenant_id\":1,\"is_deleted\":0,\"jeelowcode_subtable_data\":{},\"create_time\":1735364969000,\"create_dept\":101,\"name\":\"小米\",\"id\":\"1872882544210399234\",\"create_user\":1,\"age\":\"12\"},\"msg\":\"\"}', NULL, '2024-12-28 13:49:32', NULL, '2024-12-28 13:49:32', 0, 0); +INSERT INTO `system_operate_log` VALUES (35, '', 1, 2, '低代码框架-框架接口', '表字段回显', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform/get/table-label', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormController.getTableLabel(HttpServletRequest)', '{\"req\":\"[ignore]\"}', '2024-12-28 13:49:32', 8, 0, '', '{\"code\":0,\"data\":{\"userList\":[{\"nickname\":\"超级管理员\",\"id\":1}],\"deptList\":[{\"name\":\"深圳总公司\",\"id\":101}]},\"msg\":\"\"}', NULL, '2024-12-28 13:49:32', NULL, '2024-12-28 13:49:32', 0, 0); +INSERT INTO `system_operate_log` VALUES (36, '', 1, 2, '低代码框架-框架接口-数据相关', '编辑表数据', 3, '', '', 'PUT', '/admin-api/jeelowcode/dbform-data/edit/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.editData(Long,JSONObject)', '{\"dbformId\":\"1872882476103290882\",\"jsonObject\":{\"id\":\"1872882544210399234\",\"name\":\"小米\",\"age\":\"123\",\"update_user\":1,\"update_time\":1735364973823}}', '2024-12-28 13:49:34', 78, 0, '', '{\"code\":0,\"data\":\"成功\",\"msg\":\"\"}', NULL, '2024-12-28 13:49:34', NULL, '2024-12-28 13:49:34', 0, 0); +INSERT INTO `system_operate_log` VALUES (37, '', 1, 2, '低代码框架-框架接口-数据相关', '获取表数据列表', 2, '', '', 'POST', '/admin-api/jeelowcode/dbform-data/list/1872882476103290882', '192.168.5.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0', 'BaseWebResult com.jeelowcode.core.framework.controller.DbFormDataController.getDataList(Long,HttpServletRequest)', '{\"dbformId\":\"1872882476103290882\",\"req\":\"[ignore]\"}', '2024-12-28 13:49:34', 165, 0, '', '{\"code\":0,\"data\":{\"exitFlag\":false,\"total\":1,\"records\":[{\"tenant_id\":1,\"update_time\":1735364973000,\"update_user\":1,\"is_deleted\":0,\"create_time\":1735364969000,\"create_dept\":101,\"name\":\"小米\",\"id\":\"1872882544210399234\",\"create_user\":1,\"age\":\"123\"}]},\"msg\":\"\"}', NULL, '2024-12-28 13:49:34', NULL, '2024-12-28 13:49:34', 0, 0); + +-- ---------------------------- +-- Table structure for system_operate_log_v2 +-- ---------------------------- +DROP TABLE IF EXISTS `system_operate_log_v2`; +CREATE TABLE `system_operate_log_v2` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL DEFAULT 0 COMMENT '用户类型', + `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作模块类型', + `sub_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作名', + `biz_id` bigint(0) NOT NULL COMMENT '操作数据模块编号', + `action` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '操作内容', + `extra` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '拓展字段', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请求地址', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户 IP', + `user_agent` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器 UA', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志记录 V2 版本' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_operate_log_v2 +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_post`; +CREATE TABLE `system_post` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '岗位ID', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位编码', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '岗位名称', + `sort` int(0) NOT NULL COMMENT '显示顺序', + `status` tinyint(0) NOT NULL COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_post +-- ---------------------------- +INSERT INTO `system_post` VALUES (1, 'ceo', '董事长', 1, 0, '', 'admin', '2021-01-06 17:03:48', '1', '2023-02-11 15:19:04', 0, 1); +INSERT INTO `system_post` VALUES (2, 'se', '项目经理', 2, 0, '', 'admin', '2021-01-05 17:03:48', '1', '2023-11-15 09:18:20', 0, 1); +INSERT INTO `system_post` VALUES (4, 'user', '普通员工', 4, 0, '111', 'admin', '2021-01-05 17:03:48', '1', '2024-03-01 16:21:34', 0, 1); +INSERT INTO `system_post` VALUES (5, 'test', '测试', 3, 0, '', '1', '2024-03-01 16:18:21', '1', '2024-03-01 16:18:52', 1, 1); +INSERT INTO `system_post` VALUES (6, 'xm123', '项目总监', 1, 0, '', '1', '2024-11-05 09:17:29', '1', '2024-11-05 09:17:31', 1, 1); + +-- ---------------------------- +-- Table structure for system_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_role`; +CREATE TABLE `system_role` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色名称', + `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '角色权限字符串', + `sort` int(0) NOT NULL COMMENT '显示顺序', + `data_scope` tinyint(0) NULL DEFAULT 1 COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + `data_scope_dept_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '数据范围(指定部门数组)', + `status` tinyint(0) NOT NULL COMMENT '角色状态(0正常 1停用)', + `type` tinyint(0) NOT NULL COMMENT '角色类型', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 151 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_role +-- ---------------------------- +INSERT INTO `system_role` VALUES (1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:21', 0, 1); +INSERT INTO `system_role` VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:20', 0, 1); +INSERT INTO `system_role` VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '我想测试', '', '2021-01-06 13:49:35', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role` VALUES (109, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', 0, 121); +INSERT INTO `system_role` VALUES (110, '测试角色', 'test', 0, 1, '[]', 0, 2, '嘿嘿', '110', '2022-02-23 00:14:34', '110', '2022-02-23 13:14:58', 0, 121); +INSERT INTO `system_role` VALUES (111, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', 0, 122); +INSERT INTO `system_role` VALUES (113, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role` VALUES (114, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role` VALUES (115, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role` VALUES (116, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role` VALUES (118, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role` VALUES (136, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role` VALUES (137, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role` VALUES (138, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role` VALUES (139, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role` VALUES (140, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role` VALUES (141, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role` VALUES (142, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role` VALUES (143, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role` VALUES (144, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role` VALUES (145, 'test2', 'test2', 1, 2, '[]', 0, 2, '', '1', '2024-03-08 10:48:24', '1', '2024-10-30 13:40:51', 1, 1); +INSERT INTO `system_role` VALUES (146, '开发人员', 'exploit', 1, 1, '[]', 0, 2, '', '1', '2024-07-16 17:05:13', '1', '2024-11-06 10:03:44', 0, 1); +INSERT INTO `system_role` VALUES (147, '演示角色', 'demo', 5, 1, '[]', 0, 2, '', '1', '2024-10-30 13:41:34', '1', '2024-11-06 10:03:50', 0, 1); +INSERT INTO `system_role` VALUES (148, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2024-11-05 10:49:02', '1', '2024-11-05 10:49:02', 0, 156); +INSERT INTO `system_role` VALUES (149, '角色a', 'juesea', 1, 1, '', 0, 2, '', '139', '2024-11-06 16:12:55', '139', '2024-11-06 16:13:09', 0, 156); +INSERT INTO `system_role` VALUES (150, '空角色', 'null', 5, 1, '', 0, 2, '', '1', '2024-12-04 09:46:52', '1', '2024-12-04 09:46:52', 0, 1); + +-- ---------------------------- +-- Table structure for system_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_role_menu`; +CREATE TABLE `system_role_menu` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `role_id` bigint(0) NOT NULL COMMENT '角色ID', + `menu_id` bigint(0) NOT NULL COMMENT '菜单ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_role_menu +-- ---------------------------- +INSERT INTO `system_role_menu` VALUES (263, 1, 1, '1', '2022-02-22 00:56:14', '1', '2024-10-30 11:29:07', 0, 1); +INSERT INTO `system_role_menu` VALUES (434, 2, 1, '1', '2022-02-22 13:09:12', '1', '2024-07-15 16:26:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (454, 2, 1093, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (455, 2, 1094, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (460, 2, 1100, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (467, 2, 1107, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (470, 2, 1110, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (477, 2, 100, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (478, 2, 101, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (479, 2, 102, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (481, 2, 103, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (483, 2, 104, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (485, 2, 105, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (488, 2, 107, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (490, 2, 108, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (492, 2, 109, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (498, 2, 1138, '1', '2022-02-22 13:09:12', '1', '2024-07-15 16:26:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (523, 2, 1224, '1', '2022-02-22 13:09:12', '1', '2024-07-15 16:26:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (524, 2, 1225, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (541, 2, 500, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (543, 2, 501, '1', '2022-02-22 13:09:12', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (675, 2, 2, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (699, 2, 1090, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (703, 2, 106, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (704, 2, 110, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (705, 2, 111, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (706, 2, 112, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (707, 2, 113, '1', '2022-02-22 13:16:57', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1296, 110, 1, '110', '2022-02-23 00:23:55', '110', '2022-02-23 00:23:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1489, 1, 1, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1490, 1, 2, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1498, 1, 1090, '1', '2022-02-23 20:03:57', '1', '2024-10-26 15:35:32', 1, 1); +INSERT INTO `system_role_menu` VALUES (1499, 1, 1093, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1500, 1, 1094, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1501, 1, 1100, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1502, 1, 1107, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1503, 1, 1110, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1506, 1, 100, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1507, 1, 101, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1508, 1, 102, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1510, 1, 103, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1511, 1, 104, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1512, 1, 105, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1513, 1, 106, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1514, 1, 107, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1515, 1, 108, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1516, 1, 109, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1517, 1, 110, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1518, 1, 111, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1519, 1, 112, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1520, 1, 113, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1522, 1, 1138, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1525, 1, 1224, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1526, 1, 1225, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1527, 1, 500, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1528, 1, 501, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', 0, 1); +INSERT INTO `system_role_menu` VALUES (1578, 111, 1, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', 0, 122); +INSERT INTO `system_role_menu` VALUES (1604, 101, 1216, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1605, 101, 1217, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1606, 101, 1218, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1607, 101, 1219, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1608, 101, 1220, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1609, 101, 1221, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1611, 101, 1222, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1615, 101, 1185, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1616, 101, 1186, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1623, 101, 1193, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1624, 101, 1194, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1625, 101, 1195, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1626, 101, 1196, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1627, 101, 1197, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1628, 101, 1198, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1629, 101, 1199, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1630, 101, 1200, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1631, 101, 1201, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1632, 101, 1202, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1633, 101, 1207, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1634, 101, 1208, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1635, 101, 1209, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1636, 101, 1210, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1637, 101, 1211, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1638, 101, 1212, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1639, 101, 1213, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1640, 101, 1215, '1', '2022-03-19 21:45:52', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1641, 101, 2, '1', '2022-04-01 22:21:24', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1642, 101, 1031, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1643, 101, 1032, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1644, 101, 1033, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1645, 101, 1034, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1646, 101, 1035, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1647, 101, 1050, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1648, 101, 1051, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1649, 101, 1052, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1650, 101, 1053, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1651, 101, 1054, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1657, 101, 1066, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1658, 101, 1067, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1664, 101, 1075, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1665, 101, 1076, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1673, 101, 1087, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1679, 101, 1237, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (1680, 101, 1238, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (1681, 101, 1239, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (1682, 101, 1240, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (1683, 101, 1241, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (1684, 101, 1242, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (1685, 101, 1243, '1', '2022-04-01 22:21:37', '1', '2024-10-26 15:35:45', 1, 1); +INSERT INTO `system_role_menu` VALUES (1687, 101, 106, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1688, 101, 110, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1689, 101, 111, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1690, 101, 112, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1691, 101, 113, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1694, 101, 116, '1', '2022-04-01 22:21:37', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (1712, 113, 1024, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1713, 113, 1025, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1714, 113, 1, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1715, 113, 102, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1716, 113, 103, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1717, 113, 104, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1718, 113, 1013, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1719, 113, 1014, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1720, 113, 1015, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1721, 113, 1016, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1722, 113, 1017, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1723, 113, 1018, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1724, 113, 1019, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1725, 113, 1020, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1726, 113, 1021, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1727, 113, 1022, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1728, 113, 1023, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', 0, 124); +INSERT INTO `system_role_menu` VALUES (1729, 109, 100, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1730, 109, 101, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1731, 109, 1063, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1732, 109, 1064, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1733, 109, 1001, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1734, 109, 1065, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1735, 109, 1002, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1736, 109, 1003, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1737, 109, 1004, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1738, 109, 1005, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1739, 109, 1006, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1740, 109, 1007, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1741, 109, 1008, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1742, 109, 1009, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1743, 109, 1010, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1744, 109, 1011, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1745, 109, 1012, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', 0, 121); +INSERT INTO `system_role_menu` VALUES (1746, 111, 100, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1747, 111, 101, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1748, 111, 1063, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1749, 111, 1064, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1750, 111, 1001, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1751, 111, 1065, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1752, 111, 1002, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1753, 111, 1003, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1754, 111, 1004, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1755, 111, 1005, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1756, 111, 1006, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1757, 111, 1007, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1758, 111, 1008, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1759, 111, 1009, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1760, 111, 1010, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1761, 111, 1011, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1762, 111, 1012, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', 0, 122); +INSERT INTO `system_role_menu` VALUES (1763, 109, 100, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1764, 109, 101, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1765, 109, 1063, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1766, 109, 1064, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1767, 109, 1001, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1768, 109, 1065, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1769, 109, 1002, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1770, 109, 1003, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1771, 109, 1004, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1772, 109, 1005, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1773, 109, 1006, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1774, 109, 1007, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1775, 109, 1008, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1776, 109, 1009, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1777, 109, 1010, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1778, 109, 1011, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1779, 109, 1012, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', 0, 121); +INSERT INTO `system_role_menu` VALUES (1780, 111, 100, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1781, 111, 101, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1782, 111, 1063, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1783, 111, 1064, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1784, 111, 1001, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1785, 111, 1065, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1786, 111, 1002, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1787, 111, 1003, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1788, 111, 1004, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1789, 111, 1005, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1790, 111, 1006, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1791, 111, 1007, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1792, 111, 1008, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1793, 111, 1009, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1794, 111, 1010, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1795, 111, 1011, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1796, 111, 1012, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', 0, 122); +INSERT INTO `system_role_menu` VALUES (1797, 109, 100, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1798, 109, 101, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1799, 109, 1063, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1800, 109, 1064, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1801, 109, 1001, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1802, 109, 1065, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1803, 109, 1002, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1804, 109, 1003, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1805, 109, 1004, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1806, 109, 1005, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1807, 109, 1006, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1808, 109, 1007, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1809, 109, 1008, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1810, 109, 1009, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1811, 109, 1010, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1812, 109, 1011, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1813, 109, 1012, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', 0, 121); +INSERT INTO `system_role_menu` VALUES (1814, 111, 100, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1815, 111, 101, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1816, 111, 1063, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1817, 111, 1064, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1818, 111, 1001, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1819, 111, 1065, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1820, 111, 1002, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1821, 111, 1003, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1822, 111, 1004, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1823, 111, 1005, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1824, 111, 1006, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1825, 111, 1007, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1826, 111, 1008, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1827, 111, 1009, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1828, 111, 1010, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1829, 111, 1011, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1830, 111, 1012, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', 0, 122); +INSERT INTO `system_role_menu` VALUES (1831, 109, 103, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', 0, 121); +INSERT INTO `system_role_menu` VALUES (1832, 109, 1017, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', 0, 121); +INSERT INTO `system_role_menu` VALUES (1833, 109, 1018, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', 0, 121); +INSERT INTO `system_role_menu` VALUES (1834, 109, 1019, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', 0, 121); +INSERT INTO `system_role_menu` VALUES (1835, 109, 1020, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', 0, 121); +INSERT INTO `system_role_menu` VALUES (1836, 111, 103, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', 0, 122); +INSERT INTO `system_role_menu` VALUES (1837, 111, 1017, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', 0, 122); +INSERT INTO `system_role_menu` VALUES (1838, 111, 1018, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', 0, 122); +INSERT INTO `system_role_menu` VALUES (1839, 111, 1019, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', 0, 122); +INSERT INTO `system_role_menu` VALUES (1840, 111, 1020, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', 0, 122); +INSERT INTO `system_role_menu` VALUES (1841, 109, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 121); +INSERT INTO `system_role_menu` VALUES (1842, 109, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 121); +INSERT INTO `system_role_menu` VALUES (1843, 109, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 121); +INSERT INTO `system_role_menu` VALUES (1844, 109, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 121); +INSERT INTO `system_role_menu` VALUES (1845, 109, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 121); +INSERT INTO `system_role_menu` VALUES (1846, 111, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 122); +INSERT INTO `system_role_menu` VALUES (1847, 111, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 122); +INSERT INTO `system_role_menu` VALUES (1848, 111, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 122); +INSERT INTO `system_role_menu` VALUES (1849, 111, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 122); +INSERT INTO `system_role_menu` VALUES (1850, 111, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', 0, 122); +INSERT INTO `system_role_menu` VALUES (1851, 114, 1, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1852, 114, 1036, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1853, 114, 1037, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1854, 114, 1038, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1855, 114, 1039, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1856, 114, 100, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1857, 114, 101, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1858, 114, 1063, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1859, 114, 103, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1860, 114, 1064, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1861, 114, 1001, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1862, 114, 1065, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1863, 114, 1002, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1864, 114, 1003, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1865, 114, 107, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1866, 114, 1004, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1867, 114, 1005, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1868, 114, 1006, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1869, 114, 1007, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1870, 114, 1008, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1871, 114, 1009, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1872, 114, 1010, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1873, 114, 1011, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1874, 114, 1012, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1875, 114, 1017, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1876, 114, 1018, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1877, 114, 1019, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1878, 114, 1020, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', 0, 125); +INSERT INTO `system_role_menu` VALUES (1879, 115, 1, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1880, 115, 1036, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1881, 115, 1037, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1882, 115, 1038, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1883, 115, 1039, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1884, 115, 100, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1885, 115, 101, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1886, 115, 1063, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1887, 115, 103, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1888, 115, 1064, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1889, 115, 1001, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1890, 115, 1065, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1891, 115, 1002, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1892, 115, 1003, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1893, 115, 107, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1894, 115, 1004, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1895, 115, 1005, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1896, 115, 1006, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1897, 115, 1007, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1898, 115, 1008, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1899, 115, 1009, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1900, 115, 1010, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1901, 115, 1011, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1902, 115, 1012, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1903, 115, 1017, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1904, 115, 1018, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1905, 115, 1019, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1906, 115, 1020, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', 0, 126); +INSERT INTO `system_role_menu` VALUES (1907, 116, 1, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1908, 116, 1036, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1909, 116, 1037, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1910, 116, 1038, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1911, 116, 1039, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1912, 116, 100, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1913, 116, 101, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1914, 116, 1063, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1915, 116, 103, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1916, 116, 1064, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1917, 116, 1001, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1918, 116, 1065, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1919, 116, 1002, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1920, 116, 1003, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1921, 116, 107, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1922, 116, 1004, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1923, 116, 1005, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1924, 116, 1006, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1925, 116, 1007, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1926, 116, 1008, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1927, 116, 1009, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1928, 116, 1010, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1929, 116, 1011, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1930, 116, 1012, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1931, 116, 1017, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1932, 116, 1018, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1933, 116, 1019, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1934, 116, 1020, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', 0, 127); +INSERT INTO `system_role_menu` VALUES (1963, 118, 1, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1964, 118, 1036, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1965, 118, 1037, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1966, 118, 1038, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1967, 118, 1039, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1968, 118, 100, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1969, 118, 101, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1970, 118, 1063, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1971, 118, 103, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1972, 118, 1064, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1973, 118, 1001, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1974, 118, 1065, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1975, 118, 1002, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1976, 118, 1003, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1977, 118, 107, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1978, 118, 1004, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1979, 118, 1005, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1980, 118, 1006, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1981, 118, 1007, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1982, 118, 1008, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1983, 118, 1009, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1984, 118, 1010, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1985, 118, 1011, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1986, 118, 1012, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1987, 118, 1017, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1988, 118, 1018, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1989, 118, 1019, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1990, 118, 1020, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', 0, 129); +INSERT INTO `system_role_menu` VALUES (1991, 2, 1024, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1992, 2, 1025, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1993, 2, 1026, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1994, 2, 1027, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1995, 2, 1028, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1996, 2, 1029, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1997, 2, 1030, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1998, 2, 1031, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (1999, 2, 1032, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2000, 2, 1033, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2001, 2, 1034, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2002, 2, 1035, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2003, 2, 1036, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2004, 2, 1037, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2005, 2, 1038, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2006, 2, 1039, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2007, 2, 1040, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2008, 2, 1042, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2009, 2, 1043, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2010, 2, 1045, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2011, 2, 1046, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2012, 2, 1048, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2013, 2, 1050, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2014, 2, 1051, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2015, 2, 1052, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2016, 2, 1053, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2017, 2, 1054, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2021, 2, 2083, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2024, 2, 1063, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2025, 2, 1064, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2026, 2, 1065, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2027, 2, 1066, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2028, 2, 1067, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2034, 2, 1075, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2035, 2, 1076, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2039, 2, 1087, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2044, 2, 1095, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2045, 2, 1096, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2046, 2, 1097, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2047, 2, 1098, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2048, 2, 1101, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2049, 2, 1102, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2050, 2, 1103, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2051, 2, 1104, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2052, 2, 1105, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2053, 2, 1106, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2054, 2, 1108, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2055, 2, 1109, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2056, 2, 1111, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2057, 2, 1112, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2058, 2, 1113, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2059, 2, 1114, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2060, 2, 1115, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2073, 2, 1139, '1', '2023-01-25 08:42:52', '1', '2024-07-15 16:26:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (2075, 2, 1140, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2076, 2, 116, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2077, 2, 1141, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2078, 2, 1142, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2079, 2, 1143, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2099, 2, 1226, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2100, 2, 1227, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2101, 2, 1228, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2102, 2, 1229, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2103, 2, 1237, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2104, 2, 1238, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2105, 2, 1239, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2106, 2, 1240, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2107, 2, 1241, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2108, 2, 1242, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2109, 2, 1243, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2110, 2, 1247, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2111, 2, 1248, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2112, 2, 1249, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2113, 2, 1250, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2114, 2, 1251, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2115, 2, 1252, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2117, 2, 1255, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2118, 2, 1256, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2119, 2, 1257, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2120, 2, 1258, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2121, 2, 1259, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2122, 2, 1260, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2123, 2, 1261, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2124, 2, 1263, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2125, 2, 1264, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2126, 2, 1265, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2127, 2, 1266, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2128, 2, 1267, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2129, 2, 1001, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2130, 2, 1002, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2131, 2, 1003, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2132, 2, 1004, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2133, 2, 1005, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2134, 2, 1006, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2135, 2, 1007, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2136, 2, 1008, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2137, 2, 1009, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2138, 2, 1010, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2139, 2, 1011, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2140, 2, 1012, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2141, 2, 1013, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2142, 2, 1014, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2143, 2, 1015, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2144, 2, 1016, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2145, 2, 1017, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2146, 2, 1018, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2147, 2, 1019, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2148, 2, 1020, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2149, 2, 1021, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2150, 2, 1022, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2151, 2, 1023, '1', '2023-01-25 08:42:52', '1', '2024-07-15 11:59:56', 1, 1); +INSERT INTO `system_role_menu` VALUES (2188, 101, 1024, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2189, 101, 1, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2190, 101, 1025, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2191, 101, 1026, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2192, 101, 1027, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2193, 101, 1028, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2194, 101, 1029, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2195, 101, 1030, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2196, 101, 1036, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2197, 101, 1037, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2198, 101, 1038, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2199, 101, 1039, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2200, 101, 1040, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2201, 101, 1042, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2202, 101, 1043, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2203, 101, 1045, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2204, 101, 1046, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2205, 101, 1048, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2206, 101, 2083, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2207, 101, 1063, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2208, 101, 1064, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2209, 101, 1065, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2210, 101, 1093, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2211, 101, 1094, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2212, 101, 1095, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2213, 101, 1096, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2214, 101, 1097, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2215, 101, 1098, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2216, 101, 1100, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2217, 101, 1101, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2218, 101, 1102, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2219, 101, 1103, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2220, 101, 1104, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2221, 101, 1105, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2222, 101, 1106, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2223, 101, 2130, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2224, 101, 1107, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2225, 101, 2131, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2226, 101, 1108, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2227, 101, 2132, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2228, 101, 1109, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2229, 101, 2133, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2230, 101, 2134, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2231, 101, 1110, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2232, 101, 2135, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2233, 101, 1111, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2234, 101, 2136, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2235, 101, 1112, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2236, 101, 2137, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2237, 101, 1113, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2238, 101, 2138, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2239, 101, 1114, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2240, 101, 2139, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2241, 101, 1115, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2242, 101, 2140, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2243, 101, 2141, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2244, 101, 2142, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2245, 101, 2143, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2246, 101, 2144, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2247, 101, 2145, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2248, 101, 2146, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2249, 101, 2147, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2250, 101, 100, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2251, 101, 2148, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2252, 101, 101, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2253, 101, 2149, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2254, 101, 102, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2255, 101, 2150, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2256, 101, 103, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2257, 101, 2151, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2258, 101, 104, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2259, 101, 2152, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2260, 101, 105, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2261, 101, 107, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2262, 101, 108, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2263, 101, 109, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2264, 101, 1138, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2265, 101, 1139, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2266, 101, 1140, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2267, 101, 1141, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2268, 101, 1142, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2269, 101, 1143, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2270, 101, 1224, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2271, 101, 1225, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2272, 101, 1226, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2273, 101, 1227, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2274, 101, 1228, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2275, 101, 1229, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2276, 101, 1247, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2277, 101, 1248, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2278, 101, 1249, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2279, 101, 1250, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2280, 101, 1251, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2281, 101, 1252, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2282, 101, 1261, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2283, 101, 1263, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2284, 101, 1264, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2285, 101, 1265, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2286, 101, 1266, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2287, 101, 1267, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2288, 101, 1001, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2289, 101, 1002, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2290, 101, 1003, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2291, 101, 1004, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2292, 101, 1005, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2293, 101, 1006, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2294, 101, 1007, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2295, 101, 1008, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2296, 101, 1009, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2297, 101, 1010, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2298, 101, 1011, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2299, 101, 1012, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2300, 101, 500, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2301, 101, 1013, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2302, 101, 501, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2303, 101, 1014, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2304, 101, 1015, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2305, 101, 1016, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2306, 101, 1017, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2307, 101, 1018, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2308, 101, 1019, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2309, 101, 1020, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2310, 101, 1021, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2311, 101, 1022, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2312, 101, 1023, '1', '2023-02-09 23:49:46', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (2789, 136, 1, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2790, 136, 1036, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2791, 136, 1037, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2792, 136, 1038, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2793, 136, 1039, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2794, 136, 100, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2795, 136, 101, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2796, 136, 1063, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2797, 136, 103, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2798, 136, 1064, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2799, 136, 1001, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2800, 136, 1065, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2801, 136, 1002, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2802, 136, 1003, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2803, 136, 107, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2804, 136, 1004, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2805, 136, 1005, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2806, 136, 1006, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2807, 136, 1007, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2808, 136, 1008, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2809, 136, 1009, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2810, 136, 1010, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2811, 136, 1011, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2812, 136, 1012, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2813, 136, 1017, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2814, 136, 1018, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2815, 136, 1019, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2816, 136, 1020, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', 0, 147); +INSERT INTO `system_role_menu` VALUES (2817, 137, 1, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2818, 137, 1036, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2819, 137, 1037, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2820, 137, 1038, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2821, 137, 1039, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2822, 137, 100, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2823, 137, 101, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2824, 137, 1063, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2825, 137, 103, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2826, 137, 1064, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2827, 137, 1001, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2828, 137, 1065, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2829, 137, 1002, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2830, 137, 1003, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2831, 137, 107, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2832, 137, 1004, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2833, 137, 1005, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2834, 137, 1006, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2835, 137, 1007, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2836, 137, 1008, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2837, 137, 1009, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2838, 137, 1010, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2839, 137, 1011, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2840, 137, 1012, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2841, 137, 1017, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2842, 137, 1018, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2843, 137, 1019, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2844, 137, 1020, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', 0, 148); +INSERT INTO `system_role_menu` VALUES (2845, 138, 1, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2846, 138, 1036, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2847, 138, 1037, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2848, 138, 1038, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2849, 138, 1039, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2850, 138, 100, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2851, 138, 101, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2852, 138, 1063, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2853, 138, 103, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2854, 138, 1064, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2855, 138, 1001, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2856, 138, 1065, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2857, 138, 1002, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2858, 138, 1003, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2859, 138, 107, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2860, 138, 1004, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2861, 138, 1005, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2862, 138, 1006, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2863, 138, 1007, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2864, 138, 1008, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2865, 138, 1009, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2866, 138, 1010, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2867, 138, 1011, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2868, 138, 1012, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2869, 138, 1017, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2870, 138, 1018, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2871, 138, 1019, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2872, 138, 1020, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', 0, 149); +INSERT INTO `system_role_menu` VALUES (2873, 139, 1, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2874, 139, 1036, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2875, 139, 1037, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2876, 139, 1038, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2877, 139, 1039, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2878, 139, 100, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2879, 139, 101, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2880, 139, 1063, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2881, 139, 103, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2882, 139, 1064, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2883, 139, 1001, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2884, 139, 1065, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2885, 139, 1002, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2886, 139, 1003, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2887, 139, 107, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2888, 139, 1004, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2889, 139, 1005, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2890, 139, 1006, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2891, 139, 1007, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2892, 139, 1008, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2893, 139, 1009, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2894, 139, 1010, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2895, 139, 1011, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2896, 139, 1012, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2897, 139, 1017, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2898, 139, 1018, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2899, 139, 1019, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2900, 139, 1020, '1', '2023-07-25 23:06:04', '1', '2023-07-25 23:06:04', 0, 150); +INSERT INTO `system_role_menu` VALUES (2929, 109, 1224, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2930, 109, 1225, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2931, 109, 1226, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2932, 109, 1227, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2933, 109, 1228, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2934, 109, 1229, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2935, 109, 1138, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2936, 109, 1139, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2937, 109, 1140, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2938, 109, 1141, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2939, 109, 1142, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2940, 109, 1143, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 121); +INSERT INTO `system_role_menu` VALUES (2941, 111, 1224, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2942, 111, 1225, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2943, 111, 1226, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2944, 111, 1227, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2945, 111, 1228, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2946, 111, 1229, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2947, 111, 1138, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2948, 111, 1139, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2949, 111, 1140, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2950, 111, 1141, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2951, 111, 1142, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2952, 111, 1143, '1', '2023-12-02 23:19:40', '1', '2023-12-02 23:19:40', 0, 122); +INSERT INTO `system_role_menu` VALUES (2953, 140, 1, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2954, 140, 1224, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2955, 140, 1225, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2956, 140, 1226, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2957, 140, 1227, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2958, 140, 1228, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2959, 140, 1036, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2960, 140, 1229, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2961, 140, 1037, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2962, 140, 1038, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2963, 140, 1039, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2964, 140, 100, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2965, 140, 101, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2966, 140, 1063, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2967, 140, 103, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2968, 140, 1064, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2969, 140, 1001, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2970, 140, 1065, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2971, 140, 1002, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2972, 140, 1003, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2973, 140, 107, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2974, 140, 1004, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2975, 140, 1005, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2976, 140, 1006, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2977, 140, 1007, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2978, 140, 1008, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2979, 140, 1009, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2980, 140, 1138, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2981, 140, 1010, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2982, 140, 1139, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2983, 140, 1011, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2984, 140, 1140, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2985, 140, 1012, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2986, 140, 1141, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2987, 140, 1142, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2988, 140, 1143, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2989, 140, 1017, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2990, 140, 1018, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2991, 140, 1019, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2992, 140, 1020, '1', '2023-12-02 23:35:05', '1', '2023-12-02 23:35:05', 0, 151); +INSERT INTO `system_role_menu` VALUES (2993, 109, 2, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2994, 109, 1031, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2995, 109, 1032, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2996, 109, 1033, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2997, 109, 1034, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2998, 109, 1035, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (2999, 109, 1050, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3000, 109, 1051, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3001, 109, 1052, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3002, 109, 1053, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3003, 109, 1054, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3009, 109, 1066, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3010, 109, 1067, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3012, 109, 1075, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3013, 109, 1076, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3021, 109, 1087, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3024, 109, 1090, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3027, 109, 106, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3028, 109, 110, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3029, 109, 111, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3030, 109, 112, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3031, 109, 113, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3034, 109, 116, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3055, 109, 1237, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3056, 109, 1238, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3057, 109, 1239, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3058, 109, 1240, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3059, 109, 1241, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3060, 109, 1242, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3061, 109, 1243, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3062, 109, 2525, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3063, 109, 1255, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3064, 109, 1256, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3065, 109, 1257, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3066, 109, 1258, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3067, 109, 1259, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3068, 109, 1260, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 121); +INSERT INTO `system_role_menu` VALUES (3069, 111, 2, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3070, 111, 1031, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3071, 111, 1032, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3072, 111, 1033, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3073, 111, 1034, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3074, 111, 1035, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3075, 111, 1050, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3076, 111, 1051, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3077, 111, 1052, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3078, 111, 1053, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3079, 111, 1054, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3085, 111, 1066, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3086, 111, 1067, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3088, 111, 1075, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3089, 111, 1076, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3097, 111, 1087, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3100, 111, 1090, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3103, 111, 106, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3104, 111, 110, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3105, 111, 111, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3106, 111, 112, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3107, 111, 113, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3110, 111, 116, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3131, 111, 1237, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3132, 111, 1238, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3133, 111, 1239, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3134, 111, 1240, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3135, 111, 1241, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3136, 111, 1242, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3137, 111, 1243, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3138, 111, 2525, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3139, 111, 1255, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3140, 111, 1256, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3141, 111, 1257, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3142, 111, 1258, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3143, 111, 1259, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3144, 111, 1260, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 122); +INSERT INTO `system_role_menu` VALUES (3145, 140, 2, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3146, 140, 1031, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3147, 140, 1032, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3148, 140, 1033, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3149, 140, 1034, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3150, 140, 1035, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3151, 140, 1050, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3152, 140, 1051, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3153, 140, 1052, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3154, 140, 1053, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3155, 140, 1054, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3161, 140, 1066, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3162, 140, 1067, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3164, 140, 1075, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3165, 140, 1076, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3173, 140, 1087, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3176, 140, 1090, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3179, 140, 106, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3180, 140, 110, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3181, 140, 111, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3182, 140, 112, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3183, 140, 113, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3186, 140, 116, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3207, 140, 1237, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3208, 140, 1238, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3209, 140, 1239, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3210, 140, 1240, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3211, 140, 1241, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3212, 140, 1242, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3213, 140, 1243, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3214, 140, 2525, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3215, 140, 1255, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3216, 140, 1256, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3217, 140, 1257, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3218, 140, 1258, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3219, 140, 1259, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3220, 140, 1260, '1', '2023-12-02 23:41:02', '1', '2023-12-02 23:41:02', 0, 151); +INSERT INTO `system_role_menu` VALUES (3221, 109, 102, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 121); +INSERT INTO `system_role_menu` VALUES (3222, 109, 1013, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 121); +INSERT INTO `system_role_menu` VALUES (3223, 109, 1014, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 121); +INSERT INTO `system_role_menu` VALUES (3224, 109, 1015, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 121); +INSERT INTO `system_role_menu` VALUES (3225, 109, 1016, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 121); +INSERT INTO `system_role_menu` VALUES (3226, 111, 102, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 122); +INSERT INTO `system_role_menu` VALUES (3227, 111, 1013, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 122); +INSERT INTO `system_role_menu` VALUES (3228, 111, 1014, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 122); +INSERT INTO `system_role_menu` VALUES (3229, 111, 1015, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 122); +INSERT INTO `system_role_menu` VALUES (3230, 111, 1016, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 122); +INSERT INTO `system_role_menu` VALUES (3231, 140, 102, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 151); +INSERT INTO `system_role_menu` VALUES (3232, 140, 1013, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 151); +INSERT INTO `system_role_menu` VALUES (3233, 140, 1014, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 151); +INSERT INTO `system_role_menu` VALUES (3234, 140, 1015, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 151); +INSERT INTO `system_role_menu` VALUES (3235, 140, 1016, '1', '2023-12-30 11:42:36', '1', '2023-12-30 11:42:36', 0, 151); +INSERT INTO `system_role_menu` VALUES (3236, 141, 1, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3237, 141, 2, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3238, 141, 1031, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3239, 141, 1032, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3240, 141, 1033, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3241, 141, 1034, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3242, 141, 1035, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3243, 141, 1036, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3244, 141, 1037, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3245, 141, 1038, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3246, 141, 1039, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3247, 141, 1050, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3248, 141, 1051, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3249, 141, 1052, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3250, 141, 1053, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3251, 141, 1054, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3257, 141, 1063, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3258, 141, 1064, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3259, 141, 1065, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3260, 141, 1066, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3261, 141, 1067, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3263, 141, 1075, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3264, 141, 1076, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3272, 141, 1087, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3275, 141, 1090, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3278, 141, 100, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3279, 141, 101, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3280, 141, 102, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3281, 141, 103, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3282, 141, 106, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3283, 141, 107, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3284, 141, 110, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3285, 141, 111, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3286, 141, 112, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3287, 141, 113, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3288, 141, 1138, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3290, 141, 1139, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3292, 141, 1140, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3293, 141, 116, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3294, 141, 1141, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3295, 141, 1142, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3296, 141, 1143, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3317, 141, 1224, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3318, 141, 1225, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3319, 141, 1226, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3320, 141, 1227, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3321, 141, 1228, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3322, 141, 1229, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3323, 141, 1237, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3324, 141, 1238, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3325, 141, 1239, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3326, 141, 1240, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3327, 141, 1241, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3328, 141, 1242, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3329, 141, 1243, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3330, 141, 2525, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3331, 141, 1255, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3332, 141, 1256, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3333, 141, 1001, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3334, 141, 1257, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3335, 141, 1002, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3336, 141, 1258, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3337, 141, 1003, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3338, 141, 1259, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3339, 141, 1004, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3340, 141, 1260, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3341, 141, 1005, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3342, 141, 1006, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3343, 141, 1007, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3344, 141, 1008, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3345, 141, 1009, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3346, 141, 1010, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3347, 141, 1011, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3348, 141, 1012, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3349, 141, 1013, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3350, 141, 1014, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3351, 141, 1015, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3352, 141, 1016, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3353, 141, 1017, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3354, 141, 1018, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3355, 141, 1019, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3356, 141, 1020, '1', '2023-12-30 11:43:17', '1', '2023-12-30 11:43:17', 0, 152); +INSERT INTO `system_role_menu` VALUES (3357, 1, 1024, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3359, 1, 1025, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3361, 1, 1026, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3363, 1, 1027, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3365, 1, 1028, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3367, 1, 1029, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3369, 1, 1030, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3370, 1, 1031, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3371, 1, 1032, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3372, 1, 1033, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3373, 1, 1034, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3374, 1, 1035, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3376, 1, 1036, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3378, 1, 1037, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3380, 1, 1038, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3382, 1, 1039, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3384, 1, 1040, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3385, 1, 1042, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3387, 1, 1043, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3390, 1, 1045, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3392, 1, 1046, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3394, 1, 1048, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3397, 1, 1050, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3399, 1, 1051, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3401, 1, 1052, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3403, 1, 1053, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3404, 1, 1054, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3408, 1, 2083, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3414, 1, 1063, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3416, 1, 1064, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3418, 1, 1065, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3420, 1, 1066, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3422, 1, 1067, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3432, 1, 1075, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3434, 1, 1076, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3449, 1, 1087, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3462, 1, 1095, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3464, 1, 1096, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3466, 1, 1097, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3468, 1, 1098, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3472, 1, 1101, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3474, 1, 1102, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3476, 1, 1103, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3478, 1, 1104, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3480, 1, 1105, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3482, 1, 1106, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3483, 1, 2130, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3484, 1, 2131, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3485, 1, 1108, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3486, 1, 2132, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3487, 1, 1109, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3488, 1, 2133, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3489, 1, 2134, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3490, 1, 2135, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3491, 1, 1111, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3492, 1, 2136, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3493, 1, 1112, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3494, 1, 2137, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3495, 1, 1113, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3496, 1, 2138, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3497, 1, 1114, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3498, 1, 2139, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3499, 1, 1115, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3500, 1, 2140, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3501, 1, 2141, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3502, 1, 2142, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3504, 1, 2143, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3506, 1, 2144, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3508, 1, 2145, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3509, 1, 2146, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3510, 1, 2147, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3511, 1, 2148, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3512, 1, 2149, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3513, 1, 2150, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3514, 1, 2151, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3516, 1, 2152, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3537, 1, 1139, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3539, 1, 1140, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3540, 1, 116, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3542, 1, 1141, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3544, 1, 1142, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3546, 1, 1143, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3578, 1, 1185, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3580, 1, 1186, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3587, 1, 1193, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3588, 1, 1194, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3589, 1, 1195, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3590, 1, 1196, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3591, 1, 1197, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3592, 1, 1198, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3593, 1, 1199, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3594, 1, 1200, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3595, 1, 1201, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3596, 1, 1202, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3597, 1, 1207, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3598, 1, 1208, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3599, 1, 1209, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3600, 1, 1210, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3601, 1, 1211, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3602, 1, 1212, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3603, 1, 1213, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3604, 1, 1215, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3605, 1, 1216, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3606, 1, 1217, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3607, 1, 1218, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3608, 1, 1219, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3609, 1, 1220, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3610, 1, 1221, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3611, 1, 1222, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3612, 1, 1226, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3613, 1, 1227, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3614, 1, 1228, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3615, 1, 1229, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3616, 1, 1237, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (3617, 1, 1238, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (3619, 1, 1239, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (3620, 1, 1240, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (3621, 1, 1241, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (3622, 1, 1242, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (3623, 1, 1243, '1', '2024-01-02 17:35:25', '1', '2024-10-26 15:35:45', 1, 1); +INSERT INTO `system_role_menu` VALUES (3624, 1, 1247, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3625, 1, 1248, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3626, 1, 1249, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3627, 1, 1250, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3628, 1, 1251, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3630, 1, 1252, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3634, 1, 1255, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3635, 1, 1256, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3636, 1, 1257, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3638, 1, 1258, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3640, 1, 1259, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3642, 1, 1260, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3644, 1, 1261, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3646, 1, 1263, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3648, 1, 1264, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3650, 1, 1265, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3651, 1, 1266, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3652, 1, 1267, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3800, 1, 2447, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3801, 1, 2448, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3802, 1, 2449, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3803, 1, 2450, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3804, 1, 2451, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3805, 1, 2452, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3806, 1, 2453, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3836, 1, 2525, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3877, 1, 1001, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3879, 1, 1002, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3881, 1, 1003, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3883, 1, 1004, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3885, 1, 1005, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3887, 1, 1006, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3889, 1, 1007, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3890, 1, 1008, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3892, 1, 1009, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3894, 1, 1010, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3896, 1, 1011, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3898, 1, 1012, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3900, 1, 1013, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3901, 1, 1014, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3903, 1, 1015, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3905, 1, 1016, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3907, 1, 1017, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3909, 1, 1018, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3911, 1, 1019, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3913, 1, 1020, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3915, 1, 1021, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3917, 1, 1022, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3919, 1, 1023, '1', '2024-01-02 17:35:25', '1', '2024-01-02 17:35:25', 0, 1); +INSERT INTO `system_role_menu` VALUES (3921, 142, 1, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3922, 142, 2, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3923, 142, 1031, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3924, 142, 1032, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3925, 142, 1033, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3926, 142, 1034, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3927, 142, 1035, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3928, 142, 1036, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3929, 142, 1037, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3930, 142, 1038, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3931, 142, 1039, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3932, 142, 1050, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3933, 142, 1051, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3934, 142, 1052, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3935, 142, 1053, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3936, 142, 1054, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3942, 142, 1063, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3943, 142, 1064, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3944, 142, 1065, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3945, 142, 1066, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3946, 142, 1067, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3948, 142, 1075, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3949, 142, 1076, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3957, 142, 1087, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3960, 142, 1090, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3963, 142, 100, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3964, 142, 101, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3965, 142, 102, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3966, 142, 103, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3967, 142, 106, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3968, 142, 107, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3969, 142, 110, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3970, 142, 111, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3971, 142, 112, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3972, 142, 113, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3973, 142, 1138, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3975, 142, 1139, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3977, 142, 1140, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3978, 142, 116, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3979, 142, 1141, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3980, 142, 1142, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (3981, 142, 1143, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4002, 142, 1224, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4003, 142, 1225, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4004, 142, 1226, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4005, 142, 1227, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4006, 142, 1228, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4007, 142, 1229, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4008, 142, 1237, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4009, 142, 1238, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4010, 142, 1239, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4011, 142, 1240, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4012, 142, 1241, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4013, 142, 1242, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4014, 142, 1243, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4015, 142, 2525, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4016, 142, 1255, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4017, 142, 1256, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4018, 142, 1001, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4019, 142, 1257, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4020, 142, 1002, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4021, 142, 1258, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4022, 142, 1003, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4023, 142, 1259, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4024, 142, 1004, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4025, 142, 1260, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4026, 142, 1005, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4027, 142, 1006, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4028, 142, 1007, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4029, 142, 1008, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4030, 142, 1009, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4031, 142, 1010, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4032, 142, 1011, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4033, 142, 1012, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4034, 142, 1013, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4035, 142, 1014, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4036, 142, 1015, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4037, 142, 1016, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4038, 142, 1017, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4039, 142, 1018, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4040, 142, 1019, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4041, 142, 1020, '1', '2024-02-28 16:30:05', '1', '2024-02-28 16:30:05', 0, 153); +INSERT INTO `system_role_menu` VALUES (4042, 143, 1, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4043, 143, 2, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4044, 143, 1031, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4045, 143, 1032, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4046, 143, 1033, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4047, 143, 1034, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4048, 143, 1035, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4049, 143, 1036, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4050, 143, 1037, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4051, 143, 1038, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4052, 143, 1039, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4053, 143, 1050, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4054, 143, 1051, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4055, 143, 1052, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4056, 143, 1053, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4057, 143, 1054, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4063, 143, 1063, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4064, 143, 1064, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4065, 143, 1065, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4066, 143, 1066, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4067, 143, 1067, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4069, 143, 1075, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4070, 143, 1076, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4078, 143, 1087, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4081, 143, 1090, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4084, 143, 100, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4085, 143, 101, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4086, 143, 102, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4087, 143, 103, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4088, 143, 106, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4089, 143, 107, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4090, 143, 110, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4091, 143, 111, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4092, 143, 112, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4093, 143, 113, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4094, 143, 1138, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4096, 143, 1139, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4098, 143, 1140, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4099, 143, 116, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4100, 143, 1141, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4101, 143, 1142, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4102, 143, 1143, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4123, 143, 1224, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4124, 143, 1225, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4125, 143, 1226, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4126, 143, 1227, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4127, 143, 1228, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4128, 143, 1229, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4129, 143, 1237, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4130, 143, 1238, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4131, 143, 1239, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4132, 143, 1240, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4133, 143, 1241, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4134, 143, 1242, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4135, 143, 1243, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4136, 143, 2525, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4137, 143, 1255, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4138, 143, 1256, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4139, 143, 1001, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4140, 143, 1257, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4141, 143, 1002, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4142, 143, 1258, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4143, 143, 1003, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4144, 143, 1259, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4145, 143, 1004, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4146, 143, 1260, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4147, 143, 1005, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4148, 143, 1006, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4149, 143, 1007, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4150, 143, 1008, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4151, 143, 1009, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4152, 143, 1010, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4153, 143, 1011, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4154, 143, 1012, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4155, 143, 1013, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4156, 143, 1014, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4157, 143, 1015, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4158, 143, 1016, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4159, 143, 1017, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4160, 143, 1018, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4161, 143, 1019, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4162, 143, 1020, '1', '2024-03-01 10:02:58', '1', '2024-03-01 10:02:58', 0, 154); +INSERT INTO `system_role_menu` VALUES (4163, 144, 1, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4164, 144, 2, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4165, 144, 1031, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4166, 144, 1032, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4167, 144, 1033, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4168, 144, 1034, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4169, 144, 1035, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4170, 144, 1036, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4171, 144, 1037, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4172, 144, 1038, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4173, 144, 1039, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4174, 144, 1050, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4175, 144, 1051, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4176, 144, 1052, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4177, 144, 1053, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4178, 144, 1054, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4184, 144, 1063, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4185, 144, 1064, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4186, 144, 1065, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4187, 144, 1066, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4188, 144, 1067, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4190, 144, 1075, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4191, 144, 1076, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4199, 144, 1087, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4202, 144, 1090, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4205, 144, 100, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4206, 144, 101, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4207, 144, 102, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4208, 144, 103, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4209, 144, 106, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4210, 144, 107, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4211, 144, 110, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4212, 144, 111, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4213, 144, 112, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4214, 144, 113, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4215, 144, 1138, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4217, 144, 1139, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4219, 144, 1140, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4220, 144, 116, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4221, 144, 1141, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4222, 144, 1142, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4223, 144, 1143, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4244, 144, 1224, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4245, 144, 1225, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4246, 144, 1226, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4247, 144, 1227, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4248, 144, 1228, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4249, 144, 1229, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4250, 144, 1237, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4251, 144, 1238, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4252, 144, 1239, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4253, 144, 1240, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4254, 144, 1241, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4255, 144, 1242, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4256, 144, 1243, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4257, 144, 2525, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4258, 144, 1255, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4259, 144, 1256, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4260, 144, 1001, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4261, 144, 1257, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4262, 144, 1002, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4263, 144, 1258, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4264, 144, 1003, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4265, 144, 1259, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4266, 144, 1004, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4267, 144, 1260, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4268, 144, 1005, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4269, 144, 1006, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4270, 144, 1007, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4271, 144, 1008, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4272, 144, 1009, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4273, 144, 1010, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4274, 144, 1011, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4275, 144, 1012, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4276, 144, 1013, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4277, 144, 1014, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4278, 144, 1015, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4279, 144, 1016, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4280, 144, 1017, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4281, 144, 1018, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4282, 144, 1019, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4283, 144, 1020, '1', '2024-03-01 11:43:59', '1', '2024-03-01 11:43:59', 0, 155); +INSERT INTO `system_role_menu` VALUES (4284, 145, 1024, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4285, 145, 1, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4286, 145, 1025, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4287, 145, 1026, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4288, 145, 1027, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4289, 145, 1028, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4290, 145, 1029, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4291, 145, 1030, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4292, 145, 1036, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4293, 145, 1037, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4294, 145, 1038, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4295, 145, 1039, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4296, 145, 1040, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4297, 145, 1042, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4298, 145, 1043, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4299, 145, 1045, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4300, 145, 1046, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4301, 145, 1048, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4302, 145, 2083, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4303, 145, 1063, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4304, 145, 1064, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4305, 145, 1065, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4306, 145, 1093, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4307, 145, 1094, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4308, 145, 1095, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4309, 145, 1096, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4310, 145, 1097, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4311, 145, 1098, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4312, 145, 1100, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4313, 145, 1101, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4314, 145, 1102, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4315, 145, 1103, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4316, 145, 1104, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4317, 145, 1105, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4318, 145, 1106, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4319, 145, 2130, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4320, 145, 1107, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4321, 145, 2131, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4322, 145, 1108, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4323, 145, 2132, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4324, 145, 1109, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4325, 145, 2133, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4326, 145, 2134, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4327, 145, 1110, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4328, 145, 2135, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4329, 145, 1111, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4330, 145, 2136, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4331, 145, 1112, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4332, 145, 2137, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4333, 145, 1113, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4334, 145, 2138, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4335, 145, 1114, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4336, 145, 2139, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4337, 145, 1115, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4338, 145, 2140, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4339, 145, 2141, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4340, 145, 2142, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4341, 145, 2143, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4342, 145, 2144, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4343, 145, 2145, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4344, 145, 2146, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4345, 145, 2147, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4346, 145, 100, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4347, 145, 2148, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4348, 145, 101, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4349, 145, 2149, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4350, 145, 102, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4351, 145, 2150, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4352, 145, 103, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4353, 145, 2151, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4354, 145, 104, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4355, 145, 2152, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4356, 145, 105, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4357, 145, 107, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4358, 145, 108, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4359, 145, 109, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4360, 145, 1138, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4361, 145, 1139, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4362, 145, 1140, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4363, 145, 1141, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4364, 145, 1142, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4365, 145, 1143, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4366, 145, 2447, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4367, 145, 2448, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4368, 145, 2449, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4369, 145, 2450, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4370, 145, 2451, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4371, 145, 2452, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4372, 145, 2453, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4374, 145, 1224, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4375, 145, 1225, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4376, 145, 1226, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4377, 145, 1227, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4378, 145, 1228, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4379, 145, 1229, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4380, 145, 1247, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4381, 145, 1248, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4382, 145, 1249, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4383, 145, 1250, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4384, 145, 1251, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4385, 145, 1252, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4386, 145, 1001, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4387, 145, 1002, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4388, 145, 1003, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4389, 145, 1004, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4390, 145, 1005, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4391, 145, 1261, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4392, 145, 1006, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4393, 145, 1007, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4394, 145, 1263, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4395, 145, 1008, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4396, 145, 1264, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4397, 145, 1009, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4398, 145, 1265, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4399, 145, 1010, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4400, 145, 1266, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4401, 145, 1011, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4402, 145, 1267, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4403, 145, 1012, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4404, 145, 500, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4405, 145, 1013, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4406, 145, 501, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4407, 145, 1014, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4408, 145, 1015, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4409, 145, 1016, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4410, 145, 1017, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4411, 145, 1018, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4412, 145, 1019, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4413, 145, 1020, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4414, 145, 1021, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4415, 145, 1022, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4416, 145, 1023, '1', '2024-03-08 11:55:18', '1', '2024-10-30 13:40:52', 1, 1); +INSERT INTO `system_role_menu` VALUES (4467, 101, 1090, '1', '2024-03-20 15:58:53', '1', '2024-10-26 15:35:32', 1, 1); +INSERT INTO `system_role_menu` VALUES (4522, 101, 1255, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4523, 101, 1256, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4524, 101, 1257, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4526, 101, 1258, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4528, 101, 1259, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4530, 101, 1260, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4680, 101, 2447, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4681, 101, 2448, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4682, 101, 2449, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4683, 101, 2450, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4684, 101, 2451, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4685, 101, 2452, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4686, 101, 2453, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4716, 101, 2525, '1', '2024-03-20 15:58:53', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4941, 101, 2761, '1', '2024-06-25 13:38:41', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4942, 101, 2762, '1', '2024-06-25 13:38:41', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4943, 101, 2763, '1', '2024-06-25 13:38:41', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (4947, 2, 2761, '1', '2024-07-15 16:26:43', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (4948, 2, 2765, '1', '2024-07-15 16:26:43', '1', '2024-07-15 16:26:43', 0, 1); +INSERT INTO `system_role_menu` VALUES (4952, 2, 1024, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4953, 2, 1, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4954, 2, 1025, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4955, 2, 1026, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4956, 2, 1027, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4957, 2, 1028, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4958, 2, 1029, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4959, 2, 1030, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4960, 2, 1036, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4961, 2, 1037, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4962, 2, 1038, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4963, 2, 1039, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4964, 2, 1040, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4965, 2, 1042, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4966, 2, 1043, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4967, 2, 1045, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4968, 2, 1046, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4969, 2, 1048, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4970, 2, 2083, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4971, 2, 1063, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4972, 2, 1064, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4973, 2, 1065, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4974, 2, 1093, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4975, 2, 1094, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4976, 2, 1095, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4977, 2, 1096, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4978, 2, 1097, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4979, 2, 1098, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4980, 2, 1100, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4981, 2, 1101, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4982, 2, 1102, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4983, 2, 1103, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4984, 2, 1104, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4985, 2, 1105, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4986, 2, 1106, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4987, 2, 2130, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4988, 2, 1107, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4989, 2, 2131, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4990, 2, 1108, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4991, 2, 2132, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4992, 2, 1109, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4993, 2, 2133, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4994, 2, 2134, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4995, 2, 1110, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4996, 2, 2135, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4997, 2, 1111, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4998, 2, 2136, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (4999, 2, 1112, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5000, 2, 2137, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5001, 2, 1113, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5002, 2, 2138, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5003, 2, 1114, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5004, 2, 2139, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5005, 2, 1115, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5006, 2, 2140, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5007, 2, 2141, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5008, 2, 2142, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5009, 2, 2143, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5010, 2, 2144, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5011, 2, 2145, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5012, 2, 2146, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5013, 2, 2147, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5014, 2, 100, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5015, 2, 2148, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5016, 2, 101, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5017, 2, 2149, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5018, 2, 102, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5019, 2, 2150, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5020, 2, 103, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5021, 2, 2151, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5022, 2, 104, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5023, 2, 2152, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5024, 2, 105, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5025, 2, 107, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5026, 2, 108, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5027, 2, 109, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5028, 2, 1138, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5029, 2, 1139, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5030, 2, 1140, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5031, 2, 1141, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5032, 2, 1142, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5033, 2, 1143, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5034, 2, 2447, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5035, 2, 2448, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5036, 2, 2449, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5037, 2, 2450, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5038, 2, 2451, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5039, 2, 2452, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5040, 2, 2453, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5041, 2, 1224, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5042, 2, 1225, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5043, 2, 1226, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5044, 2, 1227, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5045, 2, 1228, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5046, 2, 1229, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5047, 2, 1247, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5048, 2, 1248, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5049, 2, 1249, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5050, 2, 1250, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5051, 2, 1251, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5052, 2, 1252, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5053, 2, 1001, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5054, 2, 1002, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5055, 2, 1003, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5056, 2, 1004, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5057, 2, 1005, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5058, 2, 1261, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5059, 2, 1006, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5060, 2, 1007, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5061, 2, 1263, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5062, 2, 1008, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5063, 2, 1264, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5064, 2, 1009, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5065, 2, 1265, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5066, 2, 1010, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5067, 2, 1266, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5068, 2, 1011, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5069, 2, 1267, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5070, 2, 1012, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5071, 2, 500, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5072, 2, 1013, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5073, 2, 501, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5074, 2, 1014, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5075, 2, 1015, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5076, 2, 1016, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5077, 2, 1017, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5078, 2, 1018, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5079, 2, 1019, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5080, 2, 1020, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5081, 2, 1021, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5082, 2, 1022, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5083, 2, 1023, '1', '2024-07-16 09:58:46', '1', '2024-07-16 09:58:46', 0, 1); +INSERT INTO `system_role_menu` VALUES (5084, 2, 2, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5086, 2, 1031, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5087, 2, 1032, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5088, 2, 1033, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5089, 2, 1034, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5090, 2, 1035, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5091, 2, 1050, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5092, 2, 1051, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5093, 2, 1052, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5094, 2, 1053, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5095, 2, 1054, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5101, 2, 1066, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5102, 2, 1067, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5103, 2, 1075, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5104, 2, 1076, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5112, 2, 1087, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5115, 2, 1090, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:32', 1, 1); +INSERT INTO `system_role_menu` VALUES (5127, 2, 106, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5135, 2, 110, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5138, 2, 111, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5140, 2, 112, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5142, 2, 113, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5147, 2, 116, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5161, 2, 1185, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5162, 2, 1186, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5169, 2, 1193, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5170, 2, 1194, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5171, 2, 1195, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5172, 2, 1196, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5173, 2, 1197, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5174, 2, 1198, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5175, 2, 1199, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5177, 2, 1200, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5179, 2, 1201, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5181, 2, 1202, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5185, 2, 1207, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5186, 2, 1208, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5187, 2, 1209, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5188, 2, 1210, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5189, 2, 1211, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5190, 2, 1212, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5191, 2, 1213, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5192, 2, 1215, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5193, 2, 1216, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5194, 2, 1217, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5195, 2, 1218, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5196, 2, 1219, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5197, 2, 1220, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5198, 2, 1221, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5199, 2, 1222, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5200, 2, 1237, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (5201, 2, 1238, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (5202, 2, 1239, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:39', 1, 1); +INSERT INTO `system_role_menu` VALUES (5203, 2, 1240, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (5204, 2, 1241, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (5205, 2, 1242, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:40', 1, 1); +INSERT INTO `system_role_menu` VALUES (5206, 2, 1243, '1', '2024-07-16 10:06:01', '1', '2024-10-26 15:35:45', 1, 1); +INSERT INTO `system_role_menu` VALUES (5207, 2, 1255, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5208, 2, 1256, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5209, 2, 1257, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5210, 2, 1258, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5211, 2, 1259, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5212, 2, 1260, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5217, 2, 2525, '1', '2024-07-16 10:06:01', '1', '2024-07-16 10:06:01', 0, 1); +INSERT INTO `system_role_menu` VALUES (5233, 146, 2761, '1', '2024-07-16 17:05:21', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5234, 146, 2762, '1', '2024-07-16 17:05:21', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5235, 146, 2763, '1', '2024-07-16 17:05:21', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5236, 146, 2765, '1', '2024-07-16 17:05:21', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5245, 1, 2761, '1', '2024-07-20 16:50:32', '1', '2024-07-20 16:50:32', 0, 1); +INSERT INTO `system_role_menu` VALUES (5246, 1, 2762, '1', '2024-07-20 16:50:32', '1', '2024-07-20 16:50:32', 0, 1); +INSERT INTO `system_role_menu` VALUES (5247, 1, 2763, '1', '2024-07-20 16:50:32', '1', '2024-07-20 16:50:32', 0, 1); +INSERT INTO `system_role_menu` VALUES (5248, 1, 2765, '1', '2024-07-20 16:50:32', '1', '2024-07-20 16:50:32', 0, 1); +INSERT INTO `system_role_menu` VALUES (5260, 146, 2794, '1', '2024-07-22 09:02:03', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5261, 146, 2803, '1', '2024-07-22 09:02:03', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5262, 146, 2795, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5263, 146, 2796, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5264, 146, 2797, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5265, 146, 2798, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5266, 146, 2799, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5267, 146, 2800, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5268, 146, 2801, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5269, 146, 2802, '1', '2024-07-22 09:06:46', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5270, 146, 2806, '1', '2024-07-22 09:30:16', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5273, 146, 1219, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5274, 146, 1220, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5275, 146, 1221, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5276, 146, 1222, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5277, 146, 1185, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5278, 146, 1200, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5279, 146, 1201, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5280, 146, 1202, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5281, 146, 1207, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5282, 146, 1208, '1', '2024-08-03 09:17:25', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5287, 101, 2794, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5288, 101, 2795, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5289, 101, 2796, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5290, 101, 2797, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5291, 101, 2798, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5292, 101, 2799, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5293, 101, 2800, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5294, 101, 2801, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5295, 101, 2802, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5296, 101, 2803, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5297, 101, 2804, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5298, 101, 2805, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5299, 101, 2806, '1', '2024-08-24 10:38:45', '1', '2024-10-30 13:40:57', 1, 1); +INSERT INTO `system_role_menu` VALUES (5300, 146, 2804, '1', '2024-08-24 10:41:42', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5301, 146, 2805, '1', '2024-08-24 10:41:42', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5302, 146, 1024, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5303, 146, 1, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5304, 146, 1025, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5305, 146, 1026, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5306, 146, 2, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5307, 146, 1027, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5308, 146, 1028, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5309, 146, 1029, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5310, 146, 1030, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5311, 146, 1031, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5312, 146, 1032, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5313, 146, 1033, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5314, 146, 1034, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5315, 146, 1035, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5316, 146, 1036, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5317, 146, 1037, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5318, 146, 1038, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5319, 146, 1039, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5320, 146, 1040, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5321, 146, 1042, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5322, 146, 1043, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5323, 146, 1045, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5324, 146, 1046, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5325, 146, 1048, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5326, 146, 1050, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5327, 146, 1051, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5328, 146, 1052, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5329, 146, 1053, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5330, 146, 1054, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5334, 146, 2083, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5337, 146, 1063, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5338, 146, 1064, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5339, 146, 1065, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5340, 146, 1066, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5341, 146, 1067, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5342, 146, 1075, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5343, 146, 1076, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5351, 146, 1087, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5354, 146, 1090, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5357, 146, 1093, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5358, 146, 1094, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5359, 146, 1095, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5360, 146, 1096, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5361, 146, 1097, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5362, 146, 1098, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5363, 146, 1100, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5364, 146, 1101, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5365, 146, 1102, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5366, 146, 1103, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5367, 146, 1104, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5368, 146, 1105, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5369, 146, 1106, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5370, 146, 2130, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5371, 146, 1107, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5372, 146, 2131, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5373, 146, 1108, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5374, 146, 2132, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5375, 146, 1109, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5376, 146, 2133, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5377, 146, 2134, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5378, 146, 1110, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5379, 146, 2135, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5380, 146, 1111, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5381, 146, 2136, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5382, 146, 1112, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5383, 146, 2137, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5384, 146, 1113, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5385, 146, 2138, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5386, 146, 1114, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5387, 146, 2139, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5388, 146, 1115, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5389, 146, 2140, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5390, 146, 2141, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5392, 146, 2142, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5393, 146, 2143, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5394, 146, 2144, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5395, 146, 2145, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5396, 146, 2146, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5397, 146, 2147, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5398, 146, 100, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5399, 146, 2148, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5400, 146, 101, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5401, 146, 2149, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5402, 146, 102, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5403, 146, 2150, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5405, 146, 103, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5406, 146, 2151, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5408, 146, 104, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5409, 146, 2152, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5411, 146, 105, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5414, 146, 106, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5417, 146, 107, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5419, 146, 108, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5422, 146, 109, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5425, 146, 110, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5428, 146, 111, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5430, 146, 112, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5432, 146, 113, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5435, 146, 1138, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5437, 146, 1139, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5439, 146, 1140, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5440, 146, 116, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5441, 146, 1141, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5442, 146, 1142, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5443, 146, 1143, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5457, 146, 1186, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5458, 146, 1193, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5459, 146, 1194, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5460, 146, 1195, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5461, 146, 1196, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5462, 146, 1197, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5463, 146, 1198, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5464, 146, 1199, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5471, 146, 1209, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5472, 146, 1210, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5473, 146, 1211, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5474, 146, 1212, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5475, 146, 1213, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5476, 146, 1215, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5477, 146, 1216, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5478, 146, 1217, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5479, 146, 1218, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5480, 146, 1224, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5481, 146, 1225, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5482, 146, 1226, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5483, 146, 1227, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5484, 146, 1228, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5485, 146, 1229, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5486, 146, 1237, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5487, 146, 1238, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5488, 146, 1239, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5489, 146, 1240, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5490, 146, 1241, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5491, 146, 1242, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5492, 146, 1243, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5493, 146, 1247, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5494, 146, 1248, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5496, 146, 1249, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5498, 146, 1250, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5500, 146, 1251, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5501, 146, 1252, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5502, 146, 1255, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5503, 146, 1256, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5504, 146, 1257, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5505, 146, 1258, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5506, 146, 1259, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5507, 146, 1260, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5508, 146, 1261, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5509, 146, 1263, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5510, 146, 1264, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5511, 146, 1265, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5512, 146, 1266, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5513, 146, 1267, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5519, 146, 2447, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5520, 146, 2448, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5521, 146, 2449, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5522, 146, 2450, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5523, 146, 2451, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5524, 146, 2452, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5525, 146, 2453, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5526, 146, 2525, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5527, 146, 1001, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5528, 146, 1002, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5529, 146, 1003, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5530, 146, 1004, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5531, 146, 1005, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5532, 146, 1006, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5533, 146, 1007, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5534, 146, 1008, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5535, 146, 1009, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5536, 146, 1010, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5537, 146, 1011, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5538, 146, 1012, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5539, 146, 500, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5540, 146, 1013, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5541, 146, 501, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5543, 146, 1014, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5545, 146, 1015, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5546, 146, 1016, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5547, 146, 1017, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5548, 146, 1018, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5549, 146, 1019, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5550, 146, 1020, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5551, 146, 1021, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5552, 146, 1022, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5553, 146, 1023, '1', '2024-08-24 10:52:24', '1', '2024-08-24 11:12:41', 1, 1); +INSERT INTO `system_role_menu` VALUES (5555, 146, 2761, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5556, 146, 2762, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5557, 146, 2763, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5558, 146, 2765, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5567, 146, 2794, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5568, 146, 2795, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5569, 146, 2796, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5570, 146, 2797, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5571, 146, 2798, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5572, 146, 2799, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5573, 146, 2800, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5574, 146, 2801, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5575, 146, 2802, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5576, 146, 2803, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5577, 146, 2804, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5578, 146, 2805, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5579, 146, 2806, '1', '2024-08-24 11:13:23', '1', '2024-10-17 09:47:37', 1, 1); +INSERT INTO `system_role_menu` VALUES (5582, 146, 1185, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5583, 146, 1186, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5584, 146, 1193, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5585, 146, 1194, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5586, 146, 1195, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5587, 146, 1196, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5588, 146, 1197, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5589, 146, 1198, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5590, 146, 1199, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5591, 146, 1200, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5592, 146, 1201, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5593, 146, 1202, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5594, 146, 1207, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5595, 146, 1208, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5596, 146, 1209, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5597, 146, 1210, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5598, 146, 1211, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5599, 146, 1212, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5600, 146, 1213, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5601, 146, 1215, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5602, 146, 1216, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5603, 146, 1217, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5604, 146, 1218, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5605, 146, 1219, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5606, 146, 1220, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5607, 146, 1221, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5608, 146, 1222, '1', '2024-08-24 13:48:52', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5613, 146, 1, '1', '2024-10-17 09:47:40', '1', '2024-10-17 10:53:55', 1, 1); +INSERT INTO `system_role_menu` VALUES (5615, 146, 1, '1', '2024-10-17 10:54:37', '1', '2024-11-04 16:54:20', 1, 1); +INSERT INTO `system_role_menu` VALUES (5617, 147, 1025, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5618, 147, 1, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5619, 147, 1026, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5620, 147, 2, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5621, 147, 1027, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5623, 147, 1030, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5624, 147, 1031, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5625, 147, 1032, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5626, 147, 1035, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5627, 147, 1036, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5628, 147, 1037, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5629, 147, 1040, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5630, 147, 1042, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5631, 147, 1043, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5632, 147, 1045, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5633, 147, 1046, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5634, 147, 1051, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5635, 147, 1052, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5636, 147, 1053, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5637, 147, 2083, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5638, 147, 1066, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5639, 147, 1067, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5640, 147, 1076, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5649, 147, 1093, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5650, 147, 1094, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5651, 147, 1095, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5652, 147, 1096, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5653, 147, 1100, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5654, 147, 1101, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5655, 147, 1102, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5656, 147, 1105, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5657, 147, 1106, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5658, 147, 2130, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5659, 147, 2131, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5660, 147, 2132, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5661, 147, 2133, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5662, 147, 1110, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5663, 147, 1111, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5664, 147, 1112, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5665, 147, 2136, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5666, 147, 2137, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5667, 147, 1113, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5668, 147, 2138, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5669, 147, 1114, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5670, 147, 1115, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5671, 147, 2141, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5673, 147, 2142, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5675, 147, 2143, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5677, 147, 2144, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5679, 147, 2145, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5680, 147, 2146, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5681, 147, 2147, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5682, 147, 2148, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5683, 147, 100, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5684, 147, 2149, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5685, 147, 101, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5686, 147, 2150, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5688, 147, 102, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5689, 147, 2151, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5691, 147, 103, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5692, 147, 2152, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5694, 147, 104, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5697, 147, 105, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5700, 147, 106, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5702, 147, 107, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5703, 147, 108, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5708, 147, 109, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5711, 147, 110, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5712, 147, 111, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5714, 147, 112, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5716, 147, 113, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5719, 147, 1138, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5720, 147, 1139, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5721, 147, 116, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5722, 147, 1143, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5736, 147, 1185, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5737, 147, 1186, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5738, 147, 1193, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5739, 147, 1194, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5740, 147, 1195, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5741, 147, 1196, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5742, 147, 1197, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5743, 147, 1198, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5744, 147, 1199, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5746, 147, 1200, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5748, 147, 1201, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5750, 147, 1202, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5754, 147, 1207, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5755, 147, 1208, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5756, 147, 1209, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5757, 147, 1210, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5758, 147, 1211, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5759, 147, 1212, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5760, 147, 1213, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5761, 147, 1215, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5762, 147, 1216, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5763, 147, 1217, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5764, 147, 1218, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5765, 147, 1219, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5766, 147, 1220, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5767, 147, 1221, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5768, 147, 1222, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5769, 147, 1224, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5770, 147, 2761, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5771, 147, 1225, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5772, 147, 2762, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5773, 147, 1226, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5774, 147, 2763, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5775, 147, 1227, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5776, 147, 2765, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5777, 147, 1247, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5778, 147, 1248, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5779, 147, 1249, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5780, 147, 1250, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5781, 147, 1251, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5782, 147, 1252, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5783, 147, 2794, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5784, 147, 2795, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5785, 147, 2796, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5786, 147, 2797, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5787, 147, 1261, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5788, 147, 2798, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5789, 147, 2799, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5790, 147, 1263, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5791, 147, 2800, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5792, 147, 1264, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5793, 147, 2801, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5794, 147, 2802, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5795, 147, 2803, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5796, 147, 2804, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5797, 147, 2805, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5798, 147, 2806, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5799, 147, 2809, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5800, 147, 2810, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5801, 147, 2811, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5802, 147, 2812, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5803, 147, 2813, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5808, 147, 2821, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5809, 147, 2822, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5810, 147, 2823, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5811, 147, 2824, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5812, 147, 2825, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5813, 147, 2826, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5814, 147, 2827, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5815, 147, 2828, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5816, 147, 2829, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5817, 147, 2830, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5818, 147, 2831, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5819, 147, 2832, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5820, 147, 2834, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5821, 147, 2835, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5822, 147, 2836, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5823, 147, 2837, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5824, 147, 2838, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5825, 147, 2839, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5826, 147, 2840, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5827, 147, 2841, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5828, 147, 2842, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5829, 147, 2843, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5830, 147, 2844, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5831, 147, 2845, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5832, 147, 2846, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5833, 147, 2847, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5834, 147, 2848, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5835, 147, 2850, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5836, 147, 2851, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5837, 147, 2852, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5838, 147, 2853, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5839, 147, 2854, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5840, 147, 2855, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5841, 147, 2856, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5842, 147, 2857, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5843, 147, 2858, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5844, 147, 2859, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5845, 147, 2861, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5846, 147, 2862, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5847, 147, 2863, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5848, 147, 2864, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5849, 147, 2865, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5850, 147, 2866, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5851, 147, 2867, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5852, 147, 2868, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5853, 147, 2869, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5854, 147, 2870, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5855, 147, 2872, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5856, 147, 2873, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5857, 147, 2874, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5858, 147, 2875, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5859, 147, 2881, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5860, 147, 2882, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5861, 147, 2883, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5862, 147, 2884, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5863, 147, 2886, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5864, 147, 2447, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5865, 147, 2448, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5866, 147, 2449, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5867, 147, 2450, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5868, 147, 2451, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5869, 147, 2452, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5870, 147, 2453, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5871, 147, 2525, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5872, 147, 1001, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5873, 147, 1008, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5874, 147, 1012, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5875, 147, 500, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5876, 147, 1013, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5877, 147, 501, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5880, 147, 1017, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5881, 147, 1018, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5882, 147, 1021, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5883, 147, 1022, '1', '2024-10-30 13:57:24', '1', '2024-10-30 13:57:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5885, 147, 2887, '1', '2024-10-30 14:50:52', '1', '2024-10-30 14:50:52', 0, 1); +INSERT INTO `system_role_menu` VALUES (5886, 147, 1024, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5887, 147, 1028, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5888, 147, 1029, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5889, 147, 1033, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5890, 147, 1034, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5891, 147, 1038, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5892, 147, 1039, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5893, 147, 1048, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5894, 147, 1050, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5895, 147, 1054, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5896, 147, 1063, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5897, 147, 1064, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5898, 147, 1065, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5899, 147, 1075, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5900, 147, 1087, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5901, 147, 1097, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5902, 147, 1098, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5903, 147, 1103, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5904, 147, 1104, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5905, 147, 1107, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5906, 147, 1108, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5907, 147, 1109, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5908, 147, 2134, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5909, 147, 2135, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5910, 147, 2139, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5911, 147, 2140, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5912, 147, 1140, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5913, 147, 1141, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5914, 147, 1142, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5915, 147, 1228, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5916, 147, 1229, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5917, 147, 1255, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5918, 147, 1256, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5919, 147, 1257, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5920, 147, 1258, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5921, 147, 1259, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5922, 147, 1260, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5923, 147, 1265, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5924, 147, 1266, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5925, 147, 1267, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5926, 147, 2888, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5927, 147, 2889, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5928, 147, 1002, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5929, 147, 1003, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5930, 147, 1004, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5931, 147, 1005, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5932, 147, 1006, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5933, 147, 1007, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5934, 147, 1009, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5935, 147, 1010, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5936, 147, 1011, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5937, 147, 1014, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5938, 147, 1015, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5939, 147, 1016, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5940, 147, 1019, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5941, 147, 1020, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5942, 147, 1023, '1', '2024-11-01 10:44:42', '1', '2024-11-01 10:44:42', 0, 1); +INSERT INTO `system_role_menu` VALUES (5943, 1, 2794, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5944, 1, 2795, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5945, 1, 2796, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5946, 1, 2797, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5947, 1, 2798, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5948, 1, 2799, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5949, 1, 2800, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5950, 1, 2801, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5951, 1, 2802, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5952, 1, 2803, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5953, 1, 2804, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5954, 1, 2805, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5955, 1, 2806, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5956, 1, 2809, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5957, 1, 2810, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5958, 1, 2811, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5959, 1, 2812, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5960, 1, 2813, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5961, 1, 2821, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5962, 1, 2822, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5963, 1, 2823, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5964, 1, 2824, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5965, 1, 2825, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5966, 1, 2826, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5967, 1, 2827, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5968, 1, 2828, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5969, 1, 2829, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5970, 1, 2830, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5971, 1, 2831, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5972, 1, 2832, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5973, 1, 2834, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5974, 1, 2835, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5975, 1, 2836, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5976, 1, 2837, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5977, 1, 2838, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5978, 1, 2839, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5979, 1, 2840, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5980, 1, 2841, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5981, 1, 2842, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5982, 1, 2843, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5983, 1, 2844, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5984, 1, 2845, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5985, 1, 2846, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5986, 1, 2847, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5987, 1, 2848, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5988, 1, 2850, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5989, 1, 2851, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5990, 1, 2852, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5991, 1, 2853, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5992, 1, 2854, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5993, 1, 2855, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5994, 1, 2856, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5995, 1, 2857, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5996, 1, 2858, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5997, 1, 2859, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5998, 1, 2861, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (5999, 1, 2862, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6000, 1, 2863, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6001, 1, 2864, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6002, 1, 2865, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6003, 1, 2866, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6004, 1, 2867, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6005, 1, 2868, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6006, 1, 2869, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6007, 1, 2870, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6008, 1, 2872, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6009, 1, 2873, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6010, 1, 2874, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6011, 1, 2875, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6012, 1, 2881, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6013, 1, 2882, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6014, 1, 2883, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6015, 1, 2884, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6016, 1, 2886, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6017, 1, 2887, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6018, 1, 2888, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6019, 1, 2889, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6020, 1, 2890, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6021, 1, 2891, '1', '2024-11-04 16:35:24', '1', '2024-11-04 16:35:24', 0, 1); +INSERT INTO `system_role_menu` VALUES (6031, 146, 2835, '1', '2024-11-04 16:49:07', '1', '2024-11-05 09:21:01', 1, 1); +INSERT INTO `system_role_menu` VALUES (6032, 146, 2865, '1', '2024-11-04 16:49:07', '1', '2024-11-05 09:21:01', 1, 1); +INSERT INTO `system_role_menu` VALUES (6041, 146, 2865, '1', '2024-11-05 09:29:34', '1', '2024-11-05 09:29:34', 0, 1); +INSERT INTO `system_role_menu` VALUES (6043, 146, 2835, '1', '2024-11-05 09:29:34', '1', '2024-11-05 09:29:34', 0, 1); +INSERT INTO `system_role_menu` VALUES (6046, 148, 2835, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6047, 148, 2836, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6048, 148, 2837, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6049, 148, 2838, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6050, 148, 2839, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6051, 148, 2840, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6052, 148, 2841, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6053, 148, 2842, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6054, 148, 2843, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6055, 148, 2844, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6056, 148, 2845, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6057, 148, 2846, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6058, 148, 2847, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6059, 148, 2848, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6060, 148, 2850, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6061, 148, 2851, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6062, 148, 2852, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6063, 148, 2853, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6064, 148, 2854, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6065, 148, 2855, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6066, 148, 2856, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6067, 148, 2857, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6068, 148, 2858, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6069, 148, 2859, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6070, 148, 2861, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6071, 148, 2862, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6072, 148, 2863, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6073, 148, 2864, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6074, 148, 2865, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6075, 148, 2866, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6076, 148, 2867, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6077, 148, 2868, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6078, 148, 2870, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6079, 148, 2872, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6080, 148, 2873, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6081, 148, 2874, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6082, 148, 2875, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6083, 148, 2886, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6084, 148, 2887, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6085, 148, 2888, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6086, 148, 2889, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6087, 148, 2890, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6088, 148, 2891, '1', '2024-11-05 10:49:02', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6097, 148, 1024, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6098, 148, 1025, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6099, 148, 1, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6100, 148, 1063, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6101, 148, 1064, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6102, 148, 1065, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6103, 148, 100, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6104, 148, 101, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6105, 148, 102, '1', '2024-11-05 11:15:16', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6106, 148, 103, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6107, 148, 104, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6108, 148, 1001, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6109, 148, 1002, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6110, 148, 1003, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6111, 148, 1004, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6112, 148, 1005, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6113, 148, 1006, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6114, 148, 1007, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6115, 148, 1008, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6116, 148, 1009, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6117, 148, 1010, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6118, 148, 1011, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6119, 148, 1012, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6120, 148, 1013, '1', '2024-11-05 11:15:16', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6121, 148, 1014, '1', '2024-11-05 11:15:16', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6122, 148, 1015, '1', '2024-11-05 11:15:16', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6123, 148, 1016, '1', '2024-11-05 11:15:16', '1', '2024-11-06 16:48:48', 1, 156); +INSERT INTO `system_role_menu` VALUES (6124, 148, 1017, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6125, 148, 1018, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6126, 148, 1019, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6127, 148, 1020, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6128, 148, 1021, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6129, 148, 1022, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6130, 148, 1023, '1', '2024-11-05 11:15:16', '1', '2024-11-05 11:15:16', 0, 156); +INSERT INTO `system_role_menu` VALUES (6136, 149, 2864, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6137, 149, 2835, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6138, 149, 2836, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6139, 149, 2868, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6140, 149, 2837, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6141, 149, 2838, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6142, 149, 2839, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6143, 149, 2840, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6144, 149, 2841, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6145, 149, 2889, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6146, 149, 2863, '139', '2024-11-06 16:13:55', '139', '2024-11-06 16:48:49', 1, 156); +INSERT INTO `system_role_menu` VALUES (6147, 148, 1036, '1', '2024-11-06 16:48:56', '1', '2024-11-06 16:48:56', 0, 156); +INSERT INTO `system_role_menu` VALUES (6148, 148, 1037, '1', '2024-11-06 16:48:56', '1', '2024-11-06 16:48:56', 0, 156); +INSERT INTO `system_role_menu` VALUES (6149, 148, 1038, '1', '2024-11-06 16:48:56', '1', '2024-11-06 16:48:56', 0, 156); +INSERT INTO `system_role_menu` VALUES (6150, 148, 1039, '1', '2024-11-06 16:48:56', '1', '2024-11-06 16:48:56', 0, 156); +INSERT INTO `system_role_menu` VALUES (6151, 148, 107, '1', '2024-11-06 16:48:56', '1', '2024-11-06 16:48:56', 0, 156); +INSERT INTO `system_role_menu` VALUES (6152, 1, 2901, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6153, 1, 2902, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6154, 1, 2903, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6155, 1, 2904, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6156, 1, 2905, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6157, 1, 2906, '1', '2024-11-07 12:00:53', '1', '2024-11-07 12:00:53', 0, 1); +INSERT INTO `system_role_menu` VALUES (6158, 1, 2907, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6159, 1, 2908, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6160, 1, 2909, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6161, 1, 2910, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6162, 1, 2911, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6163, 1, 2912, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6164, 1, 2913, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6165, 1, 2914, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6166, 1, 2915, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6167, 1, 2916, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6168, 1, 2917, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6169, 1, 2918, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6170, 1, 2919, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6171, 1, 2920, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6172, 1, 2921, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6173, 1, 2922, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6174, 1, 2923, '1', '2024-11-11 09:29:19', '1', '2024-11-11 09:29:19', 0, 1); +INSERT INTO `system_role_menu` VALUES (6187, 2, 2762, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6188, 2, 2794, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6189, 2, 2795, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6190, 2, 2796, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6191, 2, 2797, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6192, 2, 2798, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6193, 2, 2799, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6194, 2, 2800, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6195, 2, 2801, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6196, 2, 2802, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:02:33', 1, 1); +INSERT INTO `system_role_menu` VALUES (6197, 2, 2835, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:01:27', 0, 1); +INSERT INTO `system_role_menu` VALUES (6198, 2, 2930, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:01:27', 0, 1); +INSERT INTO `system_role_menu` VALUES (6199, 2, 2931, '1', '2024-12-10 15:01:27', '1', '2024-12-10 15:01:27', 0, 1); + +-- ---------------------------- +-- Table structure for system_sensitive_word +-- ---------------------------- +DROP TABLE IF EXISTS `system_sensitive_word`; +CREATE TABLE `system_sensitive_word` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '敏感词', + `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述', + `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签数组', + `status` tinyint(0) NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '敏感词' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_sensitive_word +-- ---------------------------- +INSERT INTO `system_sensitive_word` VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2024-10-26 15:16:34', 1); +INSERT INTO `system_sensitive_word` VALUES (4, 'XXX', '111', '短信', 0, '1', '2022-04-08 21:27:49', '1', '2024-10-26 15:16:36', 1); +INSERT INTO `system_sensitive_word` VALUES (5, '白痴', 'lll', '测试', 0, '1', '2022-12-31 19:08:25', '1', '2024-03-06 17:04:30', 1); +INSERT INTO `system_sensitive_word` VALUES (6, '666', '', '不是吧', 0, '1', '2024-03-09 09:30:03', '1', '2024-10-26 15:16:39', 1); + +-- ---------------------------- +-- Table structure for system_sms_channel +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_channel`; +CREATE TABLE `system_sms_channel` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `signature` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信签名', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '渠道编码', + `status` tinyint(0) NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `api_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信 API 的账号', + `api_secret` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信 API 的秘钥', + `callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信发送回调 URL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信渠道' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_sms_channel +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_sms_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_code`; +CREATE TABLE `system_sms_code` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手机号', + `code` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '验证码', + `create_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建 IP', + `scene` tinyint(0) NOT NULL COMMENT '发送场景', + `today_index` tinyint(0) NOT NULL COMMENT '今日发送的第几条', + `used` tinyint(0) NOT NULL COMMENT '是否使用', + `used_time` datetime(0) NULL DEFAULT NULL COMMENT '使用时间', + `used_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '使用 IP', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_mobile`(`mobile`) USING BTREE COMMENT '手机号' +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '手机验证码' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_sms_code +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_sms_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_log`; +CREATE TABLE `system_sms_log` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `channel_id` bigint(0) NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信渠道编码', + `template_id` bigint(0) NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板编码', + `template_type` tinyint(0) NOT NULL COMMENT '短信类型', + `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信参数', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信 API 的模板编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手机号', + `user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint(0) NULL DEFAULT NULL COMMENT '用户类型', + `send_status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '发送状态', + `send_time` datetime(0) NULL DEFAULT NULL COMMENT '发送时间', + `api_send_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信 API 发送结果的编码', + `api_send_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信 API 发送失败的提示', + `api_request_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信 API 发送返回的唯一请求 ID', + `api_serial_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信 API 发送返回的序号', + `receive_status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '接收状态', + `receive_time` datetime(0) NULL DEFAULT NULL COMMENT '接收时间', + `api_receive_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'API 接收结果的编码', + `api_receive_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'API 接收结果的说明', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 673 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信日志' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_sms_log +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_sms_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_template`; +CREATE TABLE `system_sms_template` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `type` tinyint(0) NOT NULL COMMENT '短信签名', + `status` tinyint(0) NOT NULL COMMENT '开启状态', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板编码', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板名称', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数数组', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信 API 的模板编号', + `channel_id` bigint(0) NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '短信渠道编码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信模板' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_sms_template +-- ---------------------------- +INSERT INTO `system_sms_template` VALUES (8, 1, 0, 'user-sms-login', '前台用户短信登录', '您的验证码是{code}', '[\"code\"]', NULL, '4372216', 6, 'DEBUG_DING_TALK', '1', '2021-10-11 08:10:00', '1', '2022-12-10 21:25:59', 0); +INSERT INTO `system_sms_template` VALUES (9, 2, 0, 'bpm_task_assigned', '【工作流】任务被分配', '您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}', '[\"processInstanceName\",\"taskName\",\"startUserNickname\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-21 22:31:19', '1', '2022-01-22 00:03:36', 0); +INSERT INTO `system_sms_template` VALUES (10, 2, 0, 'bpm_process_instance_reject', '【工作流】流程被不通过', '您的流程被审批不通过:{processInstanceName},原因:{reason},查看链接:{detailUrl}', '[\"processInstanceName\",\"reason\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:03:31', '1', '2022-05-01 12:33:14', 0); +INSERT INTO `system_sms_template` VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-03-27 20:32:21', 0); +INSERT INTO `system_sms_template` VALUES (14, 1, 0, 'user-update-mobile', '会员用户 - 修改手机', '您的验证码{code},该验证码 5 分钟内有效,请勿泄漏于他人!', '[\"code\"]', '', 'null', 4, 'DEBUG_DING_TALK', '1', '2023-08-19 18:58:01', '1', '2023-08-19 11:34:04', 0); +INSERT INTO `system_sms_template` VALUES (15, 1, 0, 'user-update-password', '会员用户 - 修改密码', '您的验证码{code},该验证码 5 分钟内有效,请勿泄漏于他人!', '[\"code\"]', '', 'null', 4, 'DEBUG_DING_TALK', '1', '2023-08-19 18:58:01', '1', '2023-08-19 11:34:18', 0); +INSERT INTO `system_sms_template` VALUES (16, 1, 0, 'user-reset-password', '会员用户 - 重置密码', '您的验证码{code},该验证码 5 分钟内有效,请勿泄漏于他人!', '[\"code\"]', '', 'null', 4, 'DEBUG_DING_TALK', '1', '2023-08-19 18:58:01', '1', '2024-03-05 11:17:16', 0); + +-- ---------------------------- +-- Table structure for system_social_client +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_client`; +CREATE TABLE `system_social_client` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用名', + `social_type` tinyint(0) NOT NULL COMMENT '社交平台的类型', + `user_type` tinyint(0) NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端编号', + `client_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥', + `agent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代理编号', + `status` tinyint(0) NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社交客户端表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_social_client +-- ---------------------------- +INSERT INTO `system_social_client` VALUES (1, '钉钉', 20, 2, 'dingvrnreaje3yqvzhxg', 'i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI', NULL, 0, '', '2023-10-18 11:21:18', '1', '2023-12-20 21:28:26', 1, 1); +INSERT INTO `system_social_client` VALUES (2, '钉钉(王土豆)', 20, 2, 'dingtsu9hpepjkbmthhw', 'FP_bnSq_HAHKCSncmJjw5hxhnzs6vaVDSZZn3egj6rdqTQ_hu5tQVJyLMpgCakdP', NULL, 0, '', '2023-10-18 11:21:18', '', '2023-12-20 21:28:26', 1, 121); +INSERT INTO `system_social_client` VALUES (3, '微信公众号', 31, 1, 'wx5b23ba7a5589ecbb', '2a7b3b20c537e52e74afd395eb85f61f', NULL, 0, '', '2023-10-18 16:07:46', '1', '2023-12-20 21:28:23', 1, 1); +INSERT INTO `system_social_client` VALUES (43, '微信小程序', 34, 1, 'wx63c280fe3248a3e7', '6f270509224a7ae1296bbf1c8cb97aed', NULL, 0, '', '2023-10-19 13:37:41', '1', '2023-12-20 21:28:25', 1, 1); +INSERT INTO `system_social_client` VALUES (44, '测试111111', 20, 2, 'test1', 'test1', NULL, 0, '1', '2024-03-04 13:46:10', '1', '2024-03-04 14:18:46', 1, 1); +INSERT INTO `system_social_client` VALUES (45, 'test3333', 10, 2, 'test3333', 'test3333', NULL, 0, '1', '2024-03-04 14:18:10', '1', '2024-03-04 14:18:35', 1, 1); +INSERT INTO `system_social_client` VALUES (46, 'test', 34, 2, 'test', 'test', NULL, 0, '1', '2024-03-04 14:22:48', '1', '2024-03-04 14:24:45', 0, 1); + +-- ---------------------------- +-- Table structure for system_social_user +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user`; +CREATE TABLE `system_social_user` ( + `id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `type` tinyint(0) NOT NULL COMMENT '社交平台的类型', + `openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '社交 openid', + `token` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '社交 token', + `raw_token_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原始 Token 数据,一般是 JSON 格式', + `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户昵称', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户头像', + `raw_user_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原始用户数据,一般是 JSON 格式', + `code` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '最后一次的认证 code', + `state` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后一次的认证 state', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社交用户表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_social_user +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_social_user_bind +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user_bind`; +CREATE TABLE `system_social_user_bind` ( + `id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `user_id` bigint(0) NOT NULL COMMENT '用户编号', + `user_type` tinyint(0) NOT NULL COMMENT '用户类型', + `social_type` tinyint(0) NOT NULL COMMENT '社交平台的类型', + `social_user_id` bigint(0) NOT NULL COMMENT '社交用户的编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社交绑定表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_social_user_bind +-- ---------------------------- + +-- ---------------------------- +-- Table structure for system_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant`; +CREATE TABLE `system_tenant` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '租户编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名', + `contact_user_id` bigint(0) NULL DEFAULT NULL COMMENT '联系人的用户编号', + `contact_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '联系人', + `contact_mobile` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系手机', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', + `website` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '绑定域名', + `package_id` bigint(0) NOT NULL COMMENT '租户套餐编号', + `expire_time` datetime(0) NOT NULL COMMENT '过期时间', + `account_count` int(0) NOT NULL COMMENT '账号数量', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 157 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_tenant +-- ---------------------------- +INSERT INTO `system_tenant` VALUES (1, '000000', NULL, 'JeeLowCode', NULL, 0, 'www.jeelowcode.com', 0, '2099-02-19 17:14:16', 9999, '1', '2021-01-05 17:03:47', '1', '2024-11-01 14:41:25', 0); +INSERT INTO `system_tenant` VALUES (156, '111222', 139, '张三', '', 0, '1', 114, '2025-01-01 08:00:00', 10, '1', '2024-11-05 10:49:02', '1', '2024-11-05 10:51:21', 0); + +-- ---------------------------- +-- Table structure for system_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant_package`; +CREATE TABLE `system_tenant_package` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '套餐编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '套餐名', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', + `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注', + `menu_ids` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关联的菜单编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户套餐表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_tenant_package +-- ---------------------------- +INSERT INTO `system_tenant_package` VALUES (114, '测试套餐1', 0, '', '[1024,1025,1,1036,1037,1038,1039,100,101,1063,103,1064,104,1001,1065,1002,1003,107,1004,1005,1006,1007,1008,1009,1010,1011,1012,1017,1018,1019,1020,1021,1022,1023]', '1', '2024-11-05 10:46:49', '1', '2024-11-06 16:48:56', 0); + +-- ---------------------------- +-- Table structure for system_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_post`; +CREATE TABLE `system_user_post` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id', + `user_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '用户ID', + `post_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '岗位ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 125 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户岗位表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_user_post +-- ---------------------------- +INSERT INTO `system_user_post` VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', 0, 1); +INSERT INTO `system_user_post` VALUES (120, 1, 2, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', 0, 1); + +-- ---------------------------- +-- Table structure for system_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_role`; +CREATE TABLE `system_user_role` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `user_id` bigint(0) NOT NULL COMMENT '用户ID', + `role_id` bigint(0) NOT NULL COMMENT '角色ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 51 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户和角色关联表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_user_role +-- ---------------------------- +INSERT INTO `system_user_role` VALUES (1, 1, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:17', 0, 1); +INSERT INTO `system_user_role` VALUES (18, 1, 2, '1', '2022-05-12 20:39:29', '1', '2022-05-12 20:39:29', 0, 1); +INSERT INTO `system_user_role` VALUES (41, 136, 146, '1', '2024-07-16 17:06:00', '1', '2024-07-16 17:06:00', 0, 1); +INSERT INTO `system_user_role` VALUES (42, 136, 145, '1', '2024-08-27 14:45:50', '1', '2024-10-30 13:40:51', 1, 1); +INSERT INTO `system_user_role` VALUES (43, 137, 147, '1', '2024-10-30 13:58:34', '1', '2024-10-30 13:58:34', 0, 1); + +-- ---------------------------- +-- Table structure for system_users +-- ---------------------------- +DROP TABLE IF EXISTS `system_users`; +CREATE TABLE `system_users` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '密码', + `nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户昵称', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `dept_id` bigint(0) NULL DEFAULT NULL COMMENT '部门ID', + `post_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位编号数组', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户邮箱', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '手机号码', + `sex` tinyint(0) NULL DEFAULT 0 COMMENT '用户性别', + `avatar` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '头像地址', + `status` tinyint(0) NOT NULL DEFAULT 0 COMMENT '帐号状态(0正常 1停用)', + `login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime(0) NULL DEFAULT NULL COMMENT '最后登录时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', + `deleted` int(0) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint(0) NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `idx_username`(`username`, `update_time`, `tenant_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 148 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of system_users +-- ---------------------------- +INSERT INTO `system_users` VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '超级管理员', NULL, 101, '[1,2]', 'aoteman@126.com', '18818260277', 2, 'http://oss.yckxt.com/chatgpt/55024e42a819a0e48034d568b33432d695755139bd7bbcd9a40a39182f3bc4e7.png', 0, '192.168.5.38', '2024-12-28 13:47:16', 'admin', '2021-01-05 17:03:47', NULL, '2024-12-28 13:47:16', 0, 1); +INSERT INTO `system_users` VALUES (136, 'kfry', '$2a$04$Vx4nJcYzhp6H5qaTjPICUerREqSX1apLPlJh6wE7Wwbmas0ikmbfG', '开发人员', '', 109, '[]', '1165844402@qq.com', '15016304051', 1, '', 0, '192.168.5.64', '2024-12-07 10:28:08', '1', '2024-07-16 17:05:54', NULL, '2024-12-07 10:28:08', 0, 1); +INSERT INTO `system_users` VALUES (137, 'JeeLowCode', '$2a$04$E/Qf.SZoFk/RMFKG/c1fmuaTXDyEuE3SL2TUWy6q3jAwkomZkXjXK', '演示用户', '', 114, '[]', '', '', 0, '', 0, '192.168.5.64', '2024-12-03 15:07:39', '1', '2024-10-30 13:58:04', NULL, '2024-12-03 15:07:39', 0, 1); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/doc/sql/mysql/db_jeelowcodelog.sql b/doc/sql/mysql/db_jeelowcodelog.sql new file mode 100644 index 0000000..c2ad292 --- /dev/null +++ b/doc/sql/mysql/db_jeelowcodelog.sql @@ -0,0 +1,85 @@ +/* + Navicat Premium Data Transfer + + Source Server : 内网-root + Source Server Type : MySQL + Source Server Version : 80022 + Source Host : 192.168.5.120:3306 + Source Schema : db_jeelowcodelog + + Target Server Type : MySQL + Target Server Version : 80022 + File Encoding : 65001 + + Date: 31/12/2024 13:48:13 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for lowcode_log_api +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_api`; +CREATE TABLE `lowcode_log_api` ( + `id` bigint(0) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求标题', + `model_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块标题', + `request_uri` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `request_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式', + `request_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数', + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `time` bigint(0) NULL DEFAULT NULL COMMENT '执行时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE, + INDEX `ind_time`(`time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请求日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_api +-- ---------------------------- + +-- ---------------------------- +-- Table structure for lowcode_log_api_error +-- ---------------------------- +DROP TABLE IF EXISTS `lowcode_log_api_error`; +CREATE TABLE `lowcode_log_api_error` ( + `id` bigint(0) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `create_user` bigint(0) NULL DEFAULT NULL COMMENT '创建者', + `create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人名称', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_dept` bigint(0) NULL DEFAULT NULL COMMENT '创建部门', + `update_user` bigint(0) NULL DEFAULT NULL COMMENT '更新者', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(0) NULL DEFAULT 0 COMMENT '是否已删除', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求标题', + `model_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块标题', + `request_uri` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `request_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式', + `request_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数', + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `time` bigint(0) NULL DEFAULT NULL COMMENT '执行时间', + `error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误原因', + PRIMARY KEY (`id`) USING BTREE, + INDEX `ind_create_time`(`create_time`) USING BTREE, + INDEX `ind_time`(`time`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请求错误日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of lowcode_log_api_error +-- ---------------------------- + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/doc/sql/mysql/说明.txt b/doc/sql/mysql/说明.txt new file mode 100644 index 0000000..09948af --- /dev/null +++ b/doc/sql/mysql/说明.txt @@ -0,0 +1,2 @@ +db_jeelowcode.sql ->主数据库 +db_jeelowcodelog.sql -> 日志数据库 \ No newline at end of file diff --git a/doc/ui/jeelowcode-ui-admin-vue3/README.md b/doc/ui/jeelowcode-ui-admin-vue3/README.md new file mode 100644 index 0000000..fe633db --- /dev/null +++ b/doc/ui/jeelowcode-ui-admin-vue3/README.md @@ -0,0 +1,5 @@ +基于 Vue3 + element-plus +Avue 实现的管理后台。仓库地址: + +* Gitee: +* GitHub: +* GitCode: \ No newline at end of file diff --git a/jeelowcode-admin/Dockerfile b/jeelowcode-admin/Dockerfile new file mode 100644 index 0000000..8fd9574 --- /dev/null +++ b/jeelowcode-admin/Dockerfile @@ -0,0 +1,23 @@ +## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性 +## 感谢复旦核博士的建议!灰子哥,牛皮! +FROM eclipse-temurin:8-jre + +## 创建目录,并使用它作为工作目录 +RUN mkdir -p /yudao-server +WORKDIR /yudao-server +## 将后端项目的 Jar 文件,复制到镜像中 +COPY ./target/yudao-server.jar app.jar + +## 设置 TZ 时区 +ENV TZ=Asia/Shanghai +## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖 +ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom" + +## 应用参数 +ENV ARGS="" + +## 暴露后端项目的 48080 端口 +EXPOSE 48080 + +## 启动后端项目 +CMD java ${JAVA_OPTS} -jar app.jar $ARGS diff --git a/jeelowcode-admin/pom.xml b/jeelowcode-admin/pom.xml new file mode 100644 index 0000000..95db5da --- /dev/null +++ b/jeelowcode-admin/pom.xml @@ -0,0 +1,80 @@ + + + + com.jeelowcode + jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-admin + jar + + ${project.artifactId} + 低代码启动器 + + + + + + cn.iocoder.boot + yudao-module-system-biz + ${revision} + + + + + cn.iocoder.boot + yudao-module-infra-biz + ${revision} + + + + + cn.iocoder.boot + yudao-module-bpm-biz + ${revision} + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + cn.iocoder.boot + yudao-spring-boot-starter-protection + + + + + com.jeelowcode + jeelowcode-module-biz + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + + diff --git a/jeelowcode-admin/src/main/java/com/jeelowcode/server/JeeLowCodeApplication.java b/jeelowcode-admin/src/main/java/com/jeelowcode/server/JeeLowCodeApplication.java new file mode 100644 index 0000000..17b02bc --- /dev/null +++ b/jeelowcode-admin/src/main/java/com/jeelowcode/server/JeeLowCodeApplication.java @@ -0,0 +1,40 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.server; + + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 项目的启动类 + */ +@MapperScan("${jeelowcode.info.base-package}.**.mapper.**") //低代码平台 +@SuppressWarnings("SpringComponentScan") +@SpringBootApplication(scanBasePackages = { + "${yudao.info.base-package}.server", + "${yudao.info.base-package}.module", + "${jeelowcode.info.base-package}.module", + "${jeelowcode.info.base-package}.core",//核心模块 + "${jeelowcode.info.base-package}.**.spring" +}) +public class JeeLowCodeApplication { + + public static void main(String[] args) { + SpringApplication.run(JeeLowCodeApplication.class, args); + } + +} diff --git a/jeelowcode-admin/src/main/resources/application-local.yaml b/jeelowcode-admin/src/main/resources/application-local.yaml new file mode 100644 index 0000000..7ccc821 --- /dev/null +++ b/jeelowcode-admin/src/main/resources/application-local.yaml @@ -0,0 +1,67 @@ +server: + port: 48080 + +--- #################### 数据库相关配置 #################### +spring: + datasource: + dynamic: # 多数据源配置 + primary: master + datasource: + master: + # MYSQL数据库 + name: db_jeelowcode + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + slave: # 日志库单独 + name: db_jeelowcodelog + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 127.0.0.1 # 地址 + port: 6379 # 端口 + database: 9 # 数据库索引 + # password: 123456 # 密码,建议生产环境开启 + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + captcha: + enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试; + security: + mock-enable: true + permit-all-urls: + - /admin-api/jeelowcode/open/** # 低代码平台,不需要登 + - /admin-api/jeelowcode/demo/** + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + access-log: # 访问日志的配置项 + enable: false + error-code: # 错误码相关配置项 + enable: false + demo: false # 关闭演示模式 + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + +--- #################### 地代码平台相关配置 #################### +jeelowcode: + excludeTableNames: #不允许该类型的表开头 + - lowcode_ + - qrtz_ + - system_ + - act_ + - bpm_ + - flw_ + - infra_ + debug: true #是否开启调试模式 + #AES加解密 key 重新生成AesUtil.genAesKey() + aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm + #JAVA增强生成文件地址 + enhancePath: jeelowcode-module\jeelowcode-module-biz\src\main\java\com\jeelowcode\module\biz\enhance diff --git a/jeelowcode-admin/src/main/resources/application-prod.yaml b/jeelowcode-admin/src/main/resources/application-prod.yaml new file mode 100644 index 0000000..7630dd3 --- /dev/null +++ b/jeelowcode-admin/src/main/resources/application-prod.yaml @@ -0,0 +1,70 @@ +server: + port: 48080 + +--- #################### 数据库相关配置 #################### +spring: + datasource: + dynamic: # 多数据源配置 + primary: master + datasource: + master: + # MYSQL数据库 + name: db_jeelowcode + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + slave: # 日志库单独 + name: db_jeelowcodelog + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 127.0.0.1 # 地址 + port: 6379 # 端口 + database: 9 # 数据库索引 + # password: 123456 # 密码,建议生产环境开启 + +logging: + file: + name: /data/mjkj/webapp/mjkj_jeelowcode/webapp/logs/${spring.application.name}.log # 日志文件名,全路径 +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + captcha: + enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试; + security: + mock-enable: true + permit-all-urls: + - /admin-api/jeelowcode/open/** # 低代码平台,不需要登 + - /admin-api/jeelowcode/demo/** + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + access-log: # 访问日志的配置项 + enable: false + error-code: # 错误码相关配置项 + enable: false + demo: false # 关闭演示模式 + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + +--- #################### 低代码平台相关配置 #################### +jeelowcode: + excludeTableNames: #不允许该类型的表开头 + - lowcode_ + - qrtz_ + - system_ + - act_ + - bpm_ + - flw_ + - infra_ + debug: true #是否开启调试模式 + #AES加解密 key 重新生成AesUtil.genAesKey() + aesKey: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm + #JAVA增强生成文件地址(正式环境没有用到) + enhancePath: '' diff --git a/jeelowcode-admin/src/main/resources/application.yaml b/jeelowcode-admin/src/main/resources/application.yaml new file mode 100644 index 0000000..7928e23 --- /dev/null +++ b/jeelowcode-admin/src/main/resources/application.yaml @@ -0,0 +1,453 @@ +spring: + application: + name: jeelowcode-server + + profiles: + active: local + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + + # Servlet 配置 + servlet: + # 文件上传相关配置项 + multipart: + max-file-size: 16MB # 单个文件大小 + max-request-size: 32MB # 设置总上传的文件大小 + mvc: + pathmatch: + matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类 +# throw-exception-if-no-handler-found: true # 404 错误时抛出异常,方便统一处理 +# static-path-pattern: /static/** # 静态资源路径; 注意:如果不配置,则 throw-exception-if-no-handler-found 不生效!!! TODO 芋艿:不能配置,会导致 swagger 不生效 + + # Jackson 配置项 + jackson: + serialization: + write-dates-as-timestamps: true # 设置 Date 的格式,使用时间戳 + write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401 + write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 + fail-on-empty-beans: false # 允许序列化无属性的 Bean + + # Cache 配置项 + cache: + type: REDIS + redis: + time-to-live: 1h # 设置过期时间为 1 小时 + +--- #################### 接口文档配置 #################### + +springdoc: + api-docs: + enabled: true + path: /v3/api-docs + swagger-ui: + enabled: true + path: /swagger-ui + default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档 + +knife4j: + enable: true + setting: + language: zh_cn + +# 工作流 Flowable 配置 +flowable: + # 1. false: 默认值,Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常 + # 2. true: 启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表 + # 3. create_drop: 启动时自动创建表,关闭时自动删除表 + # 4. drop_create: 启动时,删除旧表,再创建新表 + database-schema-update: true # 设置为 false,可通过 https://github.com/flowable/flowable-sql 初始化 + db-history-used: true # flowable6 默认 true 生成信息表,无需手动设置 + check-process-definitions: false # 设置为 false,禁用 /resources/processes 自动部署 BPMN XML 流程 + history-level: full # full:保存历史数据的最高级别,可保存全部流程相关细节,包括流程流转各节点参数 + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + jdbc-type-for-null: 'null' + global-config: + db-config: + id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 +# id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 +# id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 +# id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + logic-delete-value: 1 # 逻辑已删除值(默认为 1) + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + banner: false # 关闭控制台的 Banner 打印 + type-aliases-package: ${yudao.info.base-package}.module.*.dal.dataobject,${yudao.info.base-package}.module.**.mapper.*Mapper + encryptor: + password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成 + +mybatis-plus-join: + banner: false # 是否打印 mybatis plus join banner,默认true + sub-table-logic: true # 全局启用副表逻辑删除,默认true。关闭后关联查询不会加副表逻辑删除 + ms-cache: true # 拦截器MappedStatement缓存,默认 true + table-alias: t # 表别名(默认 t) + logic-del-type: on # 副表逻辑删除条件的位置,支持 WHERE、ON,默认 ON + +# Spring Data Redis 配置 +spring: + data: + redis: + repositories: + enabled: false # 项目未使用到 Spring Data Redis 的 Repository,所以直接禁用,保证启动速度 + +--- #################### 数据库相关配置 #################### +spring: + mvc: + servlet: + load-on-startup: 10 + # 数据源配置项 + autoconfigure: + exclude: + # - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 + # - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置 + # - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置 + # - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置 + # - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 10 # 初始连接数 + min-idle: 20 # 最小连接池数量 + max-active: 100 # 最大连接池数量 + max-wait: 60000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 7200000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 25200000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + #validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + socket-timeout: 60000 # socket超时时间,单位:毫秒 + connect-timeout: 60000 # 建立数据库连接超时时间,单位:毫秒 + + + +--- #################### 定时任务相关配置 #################### + +# Quartz 配置项,对应 QuartzProperties 配置类 +spring: + quartz: + auto-startup: true # 本地开发环境,尽量不要开启 Job + scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName + job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 + wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true + properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档 + org: + quartz: + # Scheduler 相关配置 + scheduler: + instanceName: schedulerName + instanceId: AUTO # 自动生成 instance ID + # JobStore 相关配置 + jobStore: + # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162 + class: org.springframework.scheduling.quartz.LocalDataSourceJobStore + isClustered: true # 是集群模式 + clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒 + misfireThreshold: 60000 # misfire 阀值,单位:毫秒。 + # 线程池相关配置 + threadPool: + threadCount: 25 # 线程池大小。默认为 10 。 + threadPriority: 5 # 线程优先级 + class: org.quartz.simpl.SimpleThreadPool # 线程池类型 + jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置 + initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。 + +--- #################### 监控相关配置 #################### +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +# Resilience4j 配置项 +resilience4j: + ratelimiter: + instances: + backendA: + limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50 + limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500 + timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s + register-health-indicator: true # 是否注册到健康监测 + +# Actuator 监控端点的配置项 +management: + endpoints: + web: + base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator + exposure: + include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + # Spring Boot Admin Client 客户端的相关配置 + client: + url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址 + instance: + service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] + # Spring Boot Admin Server 服务端的相关配置 + context-path: /admin # 配置 Spring + +# 日志文件配置 +logging: + file: + name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径 + level: + # 配置自己写的 MyBatis Mapper 打印日志 + cn.iocoder.yudao.module.bpm.dal.mysql: debug + cn.iocoder.yudao.module.infra.dal.mysql: debug + cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper: INFO # 配置 JobLogMapper 的日志级别为 info + cn.iocoder.yudao.module.infra.dal.mysql.file.FileConfigMapper: INFO # 配置 FileConfigMapper 的日志级别为 info + cn.iocoder.yudao.module.system.dal.mysql: debug + cn.iocoder.yudao.module.system.dal.mysql.sensitiveword.SensitiveWordMapper: INFO # 配置 SensitiveWordMapper 的日志级别为 info + cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info + cn.iocoder.yudao.module.tool.dal.mysql: debug + cn.iocoder.yudao.module.member.dal.mysql: debug + cn.iocoder.yudao.module.trade.dal.mysql: debug + cn.iocoder.yudao.module.promotion.dal.mysql: debug + cn.iocoder.yudao.module.statistics.dal.mysql: debug + cn.iocoder.yudao.module.crm.dal.mysql: debug + cn.iocoder.yudao.module.erp.dal.mysql: debug + cn.iocoder.yudao.module.jeelowcode.mapper: debug #低代码平台 + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 + com.jeelowcode.core: debug + com.jeelowcode.module: debug + com.jeelowcode.core.framework.mapper.LogApiMapper: ERROR #日志入库不需要打印 + com.jeelowcode.core.framework.mapper.LogApiErrorMapper: ERROR #日志入库不需要打印 + cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper: ERROR #日志入库不需要打印 + +debug: false +--- #################### 验证码相关配置 #################### + +aj: + captcha: + jigsaw: classpath:images/jigsaw # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径 + pic-click: classpath:images/pic-click # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径 + cache-type: redis # 缓存 local/redis... + cache-number: 1000 # local 缓存的阈值,达到这个值,清除缓存 + timing-clear: 180 # local定时清除过期缓存(单位秒),设置为0代表不执行 + type: blockPuzzle # 验证码类型 default两种都实例化。 blockPuzzle 滑块拼图 clickWord 文字点选 + water-mark: JeeLowCode # 右下角水印文字(我的水印),可使用 https://tool.chinaz.com/tools/unicode.aspx 中文转 Unicode,Linux 可能需要转 unicode + interference-options: 0 # 滑动干扰项(0/1/2) + req-frequency-limit-enable: false # 接口请求次数一分钟限制是否开启 true|false + req-get-lock-limit: 5 # 验证失败 5 次,get接口锁定 + req-get-lock-seconds: 10 # 验证失败后,锁定时间间隔 + req-get-minute-limit: 30 # get 接口一分钟内请求数限制 + req-check-minute-limit: 60 # check 接口一分钟内请求数限制 + req-verify-minute-limit: 60 # verify 接口一分钟内请求数限制 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + name-server: 127.0.0.1:9876 # RocketMQ Namesrv + # Producer 配置项 + producer: + group: ${spring.application.name}_PRODUCER # 生产者分组 + +spring: + rabbitmq: + host: 127.0.0.1 # RabbitMQ 服务的地址 + port: 5672 # RabbitMQ 服务的端口 + username: rabbit # RabbitMQ 服务的账号 + password: rabbit # RabbitMQ 服务的密码 + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 + # Kafka Producer 配置项 + producer: + acks: 1 # 0-不应答。1-leader 应答。all-所有 leader 和 follower 应答。 + retries: 3 # 发送失败时,重试发送的次数 + value-serializer: org.springframework.kafka.support.serializer.JsonSerializer # 消息的 value 的序列化 + # Kafka Consumer 配置项 + consumer: + auto-offset-reset: earliest # 设置消费者分组最初的消费进度为 earliest 。可参考博客 https://blog.csdn.net/lishuangzhe7047/article/details/74530417 理解 + value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + properties: + spring.json.trusted.packages: '*' + # Kafka Consumer Listener 监听器配置 + listener: + missing-topics-fatal: false # 消费监听接口监听的主题不存在时,默认会报错。所以通过设置为 false ,解决报错 + +--- #################### 第三方授权登录 #################### +justauth: + enabled: true + type: + DINGTALK: # 钉钉 + client-id: dingvrnreaje3yqvzhxg + client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI + ignore-check-redirect-uri: true + WECHAT_ENTERPRISE: # 企业微信 + client-id: wwd411c69a39ad2e54 + client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw + agent-id: 1000004 + ignore-check-redirect-uri: true + WECHAT_MINI_APP: # 微信小程序 + client-id: ${wx.miniapp.appid} + client-secret: ${wx.miniapp.secret} + ignore-check-redirect-uri: true + ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 + WECHAT_MP: # 微信公众号 + client-id: ${wx.mp.app-id} + client-secret: ${wx.mp.secret} + ignore-check-redirect-uri: true + cache: + type: REDIS + prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 +--- #################### 微信公众号、小程序相关配置 #################### +wx: + mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 + app-id: wx5b23ba7a5589ecbb # 测试号(自己的) + secret: 2a7b3b20c537e52e74afd395eb85f61f + # 存储配置,解决 AccessToken 的跨节点的共享 + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wx # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 + appid: wx63c280fe3248a3e7 # wenhualian的接口测试号 + secret: 6f270509224a7ae1296bbf1c8cb97aed + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 +--- #################### 芋道相关配置 #################### + +yudao: + info: + version: 1.0.0 + base-package: cn.iocoder.yudao + web: + admin-ui: + url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址 + security: + permit-all_urls: + - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,不需要登录 + websocket: + enable: true # websocket的开关 + path: /infra/ws # 路径 + sender-type: local # 消息发送的类型,可选值为 local、redis、rocketmq、kafka、rabbitmq + sender-rocketmq: + topic: ${spring.application.name}-websocket # 消息发送的 RocketMQ Topic + consumer-group: ${spring.application.name}-websocket-consumer # 消息发送的 RocketMQ Consumer Group + sender-rabbitmq: + exchange: ${spring.application.name}-websocket-exchange # 消息发送的 RabbitMQ Exchange + queue: ${spring.application.name}-websocket-queue # 消息发送的 RabbitMQ Queue + sender-kafka: + topic: ${spring.application.name}-websocket # 消息发送的 Kafka Topic + consumer-group: ${spring.application.name}-websocket-consumer # 消息发送的 Kafka Consumer Group + swagger: + title: JeeLowCode低代码开发平台 + description: 提供管理后台、用户 App 的所有功能 + version: ${yudao.info.version} + url: ${yudao.web.admin-ui.url} + captcha: + enable: true # 验证码的开关,默认为 true + codegen: + base-package: ${yudao.info.base-package} + db-schemas: ${spring.datasource.dynamic.datasource.master.name} + front-type: 10 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类 + error-code: # 错误码相关配置项 + constants-class-list: + - cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants + - cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants + - cn.iocoder.yudao.module.member.enums.ErrorCodeConstants + - cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants + - cn.iocoder.yudao.module.system.enums.ErrorCodeConstants + - cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants + tenant: # 多租户相关配置项 + enable: true + ignore-urls: + - /admin-api/system/tenant/get-id-by-name # 基于名字获取租户,不许带租户编号 + - /admin-api/system/tenant/get-by-website # 基于域名获取租户,不许带租户编号 + - /admin-api/system/captcha/get # 获取图片验证码,和租户无关 + - /admin-api/system/captcha/check # 校验图片验证码,和租户无关 + - /admin-api/infra/file/*/get/** # 获取图片,和租户无关 + - /admin-api/system/sms/callback/* # 短信回调接口,无法带上租户编号 + - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,无法携带租户编号 + - /admin-api/jeelowcode/** # 低代码平台的全部放开,有自己的一套租户 规则 + ignore-tables: + - DUAL + - dual + - ALL_TABLES + - all_tables + - ALL_INDEXES + - all_indexes + - system_tenant + - system_tenant_package + - system_dict_data + - system_dict_type + - system_error_code + - system_menu + - system_sms_channel + - system_sms_template + - system_sms_log + - system_sensitive_word + - system_oauth2_client + - system_mail_account + - system_mail_template + - system_mail_log + - system_notify_template + - system_notify_message + - infra_codegen_column + - infra_codegen_table + - infra_test_demo + - infra_config + - infra_file_config + - infra_file + - infra_file_content + - infra_job + - infra_job_log + - infra_job_log + - infra_data_source_config + - rep_demo_dxtj + - rep_demo_employee + - rep_demo_gongsi + - rep_demo_jianpiao + - tmp_report_data_1 + - tmp_report_data_income + - 'lowcode_config' #低代码开头的不要多租户 + - 'lowcode_dbform*' #低代码开头的不要多租户 + - 'lowcode_desform*' #低代码开头的不要多租户 + - 'lowcode_report*' #低代码开头的不要多租户 + - 'lowcode_log_*' #低代码开头的不要多租户 + - '*_seq' #oracle自增主键等 + - information_schema + sms-code: # 短信验证码相关的配置项 + expire-times: 10m + send-frequency: 1m + send-maximum-quantity-per-day: 10 + begin-code: 9999 # 这里配置 9999 的原因是,测试方便。 + end-code: 9999 # 这里配置 9999 的原因是,测试方便。 + +debug: false + + +# -------------------jeeLowCode 低代码平台-------------------------- +jeelowcode: + info: + version: 1.0.0 + base-package: com.jeelowcode \ No newline at end of file diff --git a/jeelowcode-admin/src/main/resources/logback-spring.xml b/jeelowcode-admin/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..b1b9f3f --- /dev/null +++ b/jeelowcode-admin/src/main/resources/logback-spring.xml @@ -0,0 +1,76 @@ + + + + + + + + + +       + + + ${PATTERN_DEFAULT} + + + + + + + + + + ${PATTERN_DEFAULT} + + + + ${LOG_FILE} + + + ${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz} + + ${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false} + + ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB} + + ${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0} + + ${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30} + + + + + + 0 + + 256 + + + + + + + + ${PATTERN_DEFAULT} + + + + + + + + + + + + + + + + + + + + + + diff --git a/jeelowcode-core/pom.xml b/jeelowcode-core/pom.xml new file mode 100644 index 0000000..fffd31d --- /dev/null +++ b/jeelowcode-core/pom.xml @@ -0,0 +1,87 @@ + + 4.0.0 + + com.jeelowcode + jeelowcode + ${revision} + + + com.jeelowcode + jeelowcode-core + jar + ${project.artifactId} + ${jeelowcode.version} + JeeLowCode低代码核心代码 + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + + + com.jeelowcode + jeelowcode-excel + + + com.jeelowcode + jeelowcode-exception + + + com.jeelowcode + jeelowcode-plus + + + com.jeelowcode + jeelowcode-tenant + + + com.jeelowcode + jeelowcode-utils + + + com.jeelowcode + jeelowcode-global + + + org.codehaus.groovy + groovy + + + com.alibaba + QLExpress + + + com.oracle.database.jdbc + ojdbc8 + + + + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/adapter/YudaoAdapter.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/adapter/YudaoAdapter.java new file mode 100644 index 0000000..2d8f069 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/adapter/YudaoAdapter.java @@ -0,0 +1,491 @@ +/* Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + 本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + + 开源协议中文释意如下: + 1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 + 2.允许基于本平台软件开展业务系统开发。 + 3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + + 最终解释权归:http://www.jeelowcode.com*/ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.adapter; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.config.TenantProperties; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jeelowcode.core.framework.mapper.AdapterMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.enums.DefaultDbFieldEnum; +import com.jeelowcode.framework.utils.model.*; +import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeDictParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeUserParam; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.jeelowcode.core.framework.service.IFrameSqlService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +/** + * 芋道源码适配器 + */ +@Service +@Slf4j +public class YudaoAdapter implements IJeeLowCodeAdapter { + + @Autowired + private IFrameSqlService sqlService; + + @Autowired + private TenantProperties tenantProperties; + + @Autowired + private AdapterMapper adapterMapper; + + //获取当前在线人id + @Override + public String getOnlineUserId() { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + return FuncBase.toStr(loginUserId); + } + + //获取当前在线人账号 + @Override + public String getOnlineUserName() { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + String userName = adapterMapper.getUserName(loginUserId); + return userName; + } + + @Override + public String getOnlineUserNickName() { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + return adapterMapper.getNickname(loginUserId); + } + + @Override + public String getOnlineUserDeptId() { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + Long deptId = adapterMapper.getDeptId(loginUserId); + return Func.toStr(deptId); + } + + //获取当前在线人id + @Override + public String getTenantId() { + //当前线程 + Long tenantId = TenantContextHolder.getTenantId(); + if (Func.isNotEmpty(tenantId) && tenantId > 0) { + return FuncBase.toStr(tenantId); + } + //当前线程没有租户信息,则从登录用户获取 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (FuncBase.isNotEmpty(loginUser)) { + tenantId = loginUser.getTenantId(); + return FuncBase.toStr(tenantId); + } + return "-1"; + } + + //获取部门id + @Override + public Long getDeptId(Long userId){ + Long deptId = adapterMapper.getDeptId(userId); + return deptId; + } + + //判断请求是否排除多租户 + @Override + public boolean getTenantIsIgnore() { + HttpServletRequest request = FuncWeb.getRequest(); + if (!Func.isJeeLowCodeUrl(request)) {//低代码平台有自己一套租户逻辑 + return false; + } + + boolean ignore = TenantContextHolder.isIgnore(); + return ignore; + } + + //获取所有租户列表 + @Override + public List getTenantList() { + List selectList = new ArrayList<>(); + selectList.add("id"); + selectList.add("name"); + + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName("system_tenant") + .select(selectList, true) + .setWhere(where -> { + where.eq("deleted", 0); + where.eq("status", 0); + }).build(); + List> tenantList = sqlService.getDataListByPlus(wrapper); + + return tenantList.stream() + .map(tenantMap -> { + String id = JeeLowCodeUtils.getMap2Str(tenantMap, "id"); + String name = JeeLowCodeUtils.getMap2Str(tenantMap, "name"); + JeeLowTenant jeeLowTenant = new JeeLowTenant(); + jeeLowTenant.setTenantId(id); + jeeLowTenant.setTenantName(name); + return jeeLowTenant; + }) + .collect(Collectors.toList()); + } + + //获取字典列表 + @Override + public List getDictList(JeeLowCodeDictParam param) { + List resultList = new ArrayList<>(); + List dictCodeList = param.getDictCodeList(); + Map paramMap = FuncBase.isEmpty(param.getParamMap()) ? new HashMap<>() : param.getParamMap(); + + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName("system_dict_type") + .setWhere(where -> { + where.eq("deleted", 0); + where.eq("status", 0); + where.in("type", dictCodeList); + }).build(); + List> typeList = sqlService.getDataListByPlus(wrapper); + + typeList.stream() + .map(typeMap -> { + String code = JeeLowCodeUtils.getMap2Str(typeMap, "type"); + JeeLowCodeDictParam.DictCodeDataParam dictCodeDataParam = paramMap.get(code); + + List dictDataLabelList = FuncBase.isNotEmpty(dictCodeDataParam) ? dictCodeDataParam.getDictDataLabelList() : Collections.emptyList(); + List dictDataValueList = FuncBase.isNotEmpty(dictCodeDataParam) ? dictCodeDataParam.getDictDataValueList() : Collections.emptyList(); + + SqlInfoQueryWrapper.Wrapper wrapperData = SqlHelper.getQueryWrapper() + .setTableName("system_dict_data") + .select("value", "label") + .setWhere(where -> { + where.eq("deleted", 0); + where.eq("status", 0); + where.eq("dict_type", code); + where.in("label", dictDataLabelList); + where.in("value", dictDataValueList); + }) + .orderByAsc("sort") + .build(); + List> dataList = sqlService.getDataListByPlus(wrapperData); + + List list = dataList.stream() + .map(tmpMap -> { + String value = JeeLowCodeUtils.getMap2Str(tmpMap, "value"); + String label = JeeLowCodeUtils.getMap2Str(tmpMap, "label"); + + JeeLowCodeDict.DictData data = new JeeLowCodeDict.DictData(); + data.setLabel(label); + data.setVal(value); + return data; + }) + .collect(Collectors.toList()); + + JeeLowCodeDict dict = new JeeLowCodeDict(); + dict.setDataList(list); + dict.setDictCode(code); + return dict; + }) + .forEach(resultList::add); + + return resultList; + } + + //获取部门列表 + @Override + public List getDeptList(JeeLowCodeDeptParam param) { + + String deptName = param.getDeptName();//部门名称搜索 + String type = Func.isEmpty(param.getType()) ? "all" : param.getType(); + List deptIdList = new ArrayList<>();//部门id列表,为空则查所有 + if (Func.equals(type, "now")) {//本级 + String onlineUserDeptId = this.getOnlineUserDeptId(); + deptIdList.add(Func.toLong(onlineUserDeptId)); + } else if (Func.equals(type, "sub")) {//本级以及下级 + String onlineUserDeptId = this.getOnlineUserDeptId(); + deptIdList = this.getChildDeptIdList(Func.toLong(onlineUserDeptId)); + } + + List finalDeptIdList = deptIdList; + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .select("id", "parent_id", "name") + .setTableName("system_dept") + .setWhere(where -> { + where.in(Func.isNotEmpty(finalDeptIdList), "id", finalDeptIdList); + where.like(FuncBase.isNotEmpty(deptName), "name", deptName); + where.eq("deleted", 0); + }) + .orderByAsc("sort") + .build(); + List> deptList = sqlService.getDataListByPlus(wrapper); + + List resultList = deptList.stream() + .map(deptMap -> { + String id = JeeLowCodeUtils.getMap2Str(deptMap, "id"); + String pid = JeeLowCodeUtils.getMap2Str(deptMap, "parent_id"); + String name = JeeLowCodeUtils.getMap2Str(deptMap, "name"); + + JeeLowCodeDept dept = new JeeLowCodeDept(); + dept.setDeptId(id); + dept.setDeptPid(pid); + dept.setDeptName(name); + return dept; + }) + .collect(Collectors.toList()); + return resultList; + } + + //获取所有角色列表 + @Override + public List getRoleList() { + Long tenantId = TenantContextHolder.getTenantId(); + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .select("id", "name") + .setTableName("system_role") + .setWhere(where -> { + where.in("deleted", 0); + where.eq("tenant_id", tenantId); + }) + .orderByAsc("sort") + .build(); + List> roleList = sqlService.getDataListByPlus(wrapper); + + List resultList = roleList.stream() + .map(roleMap -> { + String id = JeeLowCodeUtils.getMap2Str(roleMap, "id"); + String name = JeeLowCodeUtils.getMap2Str(roleMap, "name"); + + JeeLowCodeRole role = new JeeLowCodeRole(); + role.setRoleId(id); + role.setRoleName(name); + return role; + }) + .collect(Collectors.toList()); + return resultList; + } + + //回显用户 + @Override + public List> getUserViewList(List userIdList) { + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .select("id", "nickname") + .setTableName("system_users") + .setWhere(where -> { + where.in("id", userIdList); + }) + .build(); + List> dataList = sqlService.getDataListByPlus(wrapper); + return dataList; + } + + //回显部门 + @Override + public List> getDeptViewList(List deptIdList) { + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .select("id", "name") + .setTableName("system_dept") + .setWhere(where -> { + where.in("id", deptIdList); + }) + .build(); + List> dataList = sqlService.getDataListByPlus(wrapper); + return dataList; + } + + + //获取用户分页列表 + @Override + public Object getUserPage(Integer pageNo, Integer pageSize, JeeLowCodeUserParam param) { + Page page = FuncWeb.getPage(pageNo, pageSize); + Long deptId = param.getDeptId(); + Long roleId = param.getRoleId(); + String type = param.getType();//all now sub + + String nickName = param.getNickName(); + String mobile = param.getMobile(); + List fieldList = param.getFieldList(); + + List deptIdList = new ArrayList<>();//部门id列表 + if (Func.isEmpty(deptId)) {//部门为空的时候,type才生效 + if (Func.equals(type, "now")) {//本级 + String onlineUserDeptId = this.getOnlineUserDeptId(); + deptIdList.add(Func.toLong(onlineUserDeptId)); + } else if (Func.equals(type, "sub")) {//本级以及下级 + String onlineUserDeptId = this.getOnlineUserDeptId(); + deptIdList = this.getChildDeptIdList(Func.toLong(onlineUserDeptId)); + } + } else {//指定部门 + deptIdList.add(deptId); + } + + + Map params = new HashMap<>(); + params.put("nickName", nickName); + params.put("mobile", mobile); + + IPage pages = null; + if (Func.isNotEmpty(roleId)) {//说明有选择了角色 + pages = adapterMapper.getUserPageByRoleId(getTenantId(),page, roleId, deptIdList, params); + } else { + pages = adapterMapper.getUserPageByDeptId(getTenantId(),page, deptIdList, params); + } + if (Func.isEmpty(fieldList)) {//查所有 + return pages; + } + + //存在自定义列 + Map> fieldSetters = new HashMap<>(); + fieldSetters.put("userId", user -> user.setUserId(null)); + fieldSetters.put("nickName", user -> user.setNickName(null)); + fieldSetters.put("mobile", user -> user.setMobile(null)); + fieldSetters.put("email", user -> user.setEmail(null)); + fieldSetters.put("sex", user -> user.setSex(null)); + fieldSetters.put("post", user -> user.setPost(null)); + fieldSetters.put("avatar", user -> user.setAvatar(null)); + fieldSetters.put("deptName", user -> user.setDeptName(null)); + // 为其他字段添加更多的条目 + + List records = pages.getRecords(); + records.stream().peek(user -> fieldSetters.forEach((fieldName, setter) -> { + if (!fieldList.contains(fieldName)) { + setter.accept(user); + } + })) + .collect(Collectors.toList()); + return pages; + } + + + //初始化-新增数据默认项 + @Override + public void initSaveDefaultData(Map map) { + //默认值由系统赋值,不做修改 + map.remove(DefaultDbFieldEnum.CREATE_USER.getFieldCode()); + map.remove(DefaultDbFieldEnum.CREATE_TIME.getFieldCode()); + map.remove(DefaultDbFieldEnum.CREATE_DEPT.getFieldCode()); + map.remove(DefaultDbFieldEnum.IS_DELETED.getFieldCode()); + map.remove(DefaultDbFieldEnum.TENANT_ID.getFieldCode()); + map.remove(DefaultDbFieldEnum.UPDATE_USER.getFieldCode()); + map.remove(DefaultDbFieldEnum.UPDATE_TIME.getFieldCode()); + + DateTime now = DateUtil.date(); + + if (FuncBase.isEmpty(map.get(DefaultDbFieldEnum.ID.getFieldCode()))) { + map.put(DefaultDbFieldEnum.ID.getFieldCode(), IdWorker.getId()); + } + + map.put(DefaultDbFieldEnum.CREATE_USER.getFieldCode(), Func.toLong(this.getOnlineUserId())); + map.put(DefaultDbFieldEnum.CREATE_TIME.getFieldCode(), now); + map.put(DefaultDbFieldEnum.CREATE_DEPT.getFieldCode(), Func.toLong(this.getOnlineUserDeptId())); + map.put(DefaultDbFieldEnum.IS_DELETED.getFieldCode(), 0); + map.put(DefaultDbFieldEnum.TENANT_ID.getFieldCode(), Func.toLong(this.getTenantId())); + } + + //初始化-修改数据默认项 + @Override + public void initUpdateDefaultData(Map map) { + //默认值由系统赋值,不做修改 + map.remove(DefaultDbFieldEnum.CREATE_USER.getFieldCode()); + map.remove(DefaultDbFieldEnum.CREATE_TIME.getFieldCode()); + map.remove(DefaultDbFieldEnum.CREATE_DEPT.getFieldCode()); + map.remove(DefaultDbFieldEnum.IS_DELETED.getFieldCode()); + map.remove(DefaultDbFieldEnum.TENANT_ID.getFieldCode()); + map.remove(DefaultDbFieldEnum.UPDATE_USER.getFieldCode()); + map.remove(DefaultDbFieldEnum.UPDATE_TIME.getFieldCode()); + + DateTime now = DateUtil.date(); + map.put(DefaultDbFieldEnum.UPDATE_USER.getFieldCode(), Func.toLong(this.getOnlineUserId())); + map.put(DefaultDbFieldEnum.UPDATE_TIME.getFieldCode(), now); + + } + + //获取所有不用租户的表 + @Override + public Set getTenantIgnoreTable() { + return tenantProperties.getIgnoreTables(); + } + + @Override + public Set getTenantIgnoreUrl() { + return tenantProperties.getIgnoreUrls().stream() + .filter(url -> !url.contains("jeelowcode")) + .collect(Collectors.toCollection(HashSet::new)); + } + + //判断多租户是否启用 + @Override + public boolean getTenantEnable() { + return tenantProperties.getEnable(); + } + + //获取所有子部门 + private List getChildDeptIdList(Long id) { + List children = new LinkedList<>();//子集 + children.add(id); + // 遍历每一层 + List parentIdList = new ArrayList<>(); + parentIdList.add(id); + + for (int i = 0; i < Short.MAX_VALUE; i++) { // 使用 Short.MAX_VALUE 避免 bug 场景下,存在死循环 + + List finalParentIdList = parentIdList; + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .select("id") + .setTableName("system_dept") + .setWhere(where -> { + where.eq("deleted", 0); + where.in("parent_id", finalParentIdList); + }) + .build(); + List> deptList = sqlService.getDataListByPlus(wrapper); + + // 1. 如果没有子部门,则结束遍历 + if (Func.isEmpty(deptList)) { + break; + } + + List tmpIdList = deptList.stream() + .map(deptMap -> Func.getMap2Long(deptMap, "id")) + .filter(Objects::nonNull) + .collect(Collectors.toCollection(ArrayList::new)); + + children.addAll(tmpIdList);//存入到总集合里面 + parentIdList = tmpIdList;//进行下一轮 + } + return children; + } +} \ No newline at end of file diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnoaionAspectjSQL.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnoaionAspectjSQL.java new file mode 100644 index 0000000..bf5d0fc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnoaionAspectjSQL.java @@ -0,0 +1,665 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhance.model.BuildSqlEnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper; +import com.jeelowcode.core.framework.mapper.JeeLowCodeSqlMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.enums.ParamEnum; +import com.jeelowcode.framework.utils.enums.QueryModelEnum; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.collections4.CollectionUtils; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.LocalVariableTableParameterNameDiscoverer; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA.EXPRESSION; +import static com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA.aspectMethodNameMap; +import static com.jeelowcode.framework.utils.constant.EnhanceConstant.*; + +/** + * @author JX + * @create 2024-08-19 13:46 + * @dedescription: + */ +@Aspect +@Component +public class JeeLowCodeAnnoaionAspectjSQL { + + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + @Autowired + private JeeLowCodeSqlMapper sqlMapper; + + @Autowired + private JeeLowCodeMapper jeeLowCodeMapper; + + private static Map> sqlPlugins = new HashMap<>(); + + + @AfterReturning(value = EXPRESSION, returning = "returnVal") + public Object afterReturingAdvice(JoinPoint joinPoint, Object returnVal){ + BuildSqlEnhanceContext contextAndPlugins = getContextAndPlugins(joinPoint, returnVal); + if (FuncBase.isEmpty(contextAndPlugins)){ + return returnVal; + } + EnhanceContext context = contextAndPlugins.getContext(); + //判断结果类型 + ExecuteEnhanceModel formModel =null; //表单类 + ResultDataModel listModel =null; //查询类 + + Boolean resultFlag = false; + if(Func.isNotEmpty(returnVal) && returnVal instanceof ExecuteEnhanceModel){//表单类 + formModel = (ExecuteEnhanceModel) returnVal; + resultFlag = true; + } + if(Func.isNotEmpty(returnVal) && returnVal instanceof ResultDataModel){//列表类 + listModel = (ResultDataModel) returnVal; + } + + //把结果放到上下文中再执行插件 + if(resultFlag){ + String id = formModel.getId(); + context.getResult().setId(id); + context.getResult().setExitFlag(formModel.isExitFlag()); + }else { + context.getResult().setRecords(listModel.getRecords()); + context.getResult().setTotal(listModel.getTotal()); + context.getResult().setExitFlag(listModel.isExitFlag()); + } + + //集合操作的插件 + List setOperations = contextAndPlugins.getSetOperations(); + if(CollectionUtils.isNotEmpty(setOperations)){ + //执行 + executeEnhanceSetOperation(context,setOperations); + listModel.setTotal(context.getResult().getTotal()); + listModel.setRecords(context.getResult().getRecords()); + } + + //所有sql增强 + List enhanceSqlEntityList = contextAndPlugins.getEntitys(); + + for (EnhanceSqlEntity enhanceSqlEntity : enhanceSqlEntityList) { + if (setOperations.contains(enhanceSqlEntity)){ + continue; + } + this.executSQLPlugin(context,enhanceSqlEntity); + if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()){ + listModel.setTotal(context.getResult().getTotal()); + listModel.setRecords(context.getResult().getRecords()); + return listModel; + } + + } + + return returnVal; + } + + public BuildSqlEnhanceContext getContextAndPlugins(JoinPoint joinPoint,Object returnVal){ + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + // 获取方法名称 + String methodName = methodSignature.getName(); + if (!aspectMethodNameMap.containsKey(methodName)) {//不在拦截范围内 add + return null; + } + Object[] args = joinPoint.getArgs(); + LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer(); + String[] parameterNames = discoverer.getParameterNames(methodSignature.getMethod()); + Map paramMap = new HashMap<>(); + for (int i = 0; i < parameterNames.length; i++) { + paramMap.put(parameterNames[i], args[i]); + } + + Long dbFormId = (Long) paramMap.getOrDefault("dbFormId", null); + Long dataId = (Long)paramMap.getOrDefault("dataId",null); + Page page = (Page)paramMap.getOrDefault("page", null); + List dataIdList =(List)paramMap.getOrDefault("dataIdList",null); + String buttonCode = aspectMethodNameMap.get(methodName); + String key = dbFormId + "_" + buttonCode; + List allPlugins = sqlPlugins.getOrDefault(key, null); + if (Func.isEmpty(allPlugins)) { + return null; + } + List setOperation = new ArrayList<>(); + if (FuncBase.isNotEmpty(allPlugins)) { + setOperation = allPlugins.stream() + .filter(enhanceSqlEntity -> (FuncBase.equals(enhanceSqlEntity.getButtonCode(), ENHANCE_LIST) || + FuncBase.equals(enhanceSqlEntity.getButtonCode(), ENHANCE_EXPORT))) + .collect(Collectors.toList()); + if (setOperation.size() < 2) { + //如果只有一条,则直接执行,不用走集合操作 + setOperation.clear(); + } + } + List> dataList = new ArrayList<>(); + if(returnVal instanceof ResultDataModel){ + dataList = ((ResultDataModel) returnVal).getRecords(); + } + EnhanceContext context = new EnhanceContext(); + Map params = JeeLowCodeUtils.getMap2Map(paramMap, "params"); + context.setParam(dbFormId, params, dataList, dataId, page, dataIdList); + context.setResult(new EnhanceResult()); + return new BuildSqlEnhanceContext(context, allPlugins,setOperation); + } + + public static void initSqlPlugins(Map> initSQLPlugins) { + sqlPlugins = initSQLPlugins; + } + + public void executSQLPlugin(EnhanceContext context, EnhanceSqlEntity enhanceSqlEntity) { + + switch (enhanceSqlEntity.getButtonCode()){ + case ENHANCE_ADD: + //新增 + this.executeEnhanceAfterAdd(context, enhanceSqlEntity); + break; + case ENHANCE_DELETE: + //删除 + this.executeEnhanceAfterDelete(context, enhanceSqlEntity); + break; + case ENHANCE_EDIT: + //编辑 + this.executeEnhanceAfterEdit(context, enhanceSqlEntity); + break; + case ENHANCE_DETAIL: + //详情 + this.executeEnhanceAfterDetail(context, enhanceSqlEntity); + break; + case ENHANCE_IMPORT: + //导入 + this.executeEnhanceAfterImport(context, enhanceSqlEntity); + break; + case ENHANCE_LIST: + //列表 + this.executeEnhanceAfterList(context, enhanceSqlEntity); + break; + case ENHANCE_PAGE: + //分页 + this.executeEnhanceAfterPage(context, enhanceSqlEntity); + break; + case ENHANCE_EXPORT: + //导出 + this.executeEnhanceAfterExport(context, enhanceSqlEntity); + break; + } + } + //新增 + public void executeEnhanceAfterAdd(EnhanceContext context,EnhanceSqlEntity sqlEntity) { + Long dbFormId = context.getParam().getDbFormId(); + Map paramMap = context.getParam().getParams(); + if(FuncBase.isNotEmpty(context.getParam().getDataId())){//把id放入到参数 + paramMap.put("id",context.getParam().getDataId()); + } + + this.executeSql(sqlEntity.getExecuteSql(), paramMap); + + } + //删除 + public void executeEnhanceAfterDelete(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + List dataIdList = context.getParam().getDataIdList(); + + + String executeSql = sqlEntity.getExecuteSql(); + if(FuncBase.isEmpty(executeSql)){ + return ; + } + //因为是批量删除的,需要拆分出来 + for(Long dataId:dataIdList){ + Map dataMap =new HashMap<>(); + dataMap.put("id",dataId); + + //执行sql + this.executeSql(executeSql,dataMap); + } + + + } + + //编辑 + public void executeEnhanceAfterEdit(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + Long dataId = context.getParam().getDataId(); + Map paramMap = context.getParam().getParams(); + + paramMap.put("id", dataId);//把id放到json里面传递 + + this.executeSql(sqlEntity.getExecuteSql(),paramMap); + + } + + //详情 + public void executeEnhanceAfterDetail(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + + Long dbFormId = context.getParam().getDbFormId(); + Long id = (Long) context.getParam().getDataId(); + Map params = context.getParam().getParams(); + params.put("id",id);//把id放入参数集 + + String autoWhereSql = this.getAutoWhereSql(dbFormId, params); + + String executeSql = sqlEntity.getExecuteSql(); + List> dataMapList = this.executeSelectListSql(executeSql, params, autoWhereSql); + context.setResult( ResultDataModel.fomatList(dataMapList)); + + } + + //导入 + public void executeEnhanceAfterImport(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + + Map paramMap = context.getParam().getParams(); + + this.executeSql(sqlEntity.getExecuteSql(),paramMap); + } + + //列表 + public void executeEnhanceAfterList(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + Long dbFormId = context.getParam().getDbFormId(); + Map params = context.getParam().getParams(); + String executeSql = sqlEntity.getExecuteSql(); + + String autoWhereSql = this.getAutoWhereSql(dbFormId, params); + List> dataMapList = this.executeSelectListSql(executeSql, params, autoWhereSql); + context.getResult().setRecords(dataMapList); + context.getResult().setExitFlag(true); + } + + // 分页 + public void executeEnhanceAfterPage(EnhanceContext context,EnhanceSqlEntity sqlEntity){ + Long dbFormId = context.getParam().getDbFormId(); + Map params = context.getParam().getParams(); + Integer pageNo = JeeLowCodeUtils.getMap2Integer(params, "pageNo"); + Integer pageSize = JeeLowCodeUtils.getMap2Integer(params, "pageSize"); + Page page = FuncWeb.getPage(pageNo, pageSize); + String executeSql = sqlEntity.getExecuteSql(); + String autoWhereSql = this.getAutoWhereSql(dbFormId, params); + IPage> pages = this.executeSelectPageSql(executeSql, params, autoWhereSql, page); + FuncWeb.setPageResult(context, pages); + } + + //导出 + public void executeEnhanceAfterExport(EnhanceContext context, EnhanceSqlEntity sqlEntity){ + Long dbFormId = context.getParam().getDbFormId(); + Map params = context.getParam().getParams(); + String executeSql = sqlEntity.getExecuteSql(); + + String autoWhereSql = this.getAutoWhereSql(dbFormId, params); + List> dataMapList = this.executeSelectListSql(executeSql, params, autoWhereSql); + context.getResult().setRecords(dataMapList); + context.getResult().setExitFlag(true); + } + + //执行集合操作 + public void executeEnhanceSetOperation(EnhanceContext context,List sqlEntitys){ + sqlEntitys.sort(Comparator.comparing(EnhanceSqlEntity::getSort,Comparator.nullsLast(Integer::compareTo))); + for (int i = 0; i < sqlEntitys.size()-1; i++) { + EnhanceSqlEntity leftEntity = null; + EnhanceSqlEntity rightEntity = null; + if (i == 0) { + leftEntity = sqlEntitys.get(i); + rightEntity = sqlEntitys.get(i + 1); + } else { + rightEntity = sqlEntitys.get(i + 1); + } + switch (rightEntity.getListResultHandleType()) { + case "1": + //执行合集操作 + executSetOperationOr(leftEntity, rightEntity, context); + break; + case "2": + //执行差集操作 + executSetOperationDiffer(leftEntity, rightEntity, context); + break; + case "3": + //执行并集操作 + executSetOperationUnion(leftEntity, rightEntity, context); + break; + case "4": + //执行交集操作 + executSetOperationInterSerction(leftEntity, rightEntity, context); + break; + default: + case "0": + //执行串行操作 + executSetOperationAnd(leftEntity, rightEntity, context); + break; + } + + } + + } + + + //执行合集操作 + private void executSetOperationOr(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context) { + List> leftRecords ; + if(FuncBase.isNotEmpty(leftEntity)){ + EnhanceContext leftContext = context.clone(); + executSQLPlugin(leftContext, leftEntity); + leftRecords = leftContext.getResult().getRecords(); + }else { + leftRecords = context.getResult().getRecords(); + } + EnhanceContext rightContext = context.clone(); + executSQLPlugin(rightContext, rightEntity); + List> rightRecords = rightContext.getResult().getRecords(); + CollectionUtils.addAll(leftRecords,rightRecords); + context.getResult().setRecords(leftRecords); + + } + + private void executSetOperationDiffer(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){ + List> differ; + List> leftRecords ; + if(FuncBase.isNotEmpty(leftEntity)){ + EnhanceContext leftContext = context.clone(); + executSQLPlugin(leftContext, leftEntity); + leftRecords = leftContext.getResult().getRecords(); + }else { + leftRecords = context.getResult().getRecords(); + } + EnhanceContext rightContext = context.clone(); + executSQLPlugin(rightContext, rightEntity); + List> rightRecords = rightContext.getResult().getRecords(); + differ = (List>) CollectionUtils.subtract(leftRecords, rightRecords); + context.getResult().setRecords(differ); + + + + }; + //并集 + public void executSetOperationUnion(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){ + List> union; + List> leftRecords ; + if(FuncBase.isNotEmpty(leftEntity)){ + EnhanceContext leftContext = context.clone(); + executSQLPlugin(leftContext, leftEntity); + leftRecords = leftContext.getResult().getRecords(); + }else { + leftRecords = context.getResult().getRecords(); + } + EnhanceContext rightContext = context.clone(); + executSQLPlugin(rightContext, rightEntity); + List> rightRecords = rightContext.getResult().getRecords(); + union = (List>) CollectionUtils.union(leftRecords, rightRecords); + context.getResult().setRecords(union); + } + + //交集 + public void executSetOperationInterSerction(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){ + List> intersection; + List> leftRecords ; + if(FuncBase.isNotEmpty(leftEntity)){ + EnhanceContext leftContext = context.clone(); + executSQLPlugin(leftContext, leftEntity); + leftRecords = leftContext.getResult().getRecords(); + }else { + leftRecords = context.getResult().getRecords(); + } + EnhanceContext rightContext = context.clone(); + executSQLPlugin(rightContext, rightEntity); + List> rightRecords = rightContext.getResult().getRecords(); + intersection = (List>) CollectionUtils.intersection(leftRecords, rightRecords); + context.getResult().setRecords(intersection); + } + + //串行 + public void executSetOperationAnd(EnhanceSqlEntity leftEntity, EnhanceSqlEntity rightEntity, EnhanceContext context){ + executSQLPlugin(context, leftEntity); + executSQLPlugin(context, rightEntity); + } + + /** + * 获取自动构建where的语句 + * @param dbFormId + * @return + */ + public String getAutoWhereSql(Long dbFormId, Map params){ + SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper(); + + List> whereFieldMapList = jeeLowCodeMapper.getDbWhereFieldList(dbFormId); + + //没有搜索条件 + if (FuncBase.isEmpty(whereFieldMapList)) { + SqlFormatModel sqlFormatModel = queryWrapper.buildSql(); + String whereSql = sqlFormatModel.getSql(); + Map paramMap = sqlFormatModel.getDataMap(); + if(Func.isNotEmpty(paramMap)){ + params.putAll(paramMap); + } + whereSql=whereSql.substring(6);//因为是where开头要去掉 + return whereSql; + } + + //如果是多选的时候,要做特殊处理,因为多选的时候 ,数据库存储的是 11,22,33 + String moreSelectFieldListStr = (String)params.get(ParamEnum.MORE_SELECT_FIELD.getCode()); + List moreSelectFieldList=null; + if(FuncBase.isNotEmpty(moreSelectFieldListStr)){ + moreSelectFieldList = FuncBase.toStrList(moreSelectFieldListStr); + } + + for (Map whereFieldMap : whereFieldMapList) { + String field_code = whereFieldMap.get("field_code");//字段 + String field_type = whereFieldMap.get("field_type");//类型 + String query_mode = whereFieldMap.get("query_mode");//EQ LIKE + Object obj = params.get(field_code); + if (FuncBase.isEmpty(obj)) { + continue; + } + JeeLowCodeFieldTypeEnum fieldTypeEnum = JeeLowCodeFieldTypeEnum.getByFieldType(field_type); + switch (fieldTypeEnum) { + case DATE: + obj = DateUtil.parse(Func.toStr(obj), "yyyy-MM-dd"); + break; + case DATETIME: + obj = DateUtil.parse(Func.toStr(obj), "yyyy-MM-dd HH:mm:ss"); + break; + case TIME: + obj = DateUtil.parse(Func.toStr(obj), "HH:mm:ss"); + break; + } + Object finalObj = obj; + //类型转换 111,22,33 + if (FuncBase.equals(query_mode, QueryModelEnum.EQ.getCode())) {//精确 + if(FuncBase.isNotEmpty(moreSelectFieldList) && moreSelectFieldList.contains(field_code)){//在多选里面 + + queryWrapper.setWhere(where->{ + where.and(w->w.eq(field_code, finalObj) + .or().likeLeft(field_code,","+ finalObj) + .or().likeRight(field_code, finalObj +",") + .or().like(field_code,","+ finalObj +",")); + }); + }else{ + queryWrapper.setWhere(where->{ + where.eq(field_code, finalObj); + }); + } + + } else if (FuncBase.equals(query_mode, QueryModelEnum.RANGE.getCode())) {//范围 + String listStr = FuncBase.toStr(obj); + List paramList = FuncBase.toStrList(listStr);// 1<=x<2 + Object leftVal = paramList.get(0); + Object rightVal = paramList.get(1); + if (FuncBase.equals(field_type, JeeLowCodeFieldTypeEnum.BIGINT)) {//防止大整型出现精度问题 + leftVal = FuncBase.toLong(leftVal); + rightVal = FuncBase.toLong(rightVal); + } + if (FuncBase.isNotEmpty(leftVal) && FuncBase.isNotEmpty(rightVal)) { + Object finalLeftVal = leftVal; + Object finalRightVal = rightVal; + queryWrapper.setWhere(where->{ + where.between(field_code, finalLeftVal, finalRightVal);//区间 + }); + } else if (FuncBase.isNotEmpty(leftVal)) {//>= + Object finalLeftVal1 = leftVal; + queryWrapper.setWhere(where->{ + where.ge(field_code, finalLeftVal1); + }); + } else if (FuncBase.isNotEmpty(rightVal)) {//<= + Object finalRightVal1 = rightVal; + queryWrapper.setWhere(where->{ + where.le(field_code, finalRightVal1); + }); + } + } else { + queryWrapper.setWhere(where->{ + where.like(field_code, finalObj); + }); + } + } + SqlFormatModel sqlFormatModel = queryWrapper.buildSql(); + + String whereSql = sqlFormatModel.getSql(); + if (FuncBase.isEmpty(whereSql)) { + return whereSql; + } + Map paramMap = sqlFormatModel.getDataMap(); + if(Func.isNotEmpty(paramMap)){ + params.putAll(paramMap); + } + whereSql=whereSql.substring(6);//因为是where开头要去掉 + return whereSql; + } + + /** + * 运行增删改 + * @param executeSql + * @param paramMap + * @throws Throwable + */ + public void executeSql(String executeSql, Map paramMap) { + String sql = this.getSql(executeSql, paramMap); + this.execute(sql,paramMap); + } + + /** + * 执行查询 + * + * @param executeSql + * @param paramMap + * @return + * @throws Throwable + */ + public List> executeSelectListSql(String executeSql, Map paramMap, String autoWhereSql) { + String sql = this.getSql(executeSql, paramMap, autoWhereSql); + Object obj = this.execute(sql,paramMap); + return (List>)obj; + } + + //分页 + public IPage> executeSelectPageSql(String executeSql, Map paramMap, String autoWhereSql, Page page) { + String sql = this.getSql(executeSql, paramMap, autoWhereSql); + Object obj = this.execute(sql, paramMap,page); + return (IPage>)obj; + } + + /** + * 获取执行sql + * @param executeSql + * @param paramMap + * @return + */ + private String getSql(String executeSql, Map paramMap){ + return this.getSql(executeSql,paramMap,null); + } + private String getSql(String executeSql, Map paramMap, String autoWhereSql){ + + //替换参数 + executeSql = Func.replaceParam(executeSql,paramMap,autoWhereSql,jeeLowCodeAdapter); + + return executeSql.trim(); + } + + /** + * 执行sql + * @param sql + * @return + */ + private Object execute(String sql,Map dataMap){ + return execute(sql,dataMap,null); + } + + private Object execute(String sql,Map dataMap, Page page){ + sql=sql.trim(); + //执行sql + if (sql.startsWith("insert") || sql.startsWith("INSERT")) { + sqlMapper.insertData(sql,dataMap); + } else if (sql.startsWith("update") || sql.startsWith("UPDATE")) { + sqlMapper.updateData(sql,dataMap); + } else if (sql.startsWith("delete") || sql.startsWith("DELETE")) { + sqlMapper.deleteData(sql,dataMap); + } else if (sql.startsWith("select") || sql.startsWith("SELECT")) { + if(FuncBase.isNotEmpty(page)){ + return sqlMapper.selectPageData(page, sql,dataMap); + } + return sqlMapper.selectData(sql,dataMap); + } + return null; + } + + // 新增增强 + public static void addPlugin(EnhanceSqlEntity sqlEntity){ + String key = sqlEntity.getDbformId()+"_"+sqlEntity.getButtonCode(); + sqlPlugins.merge(key, new ArrayList<>(Collections.singletonList(sqlEntity)), (oldValue, newValue) -> { + oldValue.addAll(newValue); + return oldValue; + }); + } + + // 修改增强 + public static void updatePlugin(EnhanceSqlEntity sqlEntity) { + String key = sqlEntity.getDbformId() + "_" + sqlEntity.getButtonCode(); + sqlPlugins.merge(key, new ArrayList<>(Collections.singletonList(sqlEntity)), (oldValue, newValue) -> { + // 先删除再新增 + oldValue.removeIf(enhanceSql -> FuncBase.equals(enhanceSql.getId(), sqlEntity.getId())); + oldValue.add(sqlEntity); + return oldValue; + }); + } + + // 删除增强 + public static void removePlugin(EnhanceSqlEntity sqlEntity){ + String key = sqlEntity.getDbformId() + "_" + sqlEntity.getButtonCode(); + List sqlEntityList = sqlPlugins.getOrDefault(key, new ArrayList<>()); + // id相同则删除 + sqlEntityList.removeIf(enhanceSqlEntity -> sqlEntity.getId().equals(enhanceSqlEntity.getId())); + if (FuncBase.isEmpty(sqlEntityList)) { + sqlPlugins.remove(key); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnotationAspectjJAVA.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnotationAspectjJAVA.java new file mode 100644 index 0000000..ce4ebd5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/JeeLowCodeAnnotationAspectjJAVA.java @@ -0,0 +1,702 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance; + + +import com.jeelowcode.core.framework.config.aspect.enhance.criteria.*; +import com.jeelowcode.core.framework.config.aspect.enhance.model.*; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.*; +import com.jeelowcode.core.framework.config.listener.JeeLowCodeListener; +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import groovy.lang.GroovyObject; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.LocalVariableTableParameterNameDiscoverer; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +import static com.jeelowcode.framework.utils.constant.EnhanceConstant.*; + +/** + * @author JX + * @create 2024-08-12 10:26 + * @dedescription: + */ +@Aspect +@Component +@Slf4j +public class JeeLowCodeAnnotationAspectjJAVA { + + public final static String EXPRESSION = "execution(* com.jeelowcode.core.framework.service.impl.FrameServiceImpl.*(..))"; + + //需要处理的增强 + private static Map> pluginNames = new HashMap<>(); + + //需要处理的切面方法 + public static Map aspectMethodNameMap = new HashMap<>(); + + @Autowired + private JeeLowCodeListener jeeLowCodeListener; + + @Before(value = EXPRESSION) + public void before(JoinPoint joinPoint) throws Throwable { + + BuildEnhanceContext buildEnhanceContext = this.getContextAndPlugins(joinPoint); + if (FuncBase.isEmpty(buildEnhanceContext)) { + return; + } + List enhanceJavaEntityList = buildEnhanceContext.getEntitys(); + if (Func.isEmpty(enhanceJavaEntityList)) { + return; + } + EnhanceContext context = buildEnhanceContext.getContext(); + //执行增强 + for (EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) { + this.executeEnhance(enhanceJavaEntity, context, JavaEnhanceEventState.START.getName(), joinPoint); + if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()) { + break; + } + } + + + } + + + @AfterReturning(value = EXPRESSION, returning = "returnVal") + public Object afterReturning(JoinPoint joinPoint, Object returnVal) throws Throwable { + //获取参数 + BuildEnhanceContext buildEnhanceContext = this.getContextAndPlugins(joinPoint); + if (FuncBase.isEmpty(buildEnhanceContext)) { + return returnVal; + } + + if (!(returnVal instanceof ResultDataModel) && !(returnVal instanceof ExecuteEnhanceModel)) { + return returnVal; + } + + List enhanceJavaEntityList = buildEnhanceContext.getEntitys(); + if (Func.isEmpty(enhanceJavaEntityList)) {//无增强 + return returnVal; + } + EnhanceContext context = buildEnhanceContext.getContext(); + boolean resultFlag = false; + //封装返回值 + if (returnVal instanceof ResultDataModel) {//列表相关 + ResultDataModel resultDataModel = (ResultDataModel) returnVal; + EnhanceResult enhanceResult = new EnhanceResult(); + enhanceResult.setRecords(resultDataModel.getRecords()); + enhanceResult.setTotal(resultDataModel.getTotal()); + context.getParam().setList(resultDataModel.getRecords()); + context.setResult(enhanceResult); + resultFlag = true; + } else if (returnVal instanceof ExecuteEnhanceModel) {//新增,修改,删除 + ExecuteEnhanceModel executeEnhanceModel = (ExecuteEnhanceModel) returnVal; + EnhanceResult enhanceResult = new EnhanceResult(); + enhanceResult.setId(executeEnhanceModel.getId()); + enhanceResult.setExitFlag(executeEnhanceModel.isExitFlag()); + context.setResult(enhanceResult); + } + + //集合操作 + List setOperations = buildEnhanceContext.getSetOperations(); + + executeSetOperation(context, setOperations); + //执行插件 + for (EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) { + //里面集合存在,不用执行 + if (Func.isNotEmpty(setOperations) && setOperations.contains(enhanceJavaEntity)){ + continue; + } + this.executeEnhance(enhanceJavaEntity, context, JavaEnhanceEventState.END.getName(), joinPoint); + if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()) { + break; + } + + } + + //返回结果 + Object result = getResult(context); + if (resultFlag) { + ResultDataModel returnValData = (ResultDataModel) returnVal; + ResultDataModel resultDataModel = (ResultDataModel) result; + returnValData.setRecords(resultDataModel.getRecords()); + returnValData.setTotal(resultDataModel.getTotal()); + return returnValData; + } else { + ExecuteEnhanceModel returnValData = (ExecuteEnhanceModel) returnVal; + ExecuteEnhanceModel resultDataModel = (ExecuteEnhanceModel) result; + returnValData.setId(resultDataModel.getId()); + return returnValData; + } + + + } + + + @Around(value = EXPRESSION) + public Object aroudAdvice(ProceedingJoinPoint joinPoint) throws Throwable { + BuildEnhanceContext buildEnhanceContext = this.getContextAndPlugins(joinPoint); + if (FuncBase.isEmpty(buildEnhanceContext)) { + return joinPoint.proceed(); + } + List enhanceJavaEntityList = buildEnhanceContext.getEntitys(); + if (Func.isEmpty(enhanceJavaEntityList)) { + return joinPoint.proceed(); + } + EnhanceContext context = buildEnhanceContext.getContext(); + + for (EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) { + this.executeEnhance(enhanceJavaEntity, context, JavaEnhanceEventState.AROUND.getName(), joinPoint); + if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()) { + break; + } + + } + if (Func.isEmpty(context.getResult())) { + return joinPoint.proceed(); + } + + return getResult(context); + } + + @AfterThrowing(value = EXPRESSION, throwing = "ex") + public void afterThrowing(JoinPoint joinPoint, Exception ex) throws Throwable { + BuildEnhanceContext buildEnhanceContext = this.getContextAndPlugins(joinPoint); + if (FuncBase.isEmpty(buildEnhanceContext)) { + return; + } + List enhanceJavaEntityList = buildEnhanceContext.getEntitys(); + if (Func.isEmpty(enhanceJavaEntityList)) { + return; + } + EnhanceContext context = buildEnhanceContext.getContext(); + for (EnhanceJavaEntity enhanceJavaEntity : enhanceJavaEntityList) { + this.executeEnhance(enhanceJavaEntity, context, JavaEnhanceEventState.THROWING.getName(), joinPoint); + if (FuncBase.isNotEmpty(context.getResult()) && context.getResult().isExitFlag()) { + break; + } + + } + } + + + public static void initPluginNames(Map> initPluginNames) { + pluginNames = initPluginNames; + } + + public static void initAspectMethodNameMap(Map initAspectMethodNameMap) { + aspectMethodNameMap = initAspectMethodNameMap; + } + + public BuildEnhanceContext getContextAndPlugins(JoinPoint joinPoint) { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + // 获取方法名称 + String methodName = methodSignature.getName(); + if (!aspectMethodNameMap.containsKey(methodName)) {//不在拦截范围内 add + return null; + } + //处理参数 + Object[] args = joinPoint.getArgs(); + LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer(); + String[] parameterNames = discoverer.getParameterNames(methodSignature.getMethod()); + Map paramMap = new HashMap<>(); + for (int i = 0; i < parameterNames.length; i++) { + paramMap.put(parameterNames[i], args[i]); + } + + //判断该表单,当前的功能是否有增强 + Long dbFormId = (Long) paramMap.get("dbFormId"); + String buttonCode = aspectMethodNameMap.get(methodName); + String key = dbFormId + "_" + buttonCode; + List enhanceJavaEntityList = pluginNames.getOrDefault(key, null); + if (Func.isEmpty(enhanceJavaEntityList)) {//不存在增强 + return null; + } + + //判断是否是列表,导出增强 + List setOperation = enhanceJavaEntityList.stream() + .filter(enhanceJavaEntity -> (FuncBase.equals(enhanceJavaEntity.getButtonCode(), ENHANCE_LIST) || + FuncBase.equals(enhanceJavaEntity.getButtonCode(), ENHANCE_EXPORT)) && FuncBase.isNotEmpty(PluginManager.getPlugin(enhanceJavaEntity))) + .collect(Collectors.toList()); + if (setOperation.size() < 2) { + //如果只有一条,则直接执行,不用走集合操作 + setOperation.clear(); + } + + + EnhanceParam param = new EnhanceParam(); + param.setDbFormId(dbFormId); + param.setList((ArrayList) paramMap.getOrDefault("dataList", null)); + param.setParams((Map) paramMap.getOrDefault("params", null)); + + //把参数放入到上下文 + EnhanceContext context = new EnhanceContext(); + context.setParam(param); + + BuildEnhanceContext buildEnhanceContext = new BuildEnhanceContext(context, enhanceJavaEntityList, setOperation); + return buildEnhanceContext; + } + + //执行增强 + public void executeEnhance(EnhanceJavaEntity enhanceJavaEntity, EnhanceContext context, String type, JoinPoint joinPoint) throws Throwable { + String javaType = enhanceJavaEntity.getJavaType(); + if (FuncBase.equals(javaType, JavaEnhanceEnum.SPRING.getType()) || (FuncBase.equals(javaType, JavaEnhanceEnum.CLASS.getType()))) { + //执行spring增强与class增强 + this.executeSpringEnhance(enhanceJavaEntity, type, context, joinPoint); + + } else if (FuncBase.equals(javaType, JavaEnhanceEnum.ONLINIE.getType())) { + //执行在线增强 + this.executeOnLineScript(enhanceJavaEntity, type, context, joinPoint); + + } else if (FuncBase.equals(javaType, JavaEnhanceEnum.HTTP.getType())) { + //执行http增强 + this.executeHttpEnhance(enhanceJavaEntity, type, context, joinPoint); + } + } + + + /* + * 执行spring增强 + */ + private void executeSpringEnhance(EnhanceJavaEntity enhanceJavaEntity, String type, EnhanceContext context, JoinPoint joinPoint) throws Throwable { + String javaClassUrl = enhanceJavaEntity.getJavaClassUrl();// + BaseAdvicePlugin plugin = PluginManager.getPlugin(javaClassUrl); + switch (type) { + case "start"://前置增强 + if (!(plugin instanceof BeforeAdvicePlugin)) { + break; + } + //执行 + PluginManager.executePlugin(javaClassUrl, context); + break; + case "end"://后置增强 + if (!(plugin instanceof AfterAdvicePlugin)) { + break; + } + //执行 + PluginManager.executePlugin(javaClassUrl, context); + break; + case "around": + if (!(plugin instanceof AroundAdvicePlugin)) { + break; + } + + //环绕-前置 + PluginManager.executeAroundBeforePlugin(plugin, context); + + if (Func.isEmpty(context.getResult())) { + context.setResult(new EnhanceResult()); + } + if (context.getResult().isExitFlag()) {//说明终止,不用往下走 + break; + } + + //执行原方法 + ProceedingJoinPoint proceedingJoinPoint = (ProceedingJoinPoint) joinPoint; + Object proceed = proceedingJoinPoint.proceed(); + if (proceed instanceof ResultDataModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setRecords(((ResultDataModel) proceed).getRecords()); + enhanceResult.setTotal(((ResultDataModel) proceed).getTotal()); + } else if (proceed instanceof ExecuteEnhanceModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setId(((ExecuteEnhanceModel) proceed).getId()); + } + + //环绕-后置 + PluginManager.executeAroundAfterPlugin(plugin, context); + break; + case "throwing": + if (!(plugin instanceof ThrowAdvicePlugin)) { + break; + } + PluginManager.executePlugin(javaClassUrl, context); + break; + default: + break; + } + } + + /* + * 执行Online增强---只有环绕增强 + */ + private void executeOnLineScript(EnhanceJavaEntity enhanceJavaEntity, String type, EnhanceContext context, JoinPoint joinPoint) throws Throwable { + if (!FuncBase.equals(type, JavaEnhanceEventState.AROUND.getName())) { + return; + } + + Class onlineClass = jeeLowCodeListener.getGroovyClassLoader().parseClass(enhanceJavaEntity.getOnlineScript()); + GroovyObject groovyObject = (GroovyObject) onlineClass.newInstance(); + groovyObject.invokeMethod("beforeExecute", context); + + //只有前置 + if (context.getOnlyBefore()) { + return; + } + + //执行原方法 + ProceedingJoinPoint proceedingJointpoint = (ProceedingJoinPoint) joinPoint; + Object proceed = proceedingJointpoint.proceed(); + if (proceed instanceof ResultDataModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setRecords(((ResultDataModel) proceed).getRecords()); + enhanceResult.setTotal(((ResultDataModel) proceed).getTotal()); + } else if (proceed instanceof ExecuteEnhanceModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setId(((ExecuteEnhanceModel) proceed).getId()); + } + groovyObject.invokeMethod("afterExecute", context); + + + } + + private void executeHttpEnhance(EnhanceJavaEntity enhanceJavaEntity, String type, EnhanceContext context, JoinPoint joinPoint) { + if (!FuncBase.equals(type, JavaEnhanceEventState.AROUND.getName())) { + return; + } + context.setBefore(true); + String accept = null; + for (int i = 0; i < 3; i++) { + try { + accept = Func.sendPost(enhanceJavaEntity.getJavaClassUrl(), context); + + EnhanceRespModel respBody = Func.json2Bean(accept, EnhanceRespModel.class); + if (respBody.checkStatus()) { + context = respBody.getData(); + context.setBefore(false); + break; + } + Map errorMap = new HashMap<>(); + errorMap.put("body", Func.json2Str(context)); + errorMap.put("url", enhanceJavaEntity.getJavaClassUrl()); + errorMap.put("respBody", Func.json2Str(respBody)); + + log.error("发送HTTP增强失败:" + Func.json2Str(errorMap)); + Thread.sleep(2000);//休息2秒 + } catch (Exception e) { + log.error("发送HTTP增强失败-e:" + e.getMessage()); + } + } + if (context.getOnlyBefore()) { + return; + } + + try { + ProceedingJoinPoint proceedingJointpoint = (ProceedingJoinPoint) joinPoint; + Object proceed = proceedingJointpoint.proceed(); + if (proceed instanceof ResultDataModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setRecords(((ResultDataModel) proceed).getRecords()); + enhanceResult.setTotal(((ResultDataModel) proceed).getTotal()); + } else if (proceed instanceof ExecuteEnhanceModel) { + EnhanceResult enhanceResult = context.getResult(); + enhanceResult.setId(((ExecuteEnhanceModel) proceed).getId()); + } + } catch (Throwable e) { + throw new JeeLowCodeException("发送HTTP增强失败:" + e.getMessage()); + } + + + for (int i = 0; i < 3; i++) { + try { + accept = Func.sendPost(enhanceJavaEntity.getJavaClassUrl(), context); + + EnhanceRespModel respBody = Func.json2Bean(accept, EnhanceRespModel.class); + if (respBody.checkStatus()) { + context = respBody.getData(); + break; + } + Map errorMap = new HashMap<>(); + errorMap.put("body", Func.json2Str(context)); + errorMap.put("url", enhanceJavaEntity.getJavaClassUrl()); + errorMap.put("respBody", Func.json2Str(respBody)); + + log.error("发送HTTP增强失败:" + Func.json2Str(errorMap)); + Thread.sleep(2000);//休息2秒 + } catch (Exception e) { + log.error("发送HTTP增强失败-e:" + e.getMessage()); + } + } + + } + + + private void executeSetOperation(EnhanceContext context, List javaEntityList) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + if (Func.isEmpty(javaEntityList) || javaEntityList.size() < 2) { + return; + } + //只有后置增强才有集合操作 + List afterJavaList = javaEntityList.stream().filter(javaEntity -> { + Object o = null; + if (Func.equals(JavaEnhanceEnum.SPRING.getType(), javaEntity.getJavaType())) { + o = SpringUtils.getBean(javaEntity.getJavaClassUrl()); + } else if (Func.equals(JavaEnhanceEnum.CLASS.getType(), javaEntity.getJavaType())) { + try { + o = Class.forName(javaEntity.getJavaClassUrl()).newInstance(); + } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ignored) {} + } + return o instanceof AfterAdvicePlugin; + }).collect(Collectors.toList()); + + if (Func.isEmpty(afterJavaList) || afterJavaList.size() < 2) { + if (Func.isNotEmpty(afterJavaList)) { + javaEntityList.removeAll(afterJavaList); + } + return; + } + + + + + //根据序号排序 + afterJavaList.sort( + Comparator.comparing( + EnhanceJavaEntity::getSort, Comparator.nullsLast(Integer::compareTo))); + + + for (int i = 0; i < afterJavaList.size() - 1; i++) { + EnhanceJavaEntity leftEntity = null; + EnhanceJavaEntity rightEntity = null; + if (i == 0) { + leftEntity = afterJavaList.get(i); + rightEntity = afterJavaList.get(i + 1); + } else { + rightEntity = afterJavaList.get(i + 1); + } + + switch (rightEntity.getListResultHandleType()) { + case "1": + //执行合集操作 + executSetOperationOr(leftEntity, rightEntity, context); + break; + case "2": + //执行差集操作 + executSetOperationDiffer(leftEntity, rightEntity, context); + break; + case "3": + //执行并集操作 + executSetOperationUnion(leftEntity, rightEntity, context); + break; + case "4": + //执行交集操作 + executSetOperationInterSerction(leftEntity, rightEntity, context); + break; + default: + case "0": + //执行串行操作 + executSetOperationAnd(leftEntity, rightEntity, context); + break; + } + + } + + } + + //串行 + private void executSetOperationAnd(EnhanceJavaEntity leftEntity, EnhanceJavaEntity rightEntity, EnhanceContext context) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + + AfterAdvicePlugin leftPlugin = judgeLeftPlugin(leftEntity); + AfterAdvicePlugin rightPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(rightEntity); + AndCriteriaFilterAdvicePlugin andAdvicePlugin = new AndCriteriaFilterAdvicePlugin(leftPlugin, rightPlugin); + andAdvicePlugin.execute(context); + + } + + //合集 + private void executSetOperationOr(EnhanceJavaEntity leftEntity, EnhanceJavaEntity rightEntity, EnhanceContext context) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + AfterAdvicePlugin leftPlugin = judgeLeftPlugin(leftEntity); + AfterAdvicePlugin rightPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(rightEntity); + OrCriteriaFilterAdvicePlugin orAdvicePlugin = new OrCriteriaFilterAdvicePlugin(leftPlugin, rightPlugin); + orAdvicePlugin.execute(context); + + } + + //差集 + private void executSetOperationDiffer(EnhanceJavaEntity leftEntity, EnhanceJavaEntity rightEntity, EnhanceContext context) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + AfterAdvicePlugin leftPlugin = judgeLeftPlugin(leftEntity); + AfterAdvicePlugin rightPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(rightEntity); + DifferenceCriteriaFilterAdvicePlugin differPlugin = new DifferenceCriteriaFilterAdvicePlugin(leftPlugin, rightPlugin); + differPlugin.execute(context); + } + + //并集 + private void executSetOperationUnion(EnhanceJavaEntity leftEntity, EnhanceJavaEntity rightEntity, EnhanceContext context) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + + AfterAdvicePlugin leftPlugin = judgeLeftPlugin(leftEntity); + AfterAdvicePlugin rightPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(rightEntity); + UnionCriteriaFilterAdvicePlugin unionPlugin = new UnionCriteriaFilterAdvicePlugin(leftPlugin, rightPlugin); + unionPlugin.execute(context); + + + } + + //交集 + private void executSetOperationInterSerction(EnhanceJavaEntity leftEntity, EnhanceJavaEntity rightEntity, EnhanceContext context) throws ClassNotFoundException, InstantiationException, IllegalAccessException { + AfterAdvicePlugin leftPlugin = judgeLeftPlugin(leftEntity); + AfterAdvicePlugin rightPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(rightEntity); + IntersectionCriteriaFilterAdvicePlugin intersectionPlugin = new IntersectionCriteriaFilterAdvicePlugin(leftPlugin, rightPlugin); + intersectionPlugin.execute(context); + + + } + + + + public Object getResult(EnhanceContext context) { + if (Func.isEmpty(context.getResult().getRecords()) && FuncBase.isEmpty(context.getResult().getId())) { + return ResultDataModel.fomat(0L, new ArrayList<>()); + } + if (FuncBase.isEmpty(context.getResult().getRecords())) { + ExecuteEnhanceModel enhanceModel = new ExecuteEnhanceModel(); + enhanceModel.setId(context.getResult().getId()); + enhanceModel.setExitFlag(context.getResult().isExitFlag()); + + return enhanceModel; + } else { + + ResultDataModel resultDataModel = new ResultDataModel(); + resultDataModel.setRecords(context.getResult().getRecords()); + resultDataModel.setTotal(context.getResult().getTotal()); + resultDataModel.setExitFlag(context.getResult().isExitFlag()); + return resultDataModel; + } + } + + //判断左边是否为空 + public AfterAdvicePlugin judgeLeftPlugin(EnhanceJavaEntity leftEntity) { + AfterAdvicePlugin leftPlugin = null; + if (FuncBase.isNotEmpty(leftEntity)) { + leftPlugin = (AfterAdvicePlugin)PluginManager.getPlugin(leftEntity); + } else { + leftPlugin = enhanceContext -> { + }; + } + return leftPlugin; + } + + //新增增强 + public static void addPlugin(EnhanceJavaEntity javaEntity){ + try { + String key = javaEntity.getDbformId()+"_"+javaEntity.getButtonCode(); + // 1.处理 pluginNames + pluginNames.merge(key, new ArrayList<>(Collections.singletonList(javaEntity)), (oldValue, newValue) -> { + oldValue.addAll(newValue); + return oldValue; + }); + + // 2.处理 plugins + if (Func.equals(javaEntity.getJavaType(), JavaEnhanceEnum.SPRING.getType())){ + String javaClassUrl = javaEntity.getJavaClassUrl(); + Object bean = SpringUtils.getBean(javaClassUrl); + if (Func.isNotEmpty(bean) && bean instanceof BaseAdvicePlugin) { + PluginManager.addPlugin(javaClassUrl, (BaseAdvicePlugin) bean); + } + }else if (Func.equals(javaEntity.getJavaType(), JavaEnhanceEnum.CLASS.getType())){ + Class enhanceClass = Class.forName(javaEntity.getJavaClassUrl()); + BaseAdvicePlugin plugin = (BaseAdvicePlugin) enhanceClass.newInstance(); + PluginManager.addPlugin(javaEntity.getJavaClassUrl(), plugin); + } + } catch (Exception e) { + throw new JeeLowCodeException("增强插件加载失败"); + } + } + + //修改增强 + public static void updatePlugins(EnhanceJavaEntity javaEntity){ + try { + String key = javaEntity.getDbformId()+"_"+javaEntity.getButtonCode(); + AtomicReference oldJavaClassUrlAtomicRe = new AtomicReference<>(); + // 1.处理 pluginNames + pluginNames.merge(key, new ArrayList<>(Collections.singletonList(javaEntity)), (oldValue, newValue) -> { + // 先删除再新增 + oldValue.removeIf(oldJavaEntity -> { + if (FuncBase.equals(oldJavaEntity.getId(), javaEntity.getId())) { + oldJavaClassUrlAtomicRe.set(oldJavaEntity.getJavaClassUrl()); + return true; + }else { + return false; + } + }); + oldValue.add(javaEntity); + return oldValue; + }); + + // 2.处理 plugins 先删除再新增 + removePlugins(oldJavaClassUrlAtomicRe.get()); + String javaType = javaEntity.getJavaType(); + String javaClassUrl = javaEntity.getJavaClassUrl(); + if (Func.equals(javaType, JavaEnhanceEnum.SPRING.getType())){ + Object bean = SpringUtils.getBean(javaClassUrl); + if (Func.isNotEmpty(bean) && bean instanceof BaseAdvicePlugin) { + PluginManager.addPlugin(javaClassUrl, (BaseAdvicePlugin) bean); + } + }else if (Func.equals(javaType, JavaEnhanceEnum.CLASS.getType())){ + Class enhanceClass = Class.forName(javaClassUrl); + BaseAdvicePlugin plugin = (BaseAdvicePlugin) enhanceClass.newInstance(); + PluginManager.addPlugin(javaClassUrl, plugin); + } + } catch (Exception e) { + throw new JeeLowCodeException("增强插件加载失败"); + } + } + + //删除增强 + public static void deletePlugins(EnhanceJavaEntity javaEntity){ + String key = javaEntity.getDbformId() + "_" + javaEntity.getButtonCode(); + // 1.处理 pluginNames + List javaEntityList = pluginNames.getOrDefault(key, new ArrayList<>()); + AtomicReference oldJavaClassUrlAtomicRe = new AtomicReference<>(); + javaEntityList.removeIf(oldJavaEntity -> { + if (oldJavaEntity.getId().equals(javaEntity.getId())) { + oldJavaClassUrlAtomicRe.set(oldJavaEntity.getJavaClassUrl()); + return true; + }else { + return false; + } + }); + if (FuncBase.isEmpty(javaEntityList)) { + pluginNames.remove(key); + } + + // 2.处理 plugins + removePlugins(oldJavaClassUrlAtomicRe.get()); + } + + /** + * 删除 plugins 中的增强 + */ + private static void removePlugins(String oldJavaClassUrl){ + if (Func.isEmpty(oldJavaClassUrl)) { + return; + } + Set JavaClassUrlSet = pluginNames.values().stream().flatMap(Collection::stream) + .map(EnhanceJavaEntity::getJavaClassUrl).collect(Collectors.toSet()); + if (!JavaClassUrlSet.contains(oldJavaClassUrl)) { + PluginManager.removePlugin(oldJavaClassUrl); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/AndCriteriaFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/AndCriteriaFilterAdvicePlugin.java new file mode 100644 index 0000000..e24bc5e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/AndCriteriaFilterAdvicePlugin.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; + +/** + * @author JX + * @create 2024-08-20 10:37 + * @dedescription: + */ +public class AndCriteriaFilterAdvicePlugin extends BaseCriterFilterAdvicePlugin implements AfterAdvicePlugin { + + public AndCriteriaFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + super(leftCriterFilter,rightCriterFilter); + } + + @Override + public void execute(EnhanceContext enhanceContext) { + leftCriterFilter.execute(enhanceContext); + rightCriterFilter.execute(enhanceContext); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/BaseCriterFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/BaseCriterFilterAdvicePlugin.java new file mode 100644 index 0000000..93d323f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/BaseCriterFilterAdvicePlugin.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; + +/** + * @author JX + * @create 2024-08-19 14:48 + * @dedescription: 基础过滤条件 + */ +public class BaseCriterFilterAdvicePlugin { + + + public AfterAdvicePlugin leftCriterFilter; + + public AfterAdvicePlugin rightCriterFilter; + + public BaseCriterFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + + this.leftCriterFilter = leftCriterFilter; + this.rightCriterFilter = rightCriterFilter; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/DifferenceCriteriaFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/DifferenceCriteriaFilterAdvicePlugin.java new file mode 100644 index 0000000..15285c3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/DifferenceCriteriaFilterAdvicePlugin.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 14:52 + * @dedescription: 差集 + */ +public class DifferenceCriteriaFilterAdvicePlugin extends BaseCriterFilterAdvicePlugin implements AfterAdvicePlugin { + + public DifferenceCriteriaFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + super(leftCriterFilter,rightCriterFilter); + } + + @Override + public void execute(EnhanceContext enhanceContext) { + List> differ = new ArrayList<>(); + EnhanceContext leftEnhanceContext = enhanceContext.clone(); + EnhanceContext rightEnhanceContext = enhanceContext.clone(); + + //执行增强 + leftCriterFilter.execute(leftEnhanceContext); + rightCriterFilter.execute(rightEnhanceContext); + //合并结果 + EnhanceResult leftResult = leftEnhanceContext.getResult(); + EnhanceResult rightResult = rightEnhanceContext.getResult(); + List> leftRecords = leftResult.getRecords(); + List> rightRecords = rightResult.getRecords(); + differ = (List>) CollectionUtils.subtract(leftRecords, rightRecords); + + enhanceContext.getResult().setRecords(differ); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/IntersectionCriteriaFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/IntersectionCriteriaFilterAdvicePlugin.java new file mode 100644 index 0000000..5de0d1b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/IntersectionCriteriaFilterAdvicePlugin.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 14:46 + * @dedescription: 交集 + */ +public class IntersectionCriteriaFilterAdvicePlugin extends BaseCriterFilterAdvicePlugin implements AfterAdvicePlugin { + + public IntersectionCriteriaFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + super(leftCriterFilter,rightCriterFilter); + } + + @Override + public void execute(EnhanceContext enhanceContext) { + List> intersection = new ArrayList<>(); + EnhanceContext leftEnhanceContext = enhanceContext.clone(); + EnhanceContext rightEnhanceContext = enhanceContext.clone(); + //执行增强 + leftCriterFilter.execute(leftEnhanceContext); + rightCriterFilter.execute(rightEnhanceContext); + //合并结果 + EnhanceResult leftResult = leftEnhanceContext.getResult(); + EnhanceResult rightResult = rightEnhanceContext.getResult(); + List> leftRecords = leftResult.getRecords(); + List> rightRecords = rightResult.getRecords(); + intersection = (List>) CollectionUtils.intersection(leftRecords, rightRecords); + + enhanceContext.getResult().setRecords(intersection); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/OrCriteriaFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/OrCriteriaFilterAdvicePlugin.java new file mode 100644 index 0000000..d9e9d73 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/OrCriteriaFilterAdvicePlugin.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 14:56 + * @dedescription: 合集 + */ +public class OrCriteriaFilterAdvicePlugin extends BaseCriterFilterAdvicePlugin implements AfterAdvicePlugin { + + public OrCriteriaFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + + super(leftCriterFilter,rightCriterFilter); + } + + @Override + public void execute(EnhanceContext enhanceContext) { + List> or = new ArrayList<>(); + EnhanceContext leftEnhanceContext = enhanceContext.clone(); + EnhanceContext rightEnhanceContext = enhanceContext.clone(); + //执行增强 + leftCriterFilter.execute(leftEnhanceContext); + rightCriterFilter.execute(rightEnhanceContext); + //合并结果 + EnhanceResult leftResult = leftEnhanceContext.getResult(); + EnhanceResult rightResult = rightEnhanceContext.getResult(); + List> leftRecords = leftResult.getRecords(); + List> rightRecords = rightResult.getRecords(); + CollectionUtils.addAll(leftRecords,rightRecords); + or = leftRecords; + enhanceContext.getResult().setRecords(or); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/UnionCriteriaFilterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/UnionCriteriaFilterAdvicePlugin.java new file mode 100644 index 0000000..3af9450 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/criteria/UnionCriteriaFilterAdvicePlugin.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.criteria; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 14:12 + * @dedescription: 并集 + */ +public class UnionCriteriaFilterAdvicePlugin extends BaseCriterFilterAdvicePlugin implements AfterAdvicePlugin { + + + public UnionCriteriaFilterAdvicePlugin(AfterAdvicePlugin leftCriterFilter, AfterAdvicePlugin rightCriterFilter) { + super(leftCriterFilter,rightCriterFilter); + } + + @Override + public void execute(EnhanceContext enhanceContext) { + List> union = new ArrayList<>(); + EnhanceContext leftEnhanceContext = enhanceContext.clone(); + EnhanceContext rightEnhanceContext = enhanceContext.clone(); + //执行增强 + leftCriterFilter.execute(leftEnhanceContext); + rightCriterFilter.execute(rightEnhanceContext); + //合并结果 + EnhanceResult leftResult = leftEnhanceContext.getResult(); + EnhanceResult rightResult = rightEnhanceContext.getResult(); + List> leftRecords = leftResult.getRecords(); + List> rightRecords = rightResult.getRecords(); + union = (List>) CollectionUtils.union(leftRecords, rightRecords); + enhanceContext.getResult().setRecords(union); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BaseEnhanceContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BaseEnhanceContext.java new file mode 100644 index 0000000..1c9e5c8 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BaseEnhanceContext.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +/** + * @author JX + * @create 2024-08-19 12:00 + * @dedescription: + */ +public class BaseEnhanceContext { + + private Boolean before; //当前是前置增强 + + private Boolean onlyBefore = false; //只执行前置增强 + + public Boolean getBefore() { + return before; + } + + public void setBefore(Boolean before) { + this.before = before; + } + + public Boolean getOnlyBefore() { + return onlyBefore; + } + + public void setOnlyBefore(Boolean onlyBefore) { + this.onlyBefore = onlyBefore; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildEnhanceContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildEnhanceContext.java new file mode 100644 index 0000000..24401e1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildEnhanceContext.java @@ -0,0 +1,62 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; + +import java.util.List; + +/** + * @author JX + * @create 2024-08-15 15:46 + * @dedescription: + */ +public class BuildEnhanceContext { + + private EnhanceContext context; + + private List entitys; + + private List setOperations; + public BuildEnhanceContext(EnhanceContext context, List entitys,List setOperations) { + this.context = context; + this.entitys = entitys; + this.setOperations = setOperations; + } + + public EnhanceContext getContext() { + return context; + } + + public void setContext(EnhanceContext context) { + this.context = context; + } + + public List getEntitys() { + return entitys; + } + + public void setEntitys(List entitys) { + this.entitys = entitys; + } + + public List getSetOperations() { + return setOperations; + } + + public void setSetOperations(List setOperations) { + this.setOperations = setOperations; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildSqlEnhanceContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildSqlEnhanceContext.java new file mode 100644 index 0000000..e004dc5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/BuildSqlEnhanceContext.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; + +import java.util.List; + +/** + * @author JX + * @create 2024-08-21 15:52 + * @dedescription: + */ +public class BuildSqlEnhanceContext { + + + private EnhanceContext context; + + private List entitys; + + private List setOperations; + + public EnhanceContext getContext() { + return context; + } + + public void setContext(EnhanceContext context) { + this.context = context; + } + + public List getEntitys() { + return entitys; + } + + public void setEntitys(List entitys) { + this.entitys = entitys; + } + + public List getSetOperations() { + return setOperations; + } + + public void setSetOperations(List setOperations) { + this.setOperations = setOperations; + } + + public BuildSqlEnhanceContext(EnhanceContext context, List entitys, List setOperations) { + this.context = context; + this.entitys = entitys; + this.setOperations = setOperations; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceContext.java new file mode 100644 index 0000000..ba67255 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceContext.java @@ -0,0 +1,85 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.io.*; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-12 9:14 + * @dedescription: 增强执行上下文 + */ +public class EnhanceContext extends BaseEnhanceContext implements Serializable{ + //参数 + private EnhanceParam param; + //结果 + private EnhanceResult result; + + + public EnhanceParam getParam() { + return param; + } + + public void setParam(EnhanceParam param) { + this.param = param; + } + + public EnhanceResult getResult() { + return result; + } + + public void setResult(EnhanceResult result) { + this.result = result; + } + + public void setResult(ResultDataModel resultDataModel){ + this.result.setExitFlag(resultDataModel.isExitFlag()); + this.result.setRecords(resultDataModel.getRecords()); + this.result.setTotal(resultDataModel.getTotal()); + } + + //通过序列化和反序列化实现深拷贝 + @Override + public EnhanceContext clone(){ + try { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + oos.writeObject(this); + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bis); + return (EnhanceContext) ois.readObject(); + } catch (IOException |ClassNotFoundException e ) { + e.printStackTrace(); + return null; + } + } + + public void setParam(Long dbFormId,Map params,List> list){ + this.param = new EnhanceParam(dbFormId,params,list); + } + + public void setResult(boolean exitFlag,String id,Long total,List> records){ + this.result = new EnhanceResult(exitFlag,id,total,records); + } + + public void setParam(Long dbFormId, Map params, List> list, Long dataId, Page page, List dataIdList){ + this.param = new EnhanceParam(dbFormId,params,list,dataId,page,dataIdList); + } +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceParam.java new file mode 100644 index 0000000..74ca99b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceParam.java @@ -0,0 +1,105 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-15 10:02 + * @dedescription: + */ +public class EnhanceParam implements Serializable { + + private Long dbFormId; + + private Map params; + + private List> list; + + private Long dataId; + + private Page page; + + private List dataIdList; + public Long getDbFormId() { + return dbFormId; + } + + public void setDbFormId(Long dbFormId) { + this.dbFormId = dbFormId; + } + + public Map getParams() { + return params; + } + + public void setParams(Map params) { + this.params = params; + } + + public List> getList() { + return list; + } + + public void setList(List> list) { + this.list = list; + } + + public EnhanceParam() { + } + + public Long getDataId() { + return dataId; + } + + public void setDataId(Long dataId) { + this.dataId = dataId; + } + + public Page getPage() { + return page; + } + + public void setPage(Page page) { + this.page = page; + } + + public List getDataIdList() { + return dataIdList; + } + + public void setDataIdList(List dataIdList) { + this.dataIdList = dataIdList; + } + + public EnhanceParam(Long dbFormId, Map params, List> list) { + this.dbFormId = dbFormId; + this.params = params; + this.list = list; + } + + public EnhanceParam(Long dbFormId, Map params, List> list, Long dataId, Page page, List dataIdList) { + this.dbFormId = dbFormId; + this.params = params; + this.list = list; + this.dataId = dataId; + this.page = page; + this.dataIdList = dataIdList; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceRespModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceRespModel.java new file mode 100644 index 0000000..8739e9b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceRespModel.java @@ -0,0 +1,56 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +/** + * @author JX + * @create 2024-08-16 16:32 + * @dedescription: + */ +public class EnhanceRespModel { + + private int status; + + private EnhanceContext data; + + private String message; + + public boolean checkStatus(){ + return this.status == 200; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public EnhanceContext getData() { + return data; + } + + public void setData(EnhanceContext data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceResult.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceResult.java new file mode 100644 index 0000000..dbc0db7 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/EnhanceResult.java @@ -0,0 +1,76 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-15 10:02 + * @dedescription: + */ +public class EnhanceResult implements Serializable { + private boolean exitFlag = false;//是否退出 + + //表单 + private String id; + + //列表 + private Long total; + private List> records; + + public boolean isExitFlag() { + return exitFlag; + } + + public void setExitFlag(boolean exitFlag) { + this.exitFlag = exitFlag; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } + + public List> getRecords() { + return records; + } + + public void setRecords(List> records) { + this.records = records; + } + + public EnhanceResult() { + } + + public EnhanceResult(boolean exitFlag, String id, Long total, List> records) { + this.exitFlag = exitFlag; + this.id = id; + this.total = total; + this.records = records; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEnum.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEnum.java new file mode 100644 index 0000000..0884f92 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEnum.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +/** + * @author JX + * @create 2024-08-16 14:03 + * @dedescription: + */ +public enum JavaEnhanceEnum { + + SPRING("spring"), + CLASS("class"), + ONLINIE("online_edit"), + HTTP("http"); + + private String type; + + JavaEnhanceEnum(String type) { + this.type = type; + } + + public String getType() { + return this.type; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEventState.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEventState.java new file mode 100644 index 0000000..33dac9d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/model/JavaEnhanceEventState.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.model; + +/** + * @author JX + * @create 2024-08-15 16:05 + * @dedescription: + */ +public enum JavaEnhanceEventState { + + START("start"), + END("end"), + AROUND("around"), + THROWING("throwing"); + + + private String name; + + JavaEnhanceEventState(String NAME) { + this.name = NAME; + } + + public String getName() { + return this.name; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AfterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AfterAdvicePlugin.java new file mode 100644 index 0000000..7950b60 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AfterAdvicePlugin.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; + +/** + * @author JX + * @create 2024-08-12 9:27 + * @dedescription: 后置增强插件 + */ +public interface AfterAdvicePlugin extends BaseAdvicePlugin { + + void execute(EnhanceContext enhanceContext); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AroundAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AroundAdvicePlugin.java new file mode 100644 index 0000000..0d9fe90 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/AroundAdvicePlugin.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; + +/** + * @author JX + * @create 2024-08-12 9:25 + * @dedescription: 环绕增强插件 + */ +public interface AroundAdvicePlugin extends BaseAdvicePlugin { + + void beforeExecute(EnhanceContext enhanceContext); + + void afterExecute(EnhanceContext enhanceContext); + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BaseAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BaseAdvicePlugin.java new file mode 100644 index 0000000..1217fa0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BaseAdvicePlugin.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; + +/** + * @author JX + * @create 2024-08-13 15:34 + * @dedescription: 基础增强插件 + */ +public interface BaseAdvicePlugin { + + default void execute(EnhanceContext enhanceContext){} +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BeforeAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BeforeAdvicePlugin.java new file mode 100644 index 0000000..1e9c927 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/BeforeAdvicePlugin.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; + +/** + * @author JX + * @create 2024-08-12 9:20 + * @dedescription: 前置增强插件 + */ +public interface BeforeAdvicePlugin extends BaseAdvicePlugin { + + void execute(EnhanceContext enhanceContext); + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/PluginManager.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/PluginManager.java new file mode 100644 index 0000000..353eadc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/PluginManager.java @@ -0,0 +1,71 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-12 9:38 + * @dedescription: + */ +public class PluginManager{ + + public static Map plugins = new HashMap<>(); + + + public static BaseAdvicePlugin getPlugin(String key){ + return plugins.get(key); + } + + public static BaseAdvicePlugin getPlugin(EnhanceJavaEntity entity){ + return plugins.get(entity.getJavaClassUrl()); + } + + + public static void addPlugin(String key, BaseAdvicePlugin plugin){ + plugins.put(key,plugin); + } + + public static void addPlugin(BaseAdvicePlugin plugin){ + plugins.put(plugin.getClass().getName(), plugin); + } + + public static boolean removePlugin(String name){ + plugins.remove(name); + return true; + } + + public static void executePlugin(String name, EnhanceContext enhanceContext){ + BaseAdvicePlugin plugin = plugins.get(name); + plugin.execute(enhanceContext); + } + + public static void executePlugin(BaseAdvicePlugin plugin, EnhanceContext enhanceContext){ + plugin.execute(enhanceContext); + } + + public static void executeAroundBeforePlugin(BaseAdvicePlugin plugin, EnhanceContext enhanceContext){ + AroundAdvicePlugin aroundPlugin = (AroundAdvicePlugin) plugin; + aroundPlugin.beforeExecute(enhanceContext); + } + public static void executeAroundAfterPlugin(BaseAdvicePlugin plugin, EnhanceContext enhanceContext){ + AroundAdvicePlugin aroundPlugin = (AroundAdvicePlugin) plugin; + aroundPlugin.afterExecute(enhanceContext); + } +} \ No newline at end of file diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/ThrowAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/ThrowAdvicePlugin.java new file mode 100644 index 0000000..a94549b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhance/plugin/ThrowAdvicePlugin.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhance.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; + +/** + * @author JX + * @create 2024-08-12 11:50 + * @dedescription: 异常增强插件 + */ +public interface ThrowAdvicePlugin extends BaseAdvicePlugin { + + void execute(EnhanceContext model); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/JeeLowCodeAnnotationAspectjReport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/JeeLowCodeAnnotationAspectjReport.java new file mode 100644 index 0000000..bb0b22e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/JeeLowCodeAnnotationAspectjReport.java @@ -0,0 +1,198 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.model.JavaEnhanceEnum; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.BuildEnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportParam; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportBaseAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportPluginManager; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.LocalVariableTableParameterNameDiscoverer; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 报表统计 + */ +@Aspect +@Component +@Slf4j +public class JeeLowCodeAnnotationAspectjReport { + + public final static String EXPRESSION = "execution(* com.jeelowcode.core.framework.service.impl.FrameServiceImpl.*(..))"; + + //拦截方法 + public final static String ASPECT_METHODNAME ="getReportDataList"; + + //需要处理的增强 key=报表code value=增强 + private static Map pluginNames = new HashMap<>(); + + @AfterReturning(value = EXPRESSION, returning = "returnVal") + public Object afterReturning(JoinPoint joinPoint, Object returnVal) throws Throwable { + //获取参数 + BuildEnhanceReportContext buildEnhanceContext = this.getContextAndPlugins(joinPoint); + if (FuncBase.isEmpty(buildEnhanceContext)) {//没有增强 + return returnVal; + } + + //不是列表类增强 + if (!(returnVal instanceof ResultDataModel)) { + return returnVal; + } + + //增强列表 + String javaClass = buildEnhanceContext.getJavaClass(); + if (Func.isEmpty(javaClass)) {//无增强 + return returnVal; + } + EnhanceReportContext context = buildEnhanceContext.getContext(); + + + //把原来返回值封装到上下文context + ResultDataModel resultDataModel = (ResultDataModel) returnVal; + List> records = resultDataModel.getRecords(); + if(Func.isEmpty(records)){ + records=new ArrayList<>(); + } + + EnhanceResult enhanceResult = new EnhanceResult(); + enhanceResult.setRecords(records); + enhanceResult.setTotal((long)records.size()); + context.getParam().setList(records); + context.setResult(enhanceResult); + + //执行增强 + this.executeJavaEnhance(javaClass, context); + + + //返回结果 + ResultDataModel returnValData = (ResultDataModel) returnVal; + resultDataModel = (ResultDataModel) getResult(context); + returnValData.setRecords(resultDataModel.getRecords()); + returnValData.setTotal(resultDataModel.getTotal()); + return returnValData; + + } + + public BuildEnhanceReportContext getContextAndPlugins(JoinPoint joinPoint) { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + // 获取方法名称 + String methodName = methodSignature.getName(); + if (Func.notEquals(methodName,ASPECT_METHODNAME)) {//不在拦截范围内 add + return null; + } + //处理参数 + Object[] args = joinPoint.getArgs(); + LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer(); + String[] parameterNames = discoverer.getParameterNames(methodSignature.getMethod()); + Map paramMap = new HashMap<>(); + for (int i = 0; i < parameterNames.length; i++) { + paramMap.put(parameterNames[i], args[i]); + } + + //判断该表单,当前的功能是否有增强 + String reportCode = (String) paramMap.get("reportCode"); + String javaClass = pluginNames.getOrDefault(reportCode, null); + if (Func.isEmpty(javaClass)) {//不存在增强 + return null; + } + + + EnhanceReportParam param = new EnhanceReportParam(); + param.setReportCode(reportCode); + param.setList((ArrayList) paramMap.getOrDefault("dataList", null)); + param.setParams((Map) paramMap.getOrDefault("params", null)); + + //把参数放入到上下文 + EnhanceReportContext context = new EnhanceReportContext(); + context.setParam(param); + + BuildEnhanceReportContext buildEnhanceContext = new BuildEnhanceReportContext(context, javaClass); + return buildEnhanceContext; + } + + //执行JAVA增强 + private void executeJavaEnhance(String javaClassUrl, EnhanceReportContext context) throws Throwable { + ReportBaseAdvicePlugin plugin = ReportPluginManager.getPlugin(javaClassUrl); + if (!(plugin instanceof ReportAfterAdvicePlugin)) { + return; + } + //执行 + ReportPluginManager.executePlugin(javaClassUrl, context); + } + + public Object getResult(EnhanceReportContext context) { + if (Func.isEmpty(context.getResult().getRecords()) && FuncBase.isEmpty(context.getResult().getId())) { + return ResultDataModel.fomat(0L, new ArrayList<>()); + } + + ResultDataModel resultDataModel = new ResultDataModel(); + resultDataModel.setRecords(context.getResult().getRecords()); + resultDataModel.setTotal(context.getResult().getTotal()); + resultDataModel.setExitFlag(context.getResult().isExitFlag()); + return resultDataModel; + } + + //刷新插件 + public static void refreshPlugin(String type,String reportCode,String javaClass){ + try { + if(Func.isEmpty(javaClass)){ + return; + } + + if(Func.equals(type,"ADD") ||Func.equals(type,"UPDATE")){ + JavaEnhanceEnum javaEnhanceEnum=javaClass.indexOf(".")>0?JavaEnhanceEnum.CLASS:JavaEnhanceEnum.SPRING; + if(Func.equals(javaEnhanceEnum,JavaEnhanceEnum.SPRING)){ + Object bean = SpringUtils.getBean(javaClass); + if (Func.isNotEmpty(bean) && bean instanceof ReportBaseAdvicePlugin) { + ReportPluginManager.addPlugin(javaClass, (ReportBaseAdvicePlugin) bean); + pluginNames.put(reportCode,javaClass); + } + }else{ + Class enhanceClass = Class.forName(javaClass); + ReportBaseAdvicePlugin plugin = (ReportBaseAdvicePlugin) enhanceClass.newInstance(); + ReportPluginManager.addPlugin(javaClass, plugin); + pluginNames.put(reportCode,javaClass); + } + }else if(Func.equals(type,"DEL")){ + pluginNames.remove(reportCode,javaClass); + if (!new HashSet<>(pluginNames.values()).contains(javaClass)) { + ReportPluginManager.removePlugin(javaClass); + } + } + + } catch (Exception e) { + //e.printStackTrace(); + throw new JeeLowCodeException("增强["+javaClass+"]插件加载失败"); + } + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/BuildEnhanceReportContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/BuildEnhanceReportContext.java new file mode 100644 index 0000000..849ea5c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/BuildEnhanceReportContext.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.model; + +/** + * @author JX + * @create 2024-08-15 15:46 + * @dedescription: + */ +public class BuildEnhanceReportContext { + + private EnhanceReportContext context; + + private String javaClass; + + public BuildEnhanceReportContext(EnhanceReportContext context, String javaClass) { + this.context = context; + this.javaClass = javaClass; + } + + public EnhanceReportContext getContext() { + return context; + } + + public void setContext(EnhanceReportContext context) { + this.context = context; + } + + public String getJavaClass() { + return javaClass; + } + + public void setJavaClass(String javaClass) { + this.javaClass = javaClass; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportContext.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportContext.java new file mode 100644 index 0000000..8bb3ceb --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportContext.java @@ -0,0 +1,87 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.model; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.config.aspect.enhance.model.BaseEnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.framework.utils.model.ResultDataModel; + +import java.io.*; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-12 9:14 + * @dedescription: 增强执行上下文 + */ +public class EnhanceReportContext extends BaseEnhanceContext implements Serializable{ + //参数 + private EnhanceReportParam param; + //结果 + private EnhanceResult result; + + + public EnhanceReportParam getParam() { + return param; + } + + public void setParam(EnhanceReportParam param) { + this.param = param; + } + + public EnhanceResult getResult() { + return result; + } + + public void setResult(EnhanceResult result) { + this.result = result; + } + + public void setResult(ResultDataModel resultDataModel){ + this.result.setExitFlag(resultDataModel.isExitFlag()); + this.result.setRecords(resultDataModel.getRecords()); + this.result.setTotal(resultDataModel.getTotal()); + } + + //通过序列化和反序列化实现深拷贝 + @Override + public EnhanceReportContext clone(){ + try { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + oos.writeObject(this); + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bis); + return (EnhanceReportContext) ois.readObject(); + } catch (IOException |ClassNotFoundException e ) { + e.printStackTrace(); + return null; + } + } + + public void setParam(String reportCode,Map params,List> list){ + this.param = new EnhanceReportParam(reportCode,params,list); + } + + public void setResult(boolean exitFlag,String id,Long total,List> records){ + this.result = new EnhanceResult(exitFlag,id,total,records); + } + + public void setParam(String reportCode, Map params, List> list, Long dataId, Page page, List dataIdList){ + this.param = new EnhanceReportParam(reportCode,params,list,dataId,page,dataIdList); + } +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportParam.java new file mode 100644 index 0000000..736357b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/model/EnhanceReportParam.java @@ -0,0 +1,106 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.model; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-15 10:02 + * @dedescription: + */ +public class EnhanceReportParam implements Serializable { + + private String reportCode; + + private Map params; + + private List> list; + + private Long dataId; + + private Page page; + + private List dataIdList; + + public String getReportCode() { + return reportCode; + } + + public void setReportCode(String reportCode) { + this.reportCode = reportCode; + } + + public Map getParams() { + return params; + } + + public void setParams(Map params) { + this.params = params; + } + + public List> getList() { + return list; + } + + public void setList(List> list) { + this.list = list; + } + + public EnhanceReportParam() { + } + + public Long getDataId() { + return dataId; + } + + public void setDataId(Long dataId) { + this.dataId = dataId; + } + + public Page getPage() { + return page; + } + + public void setPage(Page page) { + this.page = page; + } + + public List getDataIdList() { + return dataIdList; + } + + public void setDataIdList(List dataIdList) { + this.dataIdList = dataIdList; + } + + public EnhanceReportParam(String reportCode, Map params, List> list) { + this.reportCode = reportCode; + this.params = params; + this.list = list; + } + + public EnhanceReportParam(String reportCode, Map params, List> list, Long dataId, Page page, List dataIdList) { + this.reportCode = reportCode; + this.params = params; + this.list = list; + this.dataId = dataId; + this.page = page; + this.dataIdList = dataIdList; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportAfterAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportAfterAdvicePlugin.java new file mode 100644 index 0000000..8ff3f27 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportAfterAdvicePlugin.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; + +/** + * 报表统计 后置增强(报表统计专属) + */ +public interface ReportAfterAdvicePlugin extends ReportBaseAdvicePlugin { + + void execute(EnhanceReportContext enhanceContext); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportBaseAdvicePlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportBaseAdvicePlugin.java new file mode 100644 index 0000000..5cb5e9b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportBaseAdvicePlugin.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; + +/** + * @author JX + * @create 2024-08-13 15:34 + * @dedescription: 基础增强插件 + */ +public interface ReportBaseAdvicePlugin { + + default void execute(EnhanceReportContext enhanceContext){} +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportPluginManager.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportPluginManager.java new file mode 100644 index 0000000..7e89198 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/enhancereport/plugin/ReportPluginManager.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.enhancereport.plugin; + +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; + +import java.util.HashMap; +import java.util.Map; + + +public class ReportPluginManager { + + public static Map plugins = new HashMap<>(); + + + public static ReportBaseAdvicePlugin getPlugin(String key){ + return plugins.get(key); + } + + + public static void addPlugin(String key, ReportBaseAdvicePlugin plugin){ + plugins.put(key,plugin); + } + + public static void addPlugin(ReportBaseAdvicePlugin plugin){ + plugins.put(plugin.getClass().getName(), plugin); + } + + public static boolean removePlugin(String name){ + plugins.remove(name); + return true; + } + + public static void executePlugin(String name, EnhanceReportContext enhanceContext){ + ReportBaseAdvicePlugin plugin = plugins.get(name); + plugin.execute(enhanceContext); + } + + public static void executePlugin(ReportBaseAdvicePlugin plugin, EnhanceReportContext enhanceContext){ + plugin.execute(enhanceContext); + } + +} \ No newline at end of file diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/nologin/JeeLowCodeNoLoginViewDbFormAspect.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/nologin/JeeLowCodeNoLoginViewDbFormAspect.java new file mode 100644 index 0000000..910d543 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/aspect/nologin/JeeLowCodeNoLoginViewDbFormAspect.java @@ -0,0 +1,61 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.aspect.nologin; + +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.enums.AuthTypeEnum; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.stereotype.Component; + +/** + * 不登录是否可以查看dbform配置 + */ +@Aspect +@Component +public class JeeLowCodeNoLoginViewDbFormAspect { + + private ExpressionParser parser = new SpelExpressionParser(); + + @Autowired + private IFormService formService; + + @Around("@annotation(com.jeelowcode.framework.utils.annotation.JeeLowCodeNoLoginViewDbForm)") + public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable { + // 获取方法的参数 + Object[] args = joinPoint.getArgs(); + // 假设dbformId是第一个参数,你可以根据实际情况调整索引 + Long dbformId = (Long) args[0]; + if (Func.isEmpty(dbformId)) { + throw new JeeLowCodeException(FrameErrorCodeConstants.FRAME_PARAM_NULL_ERROR.getMsg()); + } + //判断该接口是否勾选 不登录可查看 + AuthTypeEnum authType = formService.getAuthType(dbformId); + + if (!Func.equals(authType, AuthTypeEnum.authOpen)) {//配置没有勾选,判断是否已经登录了 + throw new JeeLowCodeException(FrameErrorCodeConstants.FRAME_LOGIN_VIEW_ERROR.getMsg()); + } + + return joinPoint.proceed(); + } + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/ButtonInvoker.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/ButtonInvoker.java new file mode 100644 index 0000000..a714f8f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/ButtonInvoker.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand; + +import com.jeelowcode.core.framework.config.btncommand.button.IButtonCommand; + +/** + * 命令发起者 + */ +public class ButtonInvoker { + + private IButtonCommand buttonCommand; + + //发起命令 + public T executeCommand(){ + return (T)buttonCommand.execute(); + } + + public IButtonCommand getButtonCommand() { + return buttonCommand; + } + + public void setButtonCommand(IButtonCommand buttonCommand) { + this.buttonCommand = buttonCommand; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddBatchButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddBatchButtonCommand.java new file mode 100644 index 0000000..c4584a5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddBatchButtonCommand.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; + +import java.util.List; + +/** + * 具体命令-新增按钮命令 + */ +public class AddBatchButtonCommand implements IButtonCommand> { + //命令执行者 + private IButtonCommandReceiver> recevier; + + private String name = "批量新增"; + + /** + * 绑定执行者 + * @param recevier 执行者 + */ + public AddBatchButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * @return + */ + @Override + public List execute() { + return recevier.receiver(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddButtonCommand.java new file mode 100644 index 0000000..44e2dd4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/AddButtonCommand.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; + +/** + * 具体命令-新增按钮命令 + */ +public class AddButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "新增"; + + /** + * 绑定执行者 + * @param recevier 执行者 + */ + public AddButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExecuteEnhanceModel execute() { + return recevier.receiver(); + } + + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DefinableButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DefinableButtonCommand.java new file mode 100644 index 0000000..9ca6d75 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DefinableButtonCommand.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; + +/** + * 具体命令-分页按钮命令 + */ +public class DefinableButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "自定义"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public DefinableButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public Object execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DelButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DelButtonCommand.java new file mode 100644 index 0000000..5fa380c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DelButtonCommand.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; + +/** + * 具体命令-删除按钮命令 + */ +public class DelButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "删除"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public DelButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public ExecuteEnhanceModel execute() { + return recevier.receiver(); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DetailsButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DetailsButtonCommand.java new file mode 100644 index 0000000..b5bdf50 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/DetailsButtonCommand.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ResultDataModel; + +/** + * 具体命令-详情按钮命令 + */ +public class DetailsButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "详情"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public DetailsButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public ResultDataModel execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditBatchButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditBatchButtonCommand.java new file mode 100644 index 0000000..66f5387 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditBatchButtonCommand.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; + +/** + * 具体命令-编辑按钮命令 + */ +public class EditBatchButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "批量编辑"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public EditBatchButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public ExecuteEnhanceModel execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditButtonCommand.java new file mode 100644 index 0000000..b742551 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/EditButtonCommand.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; + +/** + * 具体命令-编辑按钮命令 + */ +public class EditButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "编辑"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public EditButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public ExecuteEnhanceModel execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportButtonCommand.java new file mode 100644 index 0000000..b5f557f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportButtonCommand.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.core.framework.params.model.ExcelModel; + +/** + * 具体命令-新增按钮命令 + */ +public class ExportButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "导出数据"; + + /** + * 绑定执行者 + * @param recevier 执行者 + */ + public ExportButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelModel execute() { + ExcelModel receiver = recevier.receiver(); + return receiver; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportTemplateButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportTemplateButtonCommand.java new file mode 100644 index 0000000..aedb018 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ExportTemplateButtonCommand.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; + +/** + * 具体命令-新增按钮命令 + */ +public class ExportTemplateButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "导出数据模板"; + + /** + * 绑定执行者 + * @param recevier 执行者 + */ + public ExportTemplateButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelTemplateModel execute() { + ExcelTemplateModel receiver = recevier.receiver(); + return receiver; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/IButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/IButtonCommand.java new file mode 100644 index 0000000..0ce955d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/IButtonCommand.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +/** + * 命令-所有具体命令都要实现该接口 + * @param + */ +public interface IButtonCommand { + //统一执行方法 + T execute(); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ImportButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ImportButtonCommand.java new file mode 100644 index 0000000..a3ef032 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ImportButtonCommand.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; + +/** + * 具体命令-新增按钮命令 + */ +public class ImportButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "导入"; + + /** + * 绑定执行者 + * @param recevier 执行者 + */ + public ImportButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelImportResultModel execute() { + ExcelImportResultModel receiver = recevier.receiver(); + return receiver; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ListButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ListButtonCommand.java new file mode 100644 index 0000000..c739c78 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/ListButtonCommand.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; +import com.jeelowcode.framework.utils.model.ResultDataModel; + +/** + * 具体命令-分页按钮命令 + */ +public class ListButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "分页"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public ListButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public ResultDataModel execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/SummaryButtonCommand.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/SummaryButtonCommand.java new file mode 100644 index 0000000..a2688d5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/button/SummaryButtonCommand.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.button; + +import com.jeelowcode.core.framework.config.btncommand.receiver.IButtonCommandReceiver; + +import java.util.Map; + +/** + * 具体命令-统计按钮命令 + */ +public class SummaryButtonCommand implements IButtonCommand { + //命令执行者 + private IButtonCommandReceiver recevier; + + private String name = "统计"; + + /** + * 绑定执行者 + * + * @param recevier 执行者 + */ + public SummaryButtonCommand(IButtonCommandReceiver recevier) { + this.recevier = recevier; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public Map execute() { + return recevier.receiver(); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinableButtonPlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinableButtonPlugin.java new file mode 100644 index 0000000..a9b1f66 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinableButtonPlugin.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.definable; + +/** + * 自定义按钮 + * @param 返回值 + * @param 参数 + */ +public interface DefinableButtonPlugin { + T execute(S param); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinablePluginManager.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinablePluginManager.java new file mode 100644 index 0000000..94e9123 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/definable/DefinablePluginManager.java @@ -0,0 +1,85 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.definable; + +import cn.hutool.cache.Cache; +import cn.hutool.cache.CacheUtil; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.core.framework.utils.Func; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +public class DefinablePluginManager { + + //从数据库读取,放入到map + public static Map allDefinableMap=new HashMap<>(); + + + //只保留最近10个常用的 + Cache cache = CacheUtil.newLRUCache(10); + + //初始化实例 + public static DefinableButtonPlugin initClazz(String clazzStr) { + try { + Class clazz = Class.forName(clazzStr); + DefinableButtonPlugin definableButtonPlugin = (DefinableButtonPlugin)clazz.newInstance();//实例化 + return definableButtonPlugin; + } catch (Exception e) { + throw new JeeLowCodeException(e.getMessage()); + } + } + + + //添加插件 + public void addPlugin(String key, DefinableButtonPlugin plugin) { + cache.put(key, plugin); + } + + //移除 + public void remove(String key) { + if (cache.containsKey(key)) { + cache.remove(key); + } + } + + public DefinableButtonPlugin getPlugin(String key) { + if (cache.containsKey(key)) { + return cache.get(key); + } + if(!allDefinableMap.containsKey(key)){ + log.error("自定义按钮控件不存在==》"+key); + return null; + } + + //没有在队列里面,则重新实例化 + String clazzUrl = allDefinableMap.get(key); + + addPlugin(key, initClazz(clazzUrl)); + return cache.get(key); + } + + //运行插件 + public Object executePlugin(String key,T param) { + DefinableButtonPlugin plugin = this.getPlugin(key); + if(Func.isEmpty(plugin)){ + return null; + } + return plugin.execute(param); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAdd.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAdd.java new file mode 100644 index 0000000..6b514cf --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAdd.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 新增按钮参数 + */ +@Data +public class ButtonParamAdd { + private Long dbFormId;//表单id + private Map params;//参数 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAddBatch.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAddBatch.java new file mode 100644 index 0000000..dbef0d5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamAddBatch.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import cn.hutool.json.JSONObject; +import lombok.Data; + +import java.util.List; + +/** + * 新增按钮参数 + */ +@Data +public class ButtonParamAddBatch { + private Long dbFormId;//表单id + private List dataMapList;//批量参数 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDefinable.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDefinable.java new file mode 100644 index 0000000..4a3c0d3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDefinable.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +/** + * 自定义按钮参数 + */ +@Data +public class ButtonParamDefinable { + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDel.java new file mode 100644 index 0000000..4d52c58 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDel.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.List; + +/** + * 删除按钮参数 + */ +@Data +public class ButtonParamDel { + private Long dbFormId; + private List dataIdList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDetail.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDetail.java new file mode 100644 index 0000000..46c583d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamDetail.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 新增按钮参数 + */ +@Data +public class ButtonParamDetail { + private Long dbFormId;//表单id + private Long dataId; + private Map params; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEdit.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEdit.java new file mode 100644 index 0000000..694074b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEdit.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 编辑按钮参数 + */ +@Data +public class ButtonParamEdit { + private Long dbFormId; + private Long dataId; + private Map params; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEditBatch.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEditBatch.java new file mode 100644 index 0000000..eb656b2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamEditBatch.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import cn.hutool.json.JSONObject; +import lombok.Data; + +import java.util.List; + +/** + * 编辑按钮参数 + */ +@Data +public class ButtonParamEditBatch { + private Long dbFormId; + private List jsonObjectList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExport.java new file mode 100644 index 0000000..496b877 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExport.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 导入按钮参数 + */ +@Data +public class ButtonParamExport { + private Long dbFormId;//表单id + private Map params ;//文参数 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExportTemplate.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExportTemplate.java new file mode 100644 index 0000000..d1631ef --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamExportTemplate.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +/** + * 导入按钮参数 + */ +@Data +public class ButtonParamExportTemplate { + private Long dbFormId;//表单id +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamImport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamImport.java new file mode 100644 index 0000000..98bb23e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamImport.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * 导入按钮参数 + */ +@Data +public class ButtonParamImport { + private String serviceType;//业务类型 IMPORT_TEMPLATE = 导入模版 HANBLE_TEMPLATE = 处理模版 + private Long dbFormId;//表单id + private String fileName; + private List> dataMapList;//数据列表 + private Long batchCode; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamList.java new file mode 100644 index 0000000..253d9d9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamList.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.Data; + +import java.util.Map; + +/** + * 分页按钮参数 + */ +@Data +public class ButtonParamList { + private Long dbFormId;//表单id + private Page page; + private Map params; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportExport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportExport.java new file mode 100644 index 0000000..7eaa8ad --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportExport.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 导入按钮参数 + */ +@Data +public class ButtonParamReportExport { + private String reportCode;//报表编码 + private Map params ;//文参数 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportList.java new file mode 100644 index 0000000..50e3317 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamReportList.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.Data; + +import java.util.Map; + +/** + * 分页按钮参数 + */ +@Data +public class ButtonParamReportList { + private String reportCode;//报表编号 + private Page page; + private Map params; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamSummary.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamSummary.java new file mode 100644 index 0000000..386e4b3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/param/ButtonParamSummary.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.param; + +import lombok.Data; + +import java.util.Map; + +/** + * 统计按钮参数 + */ +@Data +public class ButtonParamSummary { + private Long dbFormId;//表单id + private Map params; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAdd.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAdd.java new file mode 100644 index 0000000..320145b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAdd.java @@ -0,0 +1,58 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamAdd; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.Map; + +/** + * 新增按钮执行者 + */ +public class ButtonReceiverAdd implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamAdd param; + + public ButtonReceiverAdd(ButtonParamAdd param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExecuteEnhanceModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + + Long dbFormId = param.getDbFormId(); + Map paramMap = param.getParams(); + if(Func.isNotEmpty(paramMap)){ + paramMap.remove("id"); + } + + ExecuteEnhanceModel enhanceModel = frameService.saveData(dbFormId, paramMap); + + return enhanceModel; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAddBatch.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAddBatch.java new file mode 100644 index 0000000..144ce23 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverAddBatch.java @@ -0,0 +1,58 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import cn.hutool.json.JSONObject; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamAddBatch; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.List; + +/** + * 新增按钮执行者 + */ +public class ButtonReceiverAddBatch implements IButtonCommandReceiver> { + + + private String pluginKey; + + private ButtonParamAddBatch param; + + public ButtonReceiverAddBatch(ButtonParamAddBatch param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public List receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + + Long dbFormId = param.getDbFormId(); + List jsonList = param.getDataMapList(); + for(JSONObject jsonObject:jsonList){ + jsonObject.remove("id"); + } + + List idList = frameService.saveBatchData(dbFormId, jsonList); + + + return idList; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverBase.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverBase.java new file mode 100644 index 0000000..ae4f908 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverBase.java @@ -0,0 +1,198 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.virtualization.VirtualizationFieldPluginManager; +import com.jeelowcode.core.framework.entity.FormFieldWebEntity; +import com.jeelowcode.core.framework.mapper.FormFieldWebMapper; +import com.jeelowcode.core.framework.params.model.WebFormatConfigModel; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.utils.Func; +import org.apache.commons.collections4.map.LinkedMap; + +import java.util.*; +import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; + +/** + * 公共 + */ +public class ButtonReceiverBase { + + //移除不是导入项目 + public void removeNotExport(LinkedMap headTitleMap, List roleFieldVoList) { + if(Func.isEmpty(roleFieldVoList)){ + return; + } + Map roleDisableMap =roleFieldVoList.stream() + .collect(Collectors.toMap(DbFormRoleFieldVo::getFieldCode, entity -> entity)); + + Iterator> iterator = headTitleMap.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + String key = entry.getKey(); + if(roleDisableMap.containsKey(key)){//存在权限问题 + DbFormRoleFieldVo roleVo = roleDisableMap.get(key); + //如果全部为空话,看最大的那个,最大的那个为N说明是没有权限,需要剔除 + if(Func.isEmpty(roleVo.getFormIsEdit()) && Func.isEmpty(roleVo.getFormIsView()) && Func.isEmpty(roleVo.getListIsView())&&Func.equals(roleVo.getEnableState(), YNEnum.N.getCode())){ + iterator.remove(); + } + } + } + } + /** + * + * 移除不是界面显示的列表-列表数据 + * + * @param records + */ + public void removeNotWebView(Long dbFormId, List> records,List roleFieldVoList) { + if (Func.isEmpty(records)) { + return; + } + Map roleDisableMap =null; + if(Func.isNotEmpty(roleFieldVoList)){ + //转为map + roleDisableMap = roleFieldVoList.stream() + .collect(Collectors.toMap(DbFormRoleFieldVo::getFieldCode, entity -> entity)); + } + + IFormService formService = SpringUtils.getBean(IFormService.class); + Set webViewFieldSet = new HashSet<>(formService.getWebViewFieldList(dbFormId)); + + Map finalRoleDisableMap = roleDisableMap; + try { + Func.jeelowcodeForkJoinPool().submit(() -> records.parallelStream().forEach(recordMap -> recordMap.keySet().removeIf(key -> { + if(Func.equals(key,"jeelowcode_subtable_data") || Func.equals(key,"hasChildren") || Func.equals(key,"leaf")){ + return false; + } + boolean noRoleFlag=false; + if(Func.isNotEmpty(finalRoleDisableMap) && finalRoleDisableMap.containsKey(key)){ + DbFormRoleFieldVo roleVo = finalRoleDisableMap.get(key); + //如果全部为空话,看最大的那个,最大的那个为N说明是没有权限,需要剔除 + if(Func.isEmpty(roleVo.getFormIsEdit()) && Func.isEmpty(roleVo.getFormIsView()) && Func.isEmpty(roleVo.getListIsView())&&Func.equals(roleVo.getEnableState(),YNEnum.N.getCode())){ + noRoleFlag=true; + } + } + return !webViewFieldSet.contains(key) || noRoleFlag; + }))).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + } + + /** + * 处理字段凭接(虚拟化字段) + * + * @param dbFormId + * @param records + */ + public void webViewAppend(Long dbFormId, List> records) { + FormFieldWebMapper fieldWebMapper = SpringUtils.getBean(FormFieldWebMapper.class); + + // 获取表单的字段对应的字典 + IFormService formService = SpringUtils.getBean(IFormService.class); + Map> fieldDictMap = formService.getFieldDict(dbFormId); + + List webEntityList = fieldWebMapper.webEntityListAndFormatConfigIsNotNull(dbFormId); + webEntityList.stream().forEach(web->{ + String fieldCode = web.getFieldCode(); + String formatConfig = web.getFormatConfig(); + if(Func.isEmpty(formatConfig)){ + return; + } + WebFormatConfigModel webFormatConfigModel = Func.json2Bean(formatConfig, WebFormatConfigModel.class); + if(Func.isEmpty(webFormatConfigModel)){ + return; + } + String formatType = webFormatConfigModel.getFormatType(); + if(Func.isEmpty(formatType) || !Func.equals(formatType,"java")){ + return; + } + WebFormatConfigModel.Json formatJson= webFormatConfigModel.getFormatJson(); + WebFormatConfigModel.JavaModel javaModel = formatJson.getJava(); + String valueType = javaModel.getValueType(); + List groupList = javaModel.getGroup(); + WebFormatConfigModel.JavaCustom custom = javaModel.getCustom(); + switch (valueType){ + case "group"://表达式 + records.stream().forEach(record -> { + record.put(fieldCode, this.getGroupVal(fieldDictMap, groupList, new HashMap<>(record))); + }); + break; + case "custom": + records.stream().forEach(record -> { + //运行插件 + String result = VirtualizationFieldPluginManager.executePlugin(custom.getJavaPath(), new HashMap<>(record)); + record.put(fieldCode, result); + }); + break; + } + }); + } + + + //获取分组 + private String getGroupVal(Map> fieldDictMap, List groupList, Map dataMap) { + this.replaceDict(fieldDictMap, dataMap);// 替换字典值 + String formatVal = ""; // 用于存储格式化后的值 + for (WebFormatConfigModel.JavaGroup group : groupList) { + String value = group.getValue(); + String type = group.getType(); + if(Func.isEmpty(value)){ + continue; + } + switch (type) { + case "CONCAT": + formatVal += value; + break; + case "CALCULATE": + formatVal += Func.executeJavaExpress(value, dataMap); + break; + } + } + return formatVal; + } + + /** + * 替换字典值 + */ + private void replaceDict(Map> fieldDictMap, Map dataMap){ + if (Func.isEmpty(fieldDictMap) || Func.isEmpty(dataMap)) { + return; + } + fieldDictMap.keySet().stream().forEach(field -> { + Object oldValue = dataMap.get(field); + if (Func.isEmpty(oldValue)) { + return; + } + Map dictMap = fieldDictMap.get(field); + if (Func.isEmpty(dictMap)) { + return; + } + Object newValue = dictMap.get(oldValue.toString()); + if (Func.isEmpty(newValue)) { + return; + } + dataMap.put(field, newValue); + }); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDefinable.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDefinable.java new file mode 100644 index 0000000..9caf05f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDefinable.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.core.framework.config.btncommand.definable.DefinablePluginManager; + +/** + * 自定义按钮执行者 + */ +public class ButtonReceiverDefinable implements IButtonCommandReceiver { + + + private String pluginKey; + + private Object param; + + public ButtonReceiverDefinable(String pluginKey, Object param) { + this.pluginKey = pluginKey; + this.param = param; + + } + + /** + * 执行命令 + * @return + */ + @Override + public Object receiver() { + DefinablePluginManager definablePluginManager=new DefinablePluginManager(); + return definablePluginManager.executePlugin(pluginKey, param); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDel.java new file mode 100644 index 0000000..7e61d3f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDel.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamDel; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 删除按钮执行者 + */ +public class ButtonReceiverDel implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamDel param; + + public ButtonReceiverDel(ButtonParamDel param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExecuteEnhanceModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + Long dbformId = param.getDbFormId(); + List dataIdList = param.getDataIdList(); + + Map params=new HashMap<>(); + params.put("dataIdList",dataIdList); + params.put("whereFieldCode","id"); + + //逻辑删除 + ExecuteEnhanceModel enhanceModel = frameService.delData(dbformId, params); + return enhanceModel; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDetail.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDetail.java new file mode 100644 index 0000000..7d75e30 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverDetail.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamDetail; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.List; +import java.util.Map; + +/** + * 详情按钮执行者 + */ +public class ButtonReceiverDetail extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamDetail param; + + public ButtonReceiverDetail(ButtonParamDetail param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ResultDataModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + IDbFormRoleService dbFormRoleService = SpringUtils.getBean(IDbFormRoleService.class); + IJeeLowCodeAdapter jeeLowCodeAdapter = SpringUtils.getBean(IJeeLowCodeAdapter.class); + String tenantId = jeeLowCodeAdapter.getTenantId(); + + Long dbformId = param.getDbFormId(); + Long dataId = param.getDataId(); + Map params = param.getParams(); + + List roleFieldVoList = dbFormRoleService.listRoleField(tenantId, dbformId,false); + + ResultDataModel resultDataModel = frameService.getDataDetail(dbformId, dataId, params); + super.webViewAppend(dbformId,resultDataModel.getRecords()); + super.removeNotWebView(dbformId,resultDataModel.getRecords(),roleFieldVoList); + return resultDataModel; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEdit.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEdit.java new file mode 100644 index 0000000..c1d84dd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEdit.java @@ -0,0 +1,52 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamEdit; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.Map; + +/** + * 编辑按钮执行者 + */ +public class ButtonReceiverEdit implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamEdit param; + + public ButtonReceiverEdit(ButtonParamEdit param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExecuteEnhanceModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + Long dbformId = param.getDbFormId(); + Long dataId = param.getDataId(); + Map params = param.getParams(); + + ExecuteEnhanceModel enhanceModel = frameService.editData(dbformId, dataId, params); + + return enhanceModel; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEditBatch.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEditBatch.java new file mode 100644 index 0000000..c0084be --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverEditBatch.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import cn.hutool.json.JSONObject; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamEditBatch; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.List; + +/** + * 编辑按钮执行者 + */ +public class ButtonReceiverEditBatch implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamEditBatch param; + + public ButtonReceiverEditBatch(ButtonParamEditBatch param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExecuteEnhanceModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + Long dbformId = param.getDbFormId(); + List jsonObjectList = param.getJsonObjectList(); + frameService.editBatchData(dbformId, jsonObjectList); + return null; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExport.java new file mode 100644 index 0000000..df4a0bc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExport.java @@ -0,0 +1,83 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamExport; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IExcelService; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.service.IFrameService; + +import java.util.List; +import java.util.Map; + +/** + * 新增按钮执行者 + */ +public class ButtonReceiverExport extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamExport param; + + public ButtonReceiverExport(ButtonParamExport param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelModel receiver() { + IExcelService excelService = SpringUtils.getBean(IExcelService.class); + IFormService formService = SpringUtils.getBean(IFormService.class); + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + IDbFormRoleService dbFormRoleService = SpringUtils.getBean(IDbFormRoleService.class); + IJeeLowCodeAdapter jeeLowCodeAdapter = SpringUtils.getBean(IJeeLowCodeAdapter.class); + + + String tenantId = jeeLowCodeAdapter.getTenantId(); + + Long dbFormId = param.getDbFormId(); + Map params = param.getParams(); + + ResultDataModel model = frameService.getExportDataList(dbFormId, params); + //数据 + List> dataMapList = model.getRecords(); + //格式化数据,转为字符串 + formService.formatDataList(dbFormId,dataMapList); + + //处理权限问题 + List roleFieldVoList = dbFormRoleService.listRoleField(tenantId, dbFormId,false); + super.webViewAppend(dbFormId,dataMapList);//格式化 + super.removeNotWebView(dbFormId,dataMapList,roleFieldVoList); + + //获取基本信息 + ExcelModel excelModel = excelService.getExcelModel(dbFormId); + excelModel.setDataMapList(dataMapList); + + //剔除表头 + super.removeNotExport(excelModel.getHeadTitleMap(),roleFieldVoList); + return excelModel; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExportTemplate.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExportTemplate.java new file mode 100644 index 0000000..18f30a4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverExportTemplate.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamExportTemplate; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IExcelService; +import org.apache.commons.collections4.map.LinkedMap; + +import java.util.List; + +/** + * 导出模板按钮执行者 + */ +public class ButtonReceiverExportTemplate extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamExportTemplate param; + + public ButtonReceiverExportTemplate(ButtonParamExportTemplate param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelTemplateModel receiver() { + IExcelService excelService = SpringUtils.getBean(IExcelService.class); + IDbFormRoleService dbFormRoleService = SpringUtils.getBean(IDbFormRoleService.class); + IJeeLowCodeAdapter jeeLowCodeAdapter = SpringUtils.getBean(IJeeLowCodeAdapter.class); + String tenantId = jeeLowCodeAdapter.getTenantId(); + + Long dbFormId = param.getDbFormId(); + ExcelTemplateModel excelTemplateModel = excelService.getExportExcelTemplate(dbFormId); + LinkedMap headTitleMap = excelTemplateModel.getHeadTitleMap(); + + List roleFieldVoList = dbFormRoleService.listRoleField(tenantId, dbFormId,false); + super.removeNotExport(headTitleMap,roleFieldVoList); + return excelTemplateModel; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverImport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverImport.java new file mode 100644 index 0000000..1b9df17 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverImport.java @@ -0,0 +1,79 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamImport; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; +import com.jeelowcode.core.framework.service.IExcelFileService; +import com.jeelowcode.core.framework.service.IExcelService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * 新增按钮执行者 + */ +public class ButtonReceiverImport implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamImport param; + + public ButtonReceiverImport(ButtonParamImport param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + + @Override + public ExcelImportResultModel receiver() { + IExcelService excelService = SpringUtils.getBean(IExcelService.class); + IExcelFileService excelFileService = SpringUtils.getBean(IExcelFileService.class); + + // 将request设置为子线程共享 + ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + ExcelImportResultModel resultModel=null; + //保存Excel数据 + String serviceType = param.getServiceType(); + switch (serviceType){ + case "IMPORT_TEMPLATE"://导入excel到临时库 + long fileId = IdWorker.getId(); + excelFileService.saveExcelSync(fileId,param); + + resultModel = new ExcelImportResultModel(); + resultModel.setBatchCode(Func.toStr(fileId)); + resultModel.setDbFormId(param.getDbFormId()); + resultModel.setTotalCou(param.getDataMapList().size()); + resultModel.setFileId(fileId); + break; + case "HANBLE_TEMPLATE"://处理临时库数据 + excelService.handleTempTable(sra,param.getDbFormId(),param.getBatchCode()); + break; + + } + + return resultModel; + } + + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverList.java new file mode 100644 index 0000000..4b9e07a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverList.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamList; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IFrameService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.List; +import java.util.Map; + +/** + * 编辑按钮执行者 + */ +public class ButtonReceiverList extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamList param; + + public ButtonReceiverList(ButtonParamList param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ResultDataModel receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + IDbFormRoleService dbFormRoleService = SpringUtils.getBean(IDbFormRoleService.class); + IJeeLowCodeAdapter jeeLowCodeAdapter = SpringUtils.getBean(IJeeLowCodeAdapter.class); + String tenantId = jeeLowCodeAdapter.getTenantId(); + + + Long dbformId = param.getDbFormId(); + Map params = param.getParams(); + Page page = param.getPage(); + ResultDataModel resultDataModel = frameService.getDataList(dbformId, page, params); + + List roleFieldVoList = dbFormRoleService.listRoleField(tenantId, dbformId,false); + super.webViewAppend(dbformId,resultDataModel.getRecords());//格式化 + super.removeNotWebView(dbformId,resultDataModel.getRecords(),roleFieldVoList); + return resultDataModel; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportExport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportExport.java new file mode 100644 index 0000000..68e773e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportExport.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamReportExport; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.service.IExcelService; +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; + +import java.util.Map; + +/** + * 新增按钮执行者 + */ +public class ButtonReceiverReportExport extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamReportExport param; + + public ButtonReceiverReportExport(ButtonParamReportExport param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ExcelModel receiver() { + IExcelService excelService = SpringUtils.getBean(IExcelService.class); + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + + String reportCode = param.getReportCode(); + Map params = param.getParams(); + + //数据列表 + Page page=new Page(1,-1); + ResultDataModel model = frameService.getReportDataList(reportCode, page,params); + + //获取基本信息 + ExcelModel excelModel = excelService.getExcelReportModel(reportCode); + excelModel.setDataMapList(model.getRecords()); + + return excelModel; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportList.java new file mode 100644 index 0000000..ce66792 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverReportList.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamReportList; +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; + +import java.util.Map; + +/** + * 数据报表分页执行者 + */ +public class ButtonReceiverReportList extends ButtonReceiverBase implements IButtonCommandReceiver { + + + private String pluginKey; + + private ButtonParamReportList param; + + public ButtonReceiverReportList(ButtonParamReportList param) { + this.param = param; + } + + /** + * 执行命令 + * @return + */ + @Override + public ResultDataModel receiver() { + + String reportCode = param.getReportCode(); + Page page = param.getPage(); + Map params = param.getParams(); + + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + ResultDataModel reportDataPage = frameService.getReportDataList(reportCode, page, params); + return reportDataPage; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverSummary.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverSummary.java new file mode 100644 index 0000000..4ba0c93 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/ButtonReceiverSummary.java @@ -0,0 +1,65 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamSummary; +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.core.framework.utils.Func; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 统计按钮执行者 + */ +public class ButtonReceiverSummary implements IButtonCommandReceiver> { + + + private String pluginKey; + + private ButtonParamSummary param; + + public ButtonReceiverSummary(ButtonParamSummary param) { + this.param = param; + } + + /** + * 执行命令 + * + * @return + */ + @Override + public Map receiver() { + IFrameService frameService = SpringUtils.getBean(IFrameService.class); + Long dbformId = param.getDbFormId(); + Map params = param.getParams(); + ResultDataModel resultDataModel = frameService.getDataSummaryList(dbformId, params); + + Map resultMap = new HashMap<>(); + if(Func.isEmpty(resultDataModel)){ + return resultMap; + } + List> dataMapList = resultDataModel.getRecords(); + if (Func.isEmpty(dataMapList)) {//数据为空 + return resultMap; + } + return dataMapList.get(0); + } + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/IButtonCommandReceiver.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/IButtonCommandReceiver.java new file mode 100644 index 0000000..e47c60a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/btncommand/receiver/IButtonCommandReceiver.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.btncommand.receiver; + +/** + * 按钮执行者 + * @param 返回值 + */ +public interface IButtonCommandReceiver { + + /** + * 执行 + * @return + */ + T receiver(); + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/ClearExcelDataJob.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/ClearExcelDataJob.java new file mode 100644 index 0000000..66643ff --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/ClearExcelDataJob.java @@ -0,0 +1,58 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.job; + +import cn.hutool.core.date.DateUtil; +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import com.jeelowcode.core.framework.service.IJeeLowCodeConfigService; +import com.jeelowcode.core.framework.service.IJeeLowCodeService; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * 删除excel临时表数据 + */ +@Component +@Slf4j +public class ClearExcelDataJob implements JobHandler { + + @Autowired + private IJeeLowCodeService jeeLowCodeService; + + @Autowired + private IJeeLowCodeConfigService jeeLowCodeConfigService; + + + @Override + @JeeLowCodeTenantIgnore + public String execute(String param) { + log.info("*********** 开始清理Excel Data日志 ************"); + Date now = DateUtil.date(); + Integer day = jeeLowCodeConfigService.getExcelFileDataDay(); + + //x天之前 + Date clearDate = DateUtil.offsetDay(now, -day); + + Integer clearCou = jeeLowCodeService.clearExcelData(clearDate); + + String resultStr="*********** Excel Data日志清理完成,共清理了"+clearCou+"条 ************"; + log.info(resultStr); + return resultStr; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/SaveModelUsageRecordsJob.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/SaveModelUsageRecordsJob.java new file mode 100644 index 0000000..62659c1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/job/SaveModelUsageRecordsJob.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.job; + +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import com.jeelowcode.core.framework.service.IJeeLowCodeService; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 保存模块使用记录 + */ +@Slf4j +@Component("saveModelUsageRecordsJob") +public class SaveModelUsageRecordsJob implements JobHandler { + + @Autowired + private IJeeLowCodeService jeeLowCodeService; + + @Override + @JeeLowCodeTenantIgnore + public String execute(String param) { + log.info("*********** 开始保存模块使用记录 ************"); + Integer cou = jeeLowCodeService.saveModelUsageRecords(); + String resultStr = "*********** 保存模块使用记录完成,共保存了" + cou + "条 ************"; + log.info(resultStr); + return resultStr; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/listener/JeeLowCodeListener.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/listener/JeeLowCodeListener.java new file mode 100644 index 0000000..c464ecf --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/listener/JeeLowCodeListener.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.listener; + +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.service.IReportService; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import groovy.lang.GroovyClassLoader; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + + +@Slf4j +@Order(value = 999) +@Component +public class JeeLowCodeListener implements ApplicationListener { + + @Autowired + JeeLowCodeRedisUtils redisUtil; + + @Autowired + private IFormService dbFormService; + + @Autowired + private IReportService reportService; + + public GroovyClassLoader groovyClassLoader = new GroovyClassLoader(); + + public GroovyClassLoader getGroovyClassLoader() { + return groovyClassLoader; + } + + @Override + public void onApplicationEvent(ContextRefreshedEvent event) { + + //初始化自定义按钮 + dbFormService.initConfigBtnCommand(); + log.info("1.初始化自定义按钮--->完成"); + // 容器启动完成后清除框架缓存 + dbFormService.cleanCache(); + log.info("2.清除框架缓存--->完成"); + //初始化在线编辑脚本 + dbFormService.initOnlineScript(groovyClassLoader); + log.info("3.初始化在线脚本--->完成"); + //初始化增强插件 + dbFormService.initEnhancePluginManager(); + log.info("4.初始化增强--->完成"); + reportService.initEnhancePluginManager(); + log.info("5.初始化报表增强--->完成"); + } + + +} \ No newline at end of file diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogAspect.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogAspect.java new file mode 100644 index 0000000..bafce88 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogAspect.java @@ -0,0 +1,193 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.log; + + + +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import com.jeelowcode.core.framework.adapter.YudaoAdapter; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.exception.JeeLowCodeMoreException; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.core.framework.params.model.LogRequestApiModel; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.Method; +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 请求日志切面 + */ +@Slf4j +@Aspect +@Component +public class ApiLogAspect { + + + + // JeeLowCode + @Pointcut("execution(* com.jeelowcode.core.framework.controller.*Controller.*(..)))") + private void pointcutJeeLowCode() {} + + // 芋道 + @Pointcut("@annotation(io.swagger.v3.oas.annotations.Operation)") + private void pointcutYudao() {} + + + /** + * 切入点是所有控制住 + * @param point + * @return + * @throws Throwable + */ + @Around("pointcutJeeLowCode()||pointcutYudao()") + public Object around(ProceedingJoinPoint point) throws Throwable { + //获取类名 + String className = point.getTarget().getClass().getName(); + //获取方法 + String methodName = point.getSignature().getName(); + + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + Operation operation = method.getAnnotation(Operation.class); + String modelName="其他模块"; + if(Func.isNotEmpty(operation) && Func.isNotEmpty(operation.tags())){ + modelName =operation.tags()[0]; + } + + String apiName="请求日志"; + if(Func.isNotEmpty(operation) && Func.isNotEmpty(operation.summary())){ + apiName =operation.summary(); + } + if (Func.equals("刷新令牌", apiName)){ + return point.proceed(); + } + + // 发送异步日志事件 + long beginTime = System.currentTimeMillis(); + + LogRequestApiModel logApiModel = getRequestParam(methodName, className, apiName,modelName); + //执行方法 + String error=""; + try{ + return point.proceed(); + }catch (JeeLowCodeMoreException e){ + String message = e.getMessage(); + Map map = Func.json2Bean(message, Map.class); + String title = map.get("title"); + String e1 = map.get("e"); + error=getErrorStr(e); + throw new JeeLowCodeMoreException(title,e1); + }catch (JeeLowCodeException e){ + error=getErrorStr(e); + throw new JeeLowCodeException(e.getMessage()); + }catch (Exception e){ + error=getErrorStr(e); + throw e; + }finally { + //执行时长(毫秒) + long time = System.currentTimeMillis() - beginTime; + //记录日志 + this.publishEvent(logApiModel, time,error); + } + + } + + //获取具体错误信息 + private static String getErrorStr(Exception e){ + StringBuffer sb=new StringBuffer(); + sb.append(e).append("\r\n"); + StackTraceElement[] trace = e.getStackTrace(); + for (StackTraceElement traceElement : trace){ + sb.append("\tat ").append(traceElement).append("\r\n"); + } + return sb.toString(); + } + + private static LogRequestApiModel getRequestParam(String methodName, String methodClass, String title,String modelTitle) { + try{ + HttpServletRequest request = FuncWeb.getRequest(); + ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request); + + YudaoAdapter jeeLowCodeAdapter = SpringUtils.getBean(YudaoAdapter.class); + + String tenantId =""; + try{ + tenantId = jeeLowCodeAdapter.getTenantId(); + }catch (Exception e){ + + } + String onlineUserId = jeeLowCodeAdapter.getOnlineUserId(); + + LogRequestApiModel logApiModel=new LogRequestApiModel(); + logApiModel.setId(IdWorker.getId()); + logApiModel.setTenantId(tenantId); + logApiModel.setCreateUser(FuncBase.toLong(onlineUserId)); + logApiModel.setCreateUserName(jeeLowCodeAdapter.getOnlineUserName()); + logApiModel.setCreateTime(LocalDateTime.now()); + + logApiModel.setIp(ServletUtils.getClientIP(request));//ip + logApiModel.setTitle(title); + logApiModel.setModelTitle(modelTitle);//模块名称 + logApiModel.setMethodName(methodName);//方法名称 + logApiModel.setMethodClass(methodClass);//类名称 + logApiModel.setRequestUri(FuncWeb.getPath(requestWrapper.getRequestURI()));//请求url + logApiModel.setRequestParams(FuncWeb.getRequestParams(requestWrapper));//请求参数 + logApiModel.setRequestMethod(requestWrapper.getMethod());//请求方式 + + + return logApiModel; + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + private static void publishEvent(LogRequestApiModel logApiModel, long time, String error) { + try{ + if(FuncBase.isEmpty(logApiModel)){ + return; + } + String requestUri = logApiModel.getRequestUri(); + if(Func.equals(requestUri, JeeLowCodeBaseConstant.REQUEST_URL_START+"/apilog/page") || Func.equals(requestUri,JeeLowCodeBaseConstant.REQUEST_URL_START+"/apilog/detail")){ + return;//本身查看 + } + + + logApiModel.setTime(time);//耗时 + logApiModel.setError(error); + + SpringUtils.getApplicationContext().publishEvent(new ApiLogEvent(logApiModel)); + }catch (Exception e){ + e.printStackTrace(); + } + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogEvent.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogEvent.java new file mode 100644 index 0000000..f204109 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogEvent.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.log; + +import com.jeelowcode.core.framework.params.model.LogRequestApiModel; +import org.springframework.context.ApplicationEvent; + +public class ApiLogEvent extends ApplicationEvent { + + public ApiLogEvent(LogRequestApiModel model) { + super(model); + } +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogListener.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogListener.java new file mode 100644 index 0000000..93cec8a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/log/ApiLogListener.java @@ -0,0 +1,65 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.log; + +import cn.hutool.core.bean.BeanUtil; +import com.jeelowcode.core.framework.entity.LogRequestApiEntity; +import com.jeelowcode.core.framework.entity.LogRequestErrorApiEntity; +import com.jeelowcode.core.framework.mapper.LogApiErrorMapper; +import com.jeelowcode.core.framework.mapper.LogApiMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.core.framework.params.model.LogRequestApiModel; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +/** + * 异步监听日志事件 + * + * @author Chill + */ +@Component +@Slf4j +@AllArgsConstructor +public class ApiLogListener { + + + @Autowired + private LogApiMapper logApiMapper; + + @Autowired + private LogApiErrorMapper logApiErrorMapper; + + @Async("asyncPoolTaskExecutor") + @Order + @EventListener(ApiLogEvent.class) + public void saveApiLog(ApiLogEvent event) { + LogRequestApiModel apiModel =(LogRequestApiModel)event.getSource(); + String error = apiModel.getError(); + if(Func.isEmpty(error)){//正常日志 + LogRequestApiEntity infoEntity = BeanUtil.copyProperties(apiModel, LogRequestApiEntity.class); + logApiMapper.insert(infoEntity); + }else{//错误日志 + LogRequestErrorApiEntity errorEntity = BeanUtil.copyProperties(apiModel, LogRequestErrorApiEntity.class); + logApiErrorMapper.insert(errorEntity); + } + + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/DbFormCopyValidate.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/DbFormCopyValidate.java new file mode 100644 index 0000000..59d3adf --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/DbFormCopyValidate.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.validate; + +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeelowCodeValidate; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; +import java.util.StringJoiner; + +/** + * 校验表名是否合法 + */ +@Component +public class DbFormCopyValidate implements IJeelowCodeValidate { + + @Lazy + @Autowired + private IFrameService frameService; + + @Override + public void validate(HttpServletRequest req) throws JeeLowCodeException { + Map parameterMap = FuncWeb.getParameterMap(req); + String tableName = JeeLowCodeUtils.getMap2Str(parameterMap, "tableName"); + + if (FuncBase.isEmpty(tableName)) { + throw new JeeLowCodeException("表名不允许为空"); + } + + if (!Func.checkTableName(tableName)) { + StringJoiner joiner = new StringJoiner(","); + JeeLowCodeProperties.getExcludeTableNames().forEach(joiner::add); + String errorMsg = joiner.toString(); + throw new JeeLowCodeException(String.format("表名称不允许以【%s】开头", errorMsg)); + } + //校验表名是否重复 + if (frameService.checkTable(tableName)) { + String errorStr = String.format("数据库表【%s】已存在", tableName); + throw new JeeLowCodeException(errorStr); + } + + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/ReportCopyValidate.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/ReportCopyValidate.java new file mode 100644 index 0000000..685e98f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/ReportCopyValidate.java @@ -0,0 +1,61 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.validate; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.core.framework.service.IReportService; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeelowCodeValidate; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * 校验表名是否合法 + */ +@Component +public class ReportCopyValidate implements IJeelowCodeValidate { + + @Lazy + @Autowired + private IReportService reportService; + + @Override + public void validate(HttpServletRequest req) throws JeeLowCodeException { + Map parameterMap = FuncWeb.getParameterMap(req); + String reportCode = JeeLowCodeUtils.getMap2Str(parameterMap, "reportCode"); + + if (FuncBase.isEmpty(reportCode)) { + throw new JeeLowCodeException("报表编号不允许为空"); + } + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(ReportEntity::getReportCode,reportCode); + long count = reportService.count(wrapper); + + //校验表名是否重复 + if (count>0) { + String errorStr = String.format("报表编号【%s】已存在", reportCode); + throw new JeeLowCodeException(errorStr); + } + + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/TableNameValidate.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/TableNameValidate.java new file mode 100644 index 0000000..8bdabd1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/validate/TableNameValidate.java @@ -0,0 +1,60 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.validate; + +import com.jeelowcode.core.framework.params.DbFormAddOrUpdateParam; +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeelowCodeValidate; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.StringJoiner; + +/** + * 校验表名是否合法 + */ +@Component +public class TableNameValidate implements IJeelowCodeValidate { + + @Autowired + private IFrameService frameService; + + @Override + public void validate(HttpServletRequest req) throws JeeLowCodeException { + DbFormAddOrUpdateParam param = FuncWeb.getParameterBodyObj(req, DbFormAddOrUpdateParam.class); + String tableName = param.getDbForm().getTableName().trim(); + if (FuncBase.isEmpty(tableName)) { + throw new JeeLowCodeException("表名不允许为空"); + } + + if (!Func.checkTableName(tableName)) { + StringJoiner joiner = new StringJoiner(","); + JeeLowCodeProperties.getExcludeTableNames().forEach(joiner::add); + String errorMsg = joiner.toString(); + throw new JeeLowCodeException(String.format("表名称不允许以【%s】开头", errorMsg)); + } + //校验表名是否重复 + if (frameService.checkTable(tableName)) { + String errorStr = String.format("数据库表【%s】已存在", tableName); + throw new JeeLowCodeException(errorStr); + } + + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPlugin.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPlugin.java new file mode 100644 index 0000000..d0ed0e3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPlugin.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.virtualization; + +import java.util.Map; + +/** + * 虚拟化字段相关-JAVA函数处理 + */ +public interface VirtualizationFieldPlugin { + + String execute(Map dataMap); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPluginManager.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPluginManager.java new file mode 100644 index 0000000..60d097b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/config/virtualization/VirtualizationFieldPluginManager.java @@ -0,0 +1,78 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.config.virtualization; + +import cn.hutool.cache.Cache; +import cn.hutool.cache.CacheUtil; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; + +/** + * 虚拟化字段 插件管理器 + */ +@Slf4j +public class VirtualizationFieldPluginManager { + + //只保留最近10个常用的 + static Cache cache = CacheUtil.newLRUCache(10); + + //初始化实例 + public static VirtualizationFieldPlugin initClazz(String clazzStr) { + try { + if(clazzStr.contains(".")){//全路径 + Class clazz = Class.forName(clazzStr); + VirtualizationFieldPlugin plugin = (VirtualizationFieldPlugin)clazz.newInstance();//实例化 + return plugin; + }else{ + VirtualizationFieldPlugin plugin = (VirtualizationFieldPlugin)SpringUtils.getBean(clazzStr); + return plugin; + } + + } catch (Exception e) { + throw new JeeLowCodeException(e.getMessage()); + } + } + + + //添加插件 + private static void addPlugin(String key, VirtualizationFieldPlugin plugin) { + cache.put(key, plugin); + } + + + private static VirtualizationFieldPlugin getPlugin(String key) { + if (cache.containsKey(key)) { + return cache.get(key); + } + + //没有在队列里面,则重新实例化 + addPlugin(key, initClazz(key)); + return cache.get(key); + } + + //运行插件 + public static String executePlugin(String key,Map dataMap) { + VirtualizationFieldPlugin plugin = getPlugin(key); + if(Func.isEmpty(plugin)){ + return null; + } + return plugin.execute(dataMap); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/AdapterController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/AdapterController.java new file mode 100644 index 0000000..13c09a4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/AdapterController.java @@ -0,0 +1,73 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.JeeLowCodeDept; +import com.jeelowcode.framework.utils.model.JeeLowCodeRole; +import com.jeelowcode.framework.utils.model.JeeLowCodeUser; +import com.jeelowcode.framework.utils.model.JeeLowTenant; +import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeUserParam; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "低代码框架-芋道框架接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/adapter") +public class AdapterController extends BaseController { + + private final IJeeLowCodeAdapter jeeLowCodeAdapter; + + @GetMapping("/tenant/list") + @ApiOperationSupport(order = 1) + @Operation(tags = "芋道适配器",summary = "获取租户列表") + public BaseWebResult tenantList() { + List tenantList = jeeLowCodeAdapter.getTenantList(); + return BaseWebResult.success(tenantList); + } + + @GetMapping("/dept/list") + @ApiOperationSupport(order = 1) + @Operation(tags = "芋道适配器",summary = "获取部门列表") + public BaseWebResult deptList(JeeLowCodeDeptParam param) { + List deptList = jeeLowCodeAdapter.getDeptList(param); + return BaseWebResult.success(deptList); + } + + @GetMapping("/role/list") + @ApiOperationSupport(order = 2) + @Operation(tags = "芋道适配器",summary = "获取角色列表") + public BaseWebResult roleList() { + List roleList = jeeLowCodeAdapter.getRoleList(); + return BaseWebResult.success(roleList); + } + + @PostMapping("/user/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "芋道适配器",summary = "获取用户列表") + public BaseWebResult userList(@RequestBody JeeLowCodeUserParam param) { + IPage userPage =(IPage) jeeLowCodeAdapter.getUserPage(param.getPageNo(), param.getPageSize(), param); + return BaseWebResult.success(userPage); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ApiLogController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ApiLogController.java new file mode 100644 index 0000000..d1aaeff --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ApiLogController.java @@ -0,0 +1,98 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.core.framework.entity.LogRequestApiEntity; +import com.jeelowcode.core.framework.entity.LogRequestErrorApiEntity; +import com.jeelowcode.core.framework.params.LogRequestApiParam; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.jeelowcode.core.framework.service.IApiLogService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Tag(name = "低代码框架-API请求接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/apilog") +public class ApiLogController extends BaseController { + + private final IApiLogService apiLogService; + + @PreAuthorize("@ss.hasPermission('api:log')") + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "审计日志",summary = "增强-详情") + public BaseWebResult getDetail(LogRequestApiParam param) { + String logType = param.getLogType(); + if (Func.equals(logType, "error")) { + LogRequestErrorApiEntity detailEntity = apiLogService.getErrorApiLogDetail(param.getId()); + return BaseWebResult.success(detailEntity); + } + LogRequestApiEntity detailEntity = apiLogService.getInfoApiLogDetail(param.getId()); + return BaseWebResult.success(detailEntity); + + } + + + @PreAuthorize("@ss.hasPermission('api:log')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "审计日志",summary = "删除(真实删除)") + public BaseWebResult del(LogRequestApiParam param) { + DateTime delDateTime = DateUtil.parse(param.getDelDate(), "yyyy-MM-dd"); + String logType = param.getLogType(); + if (Func.equals(logType, "error")) { + apiLogService.clearApiErrorLog(delDateTime); + return BaseWebResult.success("成功"); + } + apiLogService.clearApiLog(delDateTime); + return BaseWebResult.success("成功"); + } + + + + + @PreAuthorize("@ss.hasPermission('api:log')") + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(tags = "审计日志",summary = "获取列表(分页)") + public BaseWebResult page(LogRequestApiParam param, PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + String logType = param.getLogType(); + if (Func.equals(logType, "error")) { + IPage pages = apiLogService.getErrorApiLogPage(param,page); + return BaseWebResult.success(pages); + } + IPage pages = apiLogService.getInfoApiLogPage(param,page); + return BaseWebResult.success(pages); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/BaseController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/BaseController.java new file mode 100644 index 0000000..23084ed --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/BaseController.java @@ -0,0 +1,371 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONObject; +import com.jeelowcode.core.framework.config.btncommand.ButtonInvoker; +import com.jeelowcode.core.framework.config.btncommand.button.*; +import com.jeelowcode.core.framework.config.btncommand.param.*; +import com.jeelowcode.core.framework.config.btncommand.receiver.*; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; +import com.jeelowcode.core.framework.params.vo.FormEntityPageVo; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.tags.Tag; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutionException; + +@Tag(name = "低代码框架-公共框架接口") +public class BaseController { + + + /** + * 转换类型 + * @param source + * @param targetType + * @param + * @param + * @return + */ + public static List toVoBean(List source, Class targetType) { + if (source == null) { + return null; + } + List list = BeanUtil.copyToList(source, targetType); + + return list; + } + + /** + * 转换类型 + * @param source + * @param targetType + * @param + * @param + * @return + */ + public static IPage toVoBean(IPage source, Class targetType) { + if (source == null) { + return null; + } + List list = BeanUtil.copyToList(source.getRecords(), targetType); + + IPage resultPage=new Page<>(); + resultPage.setTotal(source.getTotal()); + resultPage.setRecords(list); + resultPage.setPages(source.getPages()); + resultPage.setSize(source.getSize()); + resultPage.setCurrent(source.getCurrent()); + return resultPage; + } + + + //获取分页数据列表 + protected ResultDataModel getDataPage(Long dbformId, Map params){ + Page page = FuncWeb.getPage(params); + + //封装参数 + ButtonParamList buttonParam = new ButtonParamList(); + buttonParam.setDbFormId(dbformId); + buttonParam.setParams(params); + buttonParam.setPage(page); + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverList(buttonParam); + + //执行者和命令绑定 + ListButtonCommand command = new ListButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ResultDataModel resultDataModel = invoker.executeCommand();//调用者下发命令 + + return resultDataModel; + } + + //获取统计 + protected Map getSummaryData(Long dbformId, Map params){ + //封装参数 + ButtonParamSummary buttonParam = new ButtonParamSummary(); + buttonParam.setDbFormId(dbformId); + buttonParam.setParams(params); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverSummary(buttonParam); + + //执行者和命令绑定 + SummaryButtonCommand command = new SummaryButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + Map map = invoker.executeCommand();//调用者下发命令 + return map; + } + + //获取详情数据列表 + protected ResultDataModel getDataDetail(Long dbformId,Long dataId, Map params){ + //封装参数 + params.put("id",dataId);//把id放到参数集合里面 + + ButtonParamDetail buttonParam = new ButtonParamDetail(); + buttonParam.setDbFormId(dbformId); + buttonParam.setDataId(dataId); + buttonParam.setParams(params); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverDetail(buttonParam); + + //执行者和命令绑定 + DetailsButtonCommand command = new DetailsButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ResultDataModel resultDataModel = invoker.executeCommand();//调用者下发命令 + return resultDataModel; + } + + //新增数据 + protected String addJsonData(Long dbformId, JSONObject jsonObject){ + ButtonParamAdd buttonParam = new ButtonParamAdd(); + buttonParam.setDbFormId(dbformId); + buttonParam.setParams(jsonObject); + IButtonCommandReceiver receiver = new ButtonReceiverAdd(buttonParam); + + //执行者和命令绑定 + AddButtonCommand command = new AddButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ExecuteEnhanceModel saveDataModel = invoker.executeCommand();//调用者下发命令 + + return saveDataModel.getId(); + } + protected List addJsonData(Long dbformId, List jsonObjectList){ + ButtonParamAddBatch buttonParam = new ButtonParamAddBatch(); + buttonParam.setDbFormId(dbformId); + buttonParam.setDataMapList(jsonObjectList); + + IButtonCommandReceiver receiver = new ButtonReceiverAddBatch(buttonParam); + + //执行者和命令绑定 + IButtonCommand command = new AddBatchButtonCommand(receiver); + + //创建调用者 + ButtonInvoker> invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + List idList = invoker.executeCommand();//调用者下发命令 + return idList; + } + + //编辑数据 + protected void editJsonData(Long dbformId, JSONObject jsonObject){ + Long id = jsonObject.getLong("id"); + + //封装参数 + ButtonParamEdit buttonParam = new ButtonParamEdit(); + buttonParam.setDbFormId(dbformId); + buttonParam.setDataId(id); + buttonParam.setParams(jsonObject); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverEdit(buttonParam); + + //执行者和命令绑定 + EditButtonCommand command = new EditButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + invoker.executeCommand();//调用者下发命令 + } + + protected void editJsonData(Long dbformId, List jsonObjectList){ + //封装参数 + ButtonParamEditBatch buttonParam = new ButtonParamEditBatch(); + buttonParam.setDbFormId(dbformId); + buttonParam.setJsonObjectList(jsonObjectList); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverEditBatch(buttonParam); + + //执行者和命令绑定 + EditBatchButtonCommand command = new EditBatchButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + invoker.executeCommand();//调用者下发命令 + + } + + //删除数据 + protected void deleteDataById(Long dbformId, List dataIdList){ + + //封装参数 + ButtonParamDel delButtonParam = new ButtonParamDel(); + delButtonParam.setDbFormId(dbformId); + delButtonParam.setDataIdList(dataIdList); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverDel(delButtonParam); + + //执行者和命令绑定 + DelButtonCommand command = new DelButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + invoker.executeCommand();//调用者下发命令 + + } + + //导出模板 + protected ExcelTemplateModel exportExcelTemplate(Long dbformId){ + //封装参数 + ButtonParamExportTemplate buttonParam = new ButtonParamExportTemplate(); + buttonParam.setDbFormId(dbformId); + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverExportTemplate(buttonParam); + + //执行者和命令绑定 + ExportTemplateButtonCommand command = new ExportTemplateButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ExcelTemplateModel excelTemplateModel = invoker.executeCommand();//调用者下发命令 + return excelTemplateModel; + } + //导出Excel数据 + protected ExcelModel exportExcelData(Long dbformId, Map params ){ + + //封装参数 + ButtonParamExport buttonParam = new ButtonParamExport(); + buttonParam.setDbFormId(dbformId); + buttonParam.setParams(params); + + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverExport(buttonParam); + + //执行者和命令绑定 + ExportButtonCommand command = new ExportButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ExcelModel excelModel = invoker.executeCommand();//调用者下发命令 + return excelModel; + } + + //导入Excel数据 + protected ExcelImportResultModel importExcelData(ButtonParamImport buttonParam){ + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverImport(buttonParam); + + //执行者和命令绑定 + ImportButtonCommand command = new ImportButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ExcelImportResultModel resultModel = invoker.executeCommand();//调用者下发命令 + return resultModel;//批次号 + } + + //----------- 数据统计 ------------------- + + //获取分页数据列表 + protected ResultDataModel getReportDataList(String reportCode, Map params){ + Page page = FuncWeb.getPage(params); + + //封装参数 + ButtonParamReportList buttonParam = new ButtonParamReportList(); + buttonParam.setReportCode(reportCode); + buttonParam.setParams(params); + buttonParam.setPage(page); + //执行者绑定参数 + ButtonReceiverReportList receiver = new ButtonReceiverReportList(buttonParam); + + //执行者和命令绑定 + ListButtonCommand command = new ListButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ResultDataModel resultDataModel = invoker.executeCommand();//调用者下发命令 + + return resultDataModel; + } + + + protected void formatFormEntityPageVo(List records, IFormService dbFormService){ + try { + Func.jeelowcodeForkJoinPool().submit(() -> records.parallelStream().forEach(vo ->{ + Map couMap = dbFormService.getFormCou(vo.getId()); + Integer js_cou = Func.getMap2IntDefault(couMap, "js_cou",0); + Integer scss_cou = Func.getMap2IntDefault(couMap, "scss_cou",0); + Integer button_cou = Func.getMap2IntDefault(couMap, "button_cou",0); + Integer java_cou = Func.getMap2IntDefault(couMap, "java_cou",0); + Integer sql_cou = Func.getMap2IntDefault(couMap, "sql_cou",0); + Integer field_cou = Func.getMap2IntDefault(couMap, "field_cou",0); + + vo.setJsCou(js_cou); + vo.setScssCou(scss_cou); + vo.setButtonCou(button_cou); + vo.setJavaCou(java_cou); + vo.setSqlCou(sql_cou); + vo.setFieldCou(field_cou); + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + } + + //导出Excel数据 + protected ExcelModel exportReportData(String reportCode, Map params ){ + + //封装参数 + ButtonParamReportExport buttonParam = new ButtonParamReportExport(); + buttonParam.setReportCode(reportCode); + buttonParam.setParams(params); + + //执行者绑定参数 + IButtonCommandReceiver receiver = new ButtonReceiverReportExport(buttonParam); + + //执行者和命令绑定 + ExportButtonCommand command = new ExportButtonCommand(receiver); + + //创建调用者 + ButtonInvoker invoker = new ButtonInvoker(); + invoker.setButtonCommand(command);//调用者设置命令 + ExcelModel excelModel = invoker.executeCommand();//调用者下发命令 + return excelModel; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ButtonController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ButtonController.java new file mode 100644 index 0000000..1a2d100 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ButtonController.java @@ -0,0 +1,127 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.entity.FormButtonEntity; +import com.jeelowcode.core.framework.service.IFormButtonService; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-Button增强接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/enhance/button") +public class ButtonController extends BaseController { + + private final IFormButtonService buttonService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "Button增强",summary = "Js增强-详情") + public BaseWebResult jsDetail(@RequestParam Long id){ + return BaseWebResult.success(buttonService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "Button增强",summary = "新增") + public BaseWebResult save(@RequestBody FormButtonEntity model) { + //编号唯一 + String buttonCode = model.getButtonCode(); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(FormButtonEntity::getDbformId,model.getDbformId()); + wrapper.eq(FormButtonEntity::getButtonCode,buttonCode); + long count = buttonService.count(wrapper); + if(count>0){ + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_CORE_EXIT); + } + + + buttonService.save(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "Button增强",summary = "修改") + public BaseWebResult update(@RequestBody FormButtonEntity model) { + //编号唯一 + String buttonCode = model.getButtonCode(); + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(FormButtonEntity::getDbformId,model.getDbformId()); + wrapper.eq(FormButtonEntity::getButtonCode,buttonCode); + wrapper.ne(FormButtonEntity::getId,model.getId()); + long count = buttonService.count(wrapper); + if(count>0){ + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_CORE_EXIT); + } + + buttonService.updateById(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "Button增强",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + buttonService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "Button增强",summary = "获取列表") + public BaseWebResult list(FormButtonEntity entity) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByDesc(FormButtonEntity::getId); + List dataList = buttonService.list(wrapper); + return BaseWebResult.success(dataList); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:button')") + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(tags = "Button增强",summary = "获取列表(分页)") + public BaseWebResult page(FormButtonEntity entity, PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByDesc(FormButtonEntity::getId); + IPage pages = buttonService.page(page, wrapper); + return BaseWebResult.success(pages); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormController.java new file mode 100644 index 0000000..55937c5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormController.java @@ -0,0 +1,369 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import cn.hutool.core.bean.BeanUtil; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.config.validate.DbFormCopyValidate; +import com.jeelowcode.core.framework.config.validate.TableNameValidate; +import com.jeelowcode.core.framework.entity.FormEntity; +import com.jeelowcode.core.framework.params.DbFormAddOrUpdateParam; +import com.jeelowcode.core.framework.params.DictLabelParam; +import com.jeelowcode.core.framework.params.PageDbFormParam; +import com.jeelowcode.core.framework.params.TreeParentParam; +import com.jeelowcode.core.framework.params.model.AllTableModel; +import com.jeelowcode.core.framework.params.model.ExplainDatasourceSqlModel; +import com.jeelowcode.core.framework.params.model.ExplainSqlFieldModel; +import com.jeelowcode.core.framework.params.vo.*; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleButtonVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.params.vo.webconfig.WebConfigRoleFieldVo; +import com.jeelowcode.core.framework.params.vo.webconfig.WebConfigVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.service.IFrameService; +import com.jeelowcode.core.framework.service.IFrameSqlService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.exception.JeeLowCodeMoreException; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.annotation.JeelowCodeValidate; +import com.jeelowcode.framework.utils.enums.DbFormTypeEnum; +import com.jeelowcode.framework.utils.enums.ParamEnum; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.stream.Collectors; + +@Tag(name = "低代码框架-框架接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/dbform") +public class DbFormController extends BaseController { + + private final IFrameService frameService; + + private final IFormService dbFormService; + + private final IJeeLowCodeAdapter jeeLowCodeAdapter; + + private final IFrameSqlService sqlService; + + private final IDbFormRoleService dbFormRoleService; + + @JeelowCodeValidate(title = "自定义校验-表名是否正确", validateClass = TableNameValidate.class) + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @PostMapping("/save") + @ApiOperationSupport(order = 1) + @Operation(tags = "表单开发",summary = "表单开发 - 保存") + public BaseWebResult saveDbFormConfig(@RequestBody DbFormAddOrUpdateParam param, HttpServletRequest req) { + //基本信息校验完成 + dbFormService.saveDbFormConfig(param); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:update')") + @PutMapping("/update") + @ApiOperationSupport(order = 2) + @Operation(tags = "表单开发",summary = "表单开发 - 修改") + public BaseWebResult updateDbFormConfig(@RequestBody DbFormAddOrUpdateParam param) { + dbFormService.updateDbFormConfig(param); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "表单开发 - 删除") + public BaseWebResult deleteDbFormConfig(@RequestBody List dbFormIdList) { + dbFormService.deleteDbFormConfig(dbFormIdList, true); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:query')") + @PostMapping("/detail") + @ApiOperationSupport(order = 4) + @Operation(tags = "表单开发",summary = "表单开发 - 获取详情") + public BaseWebResult getDetailDbFormConfig(Long dbFormId, @RequestBody List typeList) { + List enumList = typeList.stream() + .map(type -> DbFormTypeEnum.getByType(type)) + .collect(Collectors.toList()); + DbFormConfigVo vo = dbFormService.getDetailDbFormConfig(dbFormId, enumList); + return BaseWebResult.success(vo); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:query')") + @PostMapping("/page") + @ApiOperationSupport(order = 5) + @Operation(tags = "表单开发",summary = "表单开发 - 获取分页数据") + public BaseWebResult getPageDbFormConfig(@RequestBody PageDbFormParam param, PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + IPage pages = dbFormService.getPageDbFormConfig(param, page); + IPage vopages = toVoBean(pages, FormEntityPageVo.class); + List records = vopages.getRecords(); + super.formatFormEntityPageVo(records,dbFormService); + return BaseWebResult.success(vopages); + } + + + @JeelowCodeValidate(title = "判断表名是否合法", validateClass = DbFormCopyValidate.class) + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @GetMapping({"/copy/{dbformId}"}) + @ApiOperationSupport(order = 6) + @Operation(tags = "表单开发",summary = "复制表") + public BaseWebResult copy(@PathVariable("dbformId") Long dbformId, String tableName) { + dbFormService.copyDbFormConfig(dbformId, tableName); + return BaseWebResult.success("复制成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:sync')") + @JeeLowCodeTenantIgnore + @PostMapping({"/sync-db/{dbformId}"}) + @ApiOperationSupport(order = 7) + @Operation(tags = "表单开发",summary = "同步数据库") + public BaseWebResult syncDb(@PathVariable("dbformId") Long dbformId, String syncModel) { + try { + frameService.syncDb(dbformId, syncModel); + } catch (Exception e) { + throw new JeeLowCodeMoreException("同步失败", e.getMessage()); + } + return BaseWebResult.success("同步完成"); + } + + @GetMapping("/check/table") + @JeeLowCodeTenantIgnore + @ApiOperationSupport(order = 8) + @Operation(tags = "表单开发",summary = "校验表明是否存在") + public BaseWebResult checkTable(String tableName) { + boolean flag = frameService.checkTable(tableName); + return BaseWebResult.success(flag); + } + + + @GetMapping("/get/web-config") + @ApiOperationSupport(order = 9) + @Operation(tags = "表单开发",summary = "获取页面信息配置") + public BaseWebResult getWebConfig(@RequestParam("dbformId")Long dbformId) { + WebConfigVo webConfig = dbFormService.getWebConfig(dbformId); + //判断是否有租户字段权限 + String tenantId = jeeLowCodeAdapter.getTenantId(); + if(Func.isNotEmpty(tenantId) && Func.notEquals(tenantId,"-1")){ + //字段权限->部分租户只能看到部分字段 + List roleFieldVoList = dbFormRoleService.listRoleField(tenantId, dbformId,false); + if(Func.isNotEmpty(roleFieldVoList)){ + List webConfigRoleFieldVoList = BeanUtil.copyToList(roleFieldVoList, WebConfigRoleFieldVo.class); + webConfig.setWebConfigRoleFieldVoList(webConfigRoleFieldVoList); + } + //按钮权限->部分租户只能看到部分按钮 + List roleButtonVoList = dbFormRoleService.listRoleButton(tenantId, dbformId, false); + if(Func.isNotEmpty(roleButtonVoList)){ + List webConfigRoleButtonVoList = roleButtonVoList.stream() + .map(DbFormRoleButtonVo::getButtonCode) // 提取 buttonCode + .collect(Collectors.toList()); // 收集到新的列表中 + webConfig.setWebConfigRoleButtonVoList(webConfigRoleButtonVoList); + } + + } + return BaseWebResult.success(webConfig); + } + + + + + @PostMapping("/get/dict-table-web-config/{dbformId}") + @ApiOperationSupport(order = 10) + @Operation(tags = "表单开发",summary = "获取字典表页面信息配置") + public BaseWebResult getDictTableWebConfig(@PathVariable("dbformId") Long dbformId, HttpServletRequest req) { + Map bodyParams = FuncWeb.getParameterBodyMap(req); + + List fieldList = JeeLowCodeUtils.getMap2List(bodyParams, ParamEnum.DICT_TABLE_FIELD.getCode());//自定义列 id,name,age,sex + if (FuncBase.isEmpty(fieldList)) {//查字典数据 + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_NULL_ERROR); + } + //获取指定列配置 + WebConfigVo webConfig = dbFormService.getWebConfig(dbformId, fieldList); + webConfig.setButtonList(null); + + return BaseWebResult.success(webConfig); + } + + @PostMapping("/get/table-label") + @ApiOperationSupport(order = 11) + @Operation(tags = "表单开发",summary = "表字段回显") + public BaseWebResult getTableLabel(HttpServletRequest req) { + Map bodyParams = FuncWeb.getParameterBodyMap(req); + List labelParamList = (List) bodyParams.get(ParamEnum.DICT_LABEL.getCode()); + + if (FuncBase.isEmpty(labelParamList)) { + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_NULL_ERROR); + } + Map>> resultMap = new ConcurrentHashMap<>(); + + try { + Func.jeelowcodeForkJoinPool().submit(() -> labelParamList.parallelStream().forEach(labelParam ->{ + Long dbformId = labelParam.getDbformId(); + List fieldList = labelParam.getFieldList(); + String code = labelParam.getCode(); + String label = labelParam.getLabel(); + List dataList = labelParam.getDataList(); + List userIdList = labelParam.getUserIdList();//用户id + List deptIdList = labelParam.getDeptIdList();//部门id + + if (Func.isNotEmpty(dbformId)) { //自定义表 + String mapKey = dbformId + "&" + label; + if (FuncBase.isEmpty(dataList)) { + List> resultList = new ArrayList<>(); + resultMap.put(FuncBase.toStr(dbformId), resultList); + return; + } + + List> resultList =new ArrayList<>(); + for(String dataId:dataList){ + Map params =new HashMap<>(); + params.put(ParamEnum.DICT_TABLE_FIELD.getCode(),fieldList); + params.put(code,dataId);//id=1 + params.put(ParamEnum.PAGE_NO.getCode(),1); + params.put(ParamEnum.PAGE_SIZE.getCode(),1000); + ResultDataModel model = frameService.getDataList(dbformId, params); + List> tmpList = model.getRecords(); + if(Func.isEmpty(tmpList)){ + continue; + } + resultList.addAll(tmpList); + } + + resultMap.put(mapKey, resultList); + } + if (Func.isNotEmpty(userIdList)) {//用户表回显 + List> userViewList = jeeLowCodeAdapter.getUserViewList(userIdList); + resultMap.put("userList", userViewList); + } + if (Func.isNotEmpty(deptIdList)) {//部门表回显 + List> deptViewList = jeeLowCodeAdapter.getDeptViewList(deptIdList); + resultMap.put("deptList", deptViewList); + } + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + + return BaseWebResult.success(resultMap); + } + + + @GetMapping("/get/all-table") + @ApiOperationSupport(order = 13) + @Operation(tags = "表单开发",summary = "获取所有表名") + public BaseWebResult getAllTable(String systemFlag) { + List list = dbFormService.getAllTable(systemFlag); + return BaseWebResult.success(list); + } + + @GetMapping("/clear-cache") + @ApiOperationSupport(order = 14) + @Operation(tags = "表单开发",summary = "清除缓存") + public BaseWebResult clearCache() { + dbFormService.cleanCache(); + return BaseWebResult.success("成功"); + } + + @PostMapping("/get/tree-parent") + @ApiOperationSupport(order = 10) + @Operation(tags = "表单开发",summary = "获取字典表页面信息配置") + public BaseWebResult getTreeParentList( HttpServletRequest req) { + Map bodyParams = FuncWeb.getParameterBodyMap(req); + if(!bodyParams.containsKey(ParamEnum.TREE_PARENT.getCode())){ + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_NULL_ERROR); + } + + + List paramList = (List) bodyParams.get(ParamEnum.TREE_PARENT.getCode()); + + Map>> resultMap=new HashMap<>(); + paramList.stream().forEach(param ->{ + Long dbformId = param.getDbformId(); + List> resultDataMapList = dbFormService.getTreeParentList(dbformId, param); + resultMap.put(dbformId.toString(),resultDataMapList); + }); + return BaseWebResult.success(resultMap); + } + + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @PostMapping("/explain/datasource-sql") + @ApiOperationSupport(order = 11) + @Operation(tags = "表单开发",summary = "解释数据源SQL的运行结果") + public BaseWebResult explainDatasourceSql(@RequestBody ExplainDatasourceSqlModel model) { + Page page = FuncWeb.getPage(1, 10); + SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper(); + queryWrapper.setTableSql(model.getExplainSql()); + try{ + IPage> pages = sqlService.getDataIPageByPlus(page, queryWrapper); + return BaseWebResult.success(pages); + }catch (Exception e){ + throw new JeeLowCodeMoreException("SQL执行错误",e.getMessage()); + } + + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @PostMapping("/explain/sqlfield") + @ApiOperationSupport(order = 11) + @Operation(tags = "表单开发",summary = "解释数据源SQL字段类型") + public BaseWebResult explainSqlField(@RequestBody List modelList) { + Map resultMap = dbFormService.explainSqlField(modelList); + return BaseWebResult.success(resultMap); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @GetMapping("/get/not-in-dbform-tables") + @ApiOperationSupport(order = 11) + @Operation(tags = "表单开发",summary = "获取未在表单开发里面的表") + public BaseWebResult getNotInDbformTables() { + List voList = dbFormService.getNotInDbformTables(); + return BaseWebResult.success(voList); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @GetMapping("/get/tables-field") + @ApiOperationSupport(order = 11) + @Operation(tags = "表单开发",summary = "获取表字段") + public BaseWebResult getTableField(String tableName) { + List voList = dbFormService.getTableFieldComment(tableName); + return BaseWebResult.success(voList); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormDataController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormDataController.java new file mode 100644 index 0000000..304d172 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormDataController.java @@ -0,0 +1,166 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import cn.hutool.json.JSONObject; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.params.DataUniqueParam; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.service.IFrameSqlService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@Tag(name = "低代码框架-框架接口-数据相关") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/dbform-data") +public class DbFormDataController extends BaseController { + + @Autowired + private IFormService formService; + + @Autowired + private IFrameSqlService sqlService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:query:'+#dbformId)")//根据表id来判断是否有权限访问 + @PostMapping({"/list/{dbformId}"}) + @ApiOperationSupport(order = 2) + @Operation(tags = "表单开发",summary = "获取表数据列表") + public BaseWebResult getDataList(@PathVariable("dbformId") Long dbformId, HttpServletRequest req) {//id,name id,age, + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel resultDataModel = super.getDataPage(dbformId, params); + return BaseWebResult.success(resultDataModel); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:query:'+#dbformId)")//根据表id来判断是否有权限访问 + @PostMapping({"/summary/{dbformId}"}) + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "获取表数据统计") + public BaseWebResult getDataSummary(@PathVariable("dbformId") Long dbformId, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + Map map = super.getSummaryData(dbformId, params); + return BaseWebResult.success(map); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:query:'+#dbformId)")//根据表id来判断是否有权限访问 + @PostMapping({"/detail/{dbformId}/{dataId}"}) + @ApiOperationSupport(order = 4) + @Operation(tags = "表单开发",summary = "获取表数据详情") + public BaseWebResult getDataDetail(@PathVariable("dbformId") Long dbformId, @PathVariable("dataId") Long dataId, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel resultDataModel = super.getDataDetail(dbformId, dataId, params); + + if (FuncBase.isEmpty(resultDataModel) || FuncBase.isEmpty(resultDataModel.getRecords())) { + return BaseWebResult.successNull(); + } + return BaseWebResult.success(resultDataModel.getRecords().get(0)); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:create:'+#dbformId)")//根据表id来判断是否有权限访问 + @PostMapping({"/save/{dbformId}"}) + @ApiOperationSupport(order = 5) + @Operation(tags = "表单开发",summary = "新增表数据") + public BaseWebResult addData(@PathVariable("dbformId") Long dbformId, @RequestBody JSONObject jsonObject) { + String id = super.addJsonData(dbformId, jsonObject); + return BaseWebResult.success(id); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:create:'+#dbformId)")//根据表id来判断是否有权限访问 + @PostMapping({"/save/batch/{dbformId}"}) + @ApiOperationSupport(order = 5) + @Operation(tags = "表单开发",summary = "新增表数据-批量新增") + public BaseWebResult addBatchData(@PathVariable("dbformId") Long dbformId, @RequestBody List jsonList) { + List idList = super.addJsonData(dbformId, jsonList); + return BaseWebResult.success(idList); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:update:'+#dbformId)")//根据表id来判断是否有权限访问 + @PutMapping({"/edit/{dbformId}"}) + @ApiOperationSupport(order = 6) + @Operation(tags = "表单开发",summary = "编辑表数据") + public BaseWebResult editData(@PathVariable("dbformId") Long dbformId, @RequestBody JSONObject jsonObject) { + super.editJsonData(dbformId,jsonObject); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:update:'+#dbformId)")//根据表id来判断是否有权限访问 + @PutMapping({"/edit/batch/{dbformId}"}) + @ApiOperationSupport(order = 6) + @Operation(tags = "表单开发",summary = "编辑表数据-批量") + public BaseWebResult editBatchData(@PathVariable("dbformId") Long dbformId, @RequestBody List jsonObjectList) { + super.editJsonData(dbformId,jsonObjectList); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:delete:'+#dbformId)")//根据表id来判断是否有权限访问 + @DeleteMapping({"/delete/{dbformId}"}) + @ApiOperationSupport(order = 7) + @Operation(tags = "表单开发",summary = "根据id删除数据") + public BaseWebResult delData(@PathVariable("dbformId") Long dbformId, @RequestBody List dataIdList) { + super.deleteDataById(dbformId,dataIdList); + return BaseWebResult.success("成功"); + } + + @PostMapping({"/unique/{dbformId}"}) + @ApiOperationSupport(order = 4) + @Operation(tags = "表单开发",summary = "校验数据是否唯一") + public BaseWebResult dataUnique(@PathVariable("dbformId") Long dbformId,@RequestBody DataUniqueParam param) { + String fieldCode = param.getFieldCode(); + Long dataId = param.getDataId(); + String fieldVal = param.getFieldVal(); + if(Func.isEmpty(fieldCode) || Func.isEmpty(fieldVal)){ + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_NULL_ERROR); + } + + //表名称 + String tableName = formService.getTableName(dbformId); + boolean isExist = formService.fieldCodeIsExist(dbformId, fieldCode); + if(!isExist){ + return BaseWebResult.success(true); + } + JeeLowCodeFieldTypeEnum fieldTypeEnum = formService.getFieldTypeEnum(dbformId, fieldCode); + + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select("id") + .setWhere(where -> { + where.eq(fieldCode, Func.getfieldValObj(fieldTypeEnum,fieldVal)); + where.ne("id", dataId); + }) + .build(); + List> dataMapList = sqlService.getDataListByPlus(wrapper); + return BaseWebResult.success(Func.isNotEmpty(dataMapList)); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormRoleController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormRoleController.java new file mode 100644 index 0000000..c889412 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DbFormRoleController.java @@ -0,0 +1,116 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleButtonVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataRuleVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataTenantVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name = "低代码框架-表单开发-权限接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/dbform-role") +public class DbFormRoleController extends BaseController { + + private final IDbFormRoleService dbFormRoleService; + + private final IJeeLowCodeAdapter jeeLowCodeAdapter; + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/save-field") + @ApiOperationSupport(order = 1) + @Operation(tags = "表单开发",summary = "新增/修改 字段权限") + public BaseWebResult saveRoleField(@RequestBody List voList) { + dbFormRoleService.saveOrUpdateRoleField(voList); + return BaseWebResult.success("成功"); + } + + //@PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/list-field") + @ApiOperationSupport(order = 2) + @Operation(tags = "表单开发",summary = "列表 字段权限") + public BaseWebResult listRoleField(String tenantId,Long dbFormId) { + List list = dbFormRoleService.listRoleField(tenantId, dbFormId); + return BaseWebResult.success(list); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/save-button") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "新增/修改 按钮权限") + public BaseWebResult saveRoleButton(@RequestBody List voList) { + dbFormRoleService.saveOrUpdateRoleButton(voList); + return BaseWebResult.success("成功"); + } + + //@PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/list-button") + @ApiOperationSupport(order = 4) + @Operation(tags = "表单开发",summary = "列表 字段权限") + public BaseWebResult listRoleButton(String tenantId,Long dbFormId) { + List list = dbFormRoleService.listRoleButton(tenantId, dbFormId); + return BaseWebResult.success(list); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/save-data-rule") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "新增/修改 数据权限-规则") + public BaseWebResult saveRoleDataRule(@RequestBody DbFormRoleDataRuleVo vo) { + dbFormRoleService.saveOrUpdateRoleDataRule(vo); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @DeleteMapping("/del-data-rule") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "删除 数据权限-规则") + public BaseWebResult delRoleDataRule(Long ruleId) { + dbFormRoleService.delRoleDataRule(ruleId); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/save-data-tenant") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发",summary = "新增/修改 数据权限-租户数据") + public BaseWebResult saveRoleDataTenant(@RequestBody List voList) { + dbFormRoleService.saveOrUpdateRoleDataTenant(voList); + return BaseWebResult.success("成功"); + } + + + //@PreAuthorize("@ss.hasPermission('jeelowcode:dbform:role')") + @PostMapping("/list-data") + @ApiOperationSupport(order = 4) + @Operation(tags = "表单开发",summary = "列表 数据权限") + public BaseWebResult listRoleData(String tenantId,Long dbFormId) { + List list = dbFormRoleService.listRoleData(tenantId, dbFormId); + return BaseWebResult.success(list); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DesFormController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DesFormController.java new file mode 100644 index 0000000..cd641e0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/DesFormController.java @@ -0,0 +1,173 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.entity.DesformEntity; +import com.jeelowcode.core.framework.params.DesFormAddOrUpdateParam; +import com.jeelowcode.core.framework.params.PageDesFormParam; +import com.jeelowcode.core.framework.service.IDesFormService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.annotation.ApiDecryptAes; +import com.jeelowcode.framework.utils.annotation.ApiEncryptAes; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.constant.JeeRedisConstants; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.params.vo.DesformEntityVo; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Tag(name = "低代码框架-表单设计器接口") +@RestController +@AllArgsConstructor +@RequestMapping( JeeLowCodeBaseConstant.REQUEST_URL_START+"/desform") +public class DesFormController extends BaseController { + + private final IDesFormService desFormService; + + private final JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + private final IJeeLowCodeAdapter adapter; + + + @PostMapping("/unlock/{desFormId}") + @ApiOperationSupport(order = 1) + @Operation(tags = "自定义表单",summary = "表单设计增强-解锁") + public BaseWebResult unlock(@PathVariable("desFormId") Long desFormId) { + String redisKey = String.format(JeeRedisConstants.ENHANCE_DESFORM_LOCK,String.valueOf(desFormId)); + if (jeeLowCodeRedisUtils.hasKey(redisKey)) { + jeeLowCodeRedisUtils.del(redisKey); + } + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:create')") + @ApiDecryptAes//解密 + @PostMapping("/save") + @ApiOperationSupport(order = 1) + @Operation(tags = "自定义表单",summary = "表单设计器 - 保存") + public BaseWebResult saveDesForm(@RequestBody DesFormAddOrUpdateParam param) { + Long id = desFormService.saveDesForm(param); + return BaseWebResult.success(id); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:update')") + @ApiDecryptAes//解密 + @PutMapping("/update") + @ApiOperationSupport(order = 2) + @Operation(tags = "自定义表单",summary = "表单设计器 - 修改") + public BaseWebResult updateDesForm(@RequestBody DesFormAddOrUpdateParam param) { + desFormService.updateDesForm(param); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "自定义表单",summary = "表单设计器 - 删除") + public BaseWebResult delDesForm(@RequestBody List ids) { + desFormService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + //返回数据加密 + @ApiEncryptAes + @GetMapping("/detail") + @ApiOperationSupport(order = 4) + @Operation(tags = "自定义表单",summary = "表单设计器 - 获取详情") + public BaseWebResult getDetailDesForm(Long desFormId,String lock) { + if (FuncBase.isNotEmpty(lock) && FuncBase.equals(lock, "true")) { + String redisKey = String.format(JeeRedisConstants.ENHANCE_DESFORM_LOCK,String.valueOf(desFormId)); + if (jeeLowCodeRedisUtils.hasKey(redisKey)) { + String lockMapStr = (String)jeeLowCodeRedisUtils.get(redisKey); + Map lockMap = Func.json2Bean(lockMapStr, Map.class); + //返回锁定信息 + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_ENHANCE_ERROR,lockMap); + } + + String userName = adapter.getOnlineUserName(); + String timeStr = DateUtil.now(); + //存储锁定信息 + Map lockMap=new HashMap<>(); + lockMap.put("userName",userName); + lockMap.put("timeStr",timeStr); + jeeLowCodeRedisUtils.set(redisKey, Func.json2Str(lockMap));//上锁 + } + + DesformEntity desformEntity = desFormService.getById(desFormId); + return BaseWebResult.success(desformEntity); + } + + @PostMapping("/page") + @ApiOperationSupport(order = 6) + @Operation(tags = "自定义表单",summary = "获取列表") + public BaseWebResult page(PageDesFormParam param, PageVo pageVo) { + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(FuncBase.isNotEmpty(param.getId()),DesformEntity::getId,param.getId()); + wrapper.eq(FuncBase.isNotEmpty(param.getGroupDesformId()),DesformEntity::getGroupDesformId,param.getGroupDesformId()); + wrapper.eq(FuncBase.isNotEmpty(param.getIsOpen()), DesformEntity::getIsOpen, param.getIsOpen()); + wrapper.eq(FuncBase.isNotEmpty(param.getIsTemplate()), DesformEntity::getIsTemplate, param.getIsTemplate()); + wrapper.like(FuncBase.isNotEmpty(param.getDesformName()),DesformEntity::getDesformName,param.getDesformName()); + wrapper.orderByDesc(DesformEntity::getId); + + IPage resultList=new Page<>(); + if(Func.isEmpty(pageVo) || Func.isEmpty(pageVo.getPageSize()) || Func.equals(JeeLowCodeConstant.NOT_PAGE,pageVo.getPageSize())){ + List dataList = desFormService.list(wrapper); + resultList.setRecords(toVoBean(dataList, DesformEntityVo.class)); + resultList.setTotal(dataList.size()); + resultList.setCurrent(1L); + resultList.setPages(1L); + resultList.setSize(JeeLowCodeConstant.NOT_PAGE); + }else{ + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + IPage pages = desFormService.page(page, wrapper); + resultList = toVoBean(pages, DesformEntityVo.class); + } + + return BaseWebResult.success(resultList); + } + + + + @GetMapping("/get/template") + @ApiOperationSupport(order = 6) + @Operation(tags = "自定义表单",summary = "获取模板") + public BaseWebResult getTemplate() { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(DesformEntity::getIsTemplate, YNEnum.Y.getCode()); + List templateList = desFormService.list(wrapper); + return BaseWebResult.success(templateList); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJavaController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJavaController.java new file mode 100644 index 0000000..fa5a2d2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJavaController.java @@ -0,0 +1,111 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA; +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.jeelowcode.core.framework.service.IEnhanceJavaService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-JAVA增强接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/enhance/java") +public class EnhanceJavaController extends BaseController { + + private final IEnhanceJavaService javaService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:java')") + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "JAVA增强",summary = "Java增强-详情") + public BaseWebResult javaDetail(@RequestParam Long id) { + return BaseWebResult.success(javaService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:java')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "JAVA增强",summary = "新增") + public BaseWebResult save(@RequestBody EnhanceJavaEntity model) { + javaService.saveEnhanceJava(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:java')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "JAVA增强",summary = "修改") + public BaseWebResult update(@RequestBody EnhanceJavaEntity model) { + javaService.updateEnhanceJava(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:java')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "JAVA增强",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + + List enhanceJavaEntities = javaService.listByIds(ids); + enhanceJavaEntities.stream().forEach(entity->{ + JeeLowCodeAnnotationAspectjJAVA.deletePlugins(entity); + }); + + javaService.removeBatchByIds(ids); + + return BaseWebResult.success("成功"); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:java')") + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(tags = "JAVA增强",summary = "获取列表(分页)") + public BaseWebResult page(EnhanceJavaEntity entity, PageVo pageVo,String column,String order) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + if(Func.isNotEmpty(column)){ + if(Func.equals(order.toUpperCase(),"ASC")){ + wrapper.orderByAsc(EnhanceJavaEntity::getButtonCode); + }else{ + wrapper.orderByDesc(EnhanceJavaEntity::getButtonCode); + } + }else{//默认按id排序 + wrapper.orderByDesc(EnhanceJavaEntity::getId); + } + IPage pages = javaService.page(page, wrapper); + return BaseWebResult.success(pages); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJsController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJsController.java new file mode 100644 index 0000000..0ec2fa1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceJsController.java @@ -0,0 +1,120 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.entity.EnhanceJsEntity; +import com.jeelowcode.core.framework.service.IEnhanceJsService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.annotation.ApiDecryptAes; +import com.jeelowcode.framework.utils.annotation.ApiEncryptAes; +import com.jeelowcode.framework.utils.constant.JeeRedisConstants; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + + +@Tag(name = "低代码框架-JS增强接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/enhance/js") +public class EnhanceJsController extends BaseController { + + private final JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + private final IEnhanceJsService enhanceJsService; + + private final IJeeLowCodeAdapter adapter; + + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @PostMapping("/unlock/{dbformId}") + @ApiOperationSupport(order = 1) + @Operation(tags = "Js增强",summary = "Js增强-解锁") + public BaseWebResult unlock(@PathVariable("dbformId") Long dbformId, @RequestParam String type) { + + String redisKey = String.format(JeeRedisConstants.ENHANCE_JS_LOCK,dbformId+":"+type); + if (jeeLowCodeRedisUtils.hasKey(redisKey)) { + jeeLowCodeRedisUtils.del(redisKey); + } + return BaseWebResult.success("成功"); + } + + + //返回数据加密 + @ApiEncryptAes + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "Js增强",summary = "Js增强-详情") + public BaseWebResult jsDetail(@RequestParam Long dbformId, + @RequestParam String type, + @RequestParam String lock){ + if (FuncBase.isNotEmpty(lock) && FuncBase.equals(lock, "true")) { + String redisKey = String.format(JeeRedisConstants.ENHANCE_JS_LOCK,dbformId+":"+type); + if (jeeLowCodeRedisUtils.hasKey(redisKey)) { + String lockMapStr = (String)jeeLowCodeRedisUtils.get(redisKey); + Map lockMap = Func.json2Bean(lockMapStr, Map.class); + //返回锁定信息 + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_ENHANCE_ERROR,lockMap); + } + + String userName = adapter.getOnlineUserName(); + + String timeStr = DateUtil.now(); + //存储锁定信息 + Map lockMap=new HashMap<>(); + lockMap.put("userName",userName); + lockMap.put("timeStr",timeStr); + jeeLowCodeRedisUtils.set(redisKey, Func.json2Str(lockMap));//上锁 + } + return BaseWebResult.success(enhanceJsService.getDbFormEnhanceJsDetail(dbformId,type)); + } + + //解密body数据 + @ApiDecryptAes + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "Js增强",summary = "js增强-新增") + public BaseWebResult save(@RequestBody EnhanceJsEntity model) { + enhanceJsService.saveEnhanceJs(model); + return BaseWebResult.success(model.getId()); + } + + //解密body数据 + @ApiDecryptAes + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "Js增强",summary = "js增强-修改") + public BaseWebResult update(@RequestBody EnhanceJsEntity model) { + enhanceJsService.updateEnhanceJs(model); + return BaseWebResult.success(model.getId()); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceSqlController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceSqlController.java new file mode 100644 index 0000000..31fb50c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/EnhanceSqlController.java @@ -0,0 +1,120 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnoaionAspectjSQL; +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.jeelowcode.core.framework.service.IEnhanceSqlService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-SQL增强接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/enhance/sql") +public class EnhanceSqlController extends BaseController { + + private final IEnhanceSqlService sqlService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "Sql增强",summary = "详情") + public BaseWebResult jsDetail(@RequestParam Long id){ + return BaseWebResult.success(sqlService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "Sql增强",summary = "新增") + public BaseWebResult save(@RequestBody EnhanceSqlEntity model) { + sqlService.saveEnhanceSql(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "Sql增强",summary = "修改") + public BaseWebResult update(@RequestBody EnhanceSqlEntity model) { + sqlService.updateEnhanceSql(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "Sql增强",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + List enhanceSqlEntities = sqlService.listByIds(ids); + enhanceSqlEntities.stream().forEach( + e ->{ + JeeLowCodeAnnoaionAspectjSQL.removePlugin(e); + } + ); + sqlService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "Sql增强",summary = "获取列表") + public BaseWebResult list(EnhanceSqlEntity entity) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByDesc(EnhanceSqlEntity::getId); + List dataList = sqlService.list(wrapper); + return BaseWebResult.success(dataList); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:sql')") + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(tags = "Sql增强",summary = "获取列表(分页)") + public BaseWebResult page(EnhanceSqlEntity entity, PageVo pageVo,String column,String order) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + if(Func.isNotEmpty(column)){ + if(Func.equals(order.toUpperCase(),"ASC")){ + wrapper.orderByAsc(EnhanceSqlEntity::getButtonCode); + }else{ + wrapper.orderByDesc(EnhanceSqlEntity::getButtonCode); + } + }else{//默认按id排序 + wrapper.orderByDesc(EnhanceSqlEntity::getId); + } + IPage pages = sqlService.page(page, wrapper); + return BaseWebResult.success(pages); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ExcelController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ExcelController.java new file mode 100644 index 0000000..2ce56fd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ExcelController.java @@ -0,0 +1,330 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamImport; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.entity.ExcelFileEntity; +import com.jeelowcode.core.framework.params.UpdateFileDataParam; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.excel.JeeLowCodeExcelUtils; +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.framework.utils.enums.YNEnum; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.apache.commons.collections4.map.LinkedMap; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.util.*; +import java.util.concurrent.TimeUnit; + +@Tag(name = "低代码框架-框架接口-Excel相关") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/excel") +public class ExcelController extends BaseController { + + private final IFormService formService; + + private final IExcelFileDataService excelDataService; + + private final IExcelFileService excelFileService; + + private final IExcelService excelService; + + private final JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + private final IJeeLowCodeAdapter jeeLowCodeAdapter; + + private final IJeeLowCodeConfigService jeeLowCodeConfigService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 1) + @Operation(tags = "Excel模块",summary = "导出Excel模板") + @GetMapping({"/exportExcelTemplate/{dbformId}"}) + public void exportExcelTemplate(@PathVariable("dbformId") Long dbformId, HttpServletResponse rsp) { + ExcelTemplateModel excelTemplateModel = super.exportExcelTemplate(dbformId); + //导出 + JeeLowCodeExcelUtils.exportExcel(rsp, excelTemplateModel.getSheetName(), excelTemplateModel.getHeadTitleMap(), excelTemplateModel.getDataList()); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:export:'+#dbformId)") + @ApiOperationSupport(order = 2) + @Operation(tags = "Excel模块",summary = "导出Excel数据") + @PostMapping({"/exportExcel/{dbformId}"}) + public void exportExcelData(@PathVariable("dbformId") Long dbformId, HttpServletRequest req, HttpServletResponse rsp) { + Map params = FuncWeb.getParameterBodyMap(req); + ExcelModel excelModel = super.exportExcelData(dbformId, params); + //导出 + JeeLowCodeExcelUtils.exportExcel(rsp, excelModel.getSheetName(), excelModel.getHeadTitleMap(), excelModel.getDataMapList()); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 3) + @Operation(tags = "Excel模块",summary = "导入Excel数据") + @PostMapping({"/viewExcel/{dbformId}"}) + public BaseWebResult viewExcelData(@PathVariable("dbformId") Long dbformId, @RequestParam MultipartFile file) { + try { + String fileName = file.getOriginalFilename(); + InputStream inputStream = file.getInputStream(); + //获取所有key + Map fieldNameAndCodeMap = formService.getFieldNameAndCode(dbformId); + + List> dataMapList = JeeLowCodeExcelUtils.importExcel(inputStream, 1, fieldNameAndCodeMap); + if (Func.isEmpty(dataMapList)) { + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_IMPORT_EXCEL); + } + //封装参数 + ButtonParamImport buttonParam = new ButtonParamImport(); + buttonParam.setDbFormId(dbformId); + buttonParam.setDataMapList(dataMapList); + buttonParam.setFileName(fileName);//文件名称 + buttonParam.setServiceType("IMPORT_TEMPLATE");//业务类型 + + ExcelImportResultModel resultModel = super.importExcelData(buttonParam); + return BaseWebResult.success(resultModel); + } catch (Exception e) { + throw new JeeLowCodeException("导入失败"); + } + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 4) + @Operation(tags = "Excel模块",summary = "查询导入进度") + @GetMapping({"/viewProgress/{dbformId}"}) + public BaseWebResult viewProgress(@PathVariable("dbformId") Long dbformId, String batchCode) { + //因为走事务控制,只需要查是否存在即可 + ExcelFileEntity excelFileEntity = excelFileService.getById(Func.toLong(batchCode)); + return BaseWebResult.success(Func.isNotEmpty(excelFileEntity)); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 4) + @Operation(tags = "Excel模块",summary = "查询导入进度") + @GetMapping({"/importProgress/{dbformId}"}) + public BaseWebResult importProgress(@PathVariable("dbformId") Long dbformId, String batchCode, String handleResult) { + String redisKeyData = ""; + if (Func.isEmpty(handleResult)) {//总数 + redisKeyData = "excel:import_data:task_" + batchCode + ":*"; + } else {//成功或者失败数据 + redisKeyData = "excel:import_data:task_" + batchCode + ":" + handleResult + ":"; + } + Set keys = jeeLowCodeRedisUtils.keys(redisKeyData); + if (Func.isEmpty(keys)) { + return BaseWebResult.success(0); + } else { + return BaseWebResult.success(keys.size()); + } + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 5) + @Operation(tags = "Excel模块",summary = "操作 恢复/暂停/取消任务") + @GetMapping({"/importOpTask/{dbformId}"}) + public BaseWebResult importOpTask(@PathVariable("dbformId") Long dbformId, Long batchCode, String taskState) { + ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + + + if (Func.equals(taskState, "START_TASK")) {//开启 + excelService.handleTempTable(sra,dbformId, batchCode); + } else {//暂停 取消 + String redisKey = "excel:import:task_" + batchCode; + jeeLowCodeRedisUtils.set(redisKey, taskState, 2, TimeUnit.DAYS);//存2天 + } + + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @ApiOperationSupport(order = 6) + @Operation(tags = "Excel模块",summary = "下载错误数据数据") + @GetMapping({"/downloadErrorExcel/{dbformId}"}) + public void downloadErrorExcel(@PathVariable("dbformId") Long dbformId, Long batchCode, HttpServletResponse rsp) { + //获取失败数据 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileDataEntity::getExcelFileId, batchCode); + wrapper.eq(ExcelFileDataEntity::getHandleState, YNEnum.Y.getCode()); + wrapper.eq(ExcelFileDataEntity::getHandleResult, "FAIL"); + wrapper.orderByAsc(ExcelFileDataEntity::getSort); + List entityList = excelDataService.list(wrapper); + + List> dataMapList = new ArrayList<>(); + for (ExcelFileDataEntity entity : entityList) { + String dataJson = entity.getDataJson(); + Map dataMap = Func.json2Bean(dataJson, Map.class); + dataMap.put("error_reason", entity.getErrorReason()); + dataMapList.add(dataMap); + } + + + ExcelTemplateModel excelTemplateModel = super.exportExcelTemplate(dbformId); + LinkedMap headTitleMap = excelTemplateModel.getHeadTitleMap(); + //加入错误原因 + ExcelTitleModel titleModel = new ExcelTitleModel(); + titleModel.setTitle("错误原因"); + headTitleMap.put("error_reason", titleModel); + + //导出 + JeeLowCodeExcelUtils.exportExcel(rsp, excelTemplateModel.getSheetName(), headTitleMap, dataMapList); + + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/run/import/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "开始导入") + public BaseWebResult runImport(@PathVariable("dbformId") Long dbformId, Long batchCode) { + try { + //封装参数 + ButtonParamImport buttonParam = new ButtonParamImport(); + buttonParam.setDbFormId(dbformId); + buttonParam.setBatchCode(batchCode); + buttonParam.setServiceType("HANBLE_TEMPLATE");//业务类型 + super.importExcelData(buttonParam); + } catch (Exception e) { + throw new JeeLowCodeException("导入失败"); + } + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/view/page/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "数据预览(分页)") + public BaseWebResult page(@PathVariable("dbformId") Long dbformId, String handleResult,Long batchCode, PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileDataEntity::getExcelFileId, batchCode);//batchCode就是id + wrapper.eq(Func.isNotEmpty(handleResult),ExcelFileDataEntity::getHandleResult,handleResult); + wrapper.orderByAsc(ExcelFileDataEntity::getSort); + IPage pages = excelDataService.page(page, wrapper); + return BaseWebResult.success(pages); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/update/fileData/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "修改值") + public BaseWebResult updateFileData(@PathVariable("dbformId") Long dbformId, @RequestBody UpdateFileDataParam param) { + ExcelFileDataEntity updateEntity = new ExcelFileDataEntity(); + updateEntity.setId(param.getId()); + updateEntity.setDataJson(param.getJsonStr()); + excelDataService.updateById(updateEntity); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/del/fileData/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "删除值") + public BaseWebResult delFileData(@PathVariable("dbformId") Long dbformId, @RequestBody UpdateFileDataParam param) { + excelDataService.delById(param.getId()); + return BaseWebResult.success("成功"); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/file/list/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "获取导入列表") + public BaseWebResult fileList(@PathVariable("dbformId") Long dbformId, PageVo pageVo) { + String tenantId = jeeLowCodeAdapter.getTenantId(); + Integer excelFileDataDay = jeeLowCodeConfigService.getExcelFileDataDay(); + + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileEntity::getDbformId, dbformId); + wrapper.eq(ExcelFileEntity::getTenantId, tenantId); + wrapper.orderByDesc(ExcelFileEntity::getId); + Page pages = excelFileService.page(page, wrapper); + List records = pages.getRecords(); + if (Func.isNotEmpty(records)) { + for (ExcelFileEntity fileEntity : records) { + Long fileId = fileEntity.getId();//文件id + //判断是否有数据 + LambdaQueryWrapper wrapperData = new LambdaQueryWrapper<>(); + wrapperData.eq(ExcelFileDataEntity::getExcelFileId, fileId); + long count = excelDataService.count(wrapperData); + fileEntity.setViewFlag(count > 0); + } + } + Map resultMap=new HashMap<>(); + resultMap.put("day",excelFileDataDay); + resultMap.put("pages",pages); + return BaseWebResult.success(resultMap); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform-data:import:'+#dbformId)") + @PostMapping("/rollback/{dbformId}") + @ApiOperationSupport(order = 7) + @Operation(tags = "Excel模块",summary = "撤回(只允许本人撤销)") + public BaseWebResult fileList(@PathVariable("dbformId") Long dbformId, Long batchCode) { + + String onlineUserId = jeeLowCodeAdapter.getOnlineUserId(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileEntity::getDbformId, dbformId); + wrapper.eq(ExcelFileEntity::getId, batchCode); + wrapper.eq(ExcelFileEntity::getCreateUser,onlineUserId); + ExcelFileEntity excelFileEntity = excelFileService.getOne(wrapper); + if (Func.isEmpty(excelFileEntity)) { + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_IMPORT_EXCEL_NOT_DATA); + } + String importState = excelFileEntity.getImportState(); + if (Func.isNotEmpty(importState) && Func.notEquals(importState, "1")) { + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_IMPORT_EXCEL_STATE_ERROR); + } + //进行撤回 + excelFileService.rollback(excelFileEntity.getId()); + + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report-data:export:'+#reportCode)") + @ApiOperationSupport(order = 2) + @Operation(tags = "Excel模块",summary = "导出报表数据") + @PostMapping({"/exportReport/{reportCode}"}) + public void exportReportData(@PathVariable("reportCode") String reportCode, HttpServletRequest req, HttpServletResponse rsp) { + Map params = FuncWeb.getParameterBodyMap(req); + ExcelModel excelModel = super.exportReportData(reportCode, params); + //导出 + JeeLowCodeExcelUtils.exportExcel(rsp, excelModel.getSheetName(), excelModel.getHeadTitleMap(), excelModel.getDataMapList()); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDbFormController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDbFormController.java new file mode 100644 index 0000000..958c1b4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDbFormController.java @@ -0,0 +1,88 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.entity.GroupDbFormEntity; +import com.jeelowcode.core.framework.service.IGroupDbFormService; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-表单开发分组") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/group/dbform") +public class GroupDbFormController extends BaseController { + + private final IGroupDbFormService groupDbFormService; + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "表单开发分组",summary = "详情") + public BaseWebResult detail(@RequestParam Long id){ + return BaseWebResult.success(groupDbFormService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:create')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "表单开发分组",summary = "新增") + public BaseWebResult save(@RequestBody GroupDbFormEntity model) { + model.setId(IdWorker.getId()); + groupDbFormService.save(model); + return BaseWebResult.success(model.getId()); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:update')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发分组",summary = "修改") + public BaseWebResult update(@RequestBody GroupDbFormEntity model) { + groupDbFormService.updateById(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:dbform:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发分组",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + groupDbFormService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "表单开发分组",summary = "获取列表") + public BaseWebResult list(GroupDbFormEntity entity) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByAsc(GroupDbFormEntity::getId); + List dataList = groupDbFormService.list(wrapper); + return BaseWebResult.success(dataList); + } + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDesFormController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDesFormController.java new file mode 100644 index 0000000..1591106 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupDesFormController.java @@ -0,0 +1,88 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.entity.GroupDesFormEntity; +import com.jeelowcode.core.framework.service.IGroupDesFormService; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-表单设计分组") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/group/desform") +public class GroupDesFormController extends BaseController { + + private final IGroupDesFormService groupDesFormService; + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "自定义表单分组",summary = "详情") + public BaseWebResult detail(@RequestParam Long id){ + return BaseWebResult.success(groupDesFormService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:create')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "自定义表单分组",summary = "新增") + public BaseWebResult save(@RequestBody GroupDesFormEntity model) { + model.setId(IdWorker.getId()); + groupDesFormService.save(model); + return BaseWebResult.success(model.getId()); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:update')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "自定义表单分组",summary = "修改") + public BaseWebResult update(@RequestBody GroupDesFormEntity model) { + groupDesFormService.updateById(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:desform:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "自定义表单分组",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + groupDesFormService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "自定义表单分组",summary = "获取列表") + public BaseWebResult list(GroupDesFormEntity entity) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByAsc(GroupDesFormEntity::getId); + List dataList = groupDesFormService.list(wrapper); + return BaseWebResult.success(dataList); + } + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupReportController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupReportController.java new file mode 100644 index 0000000..675e55b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/GroupReportController.java @@ -0,0 +1,90 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.entity.GroupReportEntity; +import com.jeelowcode.core.framework.service.IGroupReportService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "低代码框架-报表统计分组") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/group/report") +public class GroupReportController extends BaseController { + + private final IGroupReportService groupReportService; + + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(tags = "报表分组",summary = "详情") + public BaseWebResult detail(@RequestParam Long id){ + return BaseWebResult.success(groupReportService.getById(id)); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:create')") + @PostMapping("/save") + @ApiOperationSupport(order = 2) + @Operation(tags = "报表分组",summary = "新增") + public BaseWebResult save(@RequestBody GroupReportEntity model) { + model.setId(IdWorker.getId()); + groupReportService.save(model); + return BaseWebResult.success(model.getId()); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:update')") + @PutMapping("/update") + @ApiOperationSupport(order = 3) + @Operation(tags = "报表分组",summary = "修改") + public BaseWebResult update(@RequestBody GroupReportEntity model) { + groupReportService.updateById(model); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "报表分组",summary = "删除(逻辑删除)") + public BaseWebResult del(@RequestBody List ids) { + groupReportService.removeBatchByIds(ids); + return BaseWebResult.success("成功"); + } + + + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(tags = "报表分组",summary = "获取列表") + public BaseWebResult list(GroupReportEntity entity) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.setEntity(entity); + wrapper.orderByAsc(GroupReportEntity::getId); + List dataList = groupReportService.list(wrapper); + return BaseWebResult.success(dataList); + } + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/HistoryController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/HistoryController.java new file mode 100644 index 0000000..e9a544d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/HistoryController.java @@ -0,0 +1,84 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.service.IHistoryService; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.annotation.ApiEncryptAes; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Tag(name = "低代码框架-历史接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/history") +public class HistoryController extends BaseController { + + private final IHistoryService historyService; + + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @ApiEncryptAes //加密 + @GetMapping("/getDetail") + @ApiOperationSupport(order = 3) + @Operation(tags = "历史增强",summary = "获取列表(分页)") + public BaseWebResult getDetail(Long historyId,String type) { + switch (type){ + case JeeLowCodeConstant.HISTORY_DESFORM : + return BaseWebResult.success(historyService.getDesFormInfo(historyId)); + case JeeLowCodeConstant.HISTORY_JS : + return BaseWebResult.success(historyService.getHistoryJsInfo(historyId)); + case JeeLowCodeConstant.HISTORY_SQL : + return BaseWebResult.success(historyService.getHistorySqlInfo(historyId)); + case JeeLowCodeConstant.HISTORY_JAVA : + return BaseWebResult.success(historyService.getHistoryJavaInfo(historyId)); + } + + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:web')") + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(tags = "历史增强",summary = "获取列表(分页)") + public BaseWebResult page(Long id,String type,PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + + switch (type){ + case JeeLowCodeConstant.HISTORY_DESFORM ://表单设计 + return BaseWebResult.success(historyService.getDesFormPages(id, page)); + case JeeLowCodeConstant.HISTORY_JS ://js增强 + return BaseWebResult.success(historyService.getHistoryJsPages(id, page)); + case JeeLowCodeConstant.HISTORY_SQL ://sql增强 + return BaseWebResult.success(historyService.getHistorySqlPages(id, page)); + case JeeLowCodeConstant.HISTORY_JAVA ://java增强 + return BaseWebResult.success(historyService.getHistoryJavaPages(id, page)); + } + + return BaseWebResult.success("成功"); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/OpenController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/OpenController.java new file mode 100644 index 0000000..bd12735 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/OpenController.java @@ -0,0 +1,207 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import cn.hutool.json.JSONObject; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceParam; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceRespModel; +import com.jeelowcode.framework.plus.component.DbManager; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.entity.DesformEntity; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import com.jeelowcode.framework.utils.annotation.ApiEncryptAes; +import com.jeelowcode.framework.utils.annotation.JeeLowCodeNoLoginViewDbForm; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * @author JX + * @create 2024-02-26 14:59 + * @dedescription: + */ +@JeeLowCodeTenantIgnore +@Tag(name = "低代码框架 - 开放接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START+"/open") +public class OpenController extends BaseController { + + private final IFrameService frameService; + + private final IFormService formService; + + private final IFrameSqlService sqlService; + + private final DbManager dbManager; + + private final IDesFormService desFormService; + + @JeeLowCodeNoLoginViewDbForm + @PostMapping({"/list/{dbformId}"}) + @ApiOperationSupport(order = 2) + @Operation(tags = "开放接口",summary = "不登录可以查看 - 获取表数据列表") + public BaseWebResult getDataList(@PathVariable("dbformId") Long dbformId, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel resultDataModel = super.getDataPage(dbformId, params); + return BaseWebResult.success(resultDataModel); + } + + @JeeLowCodeNoLoginViewDbForm + @PostMapping({"/detail/{dbformId}/{dataId}"}) + @ApiOperationSupport(order = 4) + @Operation(tags = "开放接口",summary = "不登录可以查看 - 获取表数据详情") + public BaseWebResult getDataDetail(@PathVariable("dbformId") Long dbformId, @PathVariable("dataId") Long dataId, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel resultDataModel = super.getDataDetail(dbformId, dataId, params); + if (FuncBase.isEmpty(resultDataModel) || FuncBase.isEmpty(resultDataModel.getRecords())) { + return BaseWebResult.successNull(); + } + return BaseWebResult.success(resultDataModel.getRecords().get(0)); + } + + @JeeLowCodeNoLoginViewDbForm + @PostMapping({"/save/{dbformId}"}) + @ApiOperationSupport(order = 5) + @Operation(tags = "开放接口",summary = "不登录可以查看 - 新增表数据") + public BaseWebResult addData(@PathVariable("dbformId") Long dbformId, @RequestBody JSONObject jsonObject) { + String id = super.addJsonData(dbformId, jsonObject); + return BaseWebResult.success(id); + } + + @ApiEncryptAes + @GetMapping({"/desform/get/detail"}) + @ApiOperationSupport(order = 5) + @Operation(tags = "开放接口",summary = "不登录可以查看 - 获取表单设计配置") + public BaseWebResult desFormGetDetail(Long desFormId) { + DesformEntity desformEntity = desFormService.getById(desFormId); + String isOpen = desformEntity.getIsOpen(); + if(Func.equals(isOpen, YNEnum.N.getCode())){//没有对外访问 + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_DESFORM_IS_OPEN); + } + return BaseWebResult.success(desformEntity); + } + + @PostMapping({"/report/list/{reportCode}"}) + @ApiOperationSupport(order = 2) + @Operation(tags = "开放接口",summary = "获取数据列表 - 单个") + public BaseWebResult getDataList(@PathVariable("reportCode") String reportCode, HttpServletRequest req) {// + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel pages = getReportDataList(reportCode, params); + return BaseWebResult.success(pages); + } + + //------------------------------------------------------------------------- + + + @GetMapping({"/test"}) + @ApiOperationSupport(order = 5) + @Operation(tags = "开放接口",summary = "测试") + public BaseWebResult test(Long type) { + int i=1/0; + return BaseWebResult.success("成功"); + //dbManager. + /* Map paramMap=new HashMap<>(); + paramMap.put("sex","男"); + + + ReportPageParam paramModel=new ReportPageParam(); + paramModel.setReportCode("test_lin_sex_cou"); + paramModel.setParam(paramMap); + + List paramList=new ArrayList<>(); + paramList.add(paramModel); + + + Map reusltMap=new HashMap<>(); + for(ReportPageParam pageParam:paramList){ + String reportCode = pageParam.getReportCode();//报表编码 + Map param = pageParam.getParam();//报表参数 + ResultDataModel reportDataPage = getReportDataList(reportCode, param); + reusltMap.put(reportCode,reportDataPage); + } + return BaseWebResult.success(reusltMap);*/ + + /* jeeLowCodeRedisUtils.set("abc","linlin啊哈哈"); + String abc = (String)jeeLowCodeRedisUtils.get("abc"); + System.out.println(abc); +*/ + + + /* List areaList=new ArrayList<>(); + areaList.add("越秀区"); + areaList.add("荔湾区"); + areaList.add("海珠区"); + areaList.add("天河区"); + areaList.add("白云区"); + areaList.add("黄埔区"); + areaList.add("花都区"); + areaList.add("番禺区"); + areaList.add("南沙区"); + areaList.add("从化区"); + areaList.add("增城区"); + + List sexList=new ArrayList<>(); + sexList.add("男"); + sexList.add("女"); + for (int i = 0; i < 10000; i++) { + String area = areaList.get(RandomUtil.randomInt(11)); + String sex = sexList.get(RandomUtil.randomInt(2)); + + Map addMap=new HashMap<>(); + addMap.put("id", IdWorker.getId()); + addMap.put("name","姓名"+i); + addMap.put("age",i); + addMap.put("sex",sex); + addMap.put("area",area); + sqlService.insertDataByPlus("lin_tongji",addMap); + }*/ + + + //return BaseWebResult.success("成功"); + } + + + + @PostMapping({"/httpEnhanceTest"}) + @ApiOperationSupport(order = 6) + @Operation(tags = "开放接口",summary = "测试") + public EnhanceRespModel httpEnhanceTest(@RequestBody EnhanceContext context) { + EnhanceParam param = context.getParam(); + Map params = param.getParams(); + String s = FuncBase.json2Str(params); + System.out.println("params------" + s); + EnhanceRespModel respModel = new EnhanceRespModel(); + context.setOnlyBefore(true); + respModel.setData(context); + respModel.setStatus(200); + + return respModel; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportController.java new file mode 100644 index 0000000..f2c0cb0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportController.java @@ -0,0 +1,147 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.core.framework.config.aspect.enhancereport.JeeLowCodeAnnotationAspectjReport; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.config.validate.ReportCopyValidate; +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.core.framework.params.PageReportParam; +import com.jeelowcode.core.framework.params.ReportAddOrUpdateParam; +import com.jeelowcode.core.framework.params.vo.PageVo; +import com.jeelowcode.core.framework.params.vo.ReportConfigVo; +import com.jeelowcode.core.framework.params.vo.ReportVo; +import com.jeelowcode.core.framework.params.vo.webconfigreport.WebConfigVo; +import com.jeelowcode.core.framework.service.IReportService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.annotation.JeelowCodeValidate; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@Tag(name = "低代码框架-报表接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/report") +public class ReportController extends BaseController { + + private final IReportService reportService; + + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:create')") + @PostMapping("/save") + @ApiOperationSupport(order = 1) + @Operation(tags = "报表统计",summary = "数据报表 - 保存") + public BaseWebResult saveDbFormConfig(@RequestBody ReportAddOrUpdateParam param, HttpServletRequest req) { + reportService.saveReportConfig(param); + + //刷新插件 + ReportVo report = param.getReport(); + JeeLowCodeAnnotationAspectjReport.refreshPlugin("ADD", report.getReportCode(),report.getJavaConfig()); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:update')") + @PutMapping("/update") + @ApiOperationSupport(order = 2) + @Operation(tags = "报表统计",summary = "数据报表 - 修改") + public BaseWebResult updateDbFormConfig(@RequestBody ReportAddOrUpdateParam param) { + Long reportId = param.getReport().getId(); + ReportEntity oldEntity = reportService.getReportEntityById(reportId); + String oldJavaConfig = oldEntity.getJavaConfig(); + String newJavaConfig = param.getReport().getJavaConfig(); + + reportService.updateReportConfig(param); + + ReportVo report = param.getReport(); + //刷新插件 有->无 + if(Func.isNotEmpty(oldJavaConfig) && Func.isEmpty(newJavaConfig)){ + JeeLowCodeAnnotationAspectjReport.refreshPlugin("DEL", report.getReportCode(),oldJavaConfig); + }else{ + JeeLowCodeAnnotationAspectjReport.refreshPlugin("ADD", report.getReportCode(),report.getJavaConfig()); + } + + + + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:delete')") + @DeleteMapping("/delete") + @ApiOperationSupport(order = 3) + @Operation(tags = "报表统计",summary = "数据报表 - 删除") + public BaseWebResult deleteReportConfig(@RequestBody List reportIdList) { + reportService.deleteReportConfig(reportIdList); + return BaseWebResult.success("成功"); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:query')") + @PostMapping("/detail") + @ApiOperationSupport(order = 4) + @Operation(tags = "报表统计",summary = "数据报表 - 获取详情") + public BaseWebResult getReportConfig(Long reportId, @RequestBody List typeList) { + ReportConfigVo vo = reportService.getReportConfig(reportId); + return BaseWebResult.success(vo); + } + + @PreAuthorize("@ss.hasPermission('jeelowcode:report:query')") + @PostMapping("/page") + @ApiOperationSupport(order = 5) + @Operation(tags = "报表统计",summary = "数据 - 获取分页数据") + public BaseWebResult getPageReportConfig(@RequestBody PageReportParam param, PageVo pageVo) { + Page page = FuncWeb.getPage(pageVo.getPageNo(), pageVo.getPageSize()); + IPage pages = reportService.getPageReportConfig(param, page); + return BaseWebResult.success(pages); + } + + @GetMapping("/check/report-code") + @ApiOperationSupport(order = 6) + @Operation(tags = "报表统计",summary = "校验报表编号是否存在") + public BaseWebResult checkReport(String reportCode) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(ReportEntity::getReportCode,reportCode); + long count = reportService.count(wrapper); + return BaseWebResult.success(count>0); + } + + @GetMapping("/get/web-config") + @ApiOperationSupport(order = 7) + @Operation(tags = "报表统计",summary = "获取页面信息配置") + public BaseWebResult getWebConfig(@RequestParam("reportCode")String reportCode) { + WebConfigVo webConfig = reportService.getWebConfig(reportCode); + return BaseWebResult.success(webConfig); + } + + @JeelowCodeValidate(title = "判断表名是否合法", validateClass = ReportCopyValidate.class) + @PreAuthorize("@ss.hasPermission('jeelowcode:report:create')") + @GetMapping({"/copy/{oldReportCode}"}) + @ApiOperationSupport(order = 6) + @Operation(tags = "报表统计",summary = "复制表") + public BaseWebResult copy(@PathVariable("oldReportCode") String oldReportCode, String reportCode) { + reportService.copy(oldReportCode,reportCode); + return BaseWebResult.success("复制成功"); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportDataController.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportDataController.java new file mode 100644 index 0000000..9212dae --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/controller/ReportDataController.java @@ -0,0 +1,79 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.*; + +@Slf4j +@Tag(name = "低代码框架-报表接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START + "/report-data") +public class ReportDataController extends BaseController { + + @PreAuthorize("@ss.hasPermission('jeelowcode:report-data:query:'+#reportCode)")//根据报表编号 来判断是否有权限访问 + @PostMapping({"/list/{reportCode}"}) + @ApiOperationSupport(order = 2) + @Operation(tags = "报表统计", summary = "获取数据列表 - 单个列表") + public BaseWebResult getDataList(@PathVariable("reportCode") String reportCode, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + ResultDataModel pages = getReportDataList(reportCode, params); + return BaseWebResult.success(pages); + } + + + @PreAuthorize("@ss.hasPermission('jeelowcode:report-data:query:'+#reportCodeListStr)")//根据报表编号来判断是否有权限访问 + @PostMapping({"/batch/list/{reportCodeListStr}"}) + @ApiOperationSupport(order = 2) + @Operation(tags = "报表统计", summary = "获取数据列表 - 多个列表") + public BaseWebResult getDataPage(@PathVariable("reportCodeListStr") String reportCodeListStr, HttpServletRequest req) { + Map params = FuncWeb.getParameterBodyMap(req); + List reportCodeList = Func.toStrList(reportCodeListStr); + Map resultMap = new ConcurrentHashMap<>(); + try { + Func.jeelowcodeForkJoinPool().submit(() -> reportCodeList.parallelStream().forEach(reportCode -> { + // 处理代码 + Map subParam = (Map) params.get(reportCode); + if (Func.isEmpty(subParam)) { + subParam = new HashMap<>(); + } + ResultDataModel pages = getReportDataList(reportCode, subParam); + resultMap.put(reportCode, pages); + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + return BaseWebResult.success(resultMap); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/maindate/ExampleMainDateAroundEnhanceList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/maindate/ExampleMainDateAroundEnhanceList.java new file mode 100644 index 0000000..3486208 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/maindate/ExampleMainDateAroundEnhanceList.java @@ -0,0 +1,67 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.maindate; + +import cn.hutool.json.JSONUtil; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.Map; + +/** + * 日程管理-环绕 + */ +@Component("exampleMainDateAroundEnhanceList") +public class ExampleMainDateAroundEnhanceList implements AroundAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void beforeExecute(EnhanceContext enhanceContext) { + Map params = enhanceContext.getParam().getParams(); + String kssjStr = JeeLowCodeUtils.getMap2Str(params, "kssj"); + if (Func.isNotEmpty(kssjStr)) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String format = null; + try { + format = sdf.format(sdf.parse(kssjStr)); + } catch (ParseException ignored) { + } + if (Func.isNotEmpty(format) && Func.equals(format, kssjStr)) { + // 前端传过来的时间格式为 yyyy-MM-dd ,转为 yyyy-MM-dd 00:00:00,yyyy-MM-dd 23:59:59 + params.put("kssj", kssjStr + " 00:00:00," + kssjStr + " 23:59:59"); + } + } + } + + @Override + public void afterExecute(EnhanceContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + for (Map record : records) { + String id = JeeLowCodeUtils.getMap2Str(record, "id"); + // 获取附表数据转json字符串 + List> list = exampleDbFormMapper.getSubmoredateByMainDateId(id); + record.put("sub_more_date", JSONUtil.toJsonStr(list)); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDelete.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDelete.java new file mode 100644 index 0000000..bc5e43b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDelete.java @@ -0,0 +1,47 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 学生-删除-后置增强 + */ +@Slf4j +@Component("studentAfterEnhanceDelete") +public class ExampleStudentAfterEnhanceDelete implements AfterAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentAfterEnhanceDelete=======>execute"); + // 删除其他表数据 + Map params = enhanceContext.getParam().getParams(); + // 单条删除和批量删除的数据的id都是在dateIdList中 + List studentIdList = JeeLowCodeUtils.getMap2List(params, "dateIdList"); + exampleDbFormMapper.delScoreByStudentId(studentIdList); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDetail.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDetail.java new file mode 100644 index 0000000..ba1dd87 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhanceDetail.java @@ -0,0 +1,45 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.framework.utils.utils.FuncBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 学生-详情-后置增强 + */ +@Slf4j +@Component("studentAfterEnhanceDetail") +public class ExampleStudentAfterEnhanceDetail implements AfterAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentAfterEnhanceDetail=======>execute"); + List> records = enhanceContext.getResult().getRecords(); + if (FuncBase.isEmpty(records)) { + return; + } + // 处理返回的数据 + Map map = records.get(0); + // 注:如果要在这里添加虚拟字段,需先在 [表单开发-数据库属性-同步数据库] 的对应字段处取消打勾,并确认该字段处在 [表单开发-虚拟化字段格式] + map.put("classe", "1"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhancePage.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhancePage.java new file mode 100644 index 0000000..8100ff8 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAfterEnhancePage.java @@ -0,0 +1,46 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.framework.utils.utils.FuncBase; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 学生-分页-后置增强 + */ +@Slf4j +@Component("studentAfterEnhancePage") +public class ExampleStudentAfterEnhancePage implements AfterAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentAfterEnhancePage=======>execute"); + List> records = enhanceContext.getResult().getRecords(); + if (FuncBase.isEmpty(records)) { + return; + } + // 处理返回的数据 + records.forEach(item -> { + // 注:如果要在这里添加虚拟字段,需先在 [表单开发-数据库属性-同步数据库] 的对应字段处取消打勾,并确认该字段处在 [表单开发-虚拟化字段格式] + item.put("classe", "1"); + }); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhanceDetail.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhanceDetail.java new file mode 100644 index 0000000..0d67bab --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhanceDetail.java @@ -0,0 +1,51 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-详情-环绕增强 + */ +@Slf4j +@Component("studentAroundEnhanceDetail") +public class ExampleStudentAroundEnhanceDetail implements AroundAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void beforeExecute(EnhanceContext enhanceContext) { + log.info("进入=======>studentAroundEnhanceDetail=======>beforeExecute"); + Map params = enhanceContext.getParam().getParams(); + String id = JeeLowCodeUtils.getMap2Str(params, "id"); + // 手动编写sql语句 + Map map = exampleDbFormMapper.getStudentById(id); + FuncWeb.setDetailResult(enhanceContext, map); + } + + @Override + public void afterExecute(EnhanceContext enhanceContext) { + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhancePage.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhancePage.java new file mode 100644 index 0000000..6129950 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentAroundEnhancePage.java @@ -0,0 +1,52 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.core.framework.utils.FuncWeb; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-分页-环绕增强 + */ +@Slf4j +@Component("studentAroundEnhancePage") +public class ExampleStudentAroundEnhancePage implements AroundAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void beforeExecute(EnhanceContext enhanceContext) { + log.info("进入=======>studentAroundEnhancePage=======>beforeExecute"); + Map params = enhanceContext.getParam().getParams(); + Page page = FuncWeb.getPage(params); + // 手动编写sql语句 + IPage> pages = exampleDbFormMapper.getStudentPage(page, params); + FuncWeb.setPageResult(enhanceContext, pages); + } + + @Override + public void afterExecute(EnhanceContext enhanceContext) { + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceAdd.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceAdd.java new file mode 100644 index 0000000..bff3821 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceAdd.java @@ -0,0 +1,58 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-新增-前置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceAdd") +public class ExampleStudentBeforeEnhanceAdd implements BeforeAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceAdd=======>execute"); + Map params = enhanceContext.getParam().getParams(); + this.checkData(params); + } + + /** + * 校验数据合法性 + * + * @param map + */ + private void checkData(Map map) { + String sno = JeeLowCodeUtils.getMap2Str(map, "sno"); + Long id = exampleDbFormMapper.getStudentBySon(sno); + if (FuncBase.isNotEmpty(id)) { + throw new JeeLowCodeException("学号[" + sno + "]已存在!"); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceDetail.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceDetail.java new file mode 100644 index 0000000..a158e15 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceDetail.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-详情-前置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceDetail") +public class ExampleStudentBeforeEnhanceDetail implements BeforeAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceDetail=======>execute"); + Map params = enhanceContext.getParam().getParams(); + // 注:如果要在这里添加过滤条件需先在 [表单开发-查询属性-接口查询] 的对应字段处打勾 + params.put("flag", "0"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceEdit.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceEdit.java new file mode 100644 index 0000000..f730ad1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceEdit.java @@ -0,0 +1,59 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-编辑-前置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceEdit") +public class ExampleStudentBeforeEnhanceEdit implements BeforeAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceEdit=======>execute"); + Map params = enhanceContext.getParam().getParams(); + this.checkData(params); + } + + /** + * 校验数据合法性 + * + * @param map + */ + private void checkData(Map map) { + String id = JeeLowCodeUtils.getMap2Str(map, "id"); + String sno = JeeLowCodeUtils.getMap2Str(map, "sno"); + Long oldId = exampleDbFormMapper.getStudentExcludIdBySon(id, sno); + if (FuncBase.isNotEmpty(oldId)) { + throw new JeeLowCodeException("学号[" + sno + "]已存在!"); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceExport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceExport.java new file mode 100644 index 0000000..ebde6ea --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceExport.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-导出-前置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceExport") +public class ExampleStudentBeforeEnhanceExport implements BeforeAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceExport=======>execute"); + Map params = enhanceContext.getParam().getParams(); + // 注:如果要在这里添加过滤条件需先在 [表单开发-查询属性-接口查询] 的对应字段处打勾 + params.put("flag", "1"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceImport.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceImport.java new file mode 100644 index 0000000..c6d7c21 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceImport.java @@ -0,0 +1,58 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleDbFormMapper; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-导入-前置增强 + */ +@Slf4j + @Component ( value = "studentBeforeEnhanceImport" ) +public class ExampleStudentBeforeEnhanceImport implements BeforeAdvicePlugin { + + @Autowired + private ExampleDbFormMapper exampleDbFormMapper; + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceImport=======>execute"); + Map params = enhanceContext.getParam().getParams(); + this.checkData(params); + } + + /** + * 校验数据合法性 + * + * @param map + */ + private void checkData(Map map) { + String sno = JeeLowCodeUtils.getMap2Str(map, "sno"); + Long id = exampleDbFormMapper.getStudentBySon(sno); + if (FuncBase.isNotEmpty(id)) { + throw new JeeLowCodeException("学号[" + sno + "]已存在!"); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceList.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceList.java new file mode 100644 index 0000000..1fbcae4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceList.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-不分页-后置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceList") +public class ExampleStudentBeforeEnhanceList implements BeforeAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceList=======>execute"); + Map params = enhanceContext.getParam().getParams(); + // 注:如果要在这里添加过滤条件需先在 [表单开发-查询属性-接口查询] 的对应字段处打勾 + params.put("flag", "0"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhancePage.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhancePage.java new file mode 100644 index 0000000..e3a1680 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhancePage.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-分页-前置增强 + */ +@Slf4j +@Component(value="studentBeforeEnhancePage") +public class ExampleStudentBeforeEnhancePage implements BeforeAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhancePage=======>execute"); + Map params = enhanceContext.getParam().getParams(); + // 注:如果要在这里添加过滤条件需先在 [表单开发-查询属性-接口查询] 的对应字段处打勾 + params.put("flag", "0"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceSummary.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceSummary.java new file mode 100644 index 0000000..e38f647 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentBeforeEnhanceSummary.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 学生-统计-前置增强 + */ +@Slf4j +@Component("studentBeforeEnhanceSummary") +public class ExampleStudentBeforeEnhanceSummary implements BeforeAdvicePlugin { + + @Override + public void execute(EnhanceContext enhanceContext) { + log.info("进入=======>studentBeforeEnhanceSummary=======>execute"); + Map params = enhanceContext.getParam().getParams(); + // 注:如果要在这里添加过滤条件需先在 [表单开发-查询属性-接口查询] 的对应字段处打勾 + params.put("flag", "1"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentThrowEnhancePage.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentThrowEnhancePage.java new file mode 100644 index 0000000..96699c6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/dbform/student/ExampleStudentThrowEnhancePage.java @@ -0,0 +1,33 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.dbform.student; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.ThrowAdvicePlugin; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 学生-分页-异常增强 + */ +@Slf4j +@Component("studentThrowEnhancePage") +public class ExampleStudentThrowEnhancePage implements ThrowAdvicePlugin { + + @Override + public void execute(EnhanceContext model) { + log.info("进入=======>studentThrowEnhancePage=======>execute"); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/lin/ExampleLinReportClassEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/lin/ExampleLinReportClassEnhance.java new file mode 100644 index 0000000..843be9b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/lin/ExampleLinReportClassEnhance.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.lin; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:05 + * @dedescription: + */ +@Component("linReportClassEnhance") +public class ExampleLinReportClassEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + EnhanceResult result = enhanceContext.getResult(); + List> records = result.getRecords(); + Map addMap=new HashMap<>(); + addMap.put("sex","未知"); + addMap.put("cou","其他"); + records.add(addMap); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberProductPercentageReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberProductPercentageReportEnhance.java new file mode 100644 index 0000000..bddbf0c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberProductPercentageReportEnhance.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 系统首页-数据会员-各品类占比 + */ +@Component("exampleMemberProductPercentageReportEnhance") +public class ExampleMemberProductPercentageReportEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + if (Func.isEmpty(records)) { + return; + } + records.forEach(item -> item.put("date", DateUtil.format(JeeLowCodeUtils.getMap2DateTime(item, "date"), "yyyy-MM"))); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberRealtimeVisitsReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberRealtimeVisitsReportEnhance.java new file mode 100644 index 0000000..821b5ab --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberRealtimeVisitsReportEnhance.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 系统首页-数据会员-实时访客量 + */ +@Component("exampleMemberRealtimeVisitsReportEnhance") +public class ExampleMemberRealtimeVisitsReportEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + if (Func.isEmpty(records)) { + return; + } + records.forEach(item -> item.put("date", DateUtil.format(JeeLowCodeUtils.getMap2DateTime(item, "date"), "HH:mm"))); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberSaleReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberSaleReportEnhance.java new file mode 100644 index 0000000..9fe487d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleMemberSaleReportEnhance.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 系统首页-数据会员-销售额 + */ +@Component("exampleMemberSaleReportEnhance") +public class ExampleMemberSaleReportEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + if (Func.isEmpty(records)) { + return; + } + records.forEach(item -> item.put("date", DateUtil.dayOfMonth(JeeLowCodeUtils.getMap2DateTime(item, "date")) + "日")); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzdmkReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzdmkReportEnhance.java new file mode 100644 index 0000000..733f286 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzdmkReportEnhance.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleReportMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 系统首页-使用统计-使用最多模块 + */ +@Component("exampleSytjSyzdmkReportEnhance") +public class ExampleSytjSyzdmkReportEnhance implements ReportAfterAdvicePlugin { + + @Autowired + private ExampleReportMapper exampleReportMapper; + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> resultList = new ArrayList<>(); + Date end = DateUtil.date(); + Date begin = DateUtil.beginOfDay(end); + List> list = exampleReportMapper.getMaxUsedModel(begin, end); + if (Func.isNotEmpty(list)) { + int total = Math.min(list.size(), 5); + resultList = list.subList(0, total); + for (int i = 0; i < resultList.size(); i++) { + resultList.get(i).put("pm", i + 1); + } + } + FuncWeb.setReportResult(enhanceContext, resultList); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzsmkReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzsmkReportEnhance.java new file mode 100644 index 0000000..30acfde --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleSytjSyzsmkReportEnhance.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleReportMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 系统首页-使用统计-使用最少模块 + */ +@Component("exampleSytjSyzsmkReportEnhance") +public class ExampleSytjSyzsmkReportEnhance implements ReportAfterAdvicePlugin { + + @Autowired + private ExampleReportMapper exampleReportMapper; + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> resultList = new ArrayList<>(); + Date end = DateUtil.date(); + Date begin = DateUtil.beginOfDay(end); + List> list = exampleReportMapper.getMinUsedModel(begin, end); + if (Func.isNotEmpty(list)) { + int total = Math.min(list.size(), 5); + resultList = list.subList(0, total); + for (int i = 0; i < resultList.size(); i++) { + resultList.get(i).put("pm", i + 1); + } + } + FuncWeb.setReportResult(enhanceContext, resultList); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleTrafficStatisticsReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleTrafficStatisticsReportEnhance.java new file mode 100644 index 0000000..dbd49f6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleTrafficStatisticsReportEnhance.java @@ -0,0 +1,103 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.mapper.example.ExampleReportMapper; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * 系统首页-使用统计-登录使用人数分析 + */ +@Component("exampleTrafficStatisticsReportEnhance") +public class ExampleTrafficStatisticsReportEnhance implements ReportAfterAdvicePlugin { + + @Autowired + private ExampleReportMapper exampleReportMapper; + + @Override + public void execute(EnhanceReportContext enhanceContext) { + Map params = enhanceContext.getParam().getParams(); + String date = JeeLowCodeUtils.getMap2Str(params, "date"); + // 开始结束日期相同则按小时,不同则按天 + String startDateStr; + String endDateStr; + if (Func.isNotEmpty(date) && date.contains(",")) { + List dateList = Arrays.asList(date.split(",")); + startDateStr = dateList.get(0); + endDateStr = dateList.get(1); + } else { + // 默认为当天 + startDateStr = DateUtil.today(); + endDateStr = startDateStr; + } + List> list = getData(startDateStr, endDateStr); + FuncWeb.setReportResult(enhanceContext, list); + } + + private List> getData(String startDateStr, String endDateStr) { + boolean hourFlag = true;// 默认按小时 + DateTime dateNow = DateUtil.date(); + Date dateStart = DateUtil.beginOfDay(DateUtil.parse(startDateStr, DatePattern.NORM_DATE_PATTERN));// yyyy-MM-dd 00:00:00 + Date dateEnd = DateUtil.endOfDay(DateUtil.parse(endDateStr, DatePattern.NORM_DATE_PATTERN));// yyyy-MM-dd 23:59:59 + if (!Func.equals(startDateStr, endDateStr)) { + hourFlag = false; + } else if (Func.equals(startDateStr, DateUtil.today())) { + dateEnd = dateNow;// 当前时间 yyyy-MM-dd HH:mm:ss + } + long between; + Date start; + Date end; + if (hourFlag) { + // 按小时 + between = DateUtil.between(dateStart, dateEnd, DateUnit.HOUR); + start = DateUtil.offsetHour(dateStart, -1); + end = DateUtil.endOfHour(start); + } else { + // 按天 + between = DateUtil.between(dateStart, dateEnd, DateUnit.DAY); + start = DateUtil.offsetDay(dateStart, -1); + end = DateUtil.endOfDay(start); + } + List> list = new ArrayList<>(); + for (int i = 0; i <= between; i++) { + Map dataMap = new HashMap<>(); + if (hourFlag) { + start = DateUtil.offsetHour(start, 1); + end = DateUtil.offsetHour(end, 1); + dataMap.put("date", DateUtil.format(start, "HH")); + } else { + start = DateUtil.offsetDay(start, 1); + end = DateUtil.offsetDay(end, 1); + dataMap.put("date", DateUtil.format(start, DatePattern.NORM_DATE_PATTERN)); + } + if (start.getTime() <= dateNow.getTime()) { + dataMap.putAll(exampleReportMapper.getIpAndVisitsNum(start, end)); + } + list.add(dataMap); + } + return list; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyFormReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyFormReportEnhance.java new file mode 100644 index 0000000..72fe06e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyFormReportEnhance.java @@ -0,0 +1,50 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 报表-系统首页-表格 + */ +@Component("exampleXtsyFormReportEnhance") +public class ExampleXtsyFormReportEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + if (Func.isEmpty(records)) { + return; + } + String jsonStr = records.get(0).get("value").toString(); + List list = JsonUtils.parseArray(jsonStr, Map.class); + Map params = enhanceContext.getParam().getParams(); + String type = JeeLowCodeUtils.getMap2Str(params, "type"); + String finalType = Func.isNotEmpty(type) ? type : "1"; + List list1 = list.stream().filter(item -> finalType.equals(item.get("type").toString())).collect(Collectors.toList()); + List> list2 = (List>) list1.get(0).get("data"); + FuncWeb.setReportResult(enhanceContext, list2); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyLineReportEnhance.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyLineReportEnhance.java new file mode 100644 index 0000000..5e045a9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/enhance/example/report/xtsy/ExampleXtsyLineReportEnhance.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.enhance.example.report.xtsy; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.core.framework.utils.FuncWeb; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * 报表-系统首页-单表 + */ +@Component("exampleXtsyLineReportEnhance") +public class ExampleXtsyLineReportEnhance implements ReportAfterAdvicePlugin { + + @Override + public void execute(EnhanceReportContext enhanceContext) { + List> records = enhanceContext.getResult().getRecords(); + if (Func.isEmpty(records)) { + return; + } + String jsonStr = JeeLowCodeUtils.getMap2Str(records.get(0), "value"); + List> list = (List>) (List) JsonUtils.parseArray(jsonStr, Map.class); + FuncWeb.setReportResult(enhanceContext, list); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/DesformEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/DesformEntity.java new file mode 100644 index 0000000..25c6303 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/DesformEntity.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author JX + * @create 2024-03-02 13:35 + * @dedescription: + */ +@TableName("lowcode_desform") +@Data +@EqualsAndHashCode +public class DesformEntity extends BaseTenantEntity { + + /** + * 表单设计名称 + */ + private String desformName; + + //表单设计json + private String desformJson; + + //表单设计分组id + private Long groupDesformId; + + //是否开放 + private String isOpen; + + //是否模板 + private String isTemplate; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJavaEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJavaEntity.java new file mode 100644 index 0000000..ffcb67d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJavaEntity.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; + +import lombok.*; + +/** + * 增强-JAVA增强 + * @author JX + * @create 2024-03-02 11:21 + * @dedescription: + */ +@TableName("lowcode_dbform_enhance_java") +@Data +@EqualsAndHashCode +public class EnhanceJavaEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 按钮编码 + */ + private String buttonCode; + + /** + * java类型;spring class http + */ + private String javaType; + + /** + * java类路径 + */ + private String javaClassUrl; + + /** + * 在线脚本 + */ + private String onlineScript; + + /** + * 生效状态;N=不生效 Y=生效 + */ + private String activeStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 结果处理类型:只针对列表,导出,列表和导出 + * 默认 =0 也就是把上一个结果带到下一个结果 + * 合集 =1 + * 差集 =2 + * 并集 =3 + * 交集=4 + */ + private String listResultHandleType; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJsEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJsEntity.java new file mode 100644 index 0000000..08120f1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceJsEntity.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 增强-JS增强 + */ +@TableName("lowcode_dbform_enhance_js") +@Data +@EqualsAndHashCode +public class EnhanceJsEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * js增强类型;list form + */ + private String jsType; + + /** + * js增强内容 + */ + private String jsJson; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceSqlEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceSqlEntity.java new file mode 100644 index 0000000..893754e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/EnhanceSqlEntity.java @@ -0,0 +1,72 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 增强-SQL增强 + * @author JX + * @create 2024-03-02 11:42 + * @dedescription: + */ +@TableName("lowcode_dbform_enhance_sql") +@Data +@EqualsAndHashCode +public class EnhanceSqlEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 按钮编码 + */ + private String buttonCode; + + /** + * 执行SQL + */ + private String executeSql; + + /** + * 备注 + */ + private String remark; + + /** + * 生效状态;N=不生效 Y=生效 + */ + private String activeStatus; + + /** + * 结果处理类型:只针对列表,导出,列表和导出 + * 默认 =0 也就是把上一个结果带到下一个结果 + * 合集 =1 + * 差集 =2 + * 并集 =3 + * 交集=4 + */ + private String listResultHandleType; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileDataEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileDataEntity.java new file mode 100644 index 0000000..f938e95 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileDataEntity.java @@ -0,0 +1,73 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * Excel导入临时库 + * @author JX + * @create 2024-03-02 11:56 + * @dedescription: + */ +@TableName("lowcode_log_excel_file_data") +@Data +@EqualsAndHashCode(callSuper = true) +public class ExcelFileDataEntity extends BaseTenantEntity { + + /** + * excel文件表id + */ + private Long excelFileId; + + /** + * 序号 + */ + private Integer sort; + + /** + * Excel数据 + */ + private String dataJson; + + /** + * 处理状态 :Y=已处理 N=未处理 + */ + private String handleState; + + /** + * 处理结果:SUCCESS=成功 FAIL=失败 + */ + private String handleResult; + + /** + * 处理时间 + */ + private Date handleTime; + + /** + * 错误原因 + */ + private String errorReason; + + /** + * 目标数据id + */ + private Long dataId; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileEntity.java new file mode 100644 index 0000000..10f95d9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ExcelFileEntity.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Excel 导入文件 + */ +@TableName("lowcode_log_excel_file") +@Data +@EqualsAndHashCode(callSuper = true) +public class ExcelFileEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 文件名 + */ + private String fileName; + + /** + * 导入状态 -2=已取消 -1=已撤回 0=未导入 1=已导入 + */ + private String importState; + + /** + * 总条数 + */ + private Integer totalNum; + + /** + * 成功条数 + */ + private Integer successNum; + + + /** + * 失败条数 + */ + private Integer errorNum; + + + /** + * 预览状态 + */ + @TableField(exist = false) + private Boolean viewFlag; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormButtonEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormButtonEntity.java new file mode 100644 index 0000000..5c2be47 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormButtonEntity.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 表单开发-自定义按钮 + * + * @author JX + * @create 2024-03-02 11:51 + * @dedescription: + */ +@TableName("lowcode_dbform_button") +@Data +@EqualsAndHashCode +public class FormButtonEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 按钮名称 + */ + private String buttonName; + + /** + * 按钮编码 + */ + private String buttonCode; + + /** + * 按钮图标 + */ + private String buttonIcon; + + /** + * 按钮位置 + */ + private String buttonLocation; + + /** + * 按钮类型 + */ + private String buttonType; + + /** + * 按钮样式 + */ + private String buttonSort; + + /** + * 按钮显隐增强 + */ + private String buttonExp; + + /** + * 按钮显示 + */ + private String buttonShow; + + /** + * 权限控制 + */ + private String buttonAuth; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormEntity.java new file mode 100644 index 0000000..7b8ef4a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormEntity.java @@ -0,0 +1,179 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发 + */ +@TableName("lowcode_dbform") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode +public class FormEntity extends BaseTenantEntity { + + /** + * 表名 + */ + private String tableName; + + /** + * 表描述 + */ + private String tableDescribe; + + /** + * 表类型;1单表、2树表、3主表、4附表 + */ + private Integer tableType; + + /** + * 表分类; + */ + private Integer tableClassify; + + /** + * 主键类型; + */ + private String tableIdType; + + /** + * 表格选择类型;multiple radio + */ + private String tableSelect; + + /** + * 同步数据库状态;N=未同步 Y=已同步 + */ + private String isDbSync; + + /** + * 是否用设计器表单;N=不 启用 Y=已启用 + */ + private String isDesForm; + + /** + * 附表-映射关系 + */ + private String subTableMapping; + + /** + * 附表-排序序号 + */ + private Integer subTableSort; + + /** + * 附表-标题 + */ + private String subTableTitle; + + /** + * 主题模板 + */ + private String themeTemplate; + + /** + * WEB表单设计ID + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private Long desformWebId; + + /** + * 树表样式 + */ + private String treeStyle; + + /** + * 树表模式 + */ + private String treeMode; + + /** + * 树表展开字段 + */ + private String treeLabelField; + + /** + * 操作栏样式 + */ + private String operateMenuStyle; + + /** + * 表单风格 + */ + private Integer formStyle; + + + /** + * 表单开发分组id + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private Long groupDbformId; + + /** + * 默认排序字段 + */ + private String orderbyConfig; + + /** + * 默认条件配置 + */ + private String whereConfig; + + /** + * 子表列表 + */ + private String subTableListStr; + + /** + * 是否显示系统字段;N=不 启用 Y=已启用 + */ + private String viewDefaultField; + + /** + * 数据配置 + */ + private String dataConfig; + + /** + * 基础功能 + */ + private String basicFunction; + + /** + * 基础配置 + */ + private String basicConfig; + + /** + * 表格配置 + */ + private String tableConfig; + + /** + * 表视图数据来源配置 + */ + private String dataSourcesConfig; + + /** + * 单表样式 + */ + private String tableStyle; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldDictEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldDictEntity.java new file mode 100644 index 0000000..2f9fb13 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldDictEntity.java @@ -0,0 +1,65 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-页面字典配置表 + */ +@TableName("lowcode_dbform_field_dict") +@Data +@EqualsAndHashCode +public class FormFieldDictEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 字典code + */ + private String dictCode; + + /** + * 字典表 + */ + private String dictTable; + + + /** + * 字典Text + */ + private String dictText; + + /** + * 表格字典显示列 + */ + private String dictTableColumn; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldEntity.java new file mode 100644 index 0000000..8a768ea --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldEntity.java @@ -0,0 +1,89 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 表单开发-数据库字段表 + */ +@TableName("lowcode_dbform_field") +@Data +@EqualsAndHashCode +public class FormFieldEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 字段名称 + */ + private String fieldName; + + /** + * 字段长度 + */ + private Integer fieldLen; + + /** + * 小数位数 + */ + private Integer fieldPointLen; + + /** + * 默认值 + */ + private String fieldDefaultVal; + + /** + * 字段类型 + */ + private String fieldType; + + /** + * 备注 + */ + private String fieldRemark; + + /** + * 是否主键;N=否 Y=是 + */ + private String isPrimaryKey; + + /** + * 是否允许为空;N=否 Y=是 + */ + private String isNull; + + /** + * 排序 + */ + private Integer sortNum; + + /** + * 是否同步数据库;N=否 Y=是 + */ + private String isDb; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldExportEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldExportEntity.java new file mode 100644 index 0000000..89cc8a8 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldExportEntity.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 表单开发-导出配置表 + */ +@TableName("lowcode_dbform_field_export") +@Data +@EqualsAndHashCode +public class FormFieldExportEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 是否导出;N=否 Y=是 + */ + private String isExport; + + /** + * 导出示例文本 + */ + private String importExampleTxt; + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldForeignkeyEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldForeignkeyEntity.java new file mode 100644 index 0000000..d551a40 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldForeignkeyEntity.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-外键配置表 + */ +@TableName("lowcode_dbform_field_foreignkey") +@Data +@EqualsAndHashCode(callSuper = true) +public class FormFieldForeignkeyEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + + /** + * 外键主表名 + */ + private String mainTable; + + + /** + * 外键主键字段 + */ + private String mainField; + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldQueryEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldQueryEntity.java new file mode 100644 index 0000000..3623877 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldQueryEntity.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-查询配置 + */ +@TableName("lowcode_dbform_field_query") +@Data +@EqualsAndHashCode(callSuper = true) +public class FormFieldQueryEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 是否开启数据库查询;N=不开启 Y=开启 + */ + private String queryIsDb; + + /** + * 是否显示查询控件;N=不显示 Y=显示 + */ + private String queryIsWeb; + + /** + * 查询模式;EQ=精确 LIKE=模糊 + */ + private String queryMode; + + /** + * 查询配置 + */ + private String queryConfig; + + /** + * 查询控件默认值 + */ + private String queryDefaultVal; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldWebEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldWebEntity.java new file mode 100644 index 0000000..b5d8861 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormFieldWebEntity.java @@ -0,0 +1,98 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 表单开发-页面字段表 + */ +@TableName("lowcode_dbform_field_web") +@Data +@EqualsAndHashCode(callSuper = true) +public class FormFieldWebEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 数据库是否查询;N=不显示 Y=显示 + */ + private String isDbSelect; + + /** + * 列表是否显示;N=不显示 Y=显示 + */ + private String isShowList; + + /** + * 表单是否显示;N=不显示 Y=显示 + */ + private String isShowForm; + + /** + * 是否可控;N=不显示 Y=显示 + */ + private String isShowColumn; + + /** + * 是否排序;N=不显示 Y=显示 + */ + private String isShowSort; + + /** + * 是否必填;N=否 Y=是 + */ + private String isRequired; + + /** + * 控件类型 + */ + private String controlType; + + /** + * 控件配置 + */ + private String controlsConfig; + + /** + * 列宽 + */ + private String cellWidth; + + /** + * 列宽类型 + */ + private String cellWidthType; + + /** + * 校验配置 + */ + private String verifyConfig; + + /** + * 格式化配置 + */ + private String formatConfig; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormIndexEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormIndexEntity.java new file mode 100644 index 0000000..a655af4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormIndexEntity.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author JX + * @create 2024-03-02 11:56 + * @dedescription: + */ +@TableName("lowcode_dbform_index") +@Data +@EqualsAndHashCode(callSuper = true) +public class FormIndexEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + //索引名称 + private String indexName; + + //索引字段列表 + private String indexFieldCodeList; + + //索引类型 + private String indexType; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleButtonEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleButtonEntity.java new file mode 100644 index 0000000..e38b22c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleButtonEntity.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-租户权限-按钮权限(存关) + */ +@TableName("lowcode_dbform_role_button") +@Data +@EqualsAndHashCode +public class FormRoleButtonEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String buttonCode; + + /** + * 启用状态:存 关N + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String enableState; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataRuleEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataRuleEntity.java new file mode 100644 index 0000000..3fd0916 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataRuleEntity.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-租户权限-数据权限-规则(存关) + */ +@TableName("lowcode_dbform_role_data_rule") +@Data +@EqualsAndHashCode +public class FormRoleDataRuleEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + + /** + * 规则名称 + */ + private String ruleName; + + /** + * 规则类型 + */ + private String ruleType; + + /** + * 规则字段 + */ + private String ruleField; + + /** + * 规则条件 + */ + private String ruleCondition; + + /** + * 规则值 + */ + private String ruleValue; + + /** + * 规则运行sql + */ + private String ruleSql; + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataTenantEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataTenantEntity.java new file mode 100644 index 0000000..39dc7ff --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleDataTenantEntity.java @@ -0,0 +1,45 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-租户权限-数据权限-租户没有权限(存关) + */ +@TableName("lowcode_dbform_role_data_tenant") +@Data +@EqualsAndHashCode +public class FormRoleDataTenantEntity extends BaseTenantEntity { + + + /** + * 租户数据权限id + */ + private Long dbformRoleDataRuleId; + + + /** + * 启用状态:存 关N + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String enableState; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleFieldEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleFieldEntity.java new file mode 100644 index 0000000..ba38782 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormRoleFieldEntity.java @@ -0,0 +1,71 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-租户权限-字段权限(存关) + */ +@TableName("lowcode_dbform_role_field") +@Data +@EqualsAndHashCode +public class FormRoleFieldEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 列表是否显示 N=不显示 Y=显示 + */ + + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String listIsView; + + + /** + * 表单是否显示 N=不显示 Y=显示 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String formIsView; + + + /** + * 表单是否编辑 N=不显示 Y=显示 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String formIsEdit; + + + /** + * 启用状态:存 关N + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String enableState; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormSummaryEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormSummaryEntity.java new file mode 100644 index 0000000..76cf64e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/FormSummaryEntity.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发-统计配置 + */ +@TableName("lowcode_dbform_summary") +@Data +@EqualsAndHashCode(callSuper = true) +public class FormSummaryEntity extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long dbformId; + + private String fieldCode;//字段 + private String summaryType;//统计类型:底部,顶部 + private String summaryShow;//是否显示 + private String summarySql;//统计sql + private String summaryLabel;//统计显示文本 + private String summaryJson;//其他配置 + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDbFormEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDbFormEntity.java new file mode 100644 index 0000000..1843ca8 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDbFormEntity.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单设计分组 + */ +@TableName("lowcode_group_dbform") +@Data +@EqualsAndHashCode +public class GroupDbFormEntity extends BaseTenantEntity { + + //pid + private Long pid; + + //名称 + private String name; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDesFormEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDesFormEntity.java new file mode 100644 index 0000000..d4149e2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupDesFormEntity.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发分组 + */ +@TableName("lowcode_group_desform") +@Data +@EqualsAndHashCode +public class GroupDesFormEntity extends BaseTenantEntity { + + //pid + private Long pid; + + //名称 + private String name; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupReportEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupReportEntity.java new file mode 100644 index 0000000..867295b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/GroupReportEntity.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 数据报表分组 + */ +@TableName("lowcode_group_report") +@Data +@EqualsAndHashCode +public class GroupReportEntity extends BaseTenantEntity { + + //pid + private Long pid; + + //名称 + private String name; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDbformEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDbformEntity.java new file mode 100644 index 0000000..74c887d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDbformEntity.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发历史数据 + */ +@TableName("lowcode_log_history_dbform") +@Data +@EqualsAndHashCode +public class HistoryDbformEntity extends BaseTenantEntity { + + + /** + * 表单开发id + */ + private Long dbformId; + + /** + * 业务类型:java js sql button + */ + private String serviceType; + + /** + * 业务id + */ + private Long serviceId; + + /** + * 业务数据 + */ + private String serviceJson; + + //创建人名称 + private String createUserName; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDesformEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDesformEntity.java new file mode 100644 index 0000000..7082dcb --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/HistoryDesformEntity.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 历史数据 + */ +@TableName("lowcode_log_history_desform") +@Data +@EqualsAndHashCode +public class HistoryDesformEntity extends BaseTenantEntity { + + /** + * 表单设计Id + */ + private Long desformId; + + /** + * 表单设计名称 + */ + private String desformName; + + //表单设计json + private String desformJson; + + //表单设计分组id + private Long groupDesformId; + + //是否开放 + private String isOpen; + + //创建人名称 + private String createUserName; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/JeeLowCodeConfigEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/JeeLowCodeConfigEntity.java new file mode 100644 index 0000000..ea9b350 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/JeeLowCodeConfigEntity.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 框架配置数据 + */ +@TableName("lowcode_config") +@Data +@EqualsAndHashCode +public class JeeLowCodeConfigEntity extends BaseTenantEntity { + + private String configTitle;//配置名称 + private String configType;//配置类型 + private String configKey;//配置key + private String configVal;//配置值 + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogModuleUsageRecordsEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogModuleUsageRecordsEntity.java new file mode 100644 index 0000000..52e3156 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogModuleUsageRecordsEntity.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDate; + +/** + * 模块使用记录 + */ +@TableName("lowcode_log_module_usage_records") +@Data +@EqualsAndHashCode +public class LogModuleUsageRecordsEntity extends BaseTenantEntity { + + /** + * 模块标题 + */ + private String modelTitle; + + /** + * 使用用户数 + */ + private Long usersNum; + + /** + * 模块使用数 + */ + private Long useNum; + + /** + * 记录日期 + */ + private LocalDate recordDate; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestApiEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestApiEntity.java new file mode 100644 index 0000000..294147e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestApiEntity.java @@ -0,0 +1,118 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; + +import java.time.LocalDateTime; + +/** + * 请求日志 + * + */ +@TableName("lowcode_log_api") +@Data +@EqualsAndHashCode +public class LogRequestApiEntity { + @JsonSerialize( + using = ToStringSerializer.class + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.DATE) + private LocalDateTime createTime; + + /** + * 创建者 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createUser; + + private String createUserName; + + /** + * 创建部门 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createDept; + + + /** + * 更新者 + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.BIGINT) + private Long updateUser; + + /** + * 最后更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.DATE) + private LocalDateTime updateTime; + + /** + * 是否删除 + */ + private Integer isDeleted; + + /** + * 租户id + */ + private String tenantId; + + + //ip + private String ip; + + //标题 + private String title; + + //模块名称 + private String modelTitle; + + //方法名称 + private String methodName; + + //类名称 + private String methodClass; + + //耗时 + private Long time; + + //请求地址 + private String requestUri; + + //请求方式 + private String requestMethod; + + //请求参数 + private String requestParams; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestErrorApiEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestErrorApiEntity.java new file mode 100644 index 0000000..ad54df6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/LogRequestErrorApiEntity.java @@ -0,0 +1,120 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; + +import java.time.LocalDateTime; + +/** + * 请求日志-错误日志 + * + */ +@TableName("lowcode_log_api_error") +@Data +@EqualsAndHashCode +public class LogRequestErrorApiEntity { + @JsonSerialize( + using = ToStringSerializer.class + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.DATE) + private LocalDateTime createTime; + + /** + * 创建者 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createUser; + + private String createUserName; + + /** + * 创建部门 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createDept; + + + /** + * 更新者 + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.BIGINT) + private Long updateUser; + + /** + * 最后更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.DATE) + private LocalDateTime updateTime; + + /** + * 是否删除 + */ + private Integer isDeleted; + + /** + * 租户id + */ + private String tenantId; + + //ip + private String ip; + + //标题 + private String title; + + //模块名称 + private String modelTitle; + + //方法名称 + private String methodName; + + //类名称 + private String methodClass; + + //耗时 + private Long time; + + //请求地址 + private String requestUri; + + //请求方式 + private String requestMethod; + + //请求参数 + private String requestParams; + + //错误原因 + private String error; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportEntity.java new file mode 100644 index 0000000..60dfaef --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportEntity.java @@ -0,0 +1,69 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 数据报表 + */ +@TableName("lowcode_report") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode +public class ReportEntity extends BaseTenantEntity { + + /** + * 报表名称 + */ + private String reportName; + + /** + * 报表编号 + */ + private String reportCode; + + /** + * 分组id + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private Long groupReportId; + + /** + * JAVA配置 + */ + private String javaConfig; + + /** + * 数据配置 + */ + private String dataConfig; + + /** + * 表格配置 + */ + private String tableConfig; + + /** + * 表视图数据来源配置 + */ + private String dataSourcesConfig; + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportFieldEntity.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportFieldEntity.java new file mode 100644 index 0000000..56616fd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/entity/ReportFieldEntity.java @@ -0,0 +1,85 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 报表统计-字段配置 + */ +@TableName("lowcode_report_field") +@Data +@EqualsAndHashCode +public class ReportFieldEntity extends BaseTenantEntity { + + /** + * 报表id + */ + private Long reportId; + + /** + * 字段 + */ + private String fieldCode; + + /** + * 字段名称 + */ + private String fieldName; + + /** + * 字段类型 + */ + private String fieldType; + + /** + * 排序 + */ + private Integer sortNum; + + /** + * 是否开启数据库查询;N=不开启 Y=开启 + */ + private String queryIsDb; + + /** + * 是否显示查询控件;N=不显示 Y=显示 + */ + private String queryIsWeb; + + /** + * 查询模式;EQ=精确 LIKE=模糊 + */ + private String queryMode; + + /** + * 字典code + */ + private String dictCode; + + /** + * 是否支持导出 + */ + private String isExport; + + /** + * 是否排序;N=不显示 Y=显示 + */ + private String isShowSort; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/AdapterMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/AdapterMapper.java new file mode 100644 index 0000000..a2801e4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/AdapterMapper.java @@ -0,0 +1,77 @@ +/* Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + 本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + + 开源协议中文释意如下: + 1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 + 2.允许基于本平台软件开展业务系统开发。 + 3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + + 最终解释权归:http://www.jeelowcode.com*/ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.jeelowcode.framework.utils.model.JeeLowCodeUser; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 适配器相关 + */ +public interface AdapterMapper { + + + @JeelowCodeCache(cacheNames = "'AdapterMapper:getUserName:' + #userId", reflexClass = String.class) + String getUserName(Long userId); + + @JeelowCodeCache(cacheNames = "'AdapterMapper:getNickname:' + #userId", reflexClass = String.class) + String getNickname(Long userId); + + @JeelowCodeCache(cacheNames = "'AdapterMapper:getDeptId:' + #userId", reflexClass = Long.class) + Long getDeptId(Long userId); + + + /** + * 根据部门获取用户列表 + * @param page + * @param deptIdList + * @param params + * @return + */ + IPage getUserPageByDeptId(String tenantId,IPage page, List deptIdList, @Param("params") Map params); + + /** + * 根据角色获取用户列表 + * @param page + * @param roleId + * @param deptIdList + * @param params + * @return + */ + IPage getUserPageByRoleId(String tenantId,IPage page, Long roleId, List deptIdList, @Param("params") Map params); + + /** + * 根据表单id获取表单的字段对应的字典 + * @param dbFormId + * @return + */ + @JeelowCodeCache(cacheNames = "'AdapterMapper:getDbFormFieldDict:' + #dbFormId", reflexClass = Map.class,nullIsSave = true) + List> getDbFormFieldDict(Long dbFormId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/DesFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/DesFormMapper.java new file mode 100644 index 0000000..cc39a30 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/DesFormMapper.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.DesformEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author JX + * @create 2024-03-05 11:27 + * @dedescription: + */ +public interface DesFormMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJavaMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJavaMapper.java new file mode 100644 index 0000000..7cc0407 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJavaMapper.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * Java增强相关 + */ +public interface EnhanceJavaMapper extends BaseMapper { + + + default void delByDbFormId(Long dbFormId){ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("dbform_id", dbFormId); + this.delete(wrapper); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJsMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJsMapper.java new file mode 100644 index 0000000..df360ee --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceJsMapper.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jeelowcode.core.framework.entity.EnhanceJsEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * Js增强相关 + */ +public interface EnhanceJsMapper extends BaseMapper { + + + default void delByDbFormId(Long dbFormId){ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("dbform_id", dbFormId); + this.delete(wrapper); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceSqlMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceSqlMapper.java new file mode 100644 index 0000000..657384d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/EnhanceSqlMapper.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * sql增强相关 + */ +public interface EnhanceSqlMapper extends BaseMapper { + + + default void delByDbFormId(Long dbFormId){ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("dbform_id", dbFormId); + this.delete(wrapper); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileDataMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileDataMapper.java new file mode 100644 index 0000000..7f61086 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileDataMapper.java @@ -0,0 +1,22 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; + + +public interface ExcelFileDataMapper extends BaseMapper { + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileMapper.java new file mode 100644 index 0000000..25c8bc3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ExcelFileMapper.java @@ -0,0 +1,22 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.ExcelFileEntity; + + +public interface ExcelFileMapper extends BaseMapper { + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormButtonMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormButtonMapper.java new file mode 100644 index 0000000..e09fbed --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormButtonMapper.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.FormButtonEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author JX + * @create 2024-03-05 11:27 + * @dedescription: + */ +public interface FormButtonMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldDictMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldDictMapper.java new file mode 100644 index 0000000..2d45d22 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldDictMapper.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldDictEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + + +public interface FormFieldDictMapper extends BaseMapper { + + default void delByDbformId(Long dbFormId){ + QueryWrapper dictWrapper = new QueryWrapper(); + dictWrapper.eq("dbform_id", dbFormId); + this.delete(dictWrapper); + } + + default void delByDbformIdAndCode(Long dbFormId,String fieldCode){ + QueryWrapper dictWrapper = new QueryWrapper(); + dictWrapper.eq("dbform_id", dbFormId); + dictWrapper.eq("field_code", fieldCode); + this.delete(dictWrapper); + } + + + + @JeelowCodeCache(cacheNames = "'FormFieldDictMapper:getByDbFormId:' + #dbformId", reflexClass = FormFieldDictEntity.class,nullIsSave = true) + default List getByDbFormId(Long dbformId){ + LambdaQueryWrapper dictWrapper = new LambdaQueryWrapper<>(); + dictWrapper.eq(FormFieldDictEntity::getDbformId, dbformId); + dictWrapper.orderByAsc(FormFieldDictEntity::getId); + return this.selectList(dictWrapper); + } + + default FormFieldDictEntity getFormFieldSysDictEntity(Long dbformId,String fieldCode){ + + //获取字典表信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(FormFieldDictEntity::getDictType, FormFieldDictEntity::getDictCode, FormFieldDictEntity::getDictTable, FormFieldDictEntity::getDictText, FormFieldDictEntity::getDictTableColumn); + wrapper.eq(FormFieldDictEntity::getDbformId, dbformId); + wrapper.eq(FormFieldDictEntity::getFieldCode, fieldCode); + wrapper.isNotNull(FormFieldDictEntity::getDictCode); + + FormFieldDictEntity dictEntity = this.selectOne(wrapper); + return dictEntity; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldExportMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldExportMapper.java new file mode 100644 index 0000000..f4a4616 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldExportMapper.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldExportEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +public interface FormFieldExportMapper extends BaseMapper { + + default void delByDbformId(Long dbFormId){ + QueryWrapper exportWrapper = new QueryWrapper(); + exportWrapper.eq("dbform_id", dbFormId); + this.delete(exportWrapper); + } + + @JeelowCodeCache(cacheNames = "'FormFieldExportMapper:getByFormId:' + #dbFormId", reflexClass = FormFieldExportEntity.class) + default List getByFormId(Long dbFormId){ + LambdaQueryWrapper exportWrapper = new LambdaQueryWrapper<>(); + exportWrapper.eq(FormFieldExportEntity::getDbformId, dbFormId); + exportWrapper.orderByAsc(FormFieldExportEntity::getId); + return this.selectList(exportWrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldForeignkeyMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldForeignkeyMapper.java new file mode 100644 index 0000000..3f6970f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldForeignkeyMapper.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldForeignkeyEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + + +public interface FormFieldForeignkeyMapper extends BaseMapper { + + default void delByDbformId(Long dbFormId){ + QueryWrapper foreignkeyWrapper = new QueryWrapper(); + foreignkeyWrapper.eq("dbform_id", dbFormId); + this.delete(foreignkeyWrapper); + } + + @JeelowCodeCache(cacheNames = "'FormFieldForeignkeyMapper:getByFormId:' + #dbFormId", reflexClass = FormFieldForeignkeyEntity.class) + default List getByFormId(Long dbFormId){ + LambdaQueryWrapper foreignkeyWrapper = new LambdaQueryWrapper<>(); + foreignkeyWrapper.eq(FormFieldForeignkeyEntity::getDbformId, dbFormId); + foreignkeyWrapper.orderByAsc(FormFieldForeignkeyEntity::getId); + return this.selectList(foreignkeyWrapper); + } + + default FormFieldForeignkeyEntity getByFormIdAndMainTable(Long dbFormId,String mainTable){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormFieldForeignkeyEntity::getDbformId, dbFormId); + wrapper.eq(FormFieldForeignkeyEntity::getMainTable, mainTable); + wrapper.isNotNull(FormFieldForeignkeyEntity::getMainTable); + return this.selectOne(wrapper); + + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldMapper.java new file mode 100644 index 0000000..35cab3e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldMapper.java @@ -0,0 +1,106 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.framework.utils.enums.YNEnum; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public interface FormFieldMapper extends BaseMapper { + + @JeelowCodeCache(cacheNames = "'FormFieldMapper:getByDbFormId:' + #dbFormId", reflexClass = FormFieldEntity.class) + default List getByDbFormId(Long dbFormId){ + LambdaQueryWrapper formWrapper = new LambdaQueryWrapper<>(); + formWrapper.eq(FormFieldEntity::getDbformId, dbFormId); + formWrapper.orderByAsc(FormFieldEntity::getSortNum); + List formFieldList = this.selectList(formWrapper); + return formFieldList; + } + + default List getAllList(){ + LambdaQueryWrapper fieldWrapper = new LambdaQueryWrapper<>(); + fieldWrapper.select(FormFieldEntity::getDbformId, FormFieldEntity::getFieldCode, FormFieldEntity::getFieldName,FormFieldEntity::getFieldType); + List fieldList = this.selectList(fieldWrapper); + return fieldList; + } + + + //key =名称 code =编码 + default Map getFieldNameAndCodeMap(Long dbFormId){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormFieldEntity::getDbformId, dbFormId); + wrapper.select(FormFieldEntity::getFieldCode, FormFieldEntity::getFieldName); + List dataList = this.selectList(wrapper); + + Map resultMap = dataList.stream() + .collect(Collectors.toMap( + entity -> entity.getFieldName(), + entity -> entity.getFieldCode(), + (existingValue, newValue) -> existingValue + )); + return resultMap; + } + + default List getByDbFormIdAndFieldCode(Long dbFormId,String fieldCode){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormFieldEntity::getDbformId, dbFormId); + wrapper.eq(FormFieldEntity::getFieldCode, fieldCode); + wrapper.select(FormFieldEntity::getFieldType); + List dataList = this.selectList(wrapper); + return dataList; + } + + + + //获取数据库字段列表 + default List getDbFieldList(Long dbFormId) { + LambdaQueryWrapper formWrapper = new LambdaQueryWrapper<>(); + formWrapper.eq(FormFieldEntity::getDbformId, dbFormId); + formWrapper.eq(FormFieldEntity::getIsDb, YNEnum.Y.getCode()); + formWrapper.orderByAsc(FormFieldEntity::getSortNum); + List formFieldList = this.selectList(formWrapper); + return formFieldList; + } + + //获取数据库字段的 fieldcode + default List getDbFieldCodeStrList(Long dbFormId) { + LambdaQueryWrapper formWrapper = new LambdaQueryWrapper<>(); + formWrapper.eq(FormFieldEntity::getDbformId, dbFormId); + formWrapper.eq(FormFieldEntity::getIsDb, YNEnum.Y.getCode()); + formWrapper.orderByAsc(FormFieldEntity::getSortNum); + formWrapper.select(FormFieldEntity::getFieldCode); + List dbFieldList = this.selectList(formWrapper); + + List selectList = dbFieldList.stream() + .map(FormFieldEntity::getFieldCode) + .collect(Collectors.toList()); + + return selectList; + } + + + default void delByFormId(Long dbFormId){ + QueryWrapper fieldWrapper = new QueryWrapper(); + fieldWrapper.eq("dbform_id", dbFormId); + this.delete(fieldWrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldQueryMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldQueryMapper.java new file mode 100644 index 0000000..bab2bb9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldQueryMapper.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldQueryEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + + +public interface FormFieldQueryMapper extends BaseMapper { + + default void delByDbformId(Long dbFormId){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("dbform_id", dbFormId); + this.delete(queryWrapper); + } + + @JeelowCodeCache(cacheNames = "'FormFieldQueryMapper:getByFormId:' + #dbFormId", reflexClass = FormFieldQueryEntity.class) + default List getByFormId(Long dbFormId){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FormFieldQueryEntity::getDbformId, dbFormId); + queryWrapper.orderByAsc(FormFieldQueryEntity::getId); + return this.selectList(queryWrapper); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldWebMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldWebMapper.java new file mode 100644 index 0000000..ee978f2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormFieldWebMapper.java @@ -0,0 +1,59 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormFieldWebEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + + +public interface FormFieldWebMapper extends BaseMapper { + + + @JeelowCodeCache(cacheNames = "'FormFieldWebMapper:webEntityListAndFormatConfigIsNotNull:' + #dbFormId", reflexClass = FormFieldWebEntity.class) + default List webEntityListAndFormatConfigIsNotNull(Long dbFormId){ + LambdaQueryWrapper webWrapper=new LambdaQueryWrapper<>(); + webWrapper.eq(FormFieldWebEntity::getDbformId,dbFormId); + webWrapper.isNotNull(FormFieldWebEntity::getFormatConfig); + List webEntityList = this.selectList(webWrapper); + return webEntityList; + } + + default List getFormatConfig(Long dbFormId){ + LambdaQueryWrapper webWrapper=new LambdaQueryWrapper<>(); + webWrapper.eq(FormFieldWebEntity::getDbformId,dbFormId); + webWrapper.isNotNull(FormFieldWebEntity::getFormatConfig); + return this.selectList(webWrapper); + } + + default void delByDbformId(Long dbFormId){ + QueryWrapper webWrapper = new QueryWrapper(); + webWrapper.eq("dbform_id", dbFormId); + this.delete(webWrapper); + } + + + @JeelowCodeCache(cacheNames = "'FormFieldWebMapper:getByFormId:' + #dbFormId", reflexClass = FormFieldWebEntity.class) + default List getByFormId(Long dbFormId){ + LambdaQueryWrapper webWrapper = new LambdaQueryWrapper<>(); + webWrapper.eq(FormFieldWebEntity::getDbformId, dbFormId); + webWrapper.orderByAsc(FormFieldWebEntity::getId); + return this.selectList(webWrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormIndexMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormIndexMapper.java new file mode 100644 index 0000000..917c1ce --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormIndexMapper.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormIndexEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +public interface FormIndexMapper extends BaseMapper { + + @JeelowCodeCache(cacheNames = "'FormIndexMapper:getByDbFormId:' + #dbFormId", reflexClass = FormIndexEntity.class) + default List getByDbFormId(Long dbFormId) { + LambdaQueryWrapper indexWrapper = new LambdaQueryWrapper<>(); + indexWrapper.eq(FormIndexEntity::getDbformId, dbFormId); + indexWrapper.orderByAsc(FormIndexEntity::getId); + List indexList = this.selectList(indexWrapper); + return indexList; + } + + default void delByDbFormId(Long dbFormId){ + QueryWrapper indexWrapper = new QueryWrapper(); + indexWrapper.eq("dbform_id", dbFormId); + this.delete(indexWrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormMapper.java new file mode 100644 index 0000000..96fa958 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormMapper.java @@ -0,0 +1,83 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormEntity; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.jeelowcode.framework.utils.enums.TableTypeEnum; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; +import java.util.stream.Collectors; + + +public interface FormMapper extends BaseMapper { + + @JeelowCodeCache(cacheNames = "'FormMapper:getById:' + #dbFormId", reflexClass = FormEntity.class) + default FormEntity getById(Long dbFormId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getId, dbFormId); + return this.selectOne(wrapper); + } + + @JeelowCodeCache(cacheNames = "'FormMapper:getAllSubTableNameList:' + #dbFormId", reflexClass = String.class,nullIsSave = true) + default List getAllSubTableNameList(Long dbFormId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getId, dbFormId); + wrapper.eq(FormEntity::getTableType, TableTypeEnum.MAIN.getType());//主表 + wrapper.select(FormEntity::getSubTableListStr); + FormEntity formEntity = this.selectOne(wrapper); + if (Func.isEmpty(formEntity)) { + return null; + } + String subListStr = formEntity.getSubTableListStr(); + if (Func.isEmpty(subListStr)) { + return null; + } + return Func.toStrList(subListStr); + } + + default Long getFormIdByTableName(String tableName){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getTableName, tableName); + wrapper.select(FormEntity::getId); + FormEntity formEntity = this.selectOne(wrapper); + return formEntity.getId(); + } + default FormEntity getByTableName(String tableName){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getTableName, tableName); + wrapper.select(FormEntity::getId); + FormEntity formEntity = this.selectOne(wrapper); + return formEntity; + } + + default List getDbFormIdByTableName(List subTableNameList){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(FormEntity::getTableName, subTableNameList); + wrapper.select(FormEntity::getId); + wrapper.orderByAsc(FormEntity::getSubTableSort, FormEntity::getId); + List list = this.selectList(wrapper); + + List idList = list.stream() + .map(FormEntity::getId) // 使用方法引用来简化代码 + .collect(Collectors.toList());// 收集结果到列表 + + return idList; + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleButtonMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleButtonMapper.java new file mode 100644 index 0000000..422f391 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleButtonMapper.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormRoleButtonEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单开发-租户权限-按钮权限(存关) + */ +public interface FormRoleButtonMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataRuleMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataRuleMapper.java new file mode 100644 index 0000000..764c6d1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataRuleMapper.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormRoleDataRuleEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单开发-租户权限-数据权限规则(存关) + */ +public interface FormRoleDataRuleMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataTenantMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataTenantMapper.java new file mode 100644 index 0000000..5d0432a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleDataTenantMapper.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormRoleDataTenantEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单开发-租户权限-数据权限租户(存关) + */ +public interface FormRoleDataTenantMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleFieldMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleFieldMapper.java new file mode 100644 index 0000000..edc7802 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormRoleFieldMapper.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormRoleFieldEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单开发-租户权限-字段权限(存关) + */ +public interface FormRoleFieldMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormSummaryMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormSummaryMapper.java new file mode 100644 index 0000000..d61209a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/FormSummaryMapper.java @@ -0,0 +1,66 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.FormSummaryEntity; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.framework.utils.enums.YNEnum; + +import java.util.List; + +//统计配置 +public interface FormSummaryMapper extends BaseMapper { + + default void delByDbFormId(Long dbFormId){ + QueryWrapper summaryWrapper = new QueryWrapper(); + summaryWrapper.eq("dbform_id", dbFormId); + this.delete(summaryWrapper); + } + + default List getByFormId(Long dbFormId){ + LambdaQueryWrapper summaryWrapper = new LambdaQueryWrapper<>(); + summaryWrapper.eq(FormSummaryEntity::getDbformId, dbFormId); + summaryWrapper.orderByAsc(FormSummaryEntity::getId); + return this.selectList(summaryWrapper); + } + + @JeelowCodeCache(cacheNames = "'FormSummaryMapper:getTopSummaryList:' + #dbFormId", reflexClass = FormSummaryEntity.class,nullIsSave = true) + default List getTopSummaryList(Long dbFormId){ + LambdaQueryWrapper topWrapper = new LambdaQueryWrapper<>(); + topWrapper.eq(FormSummaryEntity::getDbformId, dbFormId); + topWrapper.eq(FormSummaryEntity::getSummaryType, "top");//顶部 + return this.selectList(topWrapper); + } + + @JeelowCodeCache(cacheNames = "'FormSummaryMapper:getBottomSummaryList:' + #dbFormId", reflexClass = FormSummaryEntity.class,nullIsSave = true) + default List getBottomSummaryList(Long dbFormId){ + LambdaQueryWrapper bottomWrapper = new LambdaQueryWrapper<>(); + bottomWrapper.eq(FormSummaryEntity::getDbformId, dbFormId); + bottomWrapper.eq(FormSummaryEntity::getSummaryType, "bottom");//顶部 + return this.selectList(bottomWrapper); + } + default List getSummaryList(Long dbFormId,String summaryType){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormSummaryEntity::getDbformId, dbFormId); + wrapper.eq(FormSummaryEntity::getSummaryShow, YNEnum.Y.getCode()); + wrapper.eq(Func.isNotEmpty(summaryType), FormSummaryEntity::getSummaryType, summaryType); + return this.selectList(wrapper); + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDbFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDbFormMapper.java new file mode 100644 index 0000000..60d7ec5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDbFormMapper.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.GroupDbFormEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单开发分组 + */ +public interface GroupDbFormMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDesFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDesFormMapper.java new file mode 100644 index 0000000..d507d0b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupDesFormMapper.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.GroupDesFormEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 表单设计分组 + */ +public interface GroupDesFormMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupReportMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupReportMapper.java new file mode 100644 index 0000000..14d3baa --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/GroupReportMapper.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.GroupReportEntity; + +/** + * 数据报表分组 + */ +public interface GroupReportMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDbFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDbFormMapper.java new file mode 100644 index 0000000..4392a6f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDbFormMapper.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 历史数据-表单开发 + */ +public interface HistoryDbFormMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDesFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDesFormMapper.java new file mode 100644 index 0000000..8c14e71 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/HistoryDesFormMapper.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + + +import com.jeelowcode.core.framework.entity.HistoryDesformEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 历史数据 + */ +public interface HistoryDesFormMapper extends BaseMapper { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeConfigMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeConfigMapper.java new file mode 100644 index 0000000..9f4fdbe --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeConfigMapper.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.JeeLowCodeConfigEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 低代码平台-框架配置 + */ +public interface JeeLowCodeConfigMapper extends BaseMapper{ + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeMapper.java new file mode 100644 index 0000000..eb3a7cf --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeMapper.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import org.apache.ibatis.annotations.Delete; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 低代码平台 + */ +public interface JeeLowCodeMapper { + + //获取前端显示列 + @JeelowCodeCache(cacheNames = "'JeeLowCodeMapper:getWebViewFieldList:' + #dbFormId", reflexClass = String.class) + List getWebViewFieldList(Long dbFormId); + + //获取开启搜索列 + @JeelowCodeCache(cacheNames = "'JeeLowCodeMapper:getDbWhereFieldList:' + #dbFormId", reflexClass = Map.class,nullIsSave = true) + List> getDbWhereFieldList(Long dbFormId); + + //获取开启搜索列-数据报表 + @JeelowCodeCache(cacheNames = "'JeeLowCodeMapper:getReportWhereFieldList:' + #reportId", reflexClass = Map.class,nullIsSave=true) + List> getReportWhereFieldList(Long reportId); + + //获取导出字段 + List> getExcelFieldList(Long dbFormId); + + //获取数量 + Map getFormCou(Long dbFormId); + + + //清除ExcelData + @Delete("delete from lowcode_log_excel_file_data where create_time<#{clearDate}") + Integer clearExcelData(Date clearDate); + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeSqlMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeSqlMapper.java new file mode 100644 index 0000000..78b7589 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/JeeLowCodeSqlMapper.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.*; + +import java.util.List; +import java.util.Map; + +/** + * 低代码平台 sql执行类 + */ +public interface JeeLowCodeSqlMapper { + + //运行ddl语句 + @Update("${ddlSql}") + void executeDDL(@Param("ddlSql") String ddlSql); + + //获取数据 - 多个 + @Select("${jeeLowCodeSelectSql}") + List> selectData(@Param("jeeLowCodeSelectSql") String jeeLowCodeSelectSql,@Param("ew") Map ew); + + //分页 + @Select("${jeeLowCodeSelectSql}") + IPage> selectPageData(IPage page,@Param("jeeLowCodeSelectSql") String jeeLowCodeSelectSql,@Param("ew") Map ew); + + //新增数据 + @Insert("${jeeLowCodeInsertSql}") + void insertData(@Param("jeeLowCodeInsertSql") String jeeLowCodeInsertSql,@Param("ew") Map ew); + + //修改数据 + @Update("${jeeLowCodeUpdateSql}") + void updateData(@Param("jeeLowCodeUpdateSql") String jeeLowCodeUpdateSql,@Param("ew") Map ew); + + //删除数据 + @Delete("${jeeLowCodeDeleteSql}") + void deleteData(@Param("jeeLowCodeDeleteSql") String jeeLowCodeDeleteSql,@Param("ew") Map ew); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiErrorMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiErrorMapper.java new file mode 100644 index 0000000..9ff7304 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiErrorMapper.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.LogRequestErrorApiEntity; +import com.baomidou.dynamic.datasource.annotation.Slave; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.Date; + +/** + * 请求错误日志,单独库 + */ +@Slave +public interface LogApiErrorMapper extends BaseMapper { + + //清除某一个日期前的api请求日志 + default Integer clearApiLog(Date clearDate){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.le(LogRequestErrorApiEntity::getCreateTime,clearDate); + return this.delete(wrapper); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiMapper.java new file mode 100644 index 0000000..49b2f83 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogApiMapper.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.jeelowcode.core.framework.entity.LogRequestApiEntity; +import com.baomidou.dynamic.datasource.annotation.Slave; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 请求日志,单独库 + */ +@Slave +public interface LogApiMapper extends BaseMapper { + + //清除某一个日期前的api请求日志 + default Integer clearApiLog(Date clearDate){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.le(LogRequestApiEntity::getCreateTime,clearDate); + return this.delete(wrapper); + } + + // 统计模块使用记录 + List> countModelUsageRecords(Date begin, Date end); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogModuleUsageRecordsMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogModuleUsageRecordsMapper.java new file mode 100644 index 0000000..cf4a8b5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/LogModuleUsageRecordsMapper.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.LogModuleUsageRecordsEntity; + +/** + * 模块使用记录 + */ +public interface LogModuleUsageRecordsMapper extends BaseMapper { +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportFieldMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportFieldMapper.java new file mode 100644 index 0000000..ef6472f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportFieldMapper.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.ReportFieldEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; + +import java.util.List; + +/** + * 报表相关-字段 + */ +public interface ReportFieldMapper extends BaseMapper { + + @JeelowCodeCache(cacheNames = "'ReportFieldMapper:getByDbReportId:' + #reportId", reflexClass = ReportFieldEntity.class) + default List getByDbReportId(Long reportId){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ReportFieldEntity::getReportId, reportId); + wrapper.orderByAsc(ReportFieldEntity::getSortNum); + List list = this.selectList(wrapper); + return list; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportMapper.java new file mode 100644 index 0000000..93e058f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/ReportMapper.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; + +/** + * 报表相关 + */ +public interface ReportMapper extends BaseMapper { + + @JeelowCodeCache(cacheNames = "'FormReportMapperMapper:getById:' + #reportId", reflexClass = ReportEntity.class) + default ReportEntity getById(Long reportId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ReportEntity::getId, reportId); + return this.selectOne(wrapper); + } + + @JeelowCodeCache(cacheNames = "'FormReportMapperMapper:getByCode:' + #reportCode", reflexClass = ReportEntity.class) + default ReportEntity getByCode(String reportCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ReportEntity::getReportCode, reportCode); + return this.selectOne(wrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleDbFormMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleDbFormMapper.java new file mode 100644 index 0000000..d3ac37e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleDbFormMapper.java @@ -0,0 +1,42 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper.example; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface ExampleDbFormMapper { + + IPage> getStudentPage(Page page, Map params); + + Long getStudentBySon(String sno); + + Integer delScoreByStudentId(List studentIdList); + + Long getStudentExcludIdBySon(String id, String sno); + + Map getStudentById(String id); + + Integer insertStudent(Map map); + + Integer insertStudent1(Long id, String name, Date birthday); + + // 通过日程管理id获取日历管理附表数据 + List> getSubmoredateByMainDateId(String mainDateId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleReportMapper.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleReportMapper.java new file mode 100644 index 0000000..ec21654 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/mapper/example/ExampleReportMapper.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.mapper.example; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface ExampleReportMapper { + + Map getIpAndVisitsNum(Date startDate, Date endDate); + + List> getMaxUsedModel(Date begin, Date end); + + List> getMinUsedModel(Date begin, Date end); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/CopyEnhanceParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/CopyEnhanceParam.java new file mode 100644 index 0000000..01af25b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/CopyEnhanceParam.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import lombok.Data; + +@Data +public class CopyEnhanceParam { + + /** + * 引用
+ * class方式 + */ + private String reference; + + /** + * bean名称
+ * spring方式 + */ + private String beanName; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DataUniqueParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DataUniqueParam.java new file mode 100644 index 0000000..5d0478b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DataUniqueParam.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import lombok.Data; + +/** + * 校验数据是否唯一 + */ +@Data +public class DataUniqueParam { + private String fieldCode; + private String fieldVal; + private Long dataId; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DbFormAddOrUpdateParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DbFormAddOrUpdateParam.java new file mode 100644 index 0000000..839c2f7 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DbFormAddOrUpdateParam.java @@ -0,0 +1,76 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import com.jeelowcode.core.framework.params.vo.*; +import com.jeelowcode.core.framework.params.vo.*; +import lombok.Data; + +import java.util.List; + +/** + * 表单开发新增/修改 + */ +@Data +public class DbFormAddOrUpdateParam { + + /** + * 表单开发基本信息 + */ + private DbFormVo dbForm; + + /** + * 字段属性 + */ + private List fieldList; + + /** + * 字典属性 + */ + private List dictList; + + /** + * Excel属性 + */ + private List exportList; + + /** + * 外键属性 + */ + private List foreignkeyList; + + /** + * 界面属性 + */ + private List webList; + + /** + * 查询配置 + */ + private List queryList; + + /** + * 索引列表 + */ + private List indexList; + + /** + * 统计配置列表 + */ + private List summaryList; + + //删除的id列表 + private DbFormDeletedVo delIdVo; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DesFormAddOrUpdateParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DesFormAddOrUpdateParam.java new file mode 100644 index 0000000..e7ceaf7 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DesFormAddOrUpdateParam.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 表单设计器新增/修改 + */ +@Data +public class DesFormAddOrUpdateParam { + + + @Schema(description = "id 修改时候用到") + private Long id;; + + @Schema(description = "表单设计名称") + private String desformName; + + @Schema(description = "表单设计json") + private String desformJson; + + @Schema(description = "'表单设计分组id'") + private Long groupDesformId; + + @Schema(description = "是否开放") + private String isOpen; + + @Schema(description = "是否模板") + private String isTemplate; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictLabelParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictLabelParam.java new file mode 100644 index 0000000..ed7d1d2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictLabelParam.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * 字典回显 + */ +@Data +public class DictLabelParam { + @Schema(description = "dbformId") + private Long dbformId; + + @Schema(description = "where code") + private String code; + + @Schema(description = "where label") + private String label; + + @Schema(description = "回显数据列表") + private List dataList; + + //查询字段 + private List fieldList; + + @Schema(description = "用户id列表") + private List userIdList; + + @Schema(description = "部门id列表") + private List deptIdList; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictTableParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictTableParam.java new file mode 100644 index 0000000..e36081e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/DictTableParam.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class DictTableParam { + @Schema(description = "dbformId") + private Long dbformId; + + @Schema(description = "字段属性列表") + private List fieldCodeList; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/LogRequestApiParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/LogRequestApiParam.java new file mode 100644 index 0000000..d0bdd22 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/LogRequestApiParam.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * 请求日志 + * + */ +@Data +@EqualsAndHashCode +public class LogRequestApiParam { + + //id + Long id; + + //日志类型 info error + String logType; + + //删除日期 + String delDate; + + + String tenantId; + String createUserName; + String createTime; + private String requestUri; + private Long time; + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDbFormParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDbFormParam.java new file mode 100644 index 0000000..5f377c4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDbFormParam.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class PageDbFormParam{ + @Schema(description = "表名") + private String tableName; + + @Schema(description = "表描述") + private String tableDescribe; + + @Schema(description = "表类型") + private String tableType; + + @Schema(description = "表分类") + private Integer tableClassify; + + + @Schema(description = "同步状态") + private String isDbSync; + + @Schema(description = "表id") + private Long id; + + @Schema(description = "表单开发分组id") + private Long groupDbformId; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDesFormParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDesFormParam.java new file mode 100644 index 0000000..f16a3a4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageDesFormParam.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class PageDesFormParam { + @Schema(description = "id") + private Long id; + + @Schema(description = "表单设计名称") + private String desformName; + + @Schema(description = "功能类型") + private String functionType; + + @Schema(description = "是否开放") + private String isOpen; + + @Schema(description = "是否模板") + private String isTemplate; + + //表单设计分组id + private Long groupDesformId; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageReportParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageReportParam.java new file mode 100644 index 0000000..41b343b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/PageReportParam.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class PageReportParam { + @Schema(description = "报表名称") + private String reportName; + + @Schema(description = "报表编码") + private String reportCode; + + @Schema(description = "JAVA配置") + private String javaConfig; + + @Schema(description = "分组id") + private Long groupReportId; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportAddOrUpdateParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportAddOrUpdateParam.java new file mode 100644 index 0000000..a6b6dbc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportAddOrUpdateParam.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import com.jeelowcode.core.framework.params.vo.ReportDeletedVo; +import com.jeelowcode.core.framework.params.vo.ReportFieldVo; +import com.jeelowcode.core.framework.params.vo.ReportVo; +import lombok.Data; + +import java.util.List; + +/** + * 报表开发 - 新增/修改 + */ +@Data +public class ReportAddOrUpdateParam { + + /** + * 表单开发基本信息 + */ + private ReportVo report; + + /** + * 字段属性 + */ + private List fieldList; + + + //删除的id列表 + private ReportDeletedVo delIdVo; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportPageParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportPageParam.java new file mode 100644 index 0000000..6195f7b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/ReportPageParam.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Map; + + +@Schema(description = "数据报表-基本属性") +@Data +public class ReportPageParam { + + @Schema(description = "报表编号") + private String reportCode; + + @Schema(description = "报表参数") + private Map param ; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/SaveImportDataParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/SaveImportDataParam.java new file mode 100644 index 0000000..e05c226 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/SaveImportDataParam.java @@ -0,0 +1,28 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.params.model.ExcelImportDataDictModel; +import lombok.Data; + +import java.util.List; + +@Data +public class SaveImportDataParam { + Long fieldId; + List entityList; + ExcelImportDataDictModel dictModel; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableDictParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableDictParam.java new file mode 100644 index 0000000..e7719f1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableDictParam.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeUserParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class TableDictParam { + @Schema(description = "类型code(user,dept)") + private List typeCodeList; + + @Schema(description = "用户 参数") + private JeeLowCodeUserParam userParam; + + @Schema(description = "部门 参数") + private JeeLowCodeDeptParam deptParam; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableLabelParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableLabelParam.java new file mode 100644 index 0000000..45f9d59 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TableLabelParam.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class TableLabelParam { + @Schema(description = "dbformId") + private Long dbformId; + + @Schema(description = "字段属性") + private String fieldCode; + + @Schema(description = "键列表") + private List keyList; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TreeParentParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TreeParentParam.java new file mode 100644 index 0000000..4f9bd72 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/TreeParentParam.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * 树表回显 + */ +@Data +public class TreeParentParam { + @Schema(description = "dbformId") + private Long dbformId; + + @Schema(description = "where code") + private String code; + + @Schema(description = "where code=val") + private List valList; + + //查询字段 + private List fieldList; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/UpdateFileDataParam.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/UpdateFileDataParam.java new file mode 100644 index 0000000..a7f42ca --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/UpdateFileDataParam.java @@ -0,0 +1,23 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params; + +import lombok.Data; + +@Data +public class UpdateFileDataParam { + private Long id; + private String jsonStr; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableFieldModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableFieldModel.java new file mode 100644 index 0000000..0d39cd6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableFieldModel.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +@Data +public class AllTableFieldModel { + String fieldCode; + String fieldName; + String fieldType; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableModel.java new file mode 100644 index 0000000..5876447 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/AllTableModel.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class AllTableModel { + String tableId; + String tableName; + String tableDescribe; + String subTableListStr; + Integer tableType; + String authType;//授权类型 + List fieldModelList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DataSourceConfigModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DataSourceConfigModel.java new file mode 100644 index 0000000..f3da47a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DataSourceConfigModel.java @@ -0,0 +1,21 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +@Data +public class DataSourceConfigModel { + private String executeSql; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DbFieldCodeListModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DbFieldCodeListModel.java new file mode 100644 index 0000000..91be114 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/DbFieldCodeListModel.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class DbFieldCodeListModel { + List selectList;//查询语句 select 后面,有可能是子查询 + List asList;//as 也就是查询字段 如果是子查询的话是as 后面 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportDataDictModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportDataDictModel.java new file mode 100644 index 0000000..8e66ccb --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportDataDictModel.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ExcelImportDataDictModel { + private Map> dictMaps; + private List keyList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportResultModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportResultModel.java new file mode 100644 index 0000000..e3fbced --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelImportResultModel.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +@Data +public class ExcelImportResultModel { + private Long fileId; + private Long dbFormId; + private String batchCode; + private Integer totalCou;//总数 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelModel.java new file mode 100644 index 0000000..e932de3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelModel.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import lombok.Data; +import org.apache.commons.collections4.map.LinkedMap; + +import java.util.List; +import java.util.Map; + +@Data +public class ExcelModel { + String sheetName;//excel文件名 + LinkedMap headTitleMap;//code title + + List> dataMapList;//数据列表 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelTemplateModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelTemplateModel.java new file mode 100644 index 0000000..b1deaaf --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExcelTemplateModel.java @@ -0,0 +1,24 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ExcelTemplateModel extends ExcelModel { + List> dataList;//内容 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainDatasourceSqlModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainDatasourceSqlModel.java new file mode 100644 index 0000000..c0c3861 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainDatasourceSqlModel.java @@ -0,0 +1,21 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +@Data +public class ExplainDatasourceSqlModel { + private String explainSql; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainSqlFieldModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainSqlFieldModel.java new file mode 100644 index 0000000..a5a4e78 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/ExplainSqlFieldModel.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +/** + * 解析sql 字段 + */ +@Data +public class ExplainSqlFieldModel { + private String alias;//别名 + private String value;//字段 nj_name + private String tableName;//表名称 + private String type;//field=表字段 + private String controlType;//text控件 custom=自定义 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/LogRequestApiModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/LogRequestApiModel.java new file mode 100644 index 0000000..05ff261 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/LogRequestApiModel.java @@ -0,0 +1,71 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * 请求日志 + * + */ +@Data +@EqualsAndHashCode +public class LogRequestApiModel { + + private Long id; + + private String tenantId; + + private Long createUser; + + private String createUserName; + + private LocalDateTime createTime; + + //ip + private String ip; + + //标题 + private String title; + + //模块名称 + private String modelTitle; + + //方法名称 + private String methodName; + + //类名称 + private String methodClass; + + //耗时 + private Long time; + + //请求地址 + private String requestUri; + + //请求方式 + private String requestMethod; + + //请求参数 + private String requestParams; + + + //错误原因 + private String error; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/TableModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/TableModel.java new file mode 100644 index 0000000..cb46543 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/TableModel.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +@Data +public class TableModel { + String tableName;//表名 + String tableDescribe;//表描述 + + public TableModel(String tableName, String tableDescribe) { + this.tableName = tableName; + this.tableDescribe = tableDescribe; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/WebFormatConfigModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/WebFormatConfigModel.java new file mode 100644 index 0000000..e923c86 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/model/WebFormatConfigModel.java @@ -0,0 +1,59 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.model; + +import lombok.Data; + +import java.util.List; + + +@Data +public class WebFormatConfigModel { + private String formatType; + private Json formatJson; + + + @Data + public static class Json{ + private SqlModel sql; + private JavaModel java; + private String fun; + } + + + + @Data + public static class SqlModel{ + private String valueType; + private String group; + private String custom; + } + + @Data + public static class JavaModel{ + private String valueType; + private List group; + private JavaCustom custom;//自定义 + } + @Data + public static class JavaGroup{ + private String value; + private String type; + } + + @Data + public static class JavaCustom{ + private String javaPath; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormButtonVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormButtonVo.java new file mode 100644 index 0000000..3cbc96b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormButtonVo.java @@ -0,0 +1,38 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author JX + * @create 2024-03-06 14:47 + * @dedescription: + */ + +@Schema(description = "表单增强-自定义按钮") +@Data +public class DbFormButtonVo { + + @Schema(description = "表单编号") + private Long formId; + + @Schema(description = "数据编号") + private Long dataId; + + @Schema(description = "按钮编码") + private String buttonCode; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormConfigVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormConfigVo.java new file mode 100644 index 0000000..d60e9ee --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormConfigVo.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.entity.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class DbFormConfigVo { + @Schema(description = "字典配置列表") + List dictList=new ArrayList<>(); + + @Schema(description = "导出配置列表") + List exportList=new ArrayList<>(); + + @Schema(description = "外键配置列表") + List foreignkeyList=new ArrayList<>(); + + @Schema(description = "界面配置列表") + List webList=new ArrayList<>(); + + @Schema(description = "查询配置列表") + List queryList=new ArrayList<>(); + + @Schema(description = "表单字典列表") + List fieldList=new ArrayList<>(); + + @Schema(description = "索引列表") + List indexList=new ArrayList<>(); + + @Schema(description = "统计顶部配置列表") + List summaryTopList=new ArrayList<>(); + + @Schema(description = "统计底部配置列表") + List summaryBottomList=new ArrayList<>(); + + @Schema(description = "表单属性列表") + FormEntity dbForm; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormDeletedVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormDeletedVo.java new file mode 100644 index 0000000..80eec65 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormDeletedVo.java @@ -0,0 +1,67 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "开单开发-需要删除的idlist") +@Data +public class DbFormDeletedVo { + + /** + * 字段属性 + */ + private List fieldList; + + /** + * 字典属性 + */ + private List dictList; + + /** + * Excel属性 + */ + private List exportList; + + /** + * 外键属性 + */ + private List foreignkeyList; + + /** + * 界面属性 + */ + private List webList; + + /** + * 查询配置 + */ + private List queryList; + + /** + * 索引列表 + */ + private List indexList; + + /** + * 统计配置列表 + */ + private List summaryList; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJavaVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJavaVo.java new file mode 100644 index 0000000..dc96304 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJavaVo.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author JX + * @create 2024-03-06 10:26 + * @dedescription: + */ + +@Schema(description = "表单开发-Java增强") +@Data +public class DbFormEnhanceJavaVo { + + + + @Schema(description = "id 修改时候用到") + private Long id; + + @Schema(description = "租户编号") + private Integer tenantId; + + @Schema(description = "创建者所属部门") + private String creatorDept; + + @Schema(description = "表单开发id") + private Long dbformId; + + @Schema(description = "按钮编码") + private String buttonCode; + + @Schema(description = "java类型") + private String javaType; + + @Schema(description = "java类路径") + private String javaClassUrl; + + @Schema(description = "在线脚本") + private String onlineScript; + + @Schema(description = "事件状态") + private String eventState; + + @Schema(description = "生效状态") + private String activeStatus; + + @Schema(description = "备注") + private String remark; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJsVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJsVo.java new file mode 100644 index 0000000..d3392bb --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceJsVo.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author JX + * @create 2024-03-06 10:27 + * @dedescription: + */ + +@Schema(description = "表单开发-Js增强") +@Data +public class DbFormEnhanceJsVo { + + @Schema(description = "id 修改时候用到") + private Long id; + + @Schema(description = "租户编号") + private Integer tenantId; + + @Schema(description = "创建者所属部门") + private String createDept; + + @Schema(description = "表单开发id") + private Long dbformId; + + @Schema(description = "js增强类型") + private String jsType; + + @Schema(description = "js增强内容") + private String jsJson; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceSqlVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceSqlVo.java new file mode 100644 index 0000000..45350aa --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormEnhanceSqlVo.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author JX + * @create 2024-03-06 10:27 + * @dedescription: + */ + +@Schema(description = "表单开发-Sql增强") +@Data +public class DbFormEnhanceSqlVo{ + + @Schema(description = "id 修改时候用到") + private Long id; + + @Schema(description = "租户编号") + private Integer tenantId; + + @Schema(description = "创建者所属部门") + private String createDept; + + @Schema(description = "表单开发id") + private Long dbformId; + + @Schema(description = "按钮编码") + private String buttonCode; + + @Schema(description = "执行SQL") + private String executeSql; + + @Schema(description = "备注") + private String remark; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldDictVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldDictVo.java new file mode 100644 index 0000000..da03e19 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldDictVo.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-字典属性") +@Data +public class DbFormFieldDictVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "字典类型") + private String dictType; + + @Schema(description = "字典code") + private String dictCode; + + @Schema(description = "字典表") + private String dictTable; + + @Schema(description = "字典Text") + private String dictText; + + @Schema(description = "表格字典显示列") + private String dictTableColumn; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldExportVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldExportVo.java new file mode 100644 index 0000000..58261a6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldExportVo.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "表单开发-导出配置表") +@Data +public class DbFormFieldExportVo extends DbFormFieldIdVo{ + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "是否支持导出;N=否 Y=是") + private String isExport; + + @Schema(description = "导出示例文本") + private String importExampleTxt; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldForeignkeyVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldForeignkeyVo.java new file mode 100644 index 0000000..8e44f2d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldForeignkeyVo.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单开发-外键配置表") +@Data +public class DbFormFieldForeignkeyVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "外键主表名") + private String mainTable; + + @Schema(description = "外键主键字段") + private String mainField; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldIdVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldIdVo.java new file mode 100644 index 0000000..2c5fcc4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldIdVo.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单开发-外键配置表") +@Data +public class DbFormFieldIdVo { + + @Schema(description = "id 修改时候用到") + private Long id;; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldQueryVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldQueryVo.java new file mode 100644 index 0000000..37906ac --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldQueryVo.java @@ -0,0 +1,46 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-页面字段属性") +@Data +public class DbFormFieldQueryVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + + @Schema(description = "是否开启数据库查询;N=不开启 Y=开启") + private String queryIsDb; + + @Schema(description = "是否显示查询控件;N=不显示 Y=显示") + private String queryIsWeb; + + @Schema(description = "查询模式;EQ=精确 LIKE=模糊") + private String queryMode; + + @Schema(description = "查询配置") + private String queryConfig; + + @Schema(description = "查询控件默认值") + private String queryDefaultVal; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldSettingVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldSettingVo.java new file mode 100644 index 0000000..8773bc9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldSettingVo.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-字段更多配置") +@Data +public class DbFormFieldSettingVo { + + @Schema(description = "id 修改时候用到") + private Long id;; + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "字段格式化") + private String fieldFormatting; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldVo.java new file mode 100644 index 0000000..3bafaa4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldVo.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "开单开发-字段属性") +@Data +public class DbFormFieldVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "表字段名称") + private String fieldName; + + @Schema(description = "字段长度") + private Integer fieldLen; + + @Schema(description = "小数位数") + private Integer fieldPointLen; + + @Schema(description = "默认值") + private String fieldDefaultVal; + + @Schema(description = "字段类型") + private String fieldType; + + @Schema(description = "备注") + private String fieldRemark; + + @Schema(description = "是否主键;N=否 Y=是") + private String isPrimaryKey; + + @Schema(description = "是否允许为空;N=否 Y=是") + private String isNull; + + @Schema(description = "是否同步数据库;N=否 Y=是") + private String isDb; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldWebVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldWebVo.java new file mode 100644 index 0000000..c759fb6 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormFieldWebVo.java @@ -0,0 +1,66 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-页面字段属性") +@Data +public class DbFormFieldWebVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "数据库是否查询;N=不显示 Y=显示") + private String isDbSelect; + + @Schema(description = "列表是否显示;N=不显示 Y=显示") + private String isShowList; + + @Schema(description = "表单是否显示;N=不显示 Y=显示") + private String isShowForm; + + @Schema(description = "是否可控;N=不显示 Y=显示") + private String isShowColumn; + + @Schema(description = "是否排序;N=不显示 Y=显示") + private String isShowSort; + + @Schema(description = "是否必填;N=否 Y=是") + private String isRequired; + + @Schema(description = "控件类型") + private String controlType; + + @Schema(description = "控件配置") + private String controlsConfig; + + @Schema(description = "列宽") + private String cellWidth; + + @Schema(description = "列宽类型") + private String cellWidthType; + + @Schema(description = "校验配置") + private String verifyConfig; + + @Schema(description = "格式化配置") + private String formatConfig; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormIndexVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormIndexVo.java new file mode 100644 index 0000000..988d800 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormIndexVo.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-索引属性") +@Data +public class DbFormIndexVo extends DbFormFieldIdVo { + + @Schema(description = "索引名称") + private String indexName; + + @Schema(description = "索引列") + private String indexFieldCodeList; + + @Schema(description = "索引类型") + private String indexType; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormSummaryVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormSummaryVo.java new file mode 100644 index 0000000..f240a6c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormSummaryVo.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "开单开发-统计配置") +@Data +public class DbFormSummaryVo extends DbFormFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "是否显示;N=不开启 Y=开启") + private String summaryShow; + + @Schema(description = "统计类型:底部=bottom,顶部=top") + private String summaryType; + + @Schema(description = "执行sql") + private String summarySql; + + + @Schema(description = "标签") + private String summaryLabel; + + @Schema(description = "其他配置") + private String summaryJson; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormVo.java new file mode 100644 index 0000000..902618a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DbFormVo.java @@ -0,0 +1,114 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "开单开发-基本属性") +@Data +public class DbFormVo { + + @Schema(description = "id 修改时候用到") + private Long id; + + @Schema(description = "表名") + private String tableName; + + @Schema(description = "表描述") + private String tableDescribe; + + @Schema(description = "表类型;1单表、2树表、3主表、4附表") + private Integer tableType; + + @Schema(description = "表分类") + private Integer tableClassify; + + @Schema(description = "主键类型") + private String tableIdType; + + @Schema(description = "表格选择类型;multiple radio") + private String tableSelect; + + @Schema(description = "同步数据库状态;N=未同步 Y=已同步") + private String isDbSync; + + @Schema(description = "是否用设计器表单;N=不 启用 Y=已启用") + private String isDesForm; + + @Schema(description = "附表-映射关系 many:一对多 one:一对一") + private String subTableMapping; + + @Schema(description = "附表-排序序号") + private Integer subTableSort; + + @Schema(description = "附表-标题") + private String subTableTitle; + + @Schema(description = "主题模板") + private String themeTemplate; + + @Schema(description = "WEB表单设计ID") + private Long desformWebId; + + @Schema(description = "树表样式") + private String treeStyle; + + @Schema(description = "树表模式") + private String treeMode; + + @Schema(description = "树表展开字段") + private String treeLabelField; + + @Schema(description = "操作栏样式") + private String operateMenuStyle; + + @Schema(description = "表单风格") + private String formStyle; + + @Schema(description = "子表列表") + private String subTableListStr; + + @Schema(description = "是否显示系统字段;N=不 启用 Y=已启用") + private String viewDefaultField; + + @Schema(description = "表单开发分组id") + private Long groupDbformId; + + @Schema(description = "默认排序字段") + private String orderbyConfig; + + @Schema(description = "默认条件配置") + private String whereConfig; + + @Schema(description = "数据配置") + private String dataConfig; + + @Schema(description = "基础功能") + private String basicFunction; + + @Schema(description = "基础配置") + private String basicConfig; + + @Schema(description = "基础配置") + private String tableConfig; + + @Schema(description = "表视图数据来源配置") + private String dataSourcesConfig; + + @Schema(description = "单表样式") + private String tableStyle; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DesformEntityVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DesformEntityVo.java new file mode 100644 index 0000000..ffd01cd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/DesformEntityVo.java @@ -0,0 +1,52 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * @author JX + * @create 2024-03-02 13:35 + * @dedescription: + */ +@Data +@EqualsAndHashCode +public class DesformEntityVo extends BaseTenantEntity { + + private Long id; + + private LocalDateTime updateTime; + + /** + * 表单设计名称 + */ + private String desformName; + + //表单设计类型 + private String desformType; + + //表单设计分组id + private Long groupDesformId; + + + //是否开放 + private String isOpen; + + //是否模板 + private String isTemplate; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FieldFormattingVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FieldFormattingVo.java new file mode 100644 index 0000000..51b0864 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FieldFormattingVo.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class FieldFormattingVo { + private String fieldCode; + private String valueType;// group custom + private List group; + private String custom;//自定义 + + @Data + public static class Group{ + private String value; + private String type; + } + +} \ No newline at end of file diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormEntityPageVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormEntityPageVo.java new file mode 100644 index 0000000..87ed1b0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormEntityPageVo.java @@ -0,0 +1,60 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发 + */ +@Data +@EqualsAndHashCode +public class FormEntityPageVo { + private Long id; + + /** + * 表名 + */ + private String tableName; + + /** + * 表描述 + */ + private String tableDescribe; + + /** + * 表类型;1单表、2树表、3主表、4附表 + */ + private Integer tableType; + + /** + * 表分类; + */ + private Integer tableClassify; + + /** + * 同步数据库状态;N=未同步 Y=已同步 + */ + private String isDbSync; + + private Integer jsCou; + private Integer scssCou; + private Integer buttonCou; + private Integer javaCou; + private Integer sqlCou; + private Integer fieldCou; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormFieldEntityExp.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormFieldEntityExp.java new file mode 100644 index 0000000..3b28940 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormFieldEntityExp.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import com.jeelowcode.core.framework.entity.FormFieldDictEntity; +import com.jeelowcode.core.framework.entity.FormFieldEntity; +import com.jeelowcode.core.framework.entity.FormFieldWebEntity; +import lombok.Data; + +/** + * 字段属性拓展 + */ +@Data +public class FormFieldEntityExp extends FormFieldEntity { + //字典 + private FormFieldDictEntity dictEntity; + + private FormFieldWebEntity webEntity; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormOrderByVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormOrderByVo.java new file mode 100644 index 0000000..b0c64fc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/FormOrderByVo.java @@ -0,0 +1,38 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 默认排序 + */ +@Data +@EqualsAndHashCode +public class FormOrderByVo { + /** + * 默认排序字段 + */ + private String column; + + /** + * 默认排序类型 + */ + private String order; + + + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/NotInDbformTablesVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/NotInDbformTablesVo.java new file mode 100644 index 0000000..e41ca7b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/NotInDbformTablesVo.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class NotInDbformTablesVo { + @Schema(description = "表名") + private String tableName; + + @Schema(description = "表描述") + private String tableDescribe; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/PageVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/PageVo.java new file mode 100644 index 0000000..e1cf43f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/PageVo.java @@ -0,0 +1,22 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; + +@Data +public class PageVo { + Integer pageNo ; + Integer pageSize ; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportConfigVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportConfigVo.java new file mode 100644 index 0000000..8d03357 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportConfigVo.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.core.framework.entity.ReportFieldEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class ReportConfigVo { + + @Schema(description = "表单字典列表") + List fieldList=new ArrayList<>(); + + @Schema(description = "表单属性列表") + ReportEntity report; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportDeletedVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportDeletedVo.java new file mode 100644 index 0000000..425142b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportDeletedVo.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "数据报表-需要删除的idlist") +@Data +public class ReportDeletedVo { + + /** + * 字段属性 + */ + private List fieldList; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldIdVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldIdVo.java new file mode 100644 index 0000000..73e642a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldIdVo.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "数据报表-外键配置表") +@Data +public class ReportFieldIdVo { + + @Schema(description = "id 修改时候用到") + private Long id;; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldVo.java new file mode 100644 index 0000000..bd4d4ab --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportFieldVo.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "数据统计-字段属性") +@Data +public class ReportFieldVo extends ReportFieldIdVo { + + @Schema(description = "表字段") + private String fieldCode; + + @Schema(description = "表字段名称") + private String fieldName; + + @Schema(description = "字段类型") + private String fieldType; + + @Schema(description = "是否开启数据库查询;N=不开启 Y=开启") + private String queryIsDb; + + @Schema(description = "是否显示查询控件;N=不显示 Y=显示") + private String queryIsWeb; + + @Schema(description = "查询模式;EQ=精确 LIKE=模糊") + private String queryMode; + + @Schema(description = "字典code") + private String dictCode; + + @Schema(description = "是否支持导出") + private String isExport; + + @Schema(description = "是否排序;N=不显示 Y=显示") + private String isShowSort; + + @Schema(description = "字段是否有修改;如果是N并且有id的情况下,不修改") + private String isModify; +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportVo.java new file mode 100644 index 0000000..5d0c171 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/ReportVo.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "数据报表-基本属性") +@Data +public class ReportVo { + + @Schema(description = "id 修改时候用到") + private Long id; + + @Schema(description = "报表名称") + private String reportName; + + @Schema(description = "报表编号") + private String reportCode; + + @Schema(description = "分组id") + private Long groupReportId; + + @Schema(description = "JAVA配置") + private String javaConfig; + + @Schema(description = "数据配置") + private String dataConfig; + + @Schema(description = "表格配置") + private String tableConfig; + + @Schema(description = "表视图数据来源配置") + private String dataSourcesConfig; + +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/SummaryTopModel.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/SummaryTopModel.java new file mode 100644 index 0000000..170b9c9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/SummaryTopModel.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class SummaryTopModel { + private String summaryLabel; + private String summaryJson; + private List> dataMapList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableFieldModelVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableFieldModelVo.java new file mode 100644 index 0000000..1842cef --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableFieldModelVo.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + +import lombok.Data; + +@Data +public class TableFieldModelVo { + private String fieldCode;//字段 + private String fieldName;//字段名称 + private Integer fieldLen;//长度 + private Integer fieldPointLen;//小数位 + private String fieldDefaultVal;//字段默认值 + private String fieldType;//字段类型 + private String isPrimaryKey;//是否是主键 Y=是 N=不是 + private String isNull;//是否允许为空 Y=允许 N=不允许 +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableLabelVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableLabelVo.java new file mode 100644 index 0000000..ea9129b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/TableLabelVo.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class TableLabelVo { + @Schema(description = "dbformId") + private Long dbformId; + + @Schema(description = "字段属性") + private String fieldCode; + + @Schema(description = "值列表") + private List> labelList; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJavaVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJavaVo.java new file mode 100644 index 0000000..9ed7ca2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJavaVo.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.history; + +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发历史数据-java + */ +@Data +@EqualsAndHashCode +public class HistoryJavaVo extends HistoryDbformEntity { + + /** + * java实体 + */ + private EnhanceJavaEntity javaEntity; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJsVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJsVo.java new file mode 100644 index 0000000..b03b760 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistoryJsVo.java @@ -0,0 +1,45 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.history; + +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 增强-JS增强历史记录 + */ +@Data +@EqualsAndHashCode +public class HistoryJsVo extends BaseTenantEntity { + + /** + * 表单开发id + */ + private Long enhanceJsId; + + /** + * js增强类型;list form + */ + private String jsType; + + /** + * js增强内容 + */ + private String jsJson; + + //创建人名称 + private String createUserName; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistorySqlVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistorySqlVo.java new file mode 100644 index 0000000..2b13126 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/history/HistorySqlVo.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.history; + +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 表单开发历史数据-sql + */ +@Data +@EqualsAndHashCode +public class HistorySqlVo extends HistoryDbformEntity { + + /** + * sql实体 + */ + private EnhanceSqlEntity sqlEntity; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleButtonVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleButtonVo.java new file mode 100644 index 0000000..e69e088 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleButtonVo.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单增强-字段权限") +@Data +public class DbFormRoleButtonVo { + + @Schema(description = "租户id") + private String tenantId; + + @Schema(description = "表单id") + private Long dbformId; + + @Schema(description = "按钮Code") + private String buttonCode; + + @Schema(description = "按钮名称") + private String buttonName; + + @Schema(description = " 启用状态 N=关闭 Y=启动") + private String enableState; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataRuleVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataRuleVo.java new file mode 100644 index 0000000..edf9c57 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataRuleVo.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单增强-数据权限-规则") +@Data +public class DbFormRoleDataRuleVo { + + @Schema(description = "id") + private Long id; + + @Schema(description = "表单id") + private Long dbformId; + + @Schema(description = "规则名称") + private String ruleName; + + @Schema(description = "规则类型") + private String ruleType; + + @Schema(description = "规则字段") + private String ruleField; + + @Schema(description = "规则条件") + private String ruleCondition; + + @Schema(description = "规则值") + private String ruleValue; + + @Schema(description = " 启用状态 N=关闭 Y=启动,列表回显用") + private String enableState; + + @Schema(description = "规则运行sql") + private String ruleSql; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataTenantVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataTenantVo.java new file mode 100644 index 0000000..4043b0e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleDataTenantVo.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单增强-按钮权限") +@Data +public class DbFormRoleDataTenantVo { + + @Schema(description = "租户id") + private String tenantId; + + + @Schema(description = "规则id") + private Long ruleId; + + + @Schema(description = " 启用状态 N=关闭 Y=启动") + private String enableState; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleFieldVo.java new file mode 100644 index 0000000..ff6fa09 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/role/DbFormRoleFieldVo.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单增强-按钮权限") +@Data +public class DbFormRoleFieldVo { + + @Schema(description = "租户id") + private String tenantId; + + @Schema(description = "表单id") + private Long dbformId; + + @Schema(description = "字段Code") + private String fieldCode; + + @Schema(description = "字段名称") + private String fieldName; + + @Schema(description = "列表是否显示 N=不显示 Y=显示") + private String listIsView; + + + @Schema(description = "表单是否显示 N=不显示 Y=显示") + private String formIsView; + + + @Schema(description = "表单是否编辑 N=不显示 Y=显示") + private String formIsEdit; + + @Schema(description = " 启用状态 N=关闭 Y=启动") + private String enableState; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigButtonVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigButtonVo.java new file mode 100644 index 0000000..d2ac994 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigButtonVo.java @@ -0,0 +1,66 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + + +import lombok.Data; + +@Data +public class WebConfigButtonVo { + + /** + * 按钮名称 + */ + private String buttonName; + + /** + * 按钮编码 + */ + private String buttonCode; + + /** + * 按钮图标 + */ + private String buttonIcon; + + /** + * 按钮位置 + */ + private String buttonLocation; + + /** + * 按钮类型 + */ + private String buttonType; + + /** + * 按钮样式 + */ + private String buttonSort; + + /** + * 按钮显隐增强 + */ + private String buttonExp; + + /** + * 按钮显示 + */ + private String buttonShow; + + /** + * 权限控制 + */ + private String buttonAuth; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldDictVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldDictVo.java new file mode 100644 index 0000000..804ac8c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldDictVo.java @@ -0,0 +1,52 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import lombok.Data; + +@Data +public class WebConfigFieldDictVo { + + /** + * 字段 + */ + private String fieldCode; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 字典code + */ + private String dictCode; + + /** + * 字典表 + */ + private String dictTable; + + + /** + * 字典Text + */ + private String dictText; + + /** + * 表格字典显示列 + */ + private String dictTableColumn; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldExportVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldExportVo.java new file mode 100644 index 0000000..ebff4f4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldExportVo.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import lombok.Data; + +@Data +public class WebConfigFieldExportVo { + + /** + * 字段 + */ + private String fieldCode; + + + /** + * 是否导出;N=否 Y=是 + */ + private String isExport; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldForeignkeyVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldForeignkeyVo.java new file mode 100644 index 0000000..71b898a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldForeignkeyVo.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import lombok.Data; + +@Data +public class WebConfigFieldForeignkeyVo { + + /** + * 字段 + */ + private String fieldCode; + + /** + * 外键主表名 + */ + private String mainTable; + + + /** + * 外键主键字段 + */ + private String mainField; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldQueryVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldQueryVo.java new file mode 100644 index 0000000..fa4c8af --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldQueryVo.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import lombok.Data; + +@Data +public class WebConfigFieldQueryVo { + + /** + * 字段 + */ + private String fieldCode; + + + /** + * 是否开启数据库查询;N=不开启 Y=开启 + */ + private String queryIsDb; + + /** + * 是否显示查询控件;N=不显示 Y=显示 + */ + private String queryIsWeb; + + /** + * 查询模式;EQ=精确 LIKE=模糊 + */ + private String queryMode; + + /** + * 查询配置 + */ + private String queryConfig; + + /** + * 查询控件默认值 + */ + private String queryDefaultVal; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldSettingVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldSettingVo.java new file mode 100644 index 0000000..c4941f0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldSettingVo.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import lombok.Data; + +@Data +public class WebConfigFieldSettingVo { + + /** + * 是否显示统计 Y N + */ + private String summaryShow; + + + /** + * 统计类型 sum合计 avg 平均 + */ + private String summaryType; + + + /** + * 字段格式化 + */ + private String fieldFormatting; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldVo.java new file mode 100644 index 0000000..7206e3e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldVo.java @@ -0,0 +1,74 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import com.jeelowcode.core.framework.params.vo.DbFormSummaryVo; +import lombok.Data; + +@Data +public class WebConfigFieldVo { + /** + * 字段 + */ + private String fieldCode; + + /** + * 字段名称 + */ + private String fieldName; + + /** + * 字段长度 + */ + private String fieldLen; + + /** + * 小数位数 + */ + private Integer fieldPointLen; + + /** + * 默认值 + */ + private String fieldDefaultVal; + + /** + * 字段类型 + */ + private String fieldType; + + /** + * 备注 + */ + private String fieldRemark; + + + /** + * 排序 + */ + private Integer sortNum; + + //字典 + private WebConfigFieldDictVo dictEntity; + + private WebConfigFieldWebVo webEntity; + + private WebConfigFieldQueryVo queryEntity; + + private WebConfigFieldExportVo exportEntity; + + private WebConfigFieldForeignkeyVo foreignkeyEntity; + + private DbFormSummaryVo summaryEntity; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldWebVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldWebVo.java new file mode 100644 index 0000000..81e2fc2 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFieldWebVo.java @@ -0,0 +1,83 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class WebConfigFieldWebVo { + + /** + * 字段 + */ + private String fieldCode; + + /** + * 数据库是否查询;N=不显示 Y=显示 + */ + private String isDbSelect; + + /** + * 列表是否显示;N=不显示 Y=显示 + */ + private String isShowList; + + /** + * 表单是否显示;N=不显示 Y=显示 + */ + private String isShowForm; + + /** + * 是否可控;N=不显示 Y=显示 + */ + private String isShowColumn; + + /** + * 是否排序;N=不显示 Y=显示 + */ + private String isShowSort; + + /** + * 是否必填;N=否 Y=是 + */ + private String isRequired; + + /** + * 控件类型 + */ + private String controlType; + + /** + * 控件配置 + */ + private String controlsConfig; + + + /** + * 列宽 + */ + private String cellWidth; + + /** + * 列宽类型 + */ + private String cellWidthType; + + /** + * 校验配置 + */ + private String verifyConfig; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFormVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFormVo.java new file mode 100644 index 0000000..75b05e1 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigFormVo.java @@ -0,0 +1,161 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + + +import lombok.Data; + +@Data +public class WebConfigFormVo { + + /** + * 表名 + */ + private String tableName; + + /** + * 表描述 + */ + private String tableDescribe; + + /** + * 表类型;1单表、2树表、3主表、4附表 + */ + private Integer tableType; + + /** + * 表分类; + */ + private Integer tableClassify; + + /** + * 主键类型; + */ + private String tableIdType; + + /** + * 表格选择类型;multiple radio + */ + private String tableSelect; + + /** + * 同步数据库状态;N=未同步 Y=已同步 + */ + private String isDbSync; + + /** + * 是否用设计器表单;N=不 启用 Y=已启用 + */ + private String isDesForm; + + /** + * 附表-映射关系 + */ + private String subTableMapping; + + /** + * 附表-排序序号 + */ + private Integer subTableSort; + + /** + * 附表-标题 + */ + private String subTableTitle; + + /** + * 主题模板 + */ + private String themeTemplate; + + /** + * WEB表单设计ID + */ + private Long desformWebId; + + /** + * 树表样式 + */ + private String treeStyle; + + /** + * 树表模式 + */ + private String treeMode; + + /** + * 树表展开字段 + */ + private String treeLabelField; + + /** + * 操作栏样式 + */ + private String operateMenuStyle; + + /** + * 表单风格 + */ + private String formStyle; + + /** + * 表单开发分组id + */ + private Long groupDbformId; + + /** + * 默认排序字段 + */ + private String orderbyConfig; + + /** + * 默认条件配置 + */ + private String whereConfig; + + /** + * 子表列表 + */ + private String subTableListStr; + + /** + * 是否显示系统字段;N=不 启用 Y=已启用 + */ + private String viewDefaultField; + + /** + * 数据配置 + */ + private String dataConfig; + + /** + * 基础功能 + */ + private String basicFunction; + + /** + * 基础配置 + */ + private String basicConfig; + + /** + * 表格配置 + */ + private String tableConfig; + + /** + * 单表样式 + */ + private String tableStyle; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigJsVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigJsVo.java new file mode 100644 index 0000000..be309b3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigJsVo.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + + +import lombok.Data; + +@Data +public class WebConfigJsVo { + + /** + * js增强类型;list form + */ + private String jsType; + + /** + * js增强内容 + */ + private String jsJson; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigRoleFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigRoleFieldVo.java new file mode 100644 index 0000000..a257c29 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigRoleFieldVo.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "表单增强-按钮权限") +@Data +public class WebConfigRoleFieldVo { + + @Schema(description = "字段Code") + private String fieldCode; + + + @Schema(description = "列表是否显示 N=不显示 Y=显示") + private String listIsView; + + + @Schema(description = "表单是否显示 N=不显示 Y=显示") + private String formIsView; + + + @Schema(description = "表单是否编辑 N=不显示 Y=显示") + private String formIsEdit; + + @Schema(description = " 启用状态 N=关闭 Y=启动") + private String enableState; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigVo.java new file mode 100644 index 0000000..2f104aa --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfig/WebConfigVo.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfig; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class WebConfigVo { + + @Schema(description = "属性列表") + List fieldList; + + @Schema(description = "表单属性列表") + WebConfigFormVo dbForm; + + @Schema(description = "按钮增强列表") + List buttonList; + + @Schema(description = "js增强列表") + List jsList; + + @Schema(description = "附表DbFormId信息") + List subDbFormIdList; + + @Schema(description = "顶部统计配置") + boolean summaryTopOpenFlag; + + @Schema(description = "租户权限列表-字段权限") + List webConfigRoleFieldVoList; + + @Schema(description = "租户权限列表-按钮权限") + List webConfigRoleButtonVoList; +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportFieldVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportFieldVo.java new file mode 100644 index 0000000..548a407 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportFieldVo.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfigreport; + +import lombok.Data; + +@Data +public class WebConfigReportFieldVo { + /** + * 字段 + */ + private String fieldCode; + + /** + * 字段名称 + */ + private String fieldName; + + /** + * 字段类型 + */ + private String fieldType; + + /** + * 排序 + */ + private Integer sortNum; + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportVo.java new file mode 100644 index 0000000..ecc7a99 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigReportVo.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfigreport; + + +import lombok.Data; + +@Data +public class WebConfigReportVo { + + /** + * 报表名称 + */ + private String reportName; + + /** + * 报表编码 + */ + private String reportCode; + + /** + * 分组id + */ + private Long groupReportId; + + /** + * 数据配置 + */ + private String dataConfig; + + /** + * 表格配置 + */ + private String tableConfig; + + + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigVo.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigVo.java new file mode 100644 index 0000000..5e4ad2d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/params/vo/webconfigreport/WebConfigVo.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.params.vo.webconfigreport; + + +import com.jeelowcode.core.framework.entity.ReportFieldEntity; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class WebConfigVo { + + @Schema(description = "字段列表") + List fieldList; + + @Schema(description = "报表属性") + WebConfigReportVo reportVo; + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IApiLogService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IApiLogService.java new file mode 100644 index 0000000..86ff6e5 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IApiLogService.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.LogRequestApiEntity; +import com.jeelowcode.core.framework.entity.LogRequestErrorApiEntity; +import com.jeelowcode.core.framework.params.LogRequestApiParam; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 日志相关 + */ +public interface IApiLogService { + //清除某一个日期前的api请求日志 + Integer clearApiLog(Date clearDate); + + //清除某一个日期前的api错误请求日志 + Integer clearApiErrorLog(Date clearDate); + + //获取info日志列表 + IPage getInfoApiLogPage(LogRequestApiParam param, Page page); + //获取error日志列表 + IPage getErrorApiLogPage(LogRequestApiParam param, Page page); + + //获取info日志详情 + LogRequestApiEntity getInfoApiLogDetail(Long id); + //获取error日志详情 + LogRequestErrorApiEntity getErrorApiLogDetail(Long id); + + // 统计模块使用记录 + List> countModelUsageRecords(Date begin, Date end); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IBatchService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IBatchService.java new file mode 100644 index 0000000..ef73bec --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IBatchService.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; + +public interface IBatchService { + + @Transactional( + rollbackFor = {Exception.class} + ) + default boolean saveBatch(Collection entityList, BaseMapper baseMapper,Class mapperClass,Class entityClazz) { + return this.saveBatch(entityList, 1000,baseMapper,mapperClass,entityClazz); + } + + boolean saveBatch(Collection entityList, int batchSize, BaseMapper baseMapper,Class mapperClass,Class entityClazz); + + @Transactional( + rollbackFor = {Exception.class} + ) + default boolean updateBatchById(Collection entityList,BaseMapper baseMapper,Class mapperClass,Class entityClazz) { + return this.updateBatchById(entityList, 1000,baseMapper,mapperClass,entityClazz); + } + + boolean updateBatchById(Collection entityList, int batchSize,BaseMapper baseMapper,Class mapperClass,Class entityClazz); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDbFormRoleService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDbFormRoleService.java new file mode 100644 index 0000000..d1a3a0d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDbFormRoleService.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleButtonVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataRuleVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataTenantVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; + +import java.util.List; + +/** + * 表单开发-权限相关 + */ +public interface IDbFormRoleService { + + //保存字段权限 + void saveOrUpdateRoleField(List voList); + + //字段权限列表 + List listRoleField(String tenantId, Long dbFormId); + List listRoleField(String tenantId, Long dbFormId,Boolean enableFlag); + + //保存按钮权限 + void saveOrUpdateRoleButton(List voList); + //按钮权限列表 + List listRoleButton(String tenantId, Long dbFormId); + List listRoleButton(String tenantId, Long dbFormId,Boolean enableFlag); + + //保存数据权限-规则 + void saveOrUpdateRoleDataRule(DbFormRoleDataRuleVo vo); + + //删除数据圈规则 + void delRoleDataRule(Long ruleId); + + ///保存数据权限-租户 + void saveOrUpdateRoleDataTenant(List voList); + + //数据权限列表 + List listRoleData(String tenantId, Long dbFormId); + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDesFormService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDesFormService.java new file mode 100644 index 0000000..f264be0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IDesFormService.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.DesformEntity; +import com.jeelowcode.core.framework.params.DesFormAddOrUpdateParam; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 表单设计器相关 + */ +public interface IDesFormService extends IService { + + //保存 + Long saveDesForm(DesFormAddOrUpdateParam param); + + //修改 + void updateDesForm(DesFormAddOrUpdateParam param); + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJavaService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJavaService.java new file mode 100644 index 0000000..cd231db --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJavaService.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * JAVA增强相关 + */ +public interface IEnhanceJavaService extends IService { + + //新增增强 + void saveEnhanceJava(EnhanceJavaEntity enhanceJavaEntity); + + //编辑增强 + void updateEnhanceJava(EnhanceJavaEntity enhanceJavaEntity); + + //复制 + void copy(Long sourceFormIdId,Long targetFormIdId,String oldTableName,String newTableName); + + //获取所有增强 + List getAllJavaEnhance(); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJsService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJsService.java new file mode 100644 index 0000000..21e916a --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceJsService.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.EnhanceJsEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * JS增强相关 + */ +public interface IEnhanceJsService extends IService { + + List getJsList(Long dbFormId); + + /** + * Js增强 详情 + */ + EnhanceJsEntity getDbFormEnhanceJsDetail(Long dbformId, String type); + + //新增js增强 + void saveEnhanceJs(EnhanceJsEntity enhanceJsEntity); + + //编辑js增强 + void updateEnhanceJs(EnhanceJsEntity enhanceJsEntity); + + //复制 + void copy(Long sourceFormIdId,Long targetFormIdId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceSqlService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceSqlService.java new file mode 100644 index 0000000..0612b11 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IEnhanceSqlService.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * SQL增强相关 + */ +public interface IEnhanceSqlService extends IService { + + //新增sql增强 + void saveEnhanceSql(EnhanceSqlEntity enhanceSqlEntity); + + //编辑sql增强 + void updateEnhanceSql(EnhanceSqlEntity enhanceSqlEntity); + + //复制 + void copy(Long sourceFormIdId,Long targetFormIdId); + + //获取所有有效的sql增强 + List getAllSqlEnhance(); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileDataService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileDataService.java new file mode 100644 index 0000000..175ef7f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileDataService.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; + +import java.util.List; + +/** + * Excel导入数据相关 + */ +public interface IExcelFileDataService extends IService { + + //删除 + void delById(Long fileDataId); + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileService.java new file mode 100644 index 0000000..c25a894 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelFileService.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamImport; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.entity.ExcelFileEntity; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.util.List; + +/** + * Excel导入相关 + */ +public interface IExcelFileService extends IService { + + //保存Excel数据 + void saveExcelSync( long fileId,ButtonParamImport param); + ExcelImportResultModel saveExcel(ServletRequestAttributes sra,long fileId, ButtonParamImport param); + //撤回 + void rollback(Long fileId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelService.java new file mode 100644 index 0000000..e5777a4 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IExcelService.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * Excel相关 + */ +public interface IExcelService { + + /** + * 导出Excel模版 + * @param dbformId + */ + ExcelTemplateModel getExportExcelTemplate(Long dbformId); + + /** + * 获取导出基本信息 + * @param dbformId + */ + ExcelModel getExcelModel(Long dbformId); + + + /** + * 获取报表导出基本信息 + * @param reportCode + */ + ExcelModel getExcelReportModel(String reportCode); + + + /** + * 处理临时库 + */ + void handleTempTable(ServletRequestAttributes sra,Long dbFormId, Long fieldId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormButtonService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormButtonService.java new file mode 100644 index 0000000..7729ce9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormButtonService.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.FormButtonEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * button增强相关 + */ +public interface IFormButtonService extends IService { + + //获取按钮增强列表 + List getButtonList(Long dbFormId); + + //复制 + void copy(Long sourceFormIdId,Long targetFormIdId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormService.java new file mode 100644 index 0000000..0a4e000 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFormService.java @@ -0,0 +1,172 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + + +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.params.DbFormAddOrUpdateParam; +import com.jeelowcode.core.framework.params.PageDbFormParam; +import com.jeelowcode.core.framework.params.TreeParentParam; +import com.jeelowcode.core.framework.params.model.AllTableModel; +import com.jeelowcode.core.framework.params.model.DbFieldCodeListModel; +import com.jeelowcode.core.framework.params.model.ExplainSqlFieldModel; +import com.jeelowcode.core.framework.params.vo.DbFormConfigVo; +import com.jeelowcode.core.framework.params.vo.NotInDbformTablesVo; +import com.jeelowcode.core.framework.params.vo.TableFieldModelVo; +import com.jeelowcode.core.framework.params.vo.webconfig.WebConfigVo; +import com.jeelowcode.framework.utils.enums.AuthTypeEnum; +import com.jeelowcode.framework.utils.enums.DbFormTypeEnum; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jeelowcode.core.framework.entity.*; +import groovy.lang.GroovyClassLoader; + +import java.util.List; +import java.util.Map; + +/** + * 表单开发-业务相关 + */ +public interface IFormService extends IService { + + //判断是否是业务表 + boolean isServiceTable(Long dbFormId); + + //获取表类型 + Integer getTableType(Long dbFormId); + + //获取主题模板 + String getTableThemeTemplate(Long dbFormId); + + //获取认证类型 + AuthTypeEnum getAuthType(Long dbFormId); + + //获取表名称 + String getTableName(Long dbFormId); + + //校验字段是否存在 + boolean fieldCodeIsExist(Long dbFormId,String fieldCode); + + //获取所有附表列表 + List getAllSubTableNameList(Long dbFormId); + + //根据表名获取id + Long getDbFormIdByTableName(String tableName); + List getDbFormIdByTableName(List subTableNameList); + + //获取表信息 + FormEntity getFormEntityById(Long dbFormId); + FormEntity getFormEntityByName(String tableName); + + //获取数量 + Map getFormCou(Long dbFormId); + + + //获取数据库字段列表 + List getFieldList(Long dbFormId); + List getDbFieldList(Long dbFormId); + DbFieldCodeListModel getDbFieldCodeList(Long dbFormId); + + //获取字典 + List getFieldDictList(Long dbFormId); + List getFieldQueryList(Long dbFormId); + List getFieldWebList(Long dbFormId); + + //获取索引列表 + List getIndexList(Long dbFormId); + + //保存 - 表单开发 + Long saveDbFormConfig(DbFormAddOrUpdateParam param); + + //修改 - 表单开发 + void updateDbFormConfig(DbFormAddOrUpdateParam param); + + //删除 - 表单开发 + void deleteDbFormConfig(List dbFormIdList,boolean dropTableFlag); + + //复制表 - 表单开发 + void copyDbFormConfig(Long dbformId,String tableName); + + //详情 - 表单开发 + DbFormConfigVo getDetailDbFormConfig(Long dbFormId);//所有类型 + DbFormConfigVo getDetailDbFormConfig(Long dbFormId, List typeList);//自定义类型 + DbFormConfigVo getDetailDbFormConfig(Long dbFormId, List typeList,List fieldList);//自定义列 + + //分页 - 表单开发 + IPage getPageDbFormConfig(PageDbFormParam param, Page page); + + //获取页面配置 + WebConfigVo getWebConfig(Long dbFormId); + WebConfigVo getWebConfig(Long dbFormId,List selfFieldList); + + + //获取字段类型 + JeeLowCodeFieldTypeEnum getFieldTypeEnum(Long dbFormId, String fieldCode); + + //获取字典数据 + Map getDictKeyLabelMap(Long dbFormId, String fieldCode); + + //格式化数据列表(回显数据,处理时间等) + void formatDataList(Long dbformId,List> dataMapList); + + //获取字段 + Map getFieldNameAndCode(Long dbFormId); + + //获取所有表 + List getAllTable(String systemFlag); + + //获取字典表显示列 + List getDictTableFieldList(Long dbFormId,List fieldList); + + //获取外键列 + FormFieldForeignkeyEntity getFieldForeignkeyEntity(Long dbFormId,String mainTable); + + //清空缓存 + void cleanCache(); + + //初始化在线编码 + void initOnlineScript(GroovyClassLoader groovyClassLoader ); + + //初始化自定义按钮 + void initConfigBtnCommand(); + + //获取树级所有上级 + List> getTreeParentList(Long dbformId, TreeParentParam treeParentParam); + + //获取统计设置列表 + List getSummarySettingList(Long dbformId,String summaryType); + + //获取界面显示列 + List getWebViewFieldList(Long dbformId); + + //初始化增强插件 + void initEnhancePluginManager(); + + //获取字段枚举 + Map getFieldCodeAndTypeEnum(Long dbformId); + + //解析sql + Map explainSqlField(List modelList); + + //获取未在表单开发里面的表 + List getNotInDbformTables(); + + //获取表备注字段 + List getTableFieldComment(String tableName); + + // 获取表单的字段对应的字典 + Map> getFieldDict(Long dbFormId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameService.java new file mode 100644 index 0000000..de45f1f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameService.java @@ -0,0 +1,94 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import cn.hutool.json.JSONObject; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.params.SaveImportDataParam; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; +import java.util.Map; + +/** + * 框架业务相关 + */ +public interface IFrameService { + + + + /** + * 校验表是否存在 + * @param tableName + * @return true=存在 false = 不存在 + */ + boolean checkTable(String tableName); + + //校验数据库是否存在表 + boolean checkDbTable(String tableName); + + /** + * 同步数据到数据库 + * @param dbFormId + * @param syncModel + */ + void syncDb(Long dbFormId,String syncModel) throws JSQLParserException; + + /** + * 删除表 + * @param tableName + */ + boolean dropTable(String tableName); + + + /*------------------表相关----------------------*/ + + //获取表数据 -不分页 + ResultDataModel getDataList(Long dbFormId,Map params); + + ResultDataModel getDataList(Long dbFormId, Page page, Map params); + + //获取统计数据 + ResultDataModel getDataSummaryList(Long dbFormId, Map params); + + //获取表详情 + ResultDataModel getDataDetail(Long dbFormId,Long id,Map params); + + //保存数据 + ExecuteEnhanceModel saveData(Long dbformId, Map params); + //保存数据-批量新增 + List saveBatchData(Long dbformId, List dataMapList); + + //编辑数据 + ExecuteEnhanceModel editData(Long dbformId, Long dataId, Map params); + + //编辑数据-批量 + void editBatchData(Long dbformId,List jsonObjectList); + + //删除数据 + ExecuteEnhanceModel delData(Long dbFormId, Map params); + + /*------------------Excel相关----------------------*/ + //获取导出数据 + ResultDataModel getExportDataList(Long dbFormId, Map params); + //保存导入数据 + void saveImportData(Long dbformId, SaveImportDataParam param); + /*------------------报表相关----------------------*/ + + //获取数据表数据 -分页 + ResultDataModel getReportDataList(String reportCode, Page page, Map params); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameSqlService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameSqlService.java new file mode 100644 index 0000000..420e137 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IFrameSqlService.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoDeleteWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; +import java.util.Map; + +/** + * 框架SQL相关 + */ +public interface IFrameSqlService { + + //运行ddl语句 + void executeDDL(String ddlSql); + + //获取数据,不做租户等其他处理 + List> getSimpleData(String sql); + + //查询数据相关 + //单个 + Map getDataOneByPlus(SqlInfoQueryWrapper.Wrapper wrapper); + //多个 + List> getDataListByPlus(SqlInfoQueryWrapper.Wrapper wrapper); + List> getDataListByPlus(String sql,Map params); + //分页 + IPage> getDataIPageByPlus(IPage page, SqlInfoQueryWrapper.Wrapper wrapper); + + //修改数据 + void updateDataByPlus(SqlInfoUpdateWrapper.Wrapper wrapper); + + //新增数据 + void insertDataByPlus(String tableName, Map addDataMap); + + //真实-删除数据 + void delRealDataByPlus(SqlInfoDeleteWrapper.Wrapper wrapper); + //逻辑-删除数据 + void delDataByPlus(SqlInfoUpdateWrapper.Wrapper wrapper); + + //--------------------------抽取快捷方法-------------------------------- + //获取表数据 + List> getTableDataList(String tableName); + List> getTableDataList(String tableName,List fieldList); + + //根据Id获取数据 + Map getTableDataById(String tableName,Long id); + Map getTableDataById(String tableName,Long id,List fieldList); + + //自定义根据某一个字段查询-返回单条 + Map getDataOneByField(String tableName, String whereFieldName, Object whereFieldValue); + Map getDataOneByField(String tableName, String whereFieldName, Object whereFieldValue,List fieldList); + //自定义根据某一个字段查询-返回多条 + List> getDataListByField(String tableName, String whereFieldName, Object whereFieldValue); + List> getDataListByField(String tableName, String whereFieldName, Object whereFieldValue,List fieldList); + + //公共修改 + void baseUpdateDataById(String tableName,Map dataMap,Long id); + void baseUpdateDataByField(String tableName,Map dataMap,String whereFieldName, Object whereFieldValue); + + //公共删除-逻辑 + void baseDelDataById(String tableName,Long id); + void baseDelDataByField(String tableName,String whereFieldName, Object whereFieldValue); + + //公共删除-真实 + void baseDelRealData(String tableName,Long id); + void baseDelRealDataByField(String tableName,String whereFieldName, Object whereFieldValue); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDbFormService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDbFormService.java new file mode 100644 index 0000000..ee71f3c --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDbFormService.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.GroupDbFormEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 表单开发分组 + */ +public interface IGroupDbFormService extends IService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDesFormService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDesFormService.java new file mode 100644 index 0000000..c185e91 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupDesFormService.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.GroupDesFormEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 表单设计分组 + */ +public interface IGroupDesFormService extends IService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupReportService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupReportService.java new file mode 100644 index 0000000..e48f05b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IGroupReportService.java @@ -0,0 +1,25 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jeelowcode.core.framework.entity.GroupReportEntity; + +/** + * 数据报表分组 + */ +public interface IGroupReportService extends IService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IHistoryService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IHistoryService.java new file mode 100644 index 0000000..002ee0b --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IHistoryService.java @@ -0,0 +1,45 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.HistoryDesformEntity; +import com.jeelowcode.core.framework.params.vo.history.HistoryJavaVo; +import com.jeelowcode.core.framework.params.vo.history.HistorySqlVo; +import com.jeelowcode.core.framework.params.vo.history.HistoryJsVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** + * 历史记录 + */ +public interface IHistoryService { + + + //获取历史记录-表单设计 + IPage getDesFormPages(Long desformId, Page page); + HistoryDesformEntity getDesFormInfo(Long historyId); + + + //获取历史记录-JS增强 + IPage getHistoryJsPages(Long enhanceJsId, Page page); + HistoryJsVo getHistoryJsInfo(Long historyId); + + //获取历史记录-Sql增强 + IPage getHistorySqlPages(Long enhanceSqlId, Page page); + HistorySqlVo getHistorySqlInfo(Long historyId); + + //获取历史记录-java增强 + IPage getHistoryJavaPages(Long enhanceJavaId, Page page); + HistoryJavaVo getHistoryJavaInfo(Long historyId); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeConfigService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeConfigService.java new file mode 100644 index 0000000..73cc9e3 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeConfigService.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import com.jeelowcode.core.framework.entity.JeeLowCodeConfigEntity; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + * 低代码平台-框架配置 + */ +public interface IJeeLowCodeConfigService extends IService { + + /** + * 获取自定义按钮控件 + * @return key=a_key value=ADefinableButton + */ + Map getBtnCommandConfig(); + + Map getEnhanceCodeConfig(); + + //获取Excel保留天数 + Integer getExcelFileDataDay(); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeService.java new file mode 100644 index 0000000..d994ffa --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IJeeLowCodeService.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + +import java.util.Date; + +/** + * 自己业务相关 + */ +public interface IJeeLowCodeService { + //清除ExcelData日志 + Integer clearExcelData(Date clearDate); + + // 保存模块使用记录 + Integer saveModelUsageRecords(); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IReportService.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IReportService.java new file mode 100644 index 0000000..d98ca45 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/IReportService.java @@ -0,0 +1,70 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jeelowcode.core.framework.entity.ReportEntity; +import com.jeelowcode.core.framework.params.PageReportParam; +import com.jeelowcode.core.framework.params.ReportAddOrUpdateParam; +import com.jeelowcode.core.framework.params.vo.ReportConfigVo; +import com.jeelowcode.core.framework.params.vo.webconfigreport.WebConfigVo; +import com.jeelowcode.framework.utils.enums.AuthTypeEnum; + +import java.util.List; +import java.util.Map; + +/** + * 数据报表相关 + */ +public interface IReportService extends IService { + + //获取认证类型 + AuthTypeEnum getAuthType(String reportCode); + + //根据id获取 + ReportEntity getReportEntityById(Long reportId); + + //根据code获取 + ReportEntity getReportEntityByCode(String reportCode); + + //新增 + Long saveReportConfig(ReportAddOrUpdateParam param); + + //修改 + void updateReportConfig(ReportAddOrUpdateParam param); + + //删除 + void deleteReportConfig(List reportIdList); + + //详情 + ReportConfigVo getReportConfig(Long reportId); + + //分页 + IPage getPageReportConfig(PageReportParam param, Page page); + + //前端配置 + WebConfigVo getWebConfig(String reportCode); + + //回显字典 + void dictView(Long reportId,List> records); + + //初始化增强插件 + void initEnhancePluginManager(); + + //复制 + void copy(String reportCode, String newReportCode); +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ApiLogServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ApiLogServiceImpl.java new file mode 100644 index 0000000..af97f5f --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ApiLogServiceImpl.java @@ -0,0 +1,124 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.entity.LogRequestApiEntity; +import com.jeelowcode.core.framework.entity.LogRequestErrorApiEntity; +import com.jeelowcode.core.framework.mapper.LogApiErrorMapper; +import com.jeelowcode.core.framework.mapper.LogApiMapper; +import com.jeelowcode.core.framework.params.LogRequestApiParam; +import com.jeelowcode.core.framework.service.IApiLogService; +import com.jeelowcode.core.framework.utils.Func; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 日志相关日志相关日志相关 + */ +@Service +public class ApiLogServiceImpl implements IApiLogService { + + @Autowired + private LogApiMapper logApiMapper; + + @Autowired + private LogApiErrorMapper logApiErrorMapper; + + //请求某一个日期前的api请求日志 + @Override + public Integer clearApiLog(Date clearDate){ + return logApiMapper.clearApiLog(clearDate); + } + + //清除某一个日期前的api错误请求日志 + @Override + public Integer clearApiErrorLog(Date clearDate){ + return logApiErrorMapper.clearApiLog(clearDate); + } + + //获取info日志列表 + @Override + public IPage getInfoApiLogPage(LogRequestApiParam param, Page page){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(Func.isNotEmpty(param.getTenantId()),LogRequestApiEntity::getTenantId,param.getTenantId()); + wrapper.eq(Func.isNotEmpty(param.getCreateUserName()),LogRequestApiEntity::getCreateUserName,param.getCreateUserName()); + wrapper.eq(Func.isNotEmpty(param.getRequestUri()),LogRequestApiEntity::getRequestUri,param.getRequestUri()); + //处理时间 + if(Func.isNotEmpty(param.getCreateTime())){ + String createTimeStr = param.getCreateTime(); + String[] timeStrs = createTimeStr.split(","); + DateTime startTime = DateUtil.parse(timeStrs[0],"yyyy-MM-dd HH:mm:ss"); + DateTime endTime = DateUtil.parse(timeStrs[1],"yyyy-MM-dd HH:mm:ss"); + wrapper.between(LogRequestApiEntity::getCreateTime,startTime,endTime); + } + wrapper.gt(Func.isNotEmpty(param.getTime()),LogRequestApiEntity::getTime,param.getTime()); + + wrapper.select(LogRequestApiEntity::getId,LogRequestApiEntity::getTenantId,LogRequestApiEntity::getCreateUserName,LogRequestApiEntity::getCreateTime,LogRequestApiEntity::getRequestUri,LogRequestApiEntity::getIp,LogRequestApiEntity::getTime,LogRequestApiEntity::getTitle,LogRequestApiEntity::getModelTitle); + wrapper.orderByDesc(LogRequestApiEntity::getId); + Page pages = logApiMapper.selectPage(page, wrapper); + return pages; + } + + //获取error日志列表 + @Override + public IPage getErrorApiLogPage(LogRequestApiParam param, Page page){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(Func.isNotEmpty(param.getTenantId()),LogRequestErrorApiEntity::getTenantId,param.getTenantId()); + wrapper.eq(Func.isNotEmpty(param.getCreateUserName()),LogRequestErrorApiEntity::getCreateUserName,param.getCreateUserName()); + wrapper.eq(Func.isNotEmpty(param.getRequestUri()),LogRequestErrorApiEntity::getRequestUri,param.getRequestUri()); + //处理时间 + if(Func.isNotEmpty(param.getCreateTime())){ + String createTimeStr = param.getCreateTime(); + String[] timeStrs = createTimeStr.split(","); + DateTime startTime = DateUtil.parse(timeStrs[0],"yyyy-MM-dd HH:mm:ss"); + DateTime endTime = DateUtil.parse(timeStrs[1],"yyyy-MM-dd HH:mm:ss"); + wrapper.between(LogRequestErrorApiEntity::getCreateTime,startTime,endTime); + } + wrapper.gt(Func.isNotEmpty(param.getTime()),LogRequestErrorApiEntity::getTime,param.getTime()); + + + wrapper.select(LogRequestErrorApiEntity::getId,LogRequestErrorApiEntity::getTenantId,LogRequestErrorApiEntity::getCreateUserName,LogRequestErrorApiEntity::getCreateTime,LogRequestErrorApiEntity::getRequestUri,LogRequestErrorApiEntity::getIp,LogRequestErrorApiEntity::getTime,LogRequestErrorApiEntity::getTitle,LogRequestErrorApiEntity::getModelTitle); + wrapper.orderByDesc(LogRequestErrorApiEntity::getId); + Page pages = logApiErrorMapper.selectPage(page, wrapper); + return pages; + } + + //获取info日志详情 + @Override + public LogRequestApiEntity getInfoApiLogDetail(Long id){ + return logApiMapper.selectById(id); + } + //获取error日志详情 + @Override + public LogRequestErrorApiEntity getErrorApiLogDetail(Long id){ + return logApiErrorMapper.selectById(id); + } + + // 统计模块使用记录 + @Override + public List> countModelUsageRecords(Date begin, Date end) { + return logApiMapper.countModelUsageRecords(begin, end); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/BatchServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/BatchServiceImpl.java new file mode 100644 index 0000000..0aa679d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/BatchServiceImpl.java @@ -0,0 +1,125 @@ +/* + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author:广州魔晶智能科技股份有限公司 + * Copyright :广州魔晶智能科技股份有限公司 + * Website:www.mj.ink + */ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + + +import com.baomidou.mybatisplus.core.enums.SqlMethod; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.override.MybatisMapperProxy; +import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils; +import com.baomidou.mybatisplus.extension.toolkit.AopUtils; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import com.jeelowcode.core.framework.service.IBatchService; +import com.jeelowcode.core.framework.utils.Func; +import org.apache.ibatis.binding.MapperMethod; +import org.apache.ibatis.logging.Log; +import org.apache.ibatis.logging.LogFactory; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.aop.framework.AopProxyUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.lang.reflect.Proxy; +import java.util.Collection; +import java.util.function.BiConsumer; + + +/** + * 通用新增 + */ +@Service +public class BatchServiceImpl implements IBatchService { + + protected final Log log = LogFactory.getLog(this.getClass()); + private volatile SqlSessionFactory sqlSessionFactory; + + @Transactional( + rollbackFor = {Exception.class} + ) + public boolean saveBatch(Collection entityList, int batchSize, BaseMapper baseMapper,Class mapperClass,Class entityClazz) { + if(Func.isEmpty(entityList)){ + return false; + } + String sqlStatement = this.getSqlStatement(SqlMethod.INSERT_ONE,mapperClass); + return this.executeBatch(entityList, batchSize,baseMapper,entityClazz, (sqlSession, entity) -> { + sqlSession.insert(sqlStatement, entity); + }); + } + + @Transactional( + rollbackFor = {Exception.class} + ) + public boolean updateBatchById(Collection entityList, int batchSize,BaseMapper baseMapper,Class mapperClass,Class entityClazz) { + if(Func.isEmpty(entityList)){ + return false; + } + String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID,mapperClass); + return this.executeBatch(entityList, batchSize,baseMapper,entityClazz, (sqlSession, entity) -> { + MapperMethod.ParamMap param = new MapperMethod.ParamMap(); + param.put("et", entity); + sqlSession.update(sqlStatement, param); + }); + } + + + + protected String getSqlStatement(SqlMethod sqlMethod,Class mapperClass) { + return SqlHelper.getSqlStatement(mapperClass, sqlMethod); + } + + protected boolean executeBatch(Collection list, int batchSize,BaseMapper baseMapper,Class clazz, BiConsumer consumer) { + return SqlHelper.executeBatch(this.getSqlSessionFactory(baseMapper,clazz), this.log, list, batchSize, consumer); + } + protected SqlSessionFactory getSqlSessionFactory(BaseMapper baseMapper,Class clazz) { + if (this.sqlSessionFactory == null) { + synchronized(this) { + if (this.sqlSessionFactory == null) { + Object target = baseMapper; + if (AopUtils.isLoadSpringAop() && org.springframework.aop.support.AopUtils.isAopProxy(baseMapper)) { + target = AopProxyUtils.getSingletonTarget(baseMapper); + } + + if (target != null) { + MybatisMapperProxy mybatisMapperProxy = (MybatisMapperProxy) Proxy.getInvocationHandler(target); + SqlSessionTemplate sqlSessionTemplate = (SqlSessionTemplate)mybatisMapperProxy.getSqlSession(); + this.sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory(); + } else { + this.sqlSessionFactory = GlobalConfigUtils.currentSessionFactory(clazz); + } + } + } + } + + return this.sqlSessionFactory; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DbFormRoleServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DbFormRoleServiceImpl.java new file mode 100644 index 0000000..e99eebc --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DbFormRoleServiceImpl.java @@ -0,0 +1,461 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.FormRoleButtonMapper; +import com.jeelowcode.core.framework.mapper.FormRoleDataRuleMapper; +import com.jeelowcode.core.framework.mapper.FormRoleDataTenantMapper; +import com.jeelowcode.core.framework.mapper.FormRoleFieldMapper; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleButtonVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataRuleVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataTenantVo; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleFieldVo; +import com.jeelowcode.core.framework.service.IDbFormRoleService; +import com.jeelowcode.core.framework.service.IFormButtonService; +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * 表单开发-权限相关 + */ +@Service +public class DbFormRoleServiceImpl implements IDbFormRoleService { + + @Autowired + private FormRoleFieldMapper roleFieldMapper; + + @Autowired + private FormRoleButtonMapper roleButtonMapper; + + @Autowired + private FormRoleDataRuleMapper roleDataRuleMapper; + + @Autowired + private FormRoleDataTenantMapper roleDataTenantMapper; + + @Autowired + private IFormService formService; + + @Autowired + private IFormButtonService buttonService; + + //保存字段权限 + @Transactional(rollbackFor = Exception.class) + @Override + public void saveOrUpdateRoleField(List voList) { + voList.stream().forEach(vo -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormRoleFieldEntity::getTenantId, vo.getTenantId()); + wrapper.eq(FormRoleFieldEntity::getDbformId, vo.getDbformId()); + wrapper.eq(FormRoleFieldEntity::getFieldCode, vo.getFieldCode()); + FormRoleFieldEntity selectEntity = roleFieldMapper.selectOne(wrapper); + + //默认是开启的,所以只对关闭操作 + FormRoleFieldEntity entity = new FormRoleFieldEntity(); + entity.setTenantId(vo.getTenantId()); + entity.setDbformId(vo.getDbformId()); + entity.setFieldCode(vo.getFieldCode()); + + entity.setListIsView(vo.getListIsView()); + entity.setFormIsEdit(vo.getFormIsEdit()); + entity.setFormIsView(vo.getFormIsView()); + entity.setEnableState(vo.getEnableState()); + if (Func.isNotEmpty(selectEntity)) {//更新 + entity.setId(selectEntity.getId()); + roleFieldMapper.updateById(entity); + } else {//新增 + roleFieldMapper.insert(entity); + } + + boolean publicExist = false; + if (!Func.equals(vo.getTenantId(), "1")) { + LambdaQueryWrapper pulbicwrapper = new LambdaQueryWrapper<>(); + pulbicwrapper.eq(FormRoleFieldEntity::getTenantId, "1"); + pulbicwrapper.eq(FormRoleFieldEntity::getDbformId, vo.getDbformId()); + pulbicwrapper.eq(FormRoleFieldEntity::getFieldCode, vo.getFieldCode()); + FormRoleFieldEntity publicSelectEntity = roleFieldMapper.selectOne(pulbicwrapper); + if (Func.isNotEmpty(publicSelectEntity)) { + publicExist = true; + } + } + + + FormRoleFieldEntity afterEntity = roleFieldMapper.selectById(entity.getId()); + //如果是全开的情况下,直接删掉。如果通用的存在的情况下是不能删的 + if (!publicExist && + Func.isEmpty(afterEntity.getEnableState()) && + Func.isEmpty(afterEntity.getListIsView()) && + Func.isEmpty(afterEntity.getFormIsView()) && + Func.isEmpty(afterEntity.getFormIsEdit())) { + roleFieldMapper.deleteById(entity.getId()); + } + }); + + } + + //字段权限列表 + @Override + public List listRoleField(String tenantId, Long dbFormId) { + return this.listRoleField(tenantId,dbFormId,true); + } + + @JeelowCodeCache(cacheNames = "'DbFormRoleServiceImpl:listRoleField:' + #tenantId+'_'+#dbFormId+'_'+#enableFlag", reflexClass = DbFormRoleFieldVo.class,nullIsSave = true) + @Override + public List listRoleField(String tenantId, Long dbFormId,Boolean enableFlag) { + if(Func.isEmpty(tenantId) || Func.equals(tenantId,"-1")){ + return null; + } + List fieldEntityList = formService.getFieldList(dbFormId); + //获取公共 + LambdaQueryWrapper publicWrapper = new LambdaQueryWrapper<>(); + publicWrapper.eq(FormRoleFieldEntity::getTenantId, "1"); + publicWrapper.eq(FormRoleFieldEntity::getDbformId, dbFormId); + List publicEntityList = roleFieldMapper.selectList(publicWrapper); + //转为map + Map publicMap = publicEntityList.stream() + .collect(Collectors.toMap(FormRoleFieldEntity::getFieldCode, entity -> entity)); + + //获取租户私有 + LambdaQueryWrapper tenantWrapper = new LambdaQueryWrapper<>(); + tenantWrapper.eq(FormRoleFieldEntity::getTenantId, tenantId); + tenantWrapper.eq(FormRoleFieldEntity::getDbformId, dbFormId); + List tenantEntityList = roleFieldMapper.selectList(tenantWrapper); + Map tenantMap = tenantEntityList.stream() + .collect(Collectors.toMap(FormRoleFieldEntity::getFieldCode, entity -> entity)); + + //转为vo + List resultList = new ArrayList<>(); + for (FormFieldEntity fieldEntity : fieldEntityList) { + String listIsView = null; + String formIsView = null; + String formIsEdit = null; + String enableState = null; + //判断私有是否存在 + FormRoleFieldEntity entity = tenantMap.get(fieldEntity.getFieldCode()); + if (Func.isEmpty(entity)) {//私有不存在,判断公共是否存在 + entity = publicMap.get(fieldEntity.getFieldCode()); + } + if (Func.isNotEmpty(entity)) {//存在,则用自己的 + listIsView = entity.getListIsView(); + formIsView = entity.getFormIsView(); + formIsEdit = entity.getFormIsEdit(); + enableState = entity.getEnableState();//关闭 + } + //获取关闭的 + if(Func.isNotEmpty(enableFlag) && !enableFlag){ + //所有都为空的话,说明是不做任何操作 + if(Func.isEmpty(listIsView) && Func.isEmpty(formIsEdit) && Func.isEmpty(formIsView) && Func.isEmpty(enableState)){ + continue; + } + } + + DbFormRoleFieldVo vo = new DbFormRoleFieldVo(); + vo.setFieldCode(fieldEntity.getFieldCode()); + vo.setFieldName(fieldEntity.getFieldName()); + vo.setListIsView(listIsView); + vo.setFormIsView(formIsView); + vo.setFormIsEdit(formIsEdit); + vo.setEnableState(enableState); + resultList.add(vo); + } + + return resultList; + } + + + //保存按钮权限 + @Transactional(rollbackFor = Exception.class) + @Override + public void saveOrUpdateRoleButton(List voList) { + voList.stream().forEach(vo -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormRoleButtonEntity::getTenantId, vo.getTenantId()); + wrapper.eq(FormRoleButtonEntity::getDbformId, vo.getDbformId()); + wrapper.eq(FormRoleButtonEntity::getButtonCode, vo.getButtonCode()); + FormRoleButtonEntity selectEntity = roleButtonMapper.selectOne(wrapper); + + //默认是开启的,所以只对关闭操作 + FormRoleButtonEntity entity = new FormRoleButtonEntity(); + entity.setTenantId(vo.getTenantId()); + entity.setDbformId(vo.getDbformId()); + entity.setButtonCode(vo.getButtonCode()); + entity.setEnableState(vo.getEnableState()); + if (Func.isNotEmpty(selectEntity)) {//更新 + entity.setId(selectEntity.getId()); + roleButtonMapper.updateById(entity); + } else {//新增 + roleButtonMapper.insert(entity); + } + boolean publicExist = false; + if (!Func.equals(vo.getTenantId(), "1")) { + LambdaQueryWrapper publicwrapper = new LambdaQueryWrapper<>(); + publicwrapper.eq(FormRoleButtonEntity::getTenantId, vo.getTenantId()); + publicwrapper.eq(FormRoleButtonEntity::getDbformId, vo.getDbformId()); + publicwrapper.eq(FormRoleButtonEntity::getButtonCode, vo.getButtonCode()); + FormRoleButtonEntity publicselectEntity = roleButtonMapper.selectOne(publicwrapper); + if (Func.isNotEmpty(publicselectEntity)) { + publicExist = true; + } + } + + + FormRoleButtonEntity afterEntity = roleButtonMapper.selectById(entity.getId()); + //如果是全开的情况下,直接删掉 + if (!publicExist && + Func.isEmpty(afterEntity.getEnableState()) && + Func.isEmpty(afterEntity.getButtonCode())) { + roleButtonMapper.deleteById(entity.getId()); + } + }); + } + + //字段权限列表 + @Override + public List listRoleButton(String tenantId, Long dbFormId) { + return listRoleButton(tenantId,dbFormId,true); + } + + @JeelowCodeCache(cacheNames = "'DbFormRoleServiceImpl:listRoleButton:' + #tenantId+'_'+#dbFormId+'_'+#enableFlag", reflexClass = DbFormRoleButtonVo.class,nullIsSave = true) + @Override + public List listRoleButton(String tenantId, Long dbFormId,Boolean enableFlag) { + List buttonList = new ArrayList<>(); + + FormEntity formEntity = formService.getFormEntityById(dbFormId); + String basicFunctionStr = formEntity.getBasicFunction();//默认按钮 + if (Func.isNotEmpty(basicFunctionStr)) { + List defaultButtonList = Func.toStrList(basicFunctionStr); + defaultButtonList.stream().forEach(buttonCode -> { + String buttonName = Func.getButtonName(buttonCode); + FormButtonEntity buttonEntity = new FormButtonEntity(); + buttonEntity.setButtonCode(buttonCode); + buttonEntity.setButtonName(buttonName); + buttonList.add(buttonEntity); + }); + } + + + //获取自定义按钮 + LambdaQueryWrapper buttonWrapper = new LambdaQueryWrapper<>(); + buttonWrapper.eq(FormButtonEntity::getDbformId, dbFormId); + List selfButtonList = buttonService.list(buttonWrapper); + if (Func.isNotEmpty(buttonList)) { + buttonList.addAll(selfButtonList); + } + if (Func.isEmpty(buttonList)) { + return null; + } + + //获取公共 + LambdaQueryWrapper publicWrapper = new LambdaQueryWrapper<>(); + publicWrapper.eq(FormRoleButtonEntity::getTenantId, "1"); + publicWrapper.eq(FormRoleButtonEntity::getDbformId, dbFormId); + List publicEntityList = roleButtonMapper.selectList(publicWrapper); + //转为map + Map publicMap = publicEntityList.stream() + .collect(Collectors.toMap(FormRoleButtonEntity::getButtonCode, entity -> entity)); + + //获取租户私有 + LambdaQueryWrapper tenantWrapper = new LambdaQueryWrapper<>(); + tenantWrapper.eq(FormRoleButtonEntity::getTenantId, tenantId); + tenantWrapper.eq(FormRoleButtonEntity::getDbformId, dbFormId); + List tenantEntityList = roleButtonMapper.selectList(tenantWrapper); + //转为map + Map tenantMap = tenantEntityList.stream() + .collect(Collectors.toMap(FormRoleButtonEntity::getButtonCode, entity -> entity)); + + //转为vo + List resultList = new ArrayList<>(); + for (FormButtonEntity buttonEntity : buttonList) { + + String enableState = null; + //判断私有是否存在 + FormRoleButtonEntity entity = tenantMap.get(buttonEntity.getButtonCode()); + if (Func.isEmpty(entity)) {//私有不存在,判断公共是否存在 + entity = publicMap.get(buttonEntity.getButtonCode()); + } + if (Func.isNotEmpty(entity)) {//存在,则用自己的 + enableState = entity.getEnableState();//关闭 + } + if(Func.isNotEmpty(enableFlag) && !enableFlag){ + if(Func.isEmpty(enableState)){ + continue; + } + } + + DbFormRoleButtonVo vo = new DbFormRoleButtonVo(); + vo.setButtonCode(buttonEntity.getButtonCode()); + vo.setButtonName(buttonEntity.getButtonName()); + vo.setEnableState(enableState); + resultList.add(vo); + } + + return resultList; + } + + + //保存规则 + @Override + public void saveOrUpdateRoleDataRule(DbFormRoleDataRuleVo vo) { + //保存规则 + FormRoleDataRuleEntity entity = new FormRoleDataRuleEntity(); + entity.setDbformId(vo.getDbformId()); + entity.setRuleName(vo.getRuleName()); + entity.setRuleType(vo.getRuleType()); + entity.setRuleField(vo.getRuleField()); + entity.setRuleCondition(vo.getRuleCondition()); + entity.setRuleValue(vo.getRuleValue()); + entity.setRuleSql(vo.getRuleSql()); + if (Func.isNotEmpty(vo.getId())) {//更新 + entity.setId(vo.getId()); + roleDataRuleMapper.updateById(entity); + } else {//新增 + roleDataRuleMapper.insert(entity); + } + } + + //删除数据圈规则 + @Transactional(rollbackFor = Exception.class) + @Override + public void delRoleDataRule(Long ruleId) { + roleDataRuleMapper.deleteById(ruleId); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormRoleDataTenantEntity::getDbformRoleDataRuleId, ruleId); + roleDataTenantMapper.delete(wrapper); + } + + + @Transactional(rollbackFor = Exception.class) + @Override + public void saveOrUpdateRoleDataTenant(List voList) { + voList.stream().forEach(vo -> { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormRoleDataTenantEntity::getTenantId, vo.getTenantId()); + wrapper.eq(FormRoleDataTenantEntity::getDbformRoleDataRuleId, vo.getRuleId()); + FormRoleDataTenantEntity selectEntity = roleDataTenantMapper.selectOne(wrapper); + + //默认是开启的,所以只对关闭操作 + FormRoleDataTenantEntity entity = new FormRoleDataTenantEntity(); + entity.setTenantId(vo.getTenantId()); + entity.setDbformRoleDataRuleId(vo.getRuleId()); + entity.setEnableState(vo.getEnableState()); + if (Func.isNotEmpty(selectEntity)) {//更新 + entity.setId(selectEntity.getId()); + roleDataTenantMapper.updateById(entity); + } else {//新增 + roleDataTenantMapper.insert(entity); + } + boolean publicExist = false; + if (!Func.equals(vo.getTenantId(), "1")) { + LambdaQueryWrapper publicwrapper = new LambdaQueryWrapper<>(); + publicwrapper.eq(FormRoleDataTenantEntity::getTenantId, vo.getTenantId()); + publicwrapper.eq(FormRoleDataTenantEntity::getDbformRoleDataRuleId, vo.getRuleId()); + FormRoleDataTenantEntity publicselectEntity = roleDataTenantMapper.selectOne(publicwrapper); + if (Func.isNotEmpty(publicselectEntity)) { + publicExist = true; + } + } + + + FormRoleDataTenantEntity afterEntity = roleDataTenantMapper.selectById(entity.getId()); + + //如果是全开的情况下,直接删掉 + if (!publicExist && Func.isEmpty(afterEntity.getEnableState())) { + roleDataTenantMapper.deleteById(entity.getId()); + } + }); + } + + + //字段权限列表 + @JeelowCodeCache(cacheNames = "'DbFormRoleServiceImpl:listRoleData' + #tenantId+'_'+#dbFormId", reflexClass = DbFormRoleDataRuleVo.class,nullIsSave = true) + @Override + public List listRoleData(String tenantId, Long dbFormId) { + List resultList = new ArrayList<>(); + + //获取所有规则 + LambdaQueryWrapper ruleWrapper = new LambdaQueryWrapper<>(); + ruleWrapper.eq(FormRoleDataRuleEntity::getDbformId, dbFormId); + List ruleList = roleDataRuleMapper.selectList(ruleWrapper); + if (Func.isEmpty(ruleList)) { + return resultList; + } + List ruleIdList = ruleList.stream() + .map(FormRoleDataRuleEntity::getId) + .collect(Collectors.toList()); + + //获取公共 + LambdaQueryWrapper publicWrapper = new LambdaQueryWrapper<>(); + publicWrapper.eq(FormRoleDataTenantEntity::getTenantId, "1"); + publicWrapper.in(FormRoleDataTenantEntity::getDbformRoleDataRuleId, ruleIdList); + List publicEntityList = roleDataTenantMapper.selectList(publicWrapper); + + //转为map + Map publicMap = publicEntityList.stream() + .collect(Collectors.toMap(FormRoleDataTenantEntity::getDbformRoleDataRuleId, entity -> entity)); + + //获取租户私有 + LambdaQueryWrapper tenantWrapper = new LambdaQueryWrapper<>(); + tenantWrapper.eq(FormRoleDataTenantEntity::getTenantId, tenantId); + tenantWrapper.in(FormRoleDataTenantEntity::getDbformRoleDataRuleId, ruleIdList); + List tenantEntityList = roleDataTenantMapper.selectList(tenantWrapper); + //转为map + Map tenantMap = tenantEntityList.stream() + .collect(Collectors.toMap(FormRoleDataTenantEntity::getDbformRoleDataRuleId, entity -> entity)); + + //转为vo + + for (FormRoleDataRuleEntity ruleEntity : ruleList) { + + + String enableState = null; + //判断私有是否存在 + FormRoleDataTenantEntity entity = tenantMap.get(ruleEntity.getId()); + if (Func.isEmpty(entity)) {//私有不存在,判断公共是否存在 + entity = publicMap.get(ruleEntity.getId()); + } + if (Func.isNotEmpty(entity)) {//存在,则用自己的 + enableState = entity.getEnableState();//关闭 + } + + + DbFormRoleDataRuleVo vo = new DbFormRoleDataRuleVo(); + vo.setId(ruleEntity.getId()); + vo.setDbformId(ruleEntity.getDbformId()); + vo.setRuleName(ruleEntity.getRuleName()); + vo.setRuleType(ruleEntity.getRuleType()); + vo.setRuleField(ruleEntity.getRuleField()); + vo.setRuleCondition(ruleEntity.getRuleCondition()); + vo.setRuleValue(ruleEntity.getRuleValue()); + vo.setRuleSql(ruleEntity.getRuleSql()); + vo.setEnableState(enableState); + resultList.add(vo); + } + + return resultList; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DesFormServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DesFormServiceImpl.java new file mode 100644 index 0000000..1d36842 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/DesFormServiceImpl.java @@ -0,0 +1,104 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.DesformEntity; +import com.jeelowcode.core.framework.entity.HistoryDesformEntity; +import com.jeelowcode.core.framework.mapper.DesFormMapper; +import com.jeelowcode.core.framework.mapper.HistoryDesFormMapper; +import com.jeelowcode.core.framework.params.DesFormAddOrUpdateParam; +import com.jeelowcode.core.framework.service.IDesFormService; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + + +/** + * 表单设计器相关 + */ +@Service +public class DesFormServiceImpl extends ServiceImpl implements IDesFormService { + + @Autowired + private HistoryDesFormMapper historyDesFormMapper; + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + //保存 + @Transactional(rollbackFor = Exception.class) + @Override + public Long saveDesForm(DesFormAddOrUpdateParam param){ + long id = IdWorker.getId(); + + DesformEntity desformEntity=new DesformEntity(); + desformEntity.setId(id); + desformEntity.setTenantId(jeeLowCodeAdapter.getTenantId()); + desformEntity.setCreateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + desformEntity.setCreateTime(LocalDateTime.now()); + desformEntity.setDesformName(param.getDesformName()); + desformEntity.setDesformJson(param.getDesformJson()); + desformEntity.setGroupDesformId(param.getGroupDesformId()); + desformEntity.setIsOpen(param.getIsOpen()); + desformEntity.setIsTemplate(param.getIsTemplate()); + baseMapper.insert(desformEntity); + + //保存历史记录 + this.saveHistoryLog(id,param); + return id; + } + + //修改 + @Transactional(rollbackFor = Exception.class) + @Override + public void updateDesForm(DesFormAddOrUpdateParam param){ + DesformEntity desformEntity=new DesformEntity(); + desformEntity.setId(param.getId()); + desformEntity.setUpdateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + desformEntity.setUpdateTime(LocalDateTime.now()); + + desformEntity.setDesformName(param.getDesformName()); + desformEntity.setDesformJson(param.getDesformJson()); + desformEntity.setGroupDesformId(param.getGroupDesformId()); + desformEntity.setIsOpen(param.getIsOpen()); + desformEntity.setIsTemplate(param.getIsTemplate()); + baseMapper.updateById(desformEntity); + + //保存历史记录 + this.saveHistoryLog(param.getId(),param); + } + + //保存历史记录 + private void saveHistoryLog(Long id,DesFormAddOrUpdateParam param){ + HistoryDesformEntity historyEntity=new HistoryDesformEntity(); + historyEntity.setId(IdWorker.getId()); + historyEntity.setTenantId(jeeLowCodeAdapter.getTenantId()); + historyEntity.setCreateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + historyEntity.setCreateTime(LocalDateTime.now()); + historyEntity.setCreateUserName(jeeLowCodeAdapter.getOnlineUserName()); + + historyEntity.setDesformId(id); + historyEntity.setDesformName(param.getDesformName()); + historyEntity.setDesformJson(param.getDesformJson()); + historyEntity.setGroupDesformId(param.getGroupDesformId()); + historyEntity.setIsOpen(param.getIsOpen()); + historyDesFormMapper.insert(historyEntity); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJavaServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJavaServiceImpl.java new file mode 100644 index 0000000..ce0856e --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJavaServiceImpl.java @@ -0,0 +1,148 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA; +import com.jeelowcode.core.framework.entity.EnhanceJavaEntity; +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import com.jeelowcode.core.framework.mapper.EnhanceJavaMapper; +import com.jeelowcode.core.framework.mapper.HistoryDbFormMapper; +import com.jeelowcode.core.framework.service.IEnhanceJavaService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.constant.EnhanceConstant; +import com.jeelowcode.framework.utils.enums.TableType2Enum; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + + +/** + * @author JX + * @create 2024-03-06 9:55 + * @dedescription: + */ + +@Service +public class EnhanceJavaServiceImpl extends ServiceImpl implements IEnhanceJavaService { + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + @Autowired + private HistoryDbFormMapper historyDbFormMapper; + + //新增java增强 + @Override + public void saveEnhanceJava(EnhanceJavaEntity enhanceJavaEntity){ + long id = IdWorker.getId(); + enhanceJavaEntity.setId(id); + this.save(enhanceJavaEntity); + + //加入到pluginmanager中 + JeeLowCodeAnnotationAspectjJAVA.addPlugin(enhanceJavaEntity); + //加历史记录 + this.saveHistoryLog(id,enhanceJavaEntity); + } + + //编辑java增强 + @Override + public void updateEnhanceJava(EnhanceJavaEntity enhanceJavaEntity){ + this.updateById(enhanceJavaEntity); + //加历史记录 + + if (Func.equals(enhanceJavaEntity.getActiveStatus(), YNEnum.Y.getCode())){ + JeeLowCodeAnnotationAspectjJAVA.updatePlugins(enhanceJavaEntity); + }else{ + JeeLowCodeAnnotationAspectjJAVA.deletePlugins(enhanceJavaEntity); + } + + this.saveHistoryLog(enhanceJavaEntity.getId(),enhanceJavaEntity); + } + + + + @Override + public void copy(Long sourceFormIdId,Long targetFormIdId,String oldTableName,String newTableName){ + LambdaQueryWrapper javaWrapper=new LambdaQueryWrapper<>(); + javaWrapper.eq(EnhanceJavaEntity::getDbformId,sourceFormIdId); + javaWrapper.orderByAsc(EnhanceJavaEntity::getId); + List javaEntityList = this.list(javaWrapper); + //清空默认值并修改dbformId值 + javaEntityList = javaEntityList.stream().filter(javaEntity -> { + javaEntity.setDbformId(targetFormIdId); + javaEntity.setId(null); + javaEntity.setTenantId(null); + javaEntity.setCreateDept(null); + javaEntity.setCreateTime(null); + javaEntity.setCreateUser(null); + javaEntity.setUpdateTime(null); + javaEntity.setUpdateUser(null); + javaEntity.setIsDeleted(null); + if (FuncBase.equals(javaEntity.getJavaType(), EnhanceConstant.ENHANCE_TYPE_SPRING)) {// spring方式 + String newEnhanceName = Func.copySpringEnhance(TableType2Enum.DBFORM.getType(), javaEntity.getJavaClassUrl(), newTableName); + if (FuncBase.isEmpty(newEnhanceName)) { + return false; + } + javaEntity.setJavaClassUrl(newEnhanceName); + } else if (FuncBase.equals(javaEntity.getJavaType(), EnhanceConstant.ENHANCE_TYPE_CLASS)) {// class方式 + String newEnhanceName = Func.copyClassEnhance(TableType2Enum.DBFORM.getType(), javaEntity.getJavaClassUrl(), newTableName); + if (FuncBase.isEmpty(newEnhanceName)) { + return false; + } + javaEntity.setJavaClassUrl(newEnhanceName); + } + return true; + }).collect(Collectors.toList()); + this.saveBatch(javaEntityList); + } + + + //保存历史记录 + private void saveHistoryLog(Long javaId, EnhanceJavaEntity javaEntity){ + + HistoryDbformEntity entity=new HistoryDbformEntity(); + entity.setId(IdWorker.getId()); + entity.setTenantId(jeeLowCodeAdapter.getTenantId()); + entity.setCreateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + entity.setCreateTime(LocalDateTime.now()); + entity.setCreateUserName(jeeLowCodeAdapter.getOnlineUserName()); + + entity.setDbformId(javaEntity.getDbformId()); + entity.setServiceType("java"); + entity.setServiceId(javaId); + entity.setServiceJson(Func.json2Str(javaEntity)); + + historyDbFormMapper.insert(entity); + } + + @Override + public List getAllJavaEnhance(){ + LambdaQueryWrapper javaWrapper=new LambdaQueryWrapper<>(); + javaWrapper.eq(EnhanceJavaEntity::getActiveStatus,YNEnum.Y.getCode()); + javaWrapper.isNotNull(EnhanceJavaEntity::getJavaClassUrl); + List enhanceJavaEntities = baseMapper.selectList(javaWrapper); + return enhanceJavaEntities; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJsServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJsServiceImpl.java new file mode 100644 index 0000000..7abe4fb --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceJsServiceImpl.java @@ -0,0 +1,140 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.EnhanceJsEntity; +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import com.jeelowcode.core.framework.mapper.EnhanceJsMapper; +import com.jeelowcode.core.framework.mapper.HistoryDbFormMapper; +import com.jeelowcode.core.framework.service.IEnhanceJsService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + + +/** + * @author JX + * @create 2024-03-06 9:55 + * @dedescription: + */ + +@Service +public class EnhanceJsServiceImpl extends ServiceImpl implements IEnhanceJsService { + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + @Autowired + private HistoryDbFormMapper historyDbFormMapper; + + @JeelowCodeCache(cacheNames = "'EnhanceJsServiceImpl:getJsList:' + #dbFormId", reflexClass = EnhanceJsEntity.class,nullIsSave = true) + public List getJsList(Long dbFormId){ + LambdaQueryWrapper jsWrapper = new LambdaQueryWrapper<>(); + jsWrapper.eq(EnhanceJsEntity::getDbformId, dbFormId); + List jsList = this.list(jsWrapper); + return jsList; + } + + /** + * JS增强-详情 + * + * @param dbformId + * @param type + * @return + */ + @Override + public EnhanceJsEntity getDbFormEnhanceJsDetail(Long dbformId, String type) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EnhanceJsEntity::getDbformId, dbformId); + wrapper.eq(EnhanceJsEntity::getJsType, type); + wrapper.orderByDesc(EnhanceJsEntity::getId); + List enhanceJsList = baseMapper.selectList(wrapper); + if(Func.isEmpty(enhanceJsList)){ + return null; + } + return enhanceJsList.get(0); + } + + //新增js增强 + @Transactional(rollbackFor = Exception.class) + @Override + public void saveEnhanceJs(EnhanceJsEntity enhanceJsEntity){ + long id = IdWorker.getId(); + enhanceJsEntity.setId(id); + this.save(enhanceJsEntity); + + //加历史记录 + this.saveHistoryLog(id,enhanceJsEntity); + } + + + //编辑js增强 + @Transactional(rollbackFor = Exception.class) + @Override + public void updateEnhanceJs(EnhanceJsEntity enhanceJsEntity){ + this.updateById(enhanceJsEntity); + //加历史记录 + this.saveHistoryLog(enhanceJsEntity.getId(),enhanceJsEntity); + } + + + @Override + public void copy(Long sourceFormIdId,Long targetFormIdId){ + LambdaQueryWrapper jsWrapper=new LambdaQueryWrapper<>(); + jsWrapper.eq(EnhanceJsEntity::getDbformId,sourceFormIdId); + jsWrapper.orderByAsc(EnhanceJsEntity::getId); + List jsEntityList = this.list(jsWrapper); + //清空默认值并修改dbformId值 + jsEntityList.stream().forEach(jsEntity->{ + jsEntity.setDbformId(targetFormIdId); + jsEntity.setId(null); + jsEntity.setTenantId(null); + jsEntity.setCreateDept(null); + jsEntity.setCreateTime(null); + jsEntity.setCreateUser(null); + jsEntity.setUpdateTime(null); + jsEntity.setUpdateUser(null); + jsEntity.setIsDeleted(null); + }); + this.saveBatch(jsEntityList); + } + + //保存历史记录 + private void saveHistoryLog(Long jsId, EnhanceJsEntity enhanceJsEntity){ + + HistoryDbformEntity entity=new HistoryDbformEntity(); + entity.setId(IdWorker.getId()); + entity.setTenantId(jeeLowCodeAdapter.getTenantId()); + entity.setCreateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + entity.setCreateTime(LocalDateTime.now()); + entity.setCreateUserName(jeeLowCodeAdapter.getOnlineUserName()); + + entity.setDbformId(enhanceJsEntity.getDbformId()); + entity.setServiceType("js"); + entity.setServiceId(jsId); + entity.setServiceJson(Func.json2Str(enhanceJsEntity)); + + historyDbFormMapper.insert(entity); + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceSqlServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceSqlServiceImpl.java new file mode 100644 index 0000000..d66c2e8 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/EnhanceSqlServiceImpl.java @@ -0,0 +1,130 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnoaionAspectjSQL; +import com.jeelowcode.core.framework.entity.EnhanceSqlEntity; +import com.jeelowcode.core.framework.entity.HistoryDbformEntity; +import com.jeelowcode.core.framework.mapper.EnhanceSqlMapper; +import com.jeelowcode.core.framework.mapper.HistoryDbFormMapper; +import com.jeelowcode.core.framework.service.IEnhanceSqlService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +/** + * @author JX + * @create 2024-03-06 9:55 + * @dedescription: + */ + +@Service +public class EnhanceSqlServiceImpl extends ServiceImpl implements IEnhanceSqlService { + + @Autowired + private HistoryDbFormMapper historyDbFormMapper; + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + //新增sql增强 + @Transactional(rollbackFor = Exception.class) + @Override + public void saveEnhanceSql(EnhanceSqlEntity enhanceSqlEntity){ + long id = IdWorker.getId(); + enhanceSqlEntity.setId(id); + this.save(enhanceSqlEntity); + //加入插件管理 + JeeLowCodeAnnoaionAspectjSQL.addPlugin(enhanceSqlEntity); + //加历史记录 + this.saveHistoryLog(id,enhanceSqlEntity); + } + + //编辑sql增强 + @Transactional(rollbackFor = Exception.class) + @Override + public void updateEnhanceSql(EnhanceSqlEntity enhanceSqlEntity){ + this.updateById(enhanceSqlEntity); + if (Func.equals(enhanceSqlEntity.getActiveStatus(), YNEnum.Y.getCode())){ + JeeLowCodeAnnoaionAspectjSQL.updatePlugin(enhanceSqlEntity); + } else { + JeeLowCodeAnnoaionAspectjSQL.removePlugin(enhanceSqlEntity); + } + //加历史记录 + this.saveHistoryLog(enhanceSqlEntity.getId(),enhanceSqlEntity); + } + + @Override + public void copy(Long sourceFormIdId,Long targetFormIdId){ + LambdaQueryWrapper sqlWrapper=new LambdaQueryWrapper<>(); + sqlWrapper.eq(EnhanceSqlEntity::getDbformId,sourceFormIdId); + sqlWrapper.orderByAsc(EnhanceSqlEntity::getId); + List sqlEntityList = this.list(sqlWrapper); + //清空默认值并修改dbformId值 + sqlEntityList.stream().forEach(sqlEntity->{ + sqlEntity.setDbformId(targetFormIdId); + sqlEntity.setId(null); + sqlEntity.setTenantId(null); + sqlEntity.setCreateDept(null); + sqlEntity.setCreateTime(null); + sqlEntity.setCreateUser(null); + sqlEntity.setUpdateTime(null); + sqlEntity.setUpdateUser(null); + sqlEntity.setIsDeleted(null); + }); + this.saveBatch(sqlEntityList); + } + + + //保存历史记录 + private void saveHistoryLog(Long jsId, EnhanceSqlEntity enhanceSqlEntity){ + + HistoryDbformEntity entity=new HistoryDbformEntity(); + entity.setId(IdWorker.getId()); + entity.setTenantId(jeeLowCodeAdapter.getTenantId()); + entity.setCreateUser(FuncBase.toLong(jeeLowCodeAdapter.getOnlineUserId())); + entity.setCreateTime(LocalDateTime.now()); + entity.setCreateUserName(jeeLowCodeAdapter.getOnlineUserName()); + + entity.setDbformId(enhanceSqlEntity.getDbformId()); + entity.setServiceType("sql"); + entity.setServiceId(jsId); + entity.setServiceJson(Func.json2Str(enhanceSqlEntity)); + + historyDbFormMapper.insert(entity); + } + + @Override + public List getAllSqlEnhance() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EnhanceSqlEntity::getActiveStatus, YNEnum.Y.getCode()); + wrapper.isNotNull(EnhanceSqlEntity::getExecuteSql); + List enhanceSqlEntities = baseMapper.selectList(wrapper); + return enhanceSqlEntities; + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileDataServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileDataServiceImpl.java new file mode 100644 index 0000000..8140960 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileDataServiceImpl.java @@ -0,0 +1,59 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.entity.ExcelFileEntity; +import com.jeelowcode.core.framework.mapper.ExcelFileDataMapper; +import com.jeelowcode.core.framework.service.IExcelFileDataService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jeelowcode.core.framework.service.IExcelFileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + + +/** + * ExcelData相关 + */ +@Service +public class ExcelFileDataServiceImpl extends ServiceImpl implements IExcelFileDataService { + + @Autowired + private IExcelFileService fileService; + + //删除 + @Transactional(rollbackFor = Exception.class) + @Override + public void delById(Long fileDataId){ + ExcelFileDataEntity fileDataEntity = baseMapper.selectById(fileDataId); + ExcelFileEntity excelFileEntity = fileService.getById(fileDataEntity.getExcelFileId()); + + //总数-1 + Integer totalNum = excelFileEntity.getTotalNum(); + ExcelFileEntity updateTotal=new ExcelFileEntity(); + updateTotal.setTotalNum(--totalNum); + updateTotal.setId(excelFileEntity.getId()); + fileService.updateById(updateTotal); + + + //删除本条记录 + baseMapper.deleteById(fileDataId); + + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileServiceImpl.java new file mode 100644 index 0000000..1ebd6cd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelFileServiceImpl.java @@ -0,0 +1,159 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import cn.hutool.extra.spring.SpringUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamImport; +import com.jeelowcode.core.framework.entity.ExcelFileDataEntity; +import com.jeelowcode.core.framework.entity.ExcelFileEntity; +import com.jeelowcode.core.framework.mapper.ExcelFileMapper; +import com.jeelowcode.core.framework.params.model.ExcelImportResultModel; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoDeleteWrapper; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * Excel文件相关 + */ +@Service +public class ExcelFileServiceImpl extends ServiceImpl implements IExcelFileService { + + @Autowired + private IExcelFileDataService excelFileDataService; + + @Autowired + private IFormService formService; + + @Autowired + private IFrameSqlService sqlService; + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + //保存Excel数据 + @Async("asyncPoolTaskExecutor") + @Override + public void saveExcelSync( long fileId,ButtonParamImport param) { + ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + IExcelFileService proxyService = SpringUtil.getBean(IExcelFileService.class); + proxyService.saveExcel(sra,fileId, param); + } + + @Transactional(rollbackFor = Exception.class) + public ExcelImportResultModel saveExcel(ServletRequestAttributes sra,long fileId, ButtonParamImport param) { + RequestContextHolder.setRequestAttributes(sra, true); + + String tenantId = jeeLowCodeAdapter.getTenantId(); + String onlineUserId = jeeLowCodeAdapter.getOnlineUserId(); + String onlineUserDeptId = jeeLowCodeAdapter.getOnlineUserDeptId(); + LocalDateTime now = LocalDateTime.now(); + + Long dbFormId = param.getDbFormId(); + List> dataMapList = param.getDataMapList(); + String fileName = param.getFileName(); + + + //1.存入标题 + ExcelFileEntity fileEntity = new ExcelFileEntity(); + fileEntity.setId(fileId); + fileEntity.setDbformId(dbFormId); + fileEntity.setFileName(fileName); + fileEntity.setImportState("0");//未导入 + fileEntity.setTotalNum(dataMapList.size());//总条数 + this.save(fileEntity); + List entityList = dataMapList.stream() + .map(dataMap -> { + Integer stepSort = Func.getMap2Int(dataMap, JeeLowCodeConstant.EXCEL_IMPORT_STEP); + Long id = Func.getMap2Long(dataMap, JeeLowCodeConstant.EXCEL_IMPORT_ID); + + //移除 + dataMap.remove(JeeLowCodeConstant.EXCEL_IMPORT_STEP); + dataMap.remove(JeeLowCodeConstant.EXCEL_IMPORT_ID); + + ExcelFileDataEntity entity = new ExcelFileDataEntity(); + dataMap.put("id", id);//设置id + + entity.setId(id); + entity.setExcelFileId(fileId); + entity.setSort(stepSort); + entity.setDataJson(Func.json2Str(dataMap)); + entity.setHandleState(YNEnum.N.getCode()); // 未处理 + entity.setDataId(id);//数据id + //赋予默认值 + entity.setTenantId(tenantId); + entity.setCreateUser(Func.toLong(onlineUserId)); + entity.setCreateDept(Func.toLong(onlineUserDeptId)); + entity.setCreateTime(now); + return entity; + }) + .collect(Collectors.toList()); + + excelFileDataService.saveBatch(entityList); + + ExcelImportResultModel resultModel = new ExcelImportResultModel(); + resultModel.setBatchCode(Func.toStr(fileId)); + resultModel.setDbFormId(dbFormId); + resultModel.setTotalCou(dataMapList.size()); + resultModel.setFileId(fileId); + return resultModel; + } + + + //撤回 + @Transactional(rollbackFor = Exception.class) + @Override + public void rollback(Long fileId) { + ExcelFileEntity excelFileEntity = this.getById(fileId); + Long dbformId = excelFileEntity.getDbformId(); + String tableName = formService.getTableName(dbformId); + + ExcelFileEntity updateFileEntity = new ExcelFileEntity(); + updateFileEntity.setImportState("-1");//已撤销 + updateFileEntity.setId(excelFileEntity.getId()); + this.updateById(updateFileEntity); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileDataEntity::getExcelFileId, fileId); + List fileDataList = excelFileDataService.list(wrapper); + if (Func.isEmpty(fileDataList)) { + return; + } + //删除对应的业务表 + fileDataList.stream().forEach(excelFileDataEntity -> { + Long dataId = excelFileDataEntity.getDataId(); + sqlService.baseDelRealData(tableName, dataId); + }); + + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java new file mode 100644 index 0000000..4d8aab9 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ExcelServiceImpl.java @@ -0,0 +1,287 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper; +import com.jeelowcode.core.framework.mapper.ReportFieldMapper; +import com.jeelowcode.core.framework.params.SaveImportDataParam; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.jeelowcode.core.framework.params.model.ExcelImportDataDictModel; +import com.jeelowcode.core.framework.params.model.ExcelModel; +import com.jeelowcode.core.framework.params.model.ExcelTemplateModel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.map.LinkedMap; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +/** + * + */ +@Slf4j +@Service +public class ExcelServiceImpl implements IExcelService { + + @Autowired + private IFormService formService; + + @Autowired + private JeeLowCodeMapper jeeLowCodeMapper; + + @Autowired + private IFrameService frameService; + + @Autowired + private IExcelFileDataService excelDataService; + + @Autowired + private JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + @Autowired + private IExcelFileService excelFileService; + + @Autowired + private IReportService reportService; + + @Autowired + private ReportFieldMapper reportFieldMapper; + + /** + * 导出Excel模版 + * + * @param dbformId + */ + @Override + public ExcelTemplateModel getExportExcelTemplate(Long dbformId) { + FormEntity formEntity = formService.getById(dbformId); + String sheetName = formEntity.getTableDescribe();//表描述 + + List> excelFieldList = jeeLowCodeMapper.getExcelFieldList(dbformId); + + //Excel头部 + LinkedMap headMap = new LinkedMap<>(); + + //Excel内容 + List> dataList = new ArrayList<>(); + + Map excelDataMap = new HashMap<>(); + + for (Map dataMap : excelFieldList) { + String field_code = JeeLowCodeUtils.getMap2Str(dataMap, "field_code"); + String field_name = JeeLowCodeUtils.getMap2Str(dataMap, "field_name"); + String import_example_txt = JeeLowCodeUtils.getMap2Str(dataMap, "import_example_txt"); + + //封装头部 + ExcelTitleModel titleModel = new ExcelTitleModel(); + titleModel.setTitle(field_name); + //处理字典表 + Map dictMap = formService.getDictKeyLabelMap(dbformId, field_code); + List dictLabelList = dictMap.values().stream() + .collect(Collectors.toList()); + titleModel.setDropdownOptionList(dictLabelList); + + //封装头部 + headMap.put(field_code, titleModel); + + //封装数据内容 + excelDataMap.put(field_code, import_example_txt); + } + dataList.add(excelDataMap); + + ExcelTemplateModel resultModel = new ExcelTemplateModel(); + resultModel.setSheetName(sheetName); + resultModel.setHeadTitleMap(headMap); + resultModel.setDataList(dataList); + return resultModel; + + } + + /** + * 获取导出基本信息 + * + * @param dbformId + */ + @Override + public ExcelModel getExcelModel(Long dbformId) { + FormEntity formEntity = formService.getById(dbformId); + String sheetName = formEntity.getTableDescribe();//表描述 + + List> excelFieldList = jeeLowCodeMapper.getExcelFieldList(dbformId); + + //Excel头部 + LinkedMap headMap = new LinkedMap<>(); + + for (Map dataMap : excelFieldList) { + String field_code = JeeLowCodeUtils.getMap2Str(dataMap, "field_code"); + String field_name = JeeLowCodeUtils.getMap2Str(dataMap, "field_name"); + //封装头部 + ExcelTitleModel titleModel = new ExcelTitleModel(); + titleModel.setTitle(field_name); + //处理字典表 + Map dictMap = formService.getDictKeyLabelMap(dbformId, field_code); + if (Func.isNotEmpty(dictMap) && dictMap.size() <= 20) { + List dictLabelList = dictMap.values().stream() + .collect(Collectors.toList()); + titleModel.setDropdownOptionList(dictLabelList); + } + headMap.put(field_code, titleModel); + } + + ExcelModel resultModel = new ExcelModel(); + resultModel.setSheetName(sheetName); + resultModel.setHeadTitleMap(headMap); + return resultModel; + } + + /** + * 获取导出基本信息 + * + */ + @Override + public ExcelModel getExcelReportModel(String reportCode) { + ReportEntity reportEntity = reportService.getReportEntityByCode(reportCode); + + String sheetName = reportEntity.getReportName();//表描述 + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(ReportFieldEntity::getReportId,reportEntity.getId()); + wrapper.eq(ReportFieldEntity::getIsExport, YNEnum.Y.getCode()); + List fieldEntityList = reportFieldMapper.selectList(wrapper); + + //Excel头部 + LinkedMap headMap = new LinkedMap<>(); + + for (ReportFieldEntity fieldEntity : fieldEntityList) { + String fieldCode = fieldEntity.getFieldCode(); + String fieldName = fieldEntity.getFieldName(); + + //封装头部 + ExcelTitleModel titleModel = new ExcelTitleModel(); + titleModel.setTitle(fieldName); + headMap.put(fieldCode, titleModel); + } + + ExcelModel resultModel = new ExcelModel(); + resultModel.setSheetName(sheetName); + resultModel.setHeadTitleMap(headMap); + return resultModel; + } + + + /** + * 处理临时库的数据 + * + * @param fieldId + */ + @Async("asyncPoolTaskExecutor") + public void handleTempTable(ServletRequestAttributes sra, Long dbFormId, Long fieldId) { + RequestContextHolder.setRequestAttributes(sra, true); + //获取未处理的记录 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExcelFileDataEntity::getExcelFileId, fieldId); + wrapper.eq(ExcelFileDataEntity::getHandleState, YNEnum.N.getCode());//未处理 + wrapper.orderByAsc(ExcelFileDataEntity::getSort); + List entityList = excelDataService.list(wrapper); + if (Func.isEmpty(entityList)) { + return; + } + //获取字典 + ExcelImportDataDictModel dictModel = this.formatExcelImportDataList(dbFormId); + //处理导入 + SaveImportDataParam param=new SaveImportDataParam(); + param.setFieldId(fieldId); + param.setEntityList(entityList); + param.setDictModel(dictModel); + frameService.saveImportData(dbFormId,param); + } + + + //获取字典 + private ExcelImportDataDictModel formatExcelImportDataList(Long dbformId) { + + List fieldList = formService.getDbFieldList(dbformId); + //字典集合 + Map> dictMaps = new HashMap<>(); + List keyList = new ArrayList<>(); + for (FormFieldEntity formFieldEntity : fieldList) { + String fieldCode = formFieldEntity.getFieldCode(); + Map dictMap = formService.getDictKeyLabelMap(dbformId, fieldCode);//字典列表 男:1 + if (FuncBase.isEmpty(dictMap)) { + continue; + } + //进行反转 key=男 value =1 + Map labelKeyMap = new HashMap<>(); + for (Map.Entry entry : dictMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + labelKeyMap.put(value, key); + } + dictMaps.put(fieldCode, labelKeyMap); + keyList.add(fieldCode); + } + ExcelImportDataDictModel dictModel = new ExcelImportDataDictModel(); + dictModel.setDictMaps(dictMaps); + dictModel.setKeyList(keyList); + return dictModel; + + } + + //处理字典 + private void handleDict(ExcelImportDataDictModel dictModel, Map dataMap) { + if (Func.isEmpty(dictModel)) { + return; + } + Map> dictMaps = dictModel.getDictMaps(); + List keyList = dictModel.getKeyList(); + if (Func.isEmpty(keyList)) { + return; + } + + for (String key : keyList) { + String val = JeeLowCodeUtils.getMap2Str(dataMap, key);//值 男 + if (FuncBase.isEmpty(val)) { + continue; + } + Map valMap = dictMaps.get(key);// 男-》1 + String valStr = valMap.get(val); + if (FuncBase.isEmpty(valStr)) { + continue; + } + dataMap.put(key, valStr); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormButtonServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormButtonServiceImpl.java new file mode 100644 index 0000000..ce790bd --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormButtonServiceImpl.java @@ -0,0 +1,67 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.FormButtonEntity; +import com.jeelowcode.core.framework.mapper.FormButtonMapper; +import com.jeelowcode.core.framework.service.IFormButtonService; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * button增强相关 + */ + +@Service +public class FormButtonServiceImpl extends ServiceImpl implements IFormButtonService { + + //获取按钮增强列表 + @JeelowCodeCache(cacheNames = "'FormButtonServiceImpl:getButtonList:' + #dbFormId", reflexClass = FormButtonEntity.class,nullIsSave = true) + public List getButtonList(Long dbFormId){ + LambdaQueryWrapper buttonWrapper = new LambdaQueryWrapper<>(); + buttonWrapper.eq(FormButtonEntity::getDbformId, dbFormId); + List buttonList = this.list(buttonWrapper); + return buttonList; + } + + + //复制 + @Override + public void copy(Long sourceFormIdId,Long targetFormIdId){ + + LambdaQueryWrapper buttonWrapper=new LambdaQueryWrapper<>(); + buttonWrapper.eq(FormButtonEntity::getDbformId,sourceFormIdId); + buttonWrapper.orderByAsc(FormButtonEntity::getId); + List buttonEntityList = this.list(buttonWrapper); + //清空默认值并修改dbformId值 + buttonEntityList.stream().forEach(buttonEntity->{ + buttonEntity.setDbformId(targetFormIdId); + buttonEntity.setId(null); + buttonEntity.setTenantId(null); + buttonEntity.setCreateDept(null); + buttonEntity.setCreateTime(null); + buttonEntity.setCreateUser(null); + buttonEntity.setUpdateTime(null); + buttonEntity.setUpdateUser(null); + buttonEntity.setIsDeleted(null); + }); + this.saveBatch(buttonEntityList); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormServiceImpl.java new file mode 100644 index 0000000..07d386d --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FormServiceImpl.java @@ -0,0 +1,1965 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnoaionAspectjSQL; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BaseAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.PluginManager; +import com.jeelowcode.core.framework.config.btncommand.definable.DefinablePluginManager; +import com.jeelowcode.framework.plus.component.DbManager; +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.*; +import com.jeelowcode.core.framework.params.DbFormAddOrUpdateParam; +import com.jeelowcode.core.framework.params.PageDbFormParam; +import com.jeelowcode.core.framework.params.TreeParentParam; +import com.jeelowcode.core.framework.params.model.*; +import com.jeelowcode.core.framework.params.vo.*; +import com.jeelowcode.core.framework.params.vo.webconfig.*; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.constant.EnhanceConstant; +import com.jeelowcode.framework.utils.constant.JeeRedisConstants; +import com.jeelowcode.framework.utils.enums.*; +import com.jeelowcode.framework.utils.model.JeeLowCodeDict; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.params.JeeLowCodeDictParam; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import groovy.lang.GroovyClassLoader; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + + +/** + * 表单开发-业务相关 + * 该接口下所有业务不用租户过滤 + */ +@Service +public class FormServiceImpl extends ServiceImpl implements IFormService { + + @Autowired + private IFrameService frameService; + + @Autowired + private IFrameSqlService frameSqlService; + + @Autowired + private FormFieldMapper fieldMapper; + + @Autowired + private FormIndexMapper indexMapper; + + @Autowired + private FormFieldDictMapper fieldDictMapper; + + @Autowired + private FormFieldExportMapper fieldExportMapper; + + @Autowired + private FormFieldForeignkeyMapper fieldForeignkeyMapper; + + @Autowired + private FormFieldWebMapper fieldWebMapper; + + @Autowired + private FormFieldQueryMapper fieldQueryMapper; + + @Autowired + private FormSummaryMapper summaryMapper; + + @Autowired + private IFormButtonService formButtonService; + + @Autowired + private IEnhanceJsService jsService; + + @Autowired + private IFormButtonService buttonService; + + @Autowired + private IEnhanceJavaService javaService; + + @Autowired + private IEnhanceSqlService sqlService; + + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + @Autowired + private JeeLowCodeRedisUtils redisUtil; + + @Autowired + private JeeLowCodeMapper jeeLowCodeMapper; + + @Autowired + private IJeeLowCodeConfigService jeeLowCodeConfigService; + + @Autowired + private DbManager dbManager; + + @Autowired + private AdapterMapper adapterMapper; + + @Autowired + private IBatchService batchService; + + @Autowired + private EnhanceJavaMapper enhanceJavaMapper; + + @Autowired + private EnhanceJsMapper enhanceJsMapper; + + @Autowired + private EnhanceSqlMapper enhanceSqlMapper; + + //判断是否是业务表 + @Override + public boolean isServiceTable(Long dbFormId) { + FormEntity entity = baseMapper.getById(dbFormId); + Integer tableClassify = entity.getTableClassify(); + return FuncBase.equals(tableClassify, TableClassifyEnum.SERVICE.getType()); + } + + //获取主题模板 + @Override + public String getTableThemeTemplate(Long dbFormId) { + FormEntity entity = baseMapper.getById(dbFormId); + return entity.getThemeTemplate(); + } + + //获取表类型 + @Override + public Integer getTableType(Long dbFormId) { + FormEntity entity = baseMapper.getById(dbFormId); + Integer tableType = entity.getTableType(); + return tableType; + } + + //获取认证类型 + + @Override + public AuthTypeEnum getAuthType(Long dbFormId) { + FormEntity formEntity = baseMapper.getById(dbFormId); + String dataConfig = formEntity.getDataConfig(); + if (FuncBase.isEmpty(dataConfig)) { + return null; + } + List dataConfigList = FuncBase.toStrList(dataConfig); + for (String type : dataConfigList) { + AuthTypeEnum authTypeEnum = AuthTypeEnum.getByType(type); + if (Func.isNotEmpty(authTypeEnum)) { + return authTypeEnum; + } + } + return null; + + } + + + //获取表名称 + @Override + public String getTableName(Long dbFormId) { + FormEntity entity = baseMapper.getById(dbFormId); + if (FuncBase.isEmpty(entity)) { + throw new JeeLowCodeException("表不存在"); + } + return entity.getTableName(); + } + + //校验字段是否存在 + @Override + public boolean fieldCodeIsExist(Long dbFormId, String fieldCode) { + List dataList = fieldMapper.getByDbFormIdAndFieldCode(dbFormId, fieldCode); + return Func.isNotEmpty(dataList); + } + + //获取所有附表列表 + @Override + public List getAllSubTableNameList(Long dbFormId) { + return baseMapper.getAllSubTableNameList(dbFormId); + } + + //根据表名获取id + @Override + public Long getDbFormIdByTableName(String tableName) { + return baseMapper.getFormIdByTableName(tableName); + } + + @Override + public List getDbFormIdByTableName(List subTableNameList) { + return baseMapper.getDbFormIdByTableName(subTableNameList); + } + + + //是否是主表 + @Override + public FormEntity getFormEntityById(Long dbFormId) { + FormEntity entity = baseMapper.getById(dbFormId); + if (FuncBase.isEmpty(entity)) { + throw new JeeLowCodeException("表不存在"); + } + return entity; + } + + @Override + public FormEntity getFormEntityByName(String tableName) { + return baseMapper.getByTableName(tableName); + } + + + @Override + public Map getFormCou(Long dbFormId) { + return jeeLowCodeMapper.getFormCou(dbFormId); + } + + + //获取所有字段列表 + @Override + public List getFieldList(Long dbFormId) { + return fieldMapper.getByDbFormId(dbFormId); + } + + //获取数据库字段列表 + @Override + public List getDbFieldList(Long dbFormId) { + return fieldMapper.getDbFieldList(dbFormId); + } + + //获取数据库字段 + @JeelowCodeCache(cacheNames = "'FormServiceImpl:getDbFieldCodeList:' + #dbFormId", reflexClass = DbFieldCodeListModel.class) + @Override + public DbFieldCodeListModel getDbFieldCodeList(Long dbFormId) { + //获取数据库字段 + List selectList = fieldMapper.getDbFieldCodeStrList(dbFormId); + + List asList = BeanUtil.copyToList(selectList, String.class); + + //获取虚拟化字段 + List webEntityList = fieldWebMapper.getFormatConfig(dbFormId); + //处理虚拟化字段 + Func.handleFieldFormatConfig(selectList, asList, webEntityList); + + DbFieldCodeListModel resulModel = new DbFieldCodeListModel(); + resulModel.setSelectList(selectList); + resulModel.setAsList(asList); + return resulModel; + } + + @Override + public List getFieldDictList(Long dbFormId) { + return fieldDictMapper.getByDbFormId(dbFormId); + } + + @Override + public List getFieldQueryList(Long dbFormId) { + return fieldQueryMapper.getByFormId(dbFormId); + } + + @Override + public List getFieldWebList(Long dbFormId) { + return fieldWebMapper.getByFormId(dbFormId); + } + + //获取索引列表 + @Override + public List getIndexList(Long dbFormId) { + return indexMapper.getByDbFormId(dbFormId); + } + + + //保存表单开发信息 + @Override + @Transactional(rollbackFor = Exception.class) + public Long saveDbFormConfig(DbFormAddOrUpdateParam param) { + long formId = IdWorker.getId(); + this.saveOrupdateDbFormConfig(param, formId); + return formId; + } + + //修改表单开发配置 + @Override + @Transactional(rollbackFor = Exception.class) + public void updateDbFormConfig(DbFormAddOrUpdateParam param) { + this.saveOrupdateDbFormConfig(param, param.getDbForm().getId()); + } + + + private void saveOrupdateDbFormConfig(DbFormAddOrUpdateParam param, Long formId) { + //1.保存主表 + this.saveOrUpdateDbForm(formId, param.getDbForm()); + + DbFormDeletedVo delIdVo = param.getDelIdVo(); + if (Func.isEmpty(delIdVo)) { + delIdVo = new DbFormDeletedVo(); + } + + //2.保存字段属性 + this.saveOrUpdateDbFormField(formId, param.getFieldList(), delIdVo.getFieldList()); + + //3.保存字典属性 + this.saveOrUpdateDbFormDict(formId, param.getDictList(), delIdVo.getDictList()); + + //4。保存导出属性 + this.saveOrUpdateDbFormExport(formId, param.getExportList(), delIdVo.getExportList()); + + //5.保存外键配置 + this.saveOrUpdateDbFormForeignkey(formId, param.getForeignkeyList(), delIdVo.getForeignkeyList()); + + //6.保存页面属性配置 + this.saveOrUpdateDbFormWeb(formId, param.getWebList(), delIdVo.getWebList()); + + //7.保存查询配置 + this.saveOrUpdateDbFormQuery(formId, param.getQueryList(), delIdVo.getQueryList()); + + //8.绑定主附表关系 + this.bindMainTable(param.getDbForm(), param.getForeignkeyList()); + + //9.保存索引 + this.saveOrUpdateDbFormIndex(formId, param.getIndexList(), delIdVo.getIndexList()); + + //10.保存统计 + this.saveOrUpdateDbFormSummary(formId, param.getSummaryList(), delIdVo.getSummaryList()); + + //清空缓存 + String redisKeyPreFix = JeeRedisConstants.JEELOWCODE_DBFORM; + Set keys = redisUtil.keys(redisKeyPreFix); + if (Func.isNotEmpty(keys)) { + redisUtil.delList(keys); + } + } + + //删除 - 表单开发 + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDbFormConfig(List dbFormIdList, boolean dropTableFlag) { + dbFormIdList.stream().forEach(dbFormId -> { + FormEntity formEntity = baseMapper.selectById(dbFormId); + if (FuncBase.isEmpty(formEntity)) { + return; + } + + if (dropTableFlag) {//删除实体表 + String tableName = formEntity.getTableName(); + frameService.dropTable(tableName);//删除表 + } + + //解除主附表关系 + this.unBindMainTable(formEntity); + + baseMapper.deleteById(dbFormId);//删除主表 + //1.删除 - 属性表 + fieldMapper.delByFormId(dbFormId); + //2.删除 - 字典表 + fieldDictMapper.delByDbformId(dbFormId); + //3.删除 - 导出表 + fieldExportMapper.delByDbformId(dbFormId); + //4.删除 - 外键表 + fieldForeignkeyMapper.delByDbformId(dbFormId); + //5.查询 + fieldQueryMapper.delByDbformId(dbFormId); + //6.删除 - 页面表 + fieldWebMapper.delByDbformId(dbFormId); + //7.删除 - 索引表 + indexMapper.delByDbFormId(dbFormId); + //8.删除 - 统计 + summaryMapper.delByDbFormId(dbFormId); + //9.删除 - java增强 + enhanceJavaMapper.delByDbFormId(dbFormId); + //10.删除 - js增强 + enhanceJsMapper.delByDbFormId(dbFormId); + //11.删除 - sql增强 + enhanceSqlMapper.delByDbFormId(dbFormId); + }); + + } + + + //复制表 - 表单开发 + @Transactional(rollbackFor = Exception.class) + @Override + public void copyDbFormConfig(Long dbformId, String tableName) { + //复制主表 + FormEntity entity = baseMapper.selectById(dbformId); + DbFormVo dbFormVo = BeanUtil.copyProperties(entity, DbFormVo.class); + dbFormVo.setId(null); + dbFormVo.setIsDbSync(null); + dbFormVo.setTableName(tableName); + dbFormVo.setSubTableListStr(null); + dbFormVo.setTableDescribe(dbFormVo.getTableDescribe() + "_copy"); + + + //获取字段表 + List fieldEntityList = fieldMapper.getByDbFormId(dbformId); + List fieldList = Func.copyDbFormFieldList(fieldEntityList, DbFormFieldVo.class); + + //字典表 + List dictEntityList = fieldDictMapper.getByDbFormId(dbformId); + List dictList = Func.copyDbFormFieldList(dictEntityList, DbFormFieldDictVo.class); + + //导出表 + List exportEntityList = fieldExportMapper.getByFormId(dbformId); + List exportList = Func.copyDbFormFieldList(exportEntityList, DbFormFieldExportVo.class); + + //外键表 + List foreignkeyEntityList = fieldForeignkeyMapper.getByFormId(dbformId); + List foreignkeyList = Func.copyDbFormFieldList(foreignkeyEntityList, DbFormFieldForeignkeyVo.class); + foreignkeyList.stream().forEach(vo -> { + vo.setMainField(null); + vo.setMainTable(null); + }); + + //界面 + List webEntityList = fieldWebMapper.getByFormId(dbformId); + List webList = Func.copyDbFormFieldList(webEntityList, DbFormFieldWebVo.class); + + //查询 + List queryEntityList = fieldQueryMapper.getByFormId(dbformId); + List queryList = Func.copyDbFormFieldList(queryEntityList, DbFormFieldQueryVo.class); + + //统计 + List summaryEntityList = summaryMapper.getByFormId(dbformId); + List summaryList = Func.copyDbFormFieldList(summaryEntityList, DbFormSummaryVo.class); + + //索引 + /* List indexEntityList = indexMapper.getByDbFormId(dbformId); + List indexList = Func.copyDbFormFieldList(indexEntityList, DbFormIndexVo.class); +*/ + + //封装DbFormAddOrUpdateParam 参数,统一走save方法 + DbFormAddOrUpdateParam param = new DbFormAddOrUpdateParam(); + param.setDbForm(dbFormVo); + param.setFieldList(fieldList); + param.setDictList(dictList); + param.setExportList(exportList); + param.setForeignkeyList(foreignkeyList); + param.setWebList(webList); + param.setQueryList(queryList); + param.setIndexList(null);//索引不复制,oracle等其他数据库下,索引名称是全局的 + param.setSummaryList(summaryList); + + //新主键 + Long newDbformId = this.saveDbFormConfig(param); + + //处理js增强 + jsService.copy(dbformId, newDbformId); + + //处理java增强 + javaService.copy(dbformId, newDbformId, entity.getTableName(), tableName); + + //处理sql增强 + sqlService.copy(dbformId, newDbformId); + + //处理按钮增强 + buttonService.copy(dbformId, newDbformId); + + } + + + //所有模块 + @Override + public DbFormConfigVo getDetailDbFormConfig(Long dbFormId) { + List typeList = new ArrayList<>(); + typeList.add(DbFormTypeEnum.ALL); + return this.getDetailDbFormConfig(dbFormId, typeList); + } + + //详情 - 表单开发 定制模块 + @Override + public DbFormConfigVo getDetailDbFormConfig(Long dbFormId, List typeList) { + return this.getDetailDbFormConfig(dbFormId, typeList, null); + } + + @Override + public DbFormConfigVo getDetailDbFormConfig(Long dbFormId, List typeList, List selfFieldList) {//自定义列 + DbFormConfigVo resultVo = new DbFormConfigVo(); + + IFormService proxyFormService = SpringUtils.getBean(IFormService.class); + //表单配置 + FormEntity formEntity = proxyFormService.getFormEntityById(dbFormId); + resultVo.setDbForm(formEntity); + + + //字段信息 + List formFieldList = fieldMapper.getByDbFormId(dbFormId); + resultVo.setFieldList(formFieldList); + + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.DICT)) {//表单开发-页面字典配置表 + List formFieldDictList = fieldDictMapper.getByDbFormId(dbFormId); + resultVo.setDictList(formFieldDictList); + } + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.EXPORT)) {//表单开发-导出配置表 + List formFieldExportList = fieldExportMapper.getByFormId(dbFormId); + resultVo.setExportList(formFieldExportList); + } + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.FOREIGNKEY)) {//表单开发-导出配置表 + List fieldForeignkeyList = fieldForeignkeyMapper.getByFormId(dbFormId); + resultVo.setForeignkeyList(fieldForeignkeyList); + } + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.WEB)) {//表单开发-页面字段表 + List formFieldWebList = fieldWebMapper.getByFormId(dbFormId); + resultVo.setWebList(formFieldWebList); + } + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.QUERY)) {//表单开发-查询配置 + List formFieldQueryList = fieldQueryMapper.getByFormId(dbFormId); + resultVo.setQueryList(formFieldQueryList); + } + + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.SUMMARY)) {//表单开发-统计配置 + List summaryTopList = summaryMapper.getTopSummaryList(dbFormId); + resultVo.setSummaryTopList(summaryTopList); + + List summaryBottomList = summaryMapper.getBottomSummaryList(dbFormId); + resultVo.setSummaryBottomList(summaryBottomList); + } + if (typeList.contains(DbFormTypeEnum.ALL) || typeList.contains(DbFormTypeEnum.INDEX)) {//表单开发-索引 + List indexEntityList = indexMapper.getByDbFormId(dbFormId); + resultVo.setIndexList(indexEntityList); + } + + //不为空,说明有自定义列,需要剔除部分 + if (FuncBase.isNotEmpty(selfFieldList)) { + List fieldEntityList = resultVo.getFieldList(); + Iterator iterator = fieldEntityList.iterator(); + while (iterator.hasNext()) { + FormFieldEntity next = iterator.next(); + String fieldCode = next.getFieldCode(); + if (!selfFieldList.contains(fieldCode)) { + iterator.remove();//没有在指定列里面,则剔除 + } + } + } + + return resultVo; + } + + + //分页 - 表单开发 + @Override + public IPage getPageDbFormConfig(PageDbFormParam param, Page page) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(FuncBase.isNotEmpty(param.getTableName()), FormEntity::getTableName, param.getTableName()); + wrapper.like(FuncBase.isNotEmpty(param.getTableDescribe()), FormEntity::getTableDescribe, param.getTableDescribe()); + wrapper.eq(FuncBase.isNotEmpty(param.getTableType()), FormEntity::getTableType, param.getTableType()); + wrapper.eq(FuncBase.isNotEmpty(param.getTableClassify()), FormEntity::getTableClassify, param.getTableClassify()); + wrapper.eq(FuncBase.isNotEmpty(param.getIsDbSync()), FormEntity::getIsDbSync, param.getIsDbSync()); + wrapper.eq(FuncBase.isNotEmpty(param.getId()), FormEntity::getId, param.getId()); + wrapper.eq(FuncBase.isNotEmpty(param.getGroupDbformId()), FormEntity::getGroupDbformId, param.getGroupDbformId()); + wrapper.orderByDesc(FormEntity::getId); + + //查询部分字段 + wrapper.select(FormEntity::getId, + FormEntity::getTableType, + FormEntity::getTableName, + FormEntity::getTableDescribe, + FormEntity::getTableClassify, + FormEntity::getIsDbSync); + + IPage pages = baseMapper.selectPage(page, wrapper); + return pages; + } + + //获取页面配置 + @Override + public WebConfigVo getWebConfig(Long dbFormId) { + return this.getWebConfig(dbFormId, null);//所有字段 + } + + @Override + public WebConfigVo getWebConfig(Long dbFormId, List selfFieldList) { + List typeList = new ArrayList<>(); + typeList.add(DbFormTypeEnum.WEB); + typeList.add(DbFormTypeEnum.DICT); + typeList.add(DbFormTypeEnum.QUERY); + typeList.add(DbFormTypeEnum.EXPORT); + typeList.add(DbFormTypeEnum.SUMMARY); + if (Func.equals(TableTypeEnum.SUB.getType(), this.getTableType(dbFormId))) {//如果是附表,则吧外键查出来 + typeList.add(DbFormTypeEnum.FOREIGNKEY); + } + + //页面基本配置 + DbFormConfigVo dbFormConfig = this.getDetailDbFormConfig(dbFormId, typeList, selfFieldList); + + //获取按钮增强 + List buttonList = formButtonService.getButtonList(dbFormId); + + //获取Js增强 + List jsList = jsService.getJsList(dbFormId); + + //转为一条返回给前端 + List fieldList = dbFormConfig.getFieldList();//字段列表 + List dictList = dbFormConfig.getDictList();//字典列表 + List webList = dbFormConfig.getWebList();//页面列表 + List queryList = dbFormConfig.getQueryList();//查询列表 + List exportList = dbFormConfig.getExportList();//导出列表 + List summaryTopList = dbFormConfig.getSummaryTopList(); + List summaryBottomList = dbFormConfig.getSummaryBottomList();//底部统计配置 + List foreignkeyList = dbFormConfig.getForeignkeyList();//外键 + + //转为map + Map dictMap = dictList.stream() + .collect(Collectors.toMap(FormFieldDictEntity::getFieldCode, Function.identity())); + + //转为map + Map webMap = webList.stream() + .collect(Collectors.toMap(FormFieldWebEntity::getFieldCode, Function.identity())); + + //转为map + Map queryMap = queryList.stream() + .collect(Collectors.toMap(FormFieldQueryEntity::getFieldCode, Function.identity())); + + //转为map + Map exportMap = exportList.stream() + .collect(Collectors.toMap(FormFieldExportEntity::getFieldCode, Function.identity())); + + //转为map + Map summaryBottomMap = summaryBottomList.stream() + .collect(Collectors.toMap(FormSummaryEntity::getFieldCode, Function.identity())); + + Map foreignkeyMap = foreignkeyList.stream() + .collect(Collectors.toMap(FormFieldForeignkeyEntity::getFieldCode, Function.identity())); + + + List formFieldEntityExpList = fieldList.stream() + .map(fieldEntity -> { + WebConfigFieldVo fieldEntityExp = BeanUtil.copyProperties(fieldEntity, WebConfigFieldVo.class); + + FormFieldDictEntity dictEntity = dictMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setDictEntity(BeanUtil.copyProperties(dictEntity, WebConfigFieldDictVo.class)); + + FormFieldWebEntity webEntity = webMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setWebEntity(BeanUtil.copyProperties(webEntity, WebConfigFieldWebVo.class)); + + FormFieldQueryEntity queryEntity = queryMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setQueryEntity(BeanUtil.copyProperties(queryEntity, WebConfigFieldQueryVo.class)); + + FormFieldExportEntity exportEntity = exportMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setExportEntity(BeanUtil.copyProperties(exportEntity, WebConfigFieldExportVo.class)); + + FormSummaryEntity bottomSummaryEntity = summaryBottomMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setSummaryEntity(BeanUtil.copyProperties(bottomSummaryEntity, DbFormSummaryVo.class)); + + FormFieldForeignkeyEntity foreignkeyEntity = foreignkeyMap.get(fieldEntity.getFieldCode()); + fieldEntityExp.setForeignkeyEntity(BeanUtil.copyProperties(foreignkeyEntity, WebConfigFieldForeignkeyVo.class)); + + return fieldEntityExp; + }) + .collect(Collectors.toList()); + + //如果是主附表,则需要把附表的id查询出来 + List subTableNameList = this.getAllSubTableNameList(dbFormId); + List subDbFormIdList = new ArrayList<>(); + if (Func.isNotEmpty(subTableNameList)) { + subDbFormIdList = this.getDbFormIdByTableName(subTableNameList); + } + + //封装结果返回 + WebConfigVo webConfigVo = new WebConfigVo(); + webConfigVo.setFieldList(formFieldEntityExpList); + webConfigVo.setDbForm(BeanUtil.copyProperties(dbFormConfig.getDbForm(), WebConfigFormVo.class)); + webConfigVo.setButtonList(BeanUtil.copyToList(buttonList, WebConfigButtonVo.class)); + webConfigVo.setJsList(BeanUtil.copyToList(jsList, WebConfigJsVo.class)); + webConfigVo.setSubDbFormIdList(subDbFormIdList);//主附表信息 + boolean summaryTopOpenFlag = false; + if (Func.isNotEmpty(summaryTopList)) { + summaryTopOpenFlag = summaryTopList.stream() + .anyMatch(top -> Func.equals(top.getSummaryShow(),YNEnum.Y.getCode())); + } + webConfigVo.setSummaryTopOpenFlag(summaryTopOpenFlag);//顶部是否开启 + return webConfigVo; + } + + //获取字段类型 + @Override + public JeeLowCodeFieldTypeEnum getFieldTypeEnum(Long dbFormId, String fieldCode) { + List formFieldEntityList = fieldMapper.getByDbFormIdAndFieldCode(dbFormId, fieldCode); + FormFieldEntity formFieldEntity = formFieldEntityList.get(0); + String fieldType = formFieldEntity.getFieldType(); + return JeeLowCodeFieldTypeEnum.getByFieldType(fieldType); + } + + /** + * 获取字典数据 + * + * @param dbFormId + * @param fieldCode + * @return key=1 value=男 + */ + @Override + public Map getDictKeyLabelMap(Long dbFormId, String fieldCode) { + Map dictMap = new LinkedHashMap<>(); + + FormFieldDictEntity dictEntity = fieldDictMapper.getFormFieldSysDictEntity(dbFormId, fieldCode); + if (FuncBase.isEmpty(dictEntity)) { + return dictMap; + } + + String dictType = dictEntity.getDictType(); + String dictCode = dictEntity.getDictCode(); + String dictTableDbFormId = dictEntity.getDictTable(); + String dictText = dictEntity.getDictText(); + + if (FuncBase.isNotEmpty(dictType) && FuncBase.equals(dictType, DictTypeEnum.DICT.getType())) {//单纯就是字典 + JeeLowCodeDictParam param = new JeeLowCodeDictParam(); + param.setDictCodeList(FuncBase.toStrList(dictCode)); + List dictList = jeeLowCodeAdapter.getDictList(param); + if (FuncBase.isEmpty(dictList)) { + return dictMap; + } + // + List dataList = dictList.get(0).getDataList(); + dictMap = dataList.stream() + .collect(Collectors.toMap( + JeeLowCodeDict.DictData::getVal, + JeeLowCodeDict.DictData::getLabel + )); + } else if (FuncBase.isNotEmpty(dictType) && FuncBase.equals(dictType, DictTypeEnum.TABLE.getType())) {//表数据 + List selectList = new ArrayList<>(); + selectList.add(dictCode); + selectList.add(dictText); + + Map params = new HashMap<>(); + params.put(ParamEnum.DICT_TABLE_FIELD.getCode(), selectList); + params.put(ParamEnum.PAGE_NO.getCode(), 1); + params.put(ParamEnum.PAGE_SIZE.getCode(), 1000); + ResultDataModel model = frameService.getDataList(Func.toLong(dictTableDbFormId), params); + if (Func.isNotEmpty(model) && Func.isNotEmpty(model.getRecords())) { + dictMap = model.getRecords().stream() + .collect(Collectors.toMap( + dataMap -> JeeLowCodeUtils.getMap2Str(dataMap, dictCode), + dataMap -> JeeLowCodeUtils.getMap2Str(dataMap, dictText) + )); + + } + //自定义查询 + + + } + + return dictMap; + } + + //格式化数据列表(回显数据,处理时间等) + @Override + public void formatDataList(Long dbformId, List> dataMapList) { + if (FuncBase.isEmpty(dataMapList)) { + return; + } + + List fieldList = this.getFieldList(dbformId); + //字典集合 + Map> dictMaps = new HashMap<>(); + List keyList = new ArrayList<>(); + for (FormFieldEntity formFieldEntity : fieldList) { + String fieldCode = formFieldEntity.getFieldCode(); + Map dictMap = this.getDictKeyLabelMap(dbformId, fieldCode);//字典列表 + if (FuncBase.isEmpty(dictMap)) { + continue; + } + dictMaps.put(fieldCode, dictMap); + keyList.add(fieldCode); + } + //数据里面会存在id,或者字典等,如:1=男,需要转为文字 + dataMapList.forEach(dataMap -> { + for (String key : keyList) { + String val = JeeLowCodeUtils.getMap2Str(dataMap, key); + if (FuncBase.isEmpty(val)) { + continue; + } + Map valMap = dictMaps.get(key); + String valStr = valMap.get(val); + if (Func.isEmpty(valStr) && val.contains(",")) { + List valList = Func.toStrList(val); + for (String tmpVal : valList) {//有可能是多选的情况下111,222,333 + String tmpValStr = valMap.get(tmpVal); + if (Func.isEmpty(tmpValStr)) { + continue; + } + if (Func.isEmpty(valStr)) { + valStr = tmpValStr; + } else { + valStr += "、" + tmpValStr; + } + + } + } + + if (FuncBase.isEmpty(valStr)) { + continue; + } + dataMap.put(key, valStr); + } + + // 转换并格式化所有值 + Map formattedMap = dataMap.entrySet().stream() + .collect(Collectors.toMap( + Map.Entry::getKey, + entry -> JeeLowCodeUtils.formatDate(entry.getValue()) + )); + + // 使用格式化后的映射替换原始映射 + dataMap.clear(); + dataMap.putAll(formattedMap); + }); + + } + + + //获取字段 名称:code + @Override + public Map getFieldNameAndCode(Long dbFormId) { + return fieldMapper.getFieldNameAndCodeMap(dbFormId); + } + + //获取所有表 + @Override + public List getAllTable(String systemFlag) { + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(FormEntity::getId, FormEntity::getTableName, FormEntity::getTableDescribe, FormEntity::getTableType, FormEntity::getSubTableListStr);//获取表名和表描述 + wrapper.orderByDesc(FormEntity::getId); + List formList = baseMapper.selectList(wrapper); + + //获取所有字段 + List fieldList = fieldMapper.getAllList(); + + //组装数据 + Map tableMap = new HashMap<>(); + + Map formMap = formList.stream() + .collect(Collectors.toMap(FormEntity::getId, Function.identity())); + fieldList.stream() + .filter(formField -> formMap.containsKey(formField.getDbformId())) + .collect(Collectors.groupingBy(FormFieldEntity::getDbformId)) + .forEach((dbformId, formFields) -> { + FormEntity form = formMap.get(dbformId); + List fieldModelList = formFields.stream() + .map(formField -> { + AllTableFieldModel fieldModel = new AllTableFieldModel(); + fieldModel.setFieldCode(formField.getFieldCode()); + fieldModel.setFieldName(formField.getFieldName()); + fieldModel.setFieldType(formField.getFieldType()); + return fieldModel; + }) + .collect(Collectors.toList()); + + AllTableModel tableModel = new AllTableModel(); + tableModel.setTableId(FuncBase.toStr(form.getId())); + tableModel.setTableName(form.getTableName()); + tableModel.setTableDescribe(form.getTableDescribe()); + tableModel.setSubTableListStr(form.getSubTableListStr()); + tableModel.setFieldModelList(fieldModelList); + tableModel.setTableType(form.getTableType()); + + //处理授权类型 + String dataConfig = form.getDataConfig(); + List dataConfigList = FuncBase.toStrList(dataConfig); + for (String type : dataConfigList) { + AuthTypeEnum authTypeEnum = AuthTypeEnum.getByType(type); + if (Func.isEmpty(authTypeEnum)) { + continue; + } + tableModel.setAuthType(authTypeEnum.getType()); + break; + } + + tableMap.put(dbformId, tableModel); + }); + + List resultList = new ArrayList<>(); + for (FormEntity formEntity : formList) { + Long dbformId = formEntity.getId(); + if (!tableMap.containsKey(dbformId)) { + continue; + } + AllTableModel allTableModel = tableMap.get(dbformId); + resultList.add(allTableModel); + } + + //处理系统表 + if (Func.isNotEmpty(systemFlag) && Func.equals(systemFlag, YNEnum.Y.getCode())) { + + List systemTableList = new ArrayList<>(); + systemTableList.add(new TableModel("system_dept", "部门信息")); + systemTableList.add(new TableModel("system_users", "用户信息")); + + + systemTableList.stream().forEach(tableModel -> { + String tableName = tableModel.getTableName(); + String tableDescribe = tableModel.getTableDescribe(); + + + String tableFieldCommentSql = SqlHelper.getTableFieldComment(tableName); + //获取备注字段 + List> dataMapList = frameSqlService.getSimpleData(tableFieldCommentSql); + Map remarkMap = Func.dataMapList2ResultSet(dataMapList); + + Map dbColumnMetaMap = dbManager.getDbColumnMetaMap(tableName, remarkMap); + //封装为 + List fieldModelList = new ArrayList<>(); + for (String key : dbColumnMetaMap.keySet()) { + FieldModel fieldModel = dbColumnMetaMap.get(key); + AllTableFieldModel allTableFieldModel = BeanUtil.copyProperties(fieldModel, AllTableFieldModel.class); + List selectFieldTypeList = fieldModel.getJavaFieldTypeList();//可能多个,oracle number的话对应多个 + Integer fieldPointLen = fieldModel.getFieldPointLen(); + if (fieldPointLen > 0) { + allTableFieldModel.setFieldType(JeeLowCodeFieldTypeEnum.BIGDECIMAL.getFieldType()); + } else { + allTableFieldModel.setFieldType(selectFieldTypeList.get(0).getFieldType()); + } + fieldModelList.add(allTableFieldModel); + // 处理键和值 + } + + AllTableModel allTableModel = new AllTableModel(); + allTableModel.setTableId(tableName); + allTableModel.setTableName(tableName); + allTableModel.setTableDescribe(tableDescribe); + allTableModel.setFieldModelList(fieldModelList); + if (Func.isNotEmpty(resultList)) { + resultList.add(0, allTableModel);//放到第一位 + } else { + resultList.add(allTableModel); + } + + }); + } + + return resultList; + } + + //获取字典表显示列 + @Override + public List getDictTableFieldList(Long dbFormId, List fieldList) { + //获取本表的所有字段 + DbFieldCodeListModel dbFieldCodeList = this.getDbFieldCodeList(dbFormId); + List asList = dbFieldCodeList.getAsList(); + List selectList = dbFieldCodeList.getSelectList(); + + List resultList = new ArrayList<>(); + Iterator iterator = fieldList.iterator(); + while (iterator.hasNext()) { + String next = iterator.next(); + for (int i = 0; i < asList.size(); i++) { + String asStr = asList.get(i); + String selectStr = selectList.get(i); + if (Func.equals(next, asStr)) {//一样 + resultList.add(selectStr); + } + } + } + + if (!resultList.contains("id")) {//把id加上 + resultList.add("id"); + } + return resultList; + } + + /** + * 获取外键列-只允许有一个外键 + * + * @param dbFormId + * @return + */ + @Override + public FormFieldForeignkeyEntity getFieldForeignkeyEntity(Long dbFormId, String mainTable) { + return fieldForeignkeyMapper.getByFormIdAndMainTable(dbFormId, mainTable); + } + + //新增or修改 表单开发-开发属性 + private void saveOrUpdateDbForm(long formId, DbFormVo vo) { + + String dbSync = ""; + + Integer tableClassify = vo.getTableClassify(); + if (FuncBase.equals(tableClassify, TableClassifyEnum.SERVICE.getType())) {//业务表 + if (FuncBase.isEmpty(vo.getId())) {//新增 + dbSync = YNEnum.N.getCode(); + } + } else {//其他为显示表 + dbSync = YNEnum.Y.getCode(); + } + + + FormEntity entity = new FormEntity(); + entity.setId(formId); + entity.setTableName(vo.getTableName()); + entity.setTableDescribe(vo.getTableDescribe()); + entity.setTableType(vo.getTableType()); + entity.setTableClassify(vo.getTableClassify()); + entity.setTableIdType(vo.getTableIdType()); + entity.setTableSelect(vo.getTableSelect()); + if (FuncBase.isNotEmpty(dbSync)) { + entity.setIsDbSync(dbSync);//默认的未同步 + } + entity.setIsDesForm(vo.getIsDesForm()); + entity.setSubTableMapping(vo.getSubTableMapping()); + entity.setSubTableSort(vo.getSubTableSort()); + entity.setSubTableTitle(vo.getSubTableTitle()); + entity.setThemeTemplate(vo.getThemeTemplate()); + entity.setDesformWebId(vo.getDesformWebId()); + entity.setTreeStyle(vo.getTreeStyle()); + entity.setTreeLabelField(vo.getTreeLabelField()); + entity.setTreeMode(vo.getTreeMode()); + entity.setOperateMenuStyle(vo.getOperateMenuStyle()); + entity.setGroupDbformId(vo.getGroupDbformId()); + entity.setFormStyle(Integer.valueOf((vo.getFormStyle()))); + entity.setOrderbyConfig(vo.getOrderbyConfig()); + entity.setWhereConfig(vo.getWhereConfig()); + entity.setSubTableListStr(vo.getSubTableListStr()); + entity.setViewDefaultField(vo.getViewDefaultField()); + entity.setDataConfig(vo.getDataConfig()); + entity.setBasicFunction(vo.getBasicFunction()); + entity.setBasicConfig(vo.getBasicConfig()); + entity.setTableConfig(vo.getTableConfig()); + entity.setUpdateTime(LocalDateTime.now()); + entity.setDataSourcesConfig(vo.getDataSourcesConfig());//表视图数据来源 + entity.setTableStyle(vo.getTableStyle());//单表样式 + if (FuncBase.isEmpty(vo.getId())) {//新增 + baseMapper.insert(entity); + } else {//修改 + baseMapper.updateById(entity); + } + + } + + + //新增or修改 表单开发-表单字段属性 + private void saveOrUpdateDbFormField(long formId, List fieldList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldMapper.deleteBatchIds(delIdList);//删除 + } + List oldFieldList = fieldMapper.getByDbFormId(formId); + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + Integer sortNum = 0; + for (DbFormFieldVo vo : fieldList) { + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldEntity entity = new FormFieldEntity(); + entity.setId(id); + entity.setDbformId(formId); + entity.setFieldCode(vo.getFieldCode()); + entity.setFieldName(vo.getFieldName()); + entity.setFieldLen(vo.getFieldLen()); + entity.setFieldPointLen(vo.getFieldPointLen()); + entity.setFieldDefaultVal(vo.getFieldDefaultVal()); + entity.setFieldType(vo.getFieldType()); + entity.setFieldRemark(vo.getFieldRemark()); + entity.setIsPrimaryKey(vo.getIsPrimaryKey()); + entity.setIsNull(vo.getIsNull()); + entity.setIsDb(vo.getIsDb()); + entity.setSortNum(++sortNum); + if (FuncBase.isEmpty(vo.getId())) {//新增 + addList.add(entity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(entity); + } + + } + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldMapper,FormFieldMapper.class,FormFieldEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldMapper,FormFieldMapper.class,FormFieldEntity.class); + } + + //如果不是业务表则不需要进行同步 + boolean serviceTableFlag = this.isServiceTable(formId); + if (!serviceTableFlag) { + return; + } + + List newFieldList = fieldMapper.getByDbFormId(formId); + //判断新-旧列是否一致 + boolean isSync = Func.dbFormFieldEquals(oldFieldList, newFieldList); + + if (!isSync) {//存在在不一样,则需要同步 + FormEntity saveOrUpdateEntity = new FormEntity(); + saveOrUpdateEntity.setIsDbSync(YNEnum.N.getCode());//默认的未同步 + saveOrUpdateEntity.setId(formId); + baseMapper.updateById(saveOrUpdateEntity); + } + + } + + //新增or修改 表单开发-保存字典 + private void saveOrUpdateDbFormDict(long formId, List newDictList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldDictMapper.deleteBatchIds(delIdList); + } + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + //处理新值 + newDictList.stream().forEach(vo -> { + String fieldCode = vo.getFieldCode(); + + //获取id,判断是否是旧的 + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldDictEntity saveOrUpdateEntity = new FormFieldDictEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(fieldCode); + saveOrUpdateEntity.setDictType(vo.getDictType()); + saveOrUpdateEntity.setDictCode(vo.getDictCode()); + saveOrUpdateEntity.setDictTable(vo.getDictTable()); + saveOrUpdateEntity.setDictText(vo.getDictText()); + saveOrUpdateEntity.setDictTableColumn(vo.getDictTableColumn()); + + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldDictMapper, FormFieldDictMapper.class,FormFieldDictEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldDictMapper,FormFieldDictMapper.class,FormFieldDictEntity.class); + } + + + } + + //新增or修改 表单开发-保存导出属性 + private void saveOrUpdateDbFormExport(long formId, List exportList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldExportMapper.deleteBatchIds(delIdList); + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + exportList.stream().forEach(vo -> { + String fieldCode = vo.getFieldCode(); + //获取id,判断是否是旧的 + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldExportEntity saveOrUpdateEntity = new FormFieldExportEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(fieldCode); + saveOrUpdateEntity.setIsExport(vo.getIsExport()); + saveOrUpdateEntity.setImportExampleTxt(vo.getImportExampleTxt()); + + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + }); + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldExportMapper, FormFieldExportMapper.class,FormFieldExportEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldExportMapper,FormFieldExportMapper.class,FormFieldExportEntity.class); + } + + } + + //新增or修改 表单开发-保存外键配置表 + private void saveOrUpdateDbFormForeignkey(long formId, List foreignkeyList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldForeignkeyMapper.deleteBatchIds(delIdList); + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + foreignkeyList.stream().forEach(vo -> { + //获取id,判断是否是旧的 + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldForeignkeyEntity saveOrUpdateEntity = new FormFieldForeignkeyEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(vo.getFieldCode()); + saveOrUpdateEntity.setMainTable(vo.getMainTable()); + saveOrUpdateEntity.setMainField(vo.getMainField()); + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldForeignkeyMapper, FormFieldForeignkeyMapper.class,FormFieldForeignkeyEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldForeignkeyMapper,FormFieldForeignkeyMapper.class,FormFieldForeignkeyEntity.class); + } + } + + //新增or修改 表单开发-保存页面属性表 + private void saveOrUpdateDbFormWeb(long formId, List webList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldWebMapper.deleteBatchIds(delIdList); + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + + webList.stream().forEach(vo -> { + String fieldCode = vo.getFieldCode(); + //获取id,判断是否是旧的 + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldWebEntity saveOrUpdateEntity = new FormFieldWebEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(fieldCode); + saveOrUpdateEntity.setIsDbSelect(vo.getIsDbSelect()); + saveOrUpdateEntity.setIsShowList(vo.getIsShowList()); + saveOrUpdateEntity.setIsShowForm(vo.getIsShowForm()); + saveOrUpdateEntity.setIsShowColumn(vo.getIsShowColumn()); + saveOrUpdateEntity.setIsShowSort(vo.getIsShowSort()); + saveOrUpdateEntity.setIsRequired(vo.getIsRequired()); + saveOrUpdateEntity.setControlType(vo.getControlType()); + saveOrUpdateEntity.setControlsConfig(vo.getControlsConfig()); + saveOrUpdateEntity.setCellWidth(vo.getCellWidth()); + saveOrUpdateEntity.setCellWidthType(vo.getCellWidthType()); + saveOrUpdateEntity.setVerifyConfig(vo.getVerifyConfig()); + saveOrUpdateEntity.setFormatConfig(vo.getFormatConfig()); + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldWebMapper, FormFieldWebMapper.class,FormFieldWebEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldWebMapper,FormFieldWebMapper.class,FormFieldWebEntity.class); + } + } + + //新增or修改 表单开发-查询配置 + private void saveOrUpdateDbFormQuery(long formId, List queryList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + fieldQueryMapper.deleteBatchIds(delIdList); + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + queryList.stream().forEach(vo -> { + String fieldCode = vo.getFieldCode(); + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormFieldQueryEntity saveOrUpdateEntity = new FormFieldQueryEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(fieldCode); + saveOrUpdateEntity.setQueryIsDb(vo.getQueryIsDb()); + saveOrUpdateEntity.setQueryIsWeb(vo.getQueryIsWeb()); + saveOrUpdateEntity.setQueryMode(vo.getQueryMode()); + saveOrUpdateEntity.setQueryConfig(vo.getQueryConfig()); + saveOrUpdateEntity.setQueryDefaultVal(vo.getQueryDefaultVal()); + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.isEmpty(vo.getIsModify()) || Func.notEquals(vo.getIsModify(), YNEnum.N.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,fieldQueryMapper, FormFieldQueryMapper.class,FormFieldQueryEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,fieldQueryMapper,FormFieldQueryMapper.class,FormFieldQueryEntity.class); + } + + } + + //新增or修改 表单开发-统计配置 + private void saveOrUpdateDbFormSummary(long formId, List summaryList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + summaryMapper.deleteBatchIds(delIdList); + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + summaryList.stream().forEach(vo -> { + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormSummaryEntity saveOrUpdateEntity = new FormSummaryEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setFieldCode(vo.getFieldCode()); + saveOrUpdateEntity.setSummaryType(vo.getSummaryType()); + saveOrUpdateEntity.setSummaryShow(vo.getSummaryShow()); + saveOrUpdateEntity.setSummarySql(vo.getSummarySql()); + saveOrUpdateEntity.setSummaryLabel(vo.getSummaryLabel()); + saveOrUpdateEntity.setSummaryJson(vo.getSummaryJson()); + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,summaryMapper, FormSummaryMapper.class,FormSummaryEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,summaryMapper,FormSummaryMapper.class,FormSummaryEntity.class); + } + } + + + //新增or修改 表单开发-保存页面属性表 + private void saveOrUpdateDbFormIndex(long formId, List indexList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + indexMapper.deleteBatchIds(delIdList); + } + + if (FuncBase.isEmpty(indexList)) { + return; + } + + List addList=new ArrayList<>(); + List updateList=new ArrayList<>(); + + indexList.stream().forEach(vo -> { + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + FormIndexEntity saveOrUpdateEntity = new FormIndexEntity(); + saveOrUpdateEntity.setId(id); + saveOrUpdateEntity.setDbformId(formId); + saveOrUpdateEntity.setIndexName(vo.getIndexName()); + saveOrUpdateEntity.setIndexFieldCodeList(vo.getIndexFieldCodeList()); + saveOrUpdateEntity.setIndexType(vo.getIndexType()); + if (Func.isEmpty(vo.getId())) {//新增 + addList.add(saveOrUpdateEntity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(saveOrUpdateEntity); + } + }); + + if(Func.isNotEmpty(addList)){ + batchService.saveBatch(addList,indexMapper, FormIndexMapper.class,FormIndexEntity.class); + } + + if(Func.isNotEmpty(updateList)){ + batchService.updateBatchById(updateList,indexMapper,FormIndexMapper.class,FormIndexEntity.class); + } + + } + + + //解除主附表 关系 + private void unBindMainTable(FormEntity formEntity) { + Integer tableType = formEntity.getTableType(); + if (Func.notEquals(tableType, TableTypeEnum.SUB.getType()) && Func.notEquals(tableType, TableTypeEnum.SUB.getType())) {//3 4为主附表 + return; + } + + String tableName = formEntity.getTableName(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(FormEntity::getSubTableListStr, tableName); + List subFormEntityList = baseMapper.selectList(wrapper); + if (FuncBase.isEmpty(subFormEntityList)) { + return; + } + //我当前在这些表的子表里面 + subFormEntityList.stream().forEach(subFormEntity -> { + this.unBindMainTable(subFormEntity, tableName); + }); + + + } + + //主表解除某一个表 + private void unBindMainTable(FormEntity mainFormEntity, String unBindTableName) { + if (FuncBase.isEmpty(mainFormEntity)) { + return; + } + + String subTableListStr = mainFormEntity.getSubTableListStr(); + List subTableList = FuncBase.toStrList(subTableListStr); + + List newSubTableList = subTableList.stream().filter(subTable -> !FuncBase.equals(subTable, unBindTableName)).collect(Collectors.toList()); + + String newSubTableStr = String.join(",", newSubTableList); + FormEntity updatEntity = new FormEntity(); + updatEntity.setId(mainFormEntity.getId()); + updatEntity.setSubTableListStr(newSubTableStr); + baseMapper.updateById(updatEntity); + + } + + + //绑定主附表 关系 + private void bindMainTable(DbFormVo dbFormVo, List foreignkeyList) { + Integer tableType = dbFormVo.getTableType(); + if (Func.notEquals(tableType, TableTypeEnum.SUB.getType()) || FuncBase.isEmpty(foreignkeyList)) {//4为主附表 如果是附表的话,需要绑定到主表 + return; + } + String tableName = dbFormVo.getTableName(); + + //绑定到附表 + foreignkeyList.stream().forEach(vo -> { + String mainTable = vo.getMainTable();//主表 + if (FuncBase.isEmpty(mainTable)) { + return; + } + //绑定到主表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getTableName, mainTable); + FormEntity mainFormEntity = baseMapper.selectOne(wrapper); + if (FuncBase.isEmpty(mainFormEntity)) { + throw new JeeLowCodeException(FrameErrorCodeConstants.FRAME_MAIN_TABLE_NOT.getMsg()); + } + + String subTableListStr = mainFormEntity.getSubTableListStr(); + List subTableList = FuncBase.toStrNewList(subTableListStr); + Func.addStr2List(subTableList, tableName);//添加到list + + String newSubTableStr = String.join(",", subTableList); + + FormEntity updatMainEntity = new FormEntity(); + updatMainEntity.setId(mainFormEntity.getId()); + updatMainEntity.setSubTableListStr(newSubTableStr); + baseMapper.updateById(updatMainEntity); + }); + + + } + + @Override + public void cleanCache() { + Set keys = redisUtil.keys(JeeRedisConstants.JEELOWCODE_PREFIX); + redisUtil.delList(keys); + } + + + /** + * 初始化所有脚本 + */ + @Override + public void initOnlineScript(GroovyClassLoader groovyClassLoader) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EnhanceJavaEntity::getJavaType, EnhanceConstant.ENHANCE_TYPE_ONLINE_EDIT); + queryWrapper.eq(EnhanceJavaEntity::getIsDeleted, 0); + queryWrapper.isNotNull(EnhanceJavaEntity::getOnlineScript); + queryWrapper.select(EnhanceJavaEntity::getOnlineScript); + List list = javaService.list(queryWrapper); + for (EnhanceJavaEntity enhanceJavaEntity : list) { + try { + groovyClassLoader.parseClass(enhanceJavaEntity.getOnlineScript()); + } catch (Exception e) { + + } + } + } + + //初始化自定义按钮 + @Override + public void initConfigBtnCommand() { + Map btnConfigMap = jeeLowCodeConfigService.getBtnCommandConfig(); + if (Func.isEmpty(btnConfigMap)) { + return; + } + //初始化 + DefinablePluginManager.allDefinableMap = btnConfigMap; + } + + + //获取树级所有上级 + @Override + public List> getTreeParentList(Long dbformId, TreeParentParam treeParentParam) { + List fieldList = treeParentParam.getFieldList(); + String code = treeParentParam.getCode(); + List idList = treeParentParam.getValList(); + if (!fieldList.contains(DefaultDbFieldEnum.P_ID.getFieldCode())) { + fieldList.add(DefaultDbFieldEnum.P_ID.getFieldCode()); + } + + //查询本级 + String tableName = this.getTableName(dbformId); + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList, true) + .setWhere(where -> { + where.in(code, idList); + }) + .build(); + List> dataMapList = frameSqlService.getDataListByPlus(wrapper); + if (Func.isEmpty(dataMapList)) {//为空 + return dataMapList; + } + + List> resultDataMapList = new ArrayList<>(); + resultDataMapList.addAll(dataMapList); + + //确保唯一 + Set uniIdList = new HashSet<>(); + uniIdList.addAll(idList); + + + //抽取pid,往上查找 + Set pidSet = dataMapList.stream() + .filter(dataMap -> { + Long pid = Func.getMap2LongDefault(dataMap, DefaultDbFieldEnum.P_ID.getFieldCode(), -99L); + if (uniIdList.contains(pid)) {//存在 + return false; + } + uniIdList.add(pid); + return true; + }) + .map(dataMap -> Func.getMap2LongDefault(dataMap, DefaultDbFieldEnum.P_ID.getFieldCode(), -99L)) // 提取pid值 + .collect(Collectors.toSet()); // + + + do { + Set finalPidSet = pidSet; + SqlInfoQueryWrapper.Wrapper pidWrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList, true) + .setWhere(where -> { + where.in("id", finalPidSet); + }).build(); + dataMapList = frameSqlService.getDataListByPlus(pidWrapper); + + + if (Func.isEmpty(dataMapList)) { + break; // 没有数据,跳出循环 + } + resultDataMapList.addAll(dataMapList); + + pidSet = dataMapList.stream() // + .filter(dataMap -> { + Long pid = Func.getMap2LongDefault(dataMap, DefaultDbFieldEnum.P_ID.getFieldCode(), -99L); + if (uniIdList.contains(pid)) {//存在 + return false; + } + uniIdList.add(pid); + return true; + }) + .map(dataMap -> Func.getMap2LongDefault(dataMap, DefaultDbFieldEnum.P_ID.getFieldCode(), -99L)) + .collect(Collectors.toCollection(HashSet::new)); + + } while (!pidSet.isEmpty()); + + return resultDataMapList; + } + + //获取合计字段列表 + @Override + public List getSummarySettingList(Long dbformId, String summaryType) { + List entityList = summaryMapper.getSummaryList(dbformId, summaryType); + return entityList; + } + + //获取界面显示列 + @Override + public List getWebViewFieldList(Long dbformId) { + List webViewFieldList = jeeLowCodeMapper.getWebViewFieldList(dbformId); + + //默认列 + List defaultFieldList = new ArrayList<>(); + defaultFieldList.add(DefaultDbFieldEnum.ID.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.TENANT_ID.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.CREATE_USER.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.CREATE_TIME.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.CREATE_DEPT.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.UPDATE_USER.getFieldCode()); + defaultFieldList.add(DefaultDbFieldEnum.UPDATE_TIME.getFieldCode()); + Integer tableType = this.getTableType(dbformId); + if (Func.equals(tableType, TableTypeEnum.TREE.getType())) {//树形结构强制查pid + defaultFieldList.add(DefaultDbFieldEnum.P_ID.getFieldCode()); + } + + webViewFieldList.addAll(defaultFieldList); + + return webViewFieldList; + } + + + @Override + public void initEnhancePluginManager() { + //所有JAVA增强 + List allJavaEnhanceList = javaService.getAllJavaEnhance(); + + //那个form_button 需要增强 + Map> pluginJavaMap = new HashMap<>(); + Map> pluginSqlMap = new HashMap<>(); + //Java插件 + allJavaEnhanceList.forEach(enhanceJavaEntity -> { + Long dbformId = enhanceJavaEntity.getDbformId(); + String buttonCode = enhanceJavaEntity.getButtonCode(); + + //那个功能,那个form有增强 + String pluginKey = dbformId + "_" + buttonCode; + pluginJavaMap.merge(pluginKey, new ArrayList<>(Collections.singletonList(enhanceJavaEntity)), (oldValue, newValue) -> { + oldValue.addAll(newValue); + return oldValue; + }); + + //初始化控件 + try { + if (FuncBase.equals(enhanceJavaEntity.getJavaType(), EnhanceConstant.ENHANCE_TYPE_SPRING)) {//spring方式 + String javaClassUrl = enhanceJavaEntity.getJavaClassUrl();// + Object bean = SpringUtils.getBean(javaClassUrl); + if (Func.isNotEmpty(bean) && bean instanceof BaseAdvicePlugin) { + PluginManager.addPlugin(javaClassUrl, (BaseAdvicePlugin) bean); + } + } else if (FuncBase.equals(enhanceJavaEntity.getJavaType(), EnhanceConstant.ENHANCE_TYPE_CLASS)) {//class方式 + Class enhanceClass = Class.forName(enhanceJavaEntity.getJavaClassUrl()); + BaseAdvicePlugin plugin = (BaseAdvicePlugin) enhanceClass.newInstance(); + PluginManager.addPlugin(enhanceJavaEntity.getJavaClassUrl(), plugin); + } + } catch (Exception e) { + log.error("初始化增强插件失败:{}", e); + } + } + + ); + + + //SQL插件--那个表单_功能 有sql增强 + List allSqlEntityList = sqlService.getAllSqlEnhance(); + allSqlEntityList.forEach(sqlEntity -> { + Long dbformId = sqlEntity.getDbformId(); + String buttonCode = sqlEntity.getButtonCode(); + String key = dbformId + "_" + buttonCode; + pluginSqlMap.merge(key, new ArrayList<>(Collections.singletonList(sqlEntity)), (oldValue, newValue) -> { + oldValue.addAll(newValue); + return oldValue; + }); + }); + + //初始化切面增强 + JeeLowCodeAnnotationAspectjJAVA.initPluginNames(pluginJavaMap); + JeeLowCodeAnnoaionAspectjSQL.initSqlPlugins(pluginSqlMap); + + Map enhanceCodeConfig = jeeLowCodeConfigService.getEnhanceCodeConfig(); + JeeLowCodeAnnotationAspectjJAVA.initAspectMethodNameMap(enhanceCodeConfig); + } + + + //获取字段枚举 + @Override + public Map getFieldCodeAndTypeEnum(Long dbformId) { + List fieldList = this.getFieldList(dbformId); + + return fieldList.stream() + .collect(Collectors.toMap( + FormFieldEntity::getFieldCode, + fieldEntity -> JeeLowCodeFieldTypeEnum.getByFieldType(fieldEntity.getFieldType()) + )); + } + + //解析sql + public Map explainSqlField(List modelList) { + Map> fieldMaps = new HashMap<>(); + Map> dictMaps = new HashMap<>(); + Map> queryMaps = new HashMap<>(); + Map> webMaps = new HashMap<>(); + + List fieldList = new ArrayList<>(); + List dictList = new ArrayList<>(); + List queryList = new ArrayList<>(); + List webList = new ArrayList<>(); + + + for (ExplainSqlFieldModel model : modelList) { + String fieldCode = model.getValue();//字段 nj_name + String alias = model.getAlias(); + String tableName = model.getTableName();//表名称 + String type = model.getType();//field=表字段 + String controlType = model.getControlType();//控件类型 //text控件 custom=自定义 + String value = model.getValue(); + + //控件类型 + if (Func.equals(controlType, "text") && Func.equals("field", type)) { + Long dbFormId = this.getDbFormIdByTableName(tableName); + if (Func.isEmpty(dbFormId)) { + continue; + } + //处理字段表 + Map fieldEntityMap = fieldMaps.get(tableName); + if (Func.isEmpty(fieldEntityMap)) { + List selectFieldList = this.getFieldList(dbFormId); + fieldEntityMap = selectFieldList.stream() + .collect(Collectors.toMap(FormFieldEntity::getFieldCode, entity -> entity)); + fieldMaps.put(tableName, fieldEntityMap); + } + FormFieldEntity fieldEntity = fieldEntityMap.get(fieldCode); + if (Func.isNotEmpty(fieldEntity)) { + if (Func.isNotEmpty(alias)) { + fieldEntity.setFieldCode(alias.toLowerCase()); + } + fieldList.add(fieldEntity); + } + + //处理字典表 + Map fieldDictEntityMap = dictMaps.get(tableName); + if (Func.isEmpty(fieldDictEntityMap)) { + List selectDictList = this.getFieldDictList(dbFormId); + fieldDictEntityMap = selectDictList.stream() + .collect(Collectors.toMap(FormFieldDictEntity::getFieldCode, entity -> entity)); + dictMaps.put(tableName, fieldDictEntityMap); + } + FormFieldDictEntity formFieldDictEntity = fieldDictEntityMap.get(fieldCode); + if (Func.isNotEmpty(formFieldDictEntity)) { + if (Func.isNotEmpty(alias)) { + formFieldDictEntity.setFieldCode(alias); + } + dictList.add(formFieldDictEntity); + } + + //处理查询表 + Map fieldQueryEntityMap = queryMaps.get(tableName); + if (Func.isEmpty(fieldQueryEntityMap)) { + List selectQueryList = this.getFieldQueryList(dbFormId); + fieldQueryEntityMap = selectQueryList.stream() + .collect(Collectors.toMap(FormFieldQueryEntity::getFieldCode, entity -> entity)); + queryMaps.put(tableName, fieldQueryEntityMap); + } + FormFieldQueryEntity formFieldQueryEntity = fieldQueryEntityMap.get(fieldCode); + if (Func.isNotEmpty(formFieldQueryEntity)) { + if (Func.isNotEmpty(alias)) { + formFieldQueryEntity.setFieldCode(alias); + } + queryList.add(formFieldQueryEntity); + } + + //处理web表 + Map fieldWebEntityMap = webMaps.get(tableName); + if (Func.isEmpty(fieldWebEntityMap)) { + List selectWebList = this.getFieldWebList(dbFormId); + fieldWebEntityMap = selectWebList.stream() + .collect(Collectors.toMap(FormFieldWebEntity::getFieldCode, entity -> entity)); + webMaps.put(tableName, fieldWebEntityMap); + } + FormFieldWebEntity formFieldWebEntity = fieldWebEntityMap.get(fieldCode); + if (Func.isNotEmpty(formFieldWebEntity)) { + if (Func.isNotEmpty(alias)) { + formFieldWebEntity.setFieldCode(alias); + } + webList.add(formFieldWebEntity); + } + + //处理结果返回 + + } else if (Func.equals(controlType, "custom")) { + if (!value.toLowerCase().contains(" as ")) {//没有别名的话,直接返回 + continue; + } + fieldCode = value.toLowerCase().split(" as ")[1]; + if (Func.isNotEmpty(alias)) { + fieldCode = alias; + } + fieldCode = fieldCode.toLowerCase().replaceAll(" ", "").trim(); + //构建空的 + FormFieldEntity fieldEntity = new FormFieldEntity(); + fieldEntity.setFieldCode(fieldCode); + fieldList.add(fieldEntity); + + FormFieldDictEntity fieldDictEntity = new FormFieldDictEntity(); + fieldDictEntity.setFieldCode(fieldCode); + dictList.add(fieldDictEntity); + + FormFieldQueryEntity formFieldQueryEntity = new FormFieldQueryEntity(); + formFieldQueryEntity.setFieldCode(fieldCode); + queryList.add(formFieldQueryEntity); + + FormFieldWebEntity formFieldWebEntity = new FormFieldWebEntity(); + formFieldWebEntity.setFieldCode(fieldCode); + webList.add(formFieldWebEntity); + + } + + } + + Map resultMap = new HashMap<>(); + resultMap.put("fieldList", fieldList); + resultMap.put("dictList", dictList); + resultMap.put("queryList", queryList); + resultMap.put("webList", webList); + return resultMap; + } + + //获取未在表单开发里面的表 + @Override + public List getNotInDbformTables() { + List resultVoList = new ArrayList<>(); + + String allTableNameSql = SqlHelper.getAllTableNameSql(); + List> dataMapList = frameSqlService.getSimpleData(allTableNameSql); + if (Func.isEmpty(dataMapList)) { + return resultVoList; + } + //获取所有表单的名称 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(FormEntity::getTableName); + List formEntityList = baseMapper.selectList(wrapper); + List dbFormTableNameList = formEntityList.stream() + .filter(Objects::nonNull) + .map(FormEntity::getTableName) + .map(String::toLowerCase) // 将字符串转换为小写 + .collect(Collectors.toList()); + // + List existList = new ArrayList<>(); + for (Map dataMap : dataMapList) { + String table_name = Func.getMap2Str(dataMap, "table_name").toLowerCase(); + if (dbFormTableNameList.contains(table_name)) { + continue; + } + if (existList.contains(table_name)) { + continue; + } + existList.add(table_name); + + //剔除部分开头的表 + boolean flag = false; + List excludeTableNamesList = JeeLowCodeProperties.getExcludeTableNames(); + if (excludeTableNamesList != null && !excludeTableNamesList.isEmpty()){ + for (String excludeTable : excludeTableNamesList) { + if (table_name.startsWith(excludeTable)) { + flag = true; + break; + } + } + } + if (flag) { + continue; + } + if (table_name.contains("$")) { + continue; + } + + //获取表备注 + String table_comment = ""; + String tableCommentSql = SqlHelper.getTableComment(table_name); + List> tableCommentMapList = frameSqlService.getSimpleData(tableCommentSql); + if (Func.isNotEmpty(tableCommentMapList)) { + Map tableCommentMap = tableCommentMapList.get(0); + table_comment = Func.getMap2Str(tableCommentMap, "table_comment"); + } + if (Func.isEmpty(table_comment)) { + table_comment = table_name; + } + + NotInDbformTablesVo vo = new NotInDbformTablesVo(); + vo.setTableName(table_name); + vo.setTableDescribe(table_comment); + resultVoList.add(vo); + } + return resultVoList; + } + + //获取表备注字段 + @Override + public List getTableFieldComment(String tableName) { + List resultVoList = new ArrayList<>(); + + String tableFieldCommentSql = SqlHelper.getTableFieldComment(tableName); + List> dataMapList = frameSqlService.getSimpleData(tableFieldCommentSql); + Map remarkMap = Func.dataMapList2ResultSet(dataMapList); + + Map columnMetaMap = dbManager.getDbColumnMetaMap(tableName, remarkMap); + for (Map.Entry entry : columnMetaMap.entrySet()) { + String key = entry.getKey(); + FieldModel model = entry.getValue(); + TableFieldModelVo vo = BeanUtil.copyProperties(model, TableFieldModelVo.class); + //处理fieldType + JeeLowCodeFieldTypeEnum fieldTypeEnum = model.getJavaFieldTypeList().get(0); + vo.setFieldType(fieldTypeEnum.getFieldType()); + resultVoList.add(vo); + } + return resultVoList; + } + + // 获取表单的字段对应的字典 + @Override + public Map> getFieldDict(Long dbFormId) { + List> fieldDictList = adapterMapper.getDbFormFieldDict(dbFormId); + if (FuncBase.isEmpty(fieldDictList)) { + return null; + } + Map> resultMap = new HashMap<>(); + // resultMap {"sex": {"1": "男","0": "女"},"flag": {"1": "是","0": "否"}} + for (Map fieldDict : fieldDictList) { + String fieldCode = JeeLowCodeUtils.getMap2Str(fieldDict, "field_code"); + String value = JeeLowCodeUtils.getMap2Str(fieldDict, "value"); + String label = JeeLowCodeUtils.getMap2Str(fieldDict, "label"); + if (FuncBase.isEmpty(fieldCode) || (FuncBase.isEmpty(value) && FuncBase.isEmpty(label))) { + continue; + } + if (resultMap.containsKey(fieldCode)) { + resultMap.get(fieldCode).put(value, label); + } else { + Map dictMap = new HashMap<>(); + dictMap.put(value, label); + resultMap.put(fieldCode, dictMap); + } + } + return resultMap; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java new file mode 100644 index 0000000..2a85896 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameServiceImpl.java @@ -0,0 +1,1369 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.jeelowcode.framework.plus.component.DbManager; +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.FormFieldForeignkeyMapper; +import com.jeelowcode.core.framework.mapper.FormRoleDataRuleMapper; +import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper; +import com.jeelowcode.core.framework.params.SaveImportDataParam; +import com.jeelowcode.core.framework.params.model.DataSourceConfigModel; +import com.jeelowcode.core.framework.params.model.DbFieldCodeListModel; +import com.jeelowcode.core.framework.params.model.ExcelImportDataDictModel; +import com.jeelowcode.core.framework.params.vo.SummaryTopModel; +import com.jeelowcode.core.framework.params.vo.role.DbFormRoleDataRuleVo; +import com.jeelowcode.core.framework.service.*; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoUpdateWrapper; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.plus.core.model.OrderByModel; +import com.jeelowcode.framework.plus.core.model.WhereModel; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.enums.*; +import com.jeelowcode.framework.utils.model.ExecuteEnhanceModel; +import com.jeelowcode.framework.utils.model.ResultDataModel; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.JSQLParserException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 低代码平台 + * 该接口下所有业务不用租户过滤 + */ +@Slf4j +@Service +public class FrameServiceImpl implements IFrameService { + + @Autowired + private IFrameSqlService sqlService; + + @Autowired + private JeeLowCodeMapper jeeLowCodeMapper; + + @Autowired + private IFormService dbFormService; + + @Autowired + private DbManager dbManager; + + @Autowired + private FormFieldForeignkeyMapper fieldForeignkeyMapper; + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + @Autowired + private IDbFormRoleService dbFormRoleService; + + @Autowired + private FormRoleDataRuleMapper roleDataRuleMapper; + + + @Autowired + private JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + @Autowired + private IExcelFileDataService excelDataService; + + @Autowired + private IExcelFileService excelFileService; + + @Autowired + private IJeeLowCodeAdapter proxyAdapter; + + @Autowired + private IReportService reportService; + + + //校验表是否存在 true=存在 false=不存在 + @JeeLowCodeTenantIgnore + @Override + public boolean checkTable(String tableName) { + //判断head表是否存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FormEntity::getTableName, tableName); + wrapper.select(FormEntity::getId); + List list = dbFormService.list(wrapper); + if (FuncBase.isNotEmpty(list)) { + return true; + } + + return copyCheckDbTable(tableName); + } + + //校验数据库是否存在 + @JeeLowCodeTenantIgnore + public boolean checkDbTable(String tableName) { + String sql = SqlHelper.getTableExistSql(tableName); + List> dataMapList = sqlService.getSimpleData(sql); + + if (FuncBase.isEmpty(dataMapList)) {//不存在 + return false; + } + Map dataMap = dataMapList.get(0); + Integer cou = JeeLowCodeUtils.getMap2Integer(dataMap, "cou"); + if (Func.equals(cou, -1)) { + cou = JeeLowCodeUtils.getMap2Integer(dataMap, "COU"); + } + if (FuncBase.isNotEmpty(cou) && cou > 0) { + return true; + } + return false; + + } + + @JeeLowCodeTenantIgnore + public boolean copyCheckDbTable(String tableName) { + String sql = SqlHelper.getTableExistSql(tableName); + List> dataMapList = sqlService.getSimpleData(sql); + + if (FuncBase.isEmpty(dataMapList)) {//不存在 + return false; + } + Map dataMap = dataMapList.get(0); + Integer cou = JeeLowCodeUtils.getMap2Integer(dataMap, "cou"); + if (Func.equals(cou, -1)) { + cou = JeeLowCodeUtils.getMap2Integer(dataMap, "COU"); + } + if (FuncBase.isNotEmpty(cou) && cou > 0) { + if (cou == 1) { + return false; + } + return true; + } + return false; + + } + + //同步数据到数据库 + @Override + public void syncDb(Long dbFormId, String syncModel) throws JSQLParserException { + + //获取表名 + FormEntity formEntity = dbFormService.getById(dbFormId); + + String tableName = formEntity.getTableName(); + String tableDescribe = formEntity.getTableDescribe(); + + //获取现有的字段 + List selectFieldList = dbFormService.getDbFieldList(dbFormId); + + List fieldModelList = selectFieldList.stream() + .map(field -> { + FieldModel fieldModel = new FieldModel(); + fieldModel.setFieldCode(field.getFieldCode()); + fieldModel.setFieldName(field.getFieldName()); + fieldModel.setFieldLen(field.getFieldLen()); + fieldModel.setFieldPointLen(field.getFieldPointLen()); + fieldModel.setFieldDefaultVal(field.getFieldDefaultVal()); + fieldModel.setFieldType(JeeLowCodeFieldTypeEnum.getByFieldType(field.getFieldType())); + fieldModel.setIsPrimaryKey(field.getIsPrimaryKey()); + fieldModel.setIsNull(field.getIsNull()); + return fieldModel; + }) + .collect(Collectors.toList()); + + //强制同步数据库-也就是先删除,再创建表 + boolean checkDbTable = checkDbTable(tableName); + if (!checkDbTable || (FuncBase.isNotEmpty(syncModel) && FuncBase.equals(syncModel, JeeLowCodeConstant.SYNC_DB_FORCE))) {//表不存在 或者 强制更新 + if (checkDbTable) {//数据库存在 ,则需要删除 + String dropTableDdl = SqlHelper.getDropTableSql(tableName); + sqlService.executeDDL(dropTableDdl); + } + List ddlList = SqlHelper.createTable(tableName, tableDescribe, fieldModelList); + ddlList.stream().forEach(ddl -> { + sqlService.executeDDL(ddl); + }); + + //处理索引 + this.handleIndex(dbFormId); + + //更新状态 + this.syncSuccess(dbFormId); + return; + } + //部分更新 + //获取备注字段 + String tableFieldCommentSql = SqlHelper.getTableFieldComment(tableName); + List> dataMapList = sqlService.getSimpleData(tableFieldCommentSql); + Map remarkMap = Func.dataMapList2ResultSet(dataMapList); + + List ddlList = new ArrayList<>(); + //数据库存在该表,需要判断那些是新增,那些是删除,那些 是修改 + Map columnMetaMap = dbManager.getDbColumnMetaMap(tableName, remarkMap); + List addColumnSql = dbManager.getAddColumnDdl(tableName, fieldModelList, columnMetaMap); + List updateColumnDdl = dbManager.getUpdateColumnDdl(tableName, fieldModelList, columnMetaMap); + List dropColumnDdl = dbManager.getDropColumnDdl(tableName, fieldModelList, columnMetaMap); + + ddlList.addAll(addColumnSql); + ddlList.addAll(updateColumnDdl); + ddlList.addAll(dropColumnDdl); + + ddlList.stream().forEach(ddl -> { + sqlService.executeDDL(ddl); + }); + + //处理索引 + this.handleIndex(dbFormId); + + //更新状态 + this.syncSuccess(dbFormId); + + } + + + /** + * 删除表 + * + * @param tableName + */ + + @Override + public boolean dropTable(String tableName) { + try { + String ddl = SqlHelper.getDropTableSql(tableName); + sqlService.executeDDL(ddl); + return true; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + @Override + public ResultDataModel getDataList(Long dbFormId,Map params){ + Page page=new Page(1,JeeLowCodeConstant.NOT_PAGE); + return this.getDataList(dbFormId,page,params); + } + + //获取表数据 + @Override + public ResultDataModel getDataList(Long dbFormId, Page page, Map params) { + FormEntity formEntity = dbFormService.getFormEntityById(dbFormId); + + SqlInfoQueryWrapper.Wrapper wrapper = this.getDataQueryWrapper(formEntity, params); + if (Func.isEmpty(wrapper)) { + return new ResultDataModel(); + } + + List> dataList = null; + Long total = 0L; + + long size = Func.isEmpty(page)?JeeLowCodeConstant.NOT_PAGE: page.getSize(); + if (size == JeeLowCodeConstant.NOT_PAGE) {//列表 + dataList = sqlService.getDataListByPlus(wrapper); + total = (long) dataList.size(); + } else {//分页 + IPage> pages = sqlService.getDataIPageByPlus(page, wrapper); + //处理字典回显 + dataList = pages.getRecords(); + total = pages.getTotal(); + } + + //处理blob等特殊字段 + Map fieldTypeEnumMap = dbFormService.getFieldCodeAndTypeEnum(dbFormId); + Func.handlePlusDataList(dataList, fieldTypeEnumMap); + + //返回结果 + return ResultDataModel.fomat(total, dataList); + + } + + //获取统计数据 + @Override + public ResultDataModel getDataSummaryList(Long dbFormId, Map params) { + FormEntity formEntity = dbFormService.getFormEntityById(dbFormId); + formEntity.setOrderbyConfig(null);//统计不用排序 + //处理底部统计 + List summaryBottomList = dbFormService.getSummarySettingList(dbFormId, "bottom"); + Map> resultBottomMap = new LinkedHashMap<>(); + if (Func.isNotEmpty(summaryBottomList)) { + Map> bottomMap = new HashMap(); + //并行流处理 + summaryBottomList.stream().forEach(summaryEntity -> { + Long id = summaryEntity.getId(); + String fieldCode = summaryEntity.getFieldCode(); + String summarySql = summaryEntity.getSummarySql(); + String summaryLabel = summaryEntity.getSummaryLabel(); + + SqlInfoQueryWrapper.Wrapper wrapper = getDataQueryWrapper(formEntity, params, Func.getSummaryFieldList(fieldCode, summarySql), true); + if (Func.isEmpty(wrapper)) { + return; + } + Map dataMap = sqlService.getDataOneByPlus(wrapper); + String value = Func.getMap2Str(dataMap, fieldCode); + Map labelMap = new HashMap<>(); + labelMap.put(summaryLabel, value); + bottomMap.put(id, labelMap); + }); + //取值 + summaryBottomList.stream().forEach(summaryEntity -> { + Long id = summaryEntity.getId(); + String fieldCode = summaryEntity.getFieldCode(); + Map labelMap = bottomMap.get(id); + if (Func.isEmpty(labelMap)) { + return; + } + resultBottomMap.put(fieldCode, labelMap); + }); + } + //处理顶部统计 + List topModelList = new ArrayList<>(); + List summaryTopList = dbFormService.getSummarySettingList(dbFormId, "top"); + if (Func.isNotEmpty(summaryTopList)) { + Map topMap = new ConcurrentHashMap(); + //并行流处理 + try { + Func.jeelowcodeForkJoinPool().submit(() -> summaryTopList.parallelStream().forEach(summaryEntity -> { + Long id = summaryEntity.getId(); + String summarySql = summaryEntity.getSummarySql(); + String summaryLabel = summaryEntity.getSummaryLabel(); + String summaryJson = summaryEntity.getSummaryJson(); + if (Func.isEmpty(summarySql)) { + return; + } + + SqlInfoQueryWrapper.Wrapper wrapper = getDataQueryWrapper(formEntity, params, false); + //拿到原sql,也就是数据源 + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + String sql = sqlFormatModel.getSql(); + Map sqlParams = sqlFormatModel.getDataMap(); + + String newSql = ""; + if (summarySql.contains(JeeLowCodeConstant.JEELOWCODE_SUMMARY_TABLE)) {//需要替换数据源 + newSql = summarySql.replace(JeeLowCodeConstant.JEELOWCODE_SUMMARY_TABLE, sql); + } else {//直接运行自定义sql + newSql = SqlHelper.getPublicSql(summarySql); + } + + List> dataMapList = sqlService.getDataListByPlus(newSql, sqlParams); + + SummaryTopModel topModel = new SummaryTopModel(); + topModel.setSummaryLabel(summaryLabel); + topModel.setSummaryJson(summaryJson); + topModel.setDataMapList(dataMapList); + topMap.put(id, topModel); + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + //按顺序取出来 + summaryTopList.stream().forEach(summaryEntity -> { + Long id = summaryEntity.getId(); + SummaryTopModel topModel = topMap.get(id); + if (Func.isEmpty(topModel)) { + return; + } + topModelList.add(topModel); + }); + + } + + //封装 + Map resultMap = new HashMap<>(); + resultMap.put("bottomMap", resultBottomMap); + resultMap.put("topList", topModelList); + + ResultDataModel resultDataModel = new ResultDataModel(); + resultDataModel.setRecords(Collections.singletonList(resultMap)); + return resultDataModel; + } + + + //获取表数据 -不分页 + @Override + public ResultDataModel getExportDataList(Long dbFormId, Map params) { + return dataList(dbFormId, params); + } + + + //公共列表 + private ResultDataModel dataList(Long dbFormId, Map params) { + FormEntity formEntity = dbFormService.getFormEntityById(dbFormId); + + SqlInfoQueryWrapper.Wrapper wrapper = this.getDataQueryWrapper(formEntity, params); + if (Func.isEmpty(wrapper)) { + return new ResultDataModel(); + } + List> dataMapList = sqlService.getDataListByPlus(wrapper); + + Long pid = Func.getMap2Long(params, "pid"); + if (Func.isNotEmpty(pid) && Func.equals(dbFormService.getTableType(dbFormId), TableTypeEnum.TREE.getType())) {//当前是树结构,并且是懒加载模式 + this.checkTreehasChildren(formEntity.getTableName(), dataMapList); + } + //处理blob等特殊字段 + Map fieldTypeEnumMap = dbFormService.getFieldCodeAndTypeEnum(dbFormId); + Func.handlePlusDataList(dataMapList, fieldTypeEnumMap); + return ResultDataModel.fomatList(dataMapList); + } + + + //获取表详情 + @Override + public ResultDataModel getDataDetail(Long dbFormId, Long id, Map params) { + FormEntity formEntity = dbFormService.getFormEntityById(dbFormId); + + //查所有 + SqlInfoQueryWrapper.Wrapper wrapper = this.getDataQueryWrapper(formEntity, params); + Map dataMap = sqlService.getDataOneByPlus(wrapper); + if (FuncBase.isEmpty(dataMap)) { + return new ResultDataModel(); + } + //处理blob等特殊字段 + Map fieldTypeEnumMap = dbFormService.getFieldCodeAndTypeEnum(dbFormId); + Func.handlePlusDataMap(dataMap, fieldTypeEnumMap); + + + String tableThemeTemplate = dbFormService.getTableThemeTemplate(dbFormId); + if (Func.equals(ThemeTemplateEnum.ERP.getType(), tableThemeTemplate)) {//当前是ERP模式,不用把附表查出来 + return ResultDataModel.fomatMap(dataMap); + } + Map subTableDataMap = new HashMap<>(); + //如果是主附表,需要把附表信息查出来 + List allSubTableNameList = dbFormService.getAllSubTableNameList(dbFormId); + if (Func.isNotEmpty(allSubTableNameList)) {//存在附表 + FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class); + + for (String subTable : allSubTableNameList) { + Long subDbFormId = dbFormService.getDbFormIdByTableName(subTable); + + //获取外键 + FormFieldForeignkeyEntity foreignkeyEntity = dbFormService.getFieldForeignkeyEntity(subDbFormId, formEntity.getTableName()); + if (Func.isEmpty(foreignkeyEntity)) { + continue; + } + Map subParamMap = new HashMap<>(); + subParamMap.put(foreignkeyEntity.getFieldCode(), id);//根据id来查询 + + Map bodyMap = new HashMap<>(); + bodyMap.put(ParamEnum.COLUMN.getCode(), "id"); + bodyMap.put(ParamEnum.ORDER.getCode(), "asc"); + subParamMap.put(ParamEnum.REQUEST_PARAM_BODY.getCode(), bodyMap); + + ResultDataModel subDataModel = proxyService.getDataList(subDbFormId,subParamMap); + + List> subDataList = subDataModel.getRecords(); + subTableDataMap.put(subTable, subDataList); + } + } + dataMap.put("jeelowcode_subtable_data", subTableDataMap); + + return ResultDataModel.fomatMap(dataMap); + } + + + //保存数据 + @Transactional(rollbackFor = Exception.class) + @Override + public ExecuteEnhanceModel saveData(Long dbFormId, Map params) { + FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class); + ExecuteEnhanceModel mainModel = proxyService.savePublicData(dbFormId, params); + List allSubTableNameList = dbFormService.getAllSubTableNameList(dbFormId); + if (Func.isEmpty(allSubTableNameList)) {//当前不是主表 + return mainModel; + } + //保存子表数据 + this.saveOrUpdateSubTableData(dbFormId, Func.toLong(mainModel.getId()), params); + return mainModel; + } + + //保存数据-批量新增 + @Transactional(rollbackFor = Exception.class) + @Override + public List saveBatchData(Long dbformId, List dataMapList) { + FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class); + List idList = new ArrayList<>(); + for (Map dataMap : dataMapList) { + ExecuteEnhanceModel enhanceModel = proxyService.savePublicData(dbformId, dataMap);//保存数据 + //保存子表数据 + this.saveOrUpdateSubTableData(dbformId, Func.toLong(enhanceModel.getId()), dataMap); + idList.add(enhanceModel.getId()); + } + return idList; + } + + + //增强切面 + @Transactional(rollbackFor = Exception.class) + @Override + public void saveImportData(Long dbFormId, SaveImportDataParam param) { + + Long fieldId = param.getFieldId(); + List entityList = param.getEntityList(); + ExcelImportDataDictModel dictModel = param.getDictModel(); + + // 获取数据库字段列表 + List dbFieldList = dbFormService.getDbFieldList(dbFormId); + if (Func.isEmpty(dbFieldList)) { + return; + } + Set fieldCodeSet = dbFieldList.stream().map(FormFieldEntity::getFieldCode).collect(Collectors.toSet()); + if (Func.isEmpty(fieldCodeSet)) { + return; + } + + // 获取表名 + String tableName = dbFormService.getTableName(dbFormId); + + //处理id + AtomicReference importState = new AtomicReference<>(1);//成功 + String redisKey = "excel:import:task_" + fieldId;//判断是否 + AtomicReference breakFlag = new AtomicReference<>(false); + try { + Func.jeelowcodeForkJoinPool().submit(() -> entityList.parallelStream().forEach(entity -> { + if (breakFlag.get()) {//说明退出 + return; + } + + String errorReason = ""; + String handleResult = ""; + try { + //单条入库 + this.saveImportDataMap(entity.getDataJson(), fieldCodeSet, dictModel, tableName); + handleResult = "SUCCESS"; + } catch (JeeLowCodeException e) { + errorReason = e.getMessage(); + handleResult = "FAIL"; + } catch (Exception e) { + errorReason = "数据格式有误"; + handleResult = "FAIL"; + } + String redisKeyData = "excel:import_data:task_" + fieldId + ":" + handleResult + ":" + entity.getId(); + jeeLowCodeRedisUtils.set(redisKeyData, handleResult, 2, TimeUnit.DAYS);//存2天 + + //更新表 + ExcelFileDataEntity updateEntity = new ExcelFileDataEntity(); + updateEntity.setId(entity.getId()); + updateEntity.setHandleState(YNEnum.Y.getCode());//已处理 + updateEntity.setHandleResult(handleResult); + updateEntity.setHandleTime(DateUtil.date()); + updateEntity.setErrorReason(errorReason); + excelDataService.updateById(updateEntity); + + + //判断是否存在暂停,取消 + if (!jeeLowCodeRedisUtils.hasKey(redisKey)) { + return; + } + String redisVal = (String) jeeLowCodeRedisUtils.get(redisKey); + if (Func.equals(redisVal, "STOP_TASK")) {//暂停 + jeeLowCodeRedisUtils.del(redisKey); + breakFlag.set(true); + } else if (Func.equals(redisVal, "CANCLE_TASK")) {//取消 + jeeLowCodeRedisUtils.del(redisKey); + log.error("手动取消导入任务:" + fieldId); + breakFlag.set(true); + importState.set(-2); + } + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + + //如果是取消的话,需要回滚事务 + Integer importStateInt = importState.get(); + if (importStateInt == -2) {//取消,需要删除数据 + excelFileService.rollback(fieldId); + } + + + //获取成功总数 + LambdaQueryWrapper successWrapper = new LambdaQueryWrapper<>(); + successWrapper.eq(ExcelFileDataEntity::getExcelFileId, fieldId); + successWrapper.eq(ExcelFileDataEntity::getHandleResult, "SUCCESS"); + long successNum = excelDataService.count(successWrapper); + + //获取失败总数 + LambdaQueryWrapper errorWrapper = new LambdaQueryWrapper<>(); + errorWrapper.eq(ExcelFileDataEntity::getExcelFileId, fieldId); + errorWrapper.eq(ExcelFileDataEntity::getHandleResult, "FAIL"); + long failNum = excelDataService.count(errorWrapper); + + + //1.存入标题 + ExcelFileEntity fileEntity = new ExcelFileEntity(); + fileEntity.setId(fieldId); + fileEntity.setImportState(Func.toStr(importState.get()));//修改状态 + fileEntity.setSuccessNum(Func.toInt(successNum)); + fileEntity.setErrorNum(Func.toInt(failNum)); + excelFileService.updateById(fileEntity); + + } + + //获取数据报表数据-分页 + @Override + public ResultDataModel getReportDataList(String reportCode, Page page, Map params) { + ReportEntity reportEntity = reportService.getReportEntityByCode(reportCode); + + SqlInfoQueryWrapper.Wrapper wrapper = this.getReportDataQueryWrapper(reportEntity, params); + if (Func.isEmpty(wrapper)) {//无数据源,可以单独 + return new ResultDataModel(); + } + + List> dataList = null; + Long total = 0L; + + long size = Func.isEmpty(page)?JeeLowCodeConstant.NOT_PAGE: page.getSize(); + if (size == JeeLowCodeConstant.NOT_PAGE) {//列表 + dataList = sqlService.getDataListByPlus(wrapper); + total = (long) dataList.size(); + } else {//分页 + IPage> pages = sqlService.getDataIPageByPlus(page, wrapper); + //处理字典回显 + dataList = pages.getRecords(); + total = pages.getTotal(); + } + + //处理字典回显 + reportService.dictView(reportEntity.getId(), dataList); + //返回结果 + return ResultDataModel.fomat(total, dataList); + } + + + /** + * 单个保存 + * + * @param dataJsonStr + * @param fieldCodeSet + * @param dictModel + * @param tableName + */ + private void saveImportDataMap(String dataJsonStr, Set fieldCodeSet, ExcelImportDataDictModel dictModel, String tableName) { + Map dataMap = Func.json2Bean(dataJsonStr, Map.class); + Map collect = dataMap.entrySet().stream().filter(item -> fieldCodeSet.contains(item.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));//移除不属于数据库的列 + this.handleDict(dictModel, collect);//处理字典,字典值回显 + proxyAdapter.initSaveDefaultData(collect);// 处理默认值 + sqlService.insertDataByPlus(tableName, collect);//入库 + } + + + //编辑数据 + @Transactional(rollbackFor = Exception.class) + @Override + public ExecuteEnhanceModel editData(Long dbFormId, Long dataId, Map params) { + FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class); + //编辑主表 + ExecuteEnhanceModel enhanceModel = proxyService.editPublicData(dbFormId, dataId, params); + + List allSubTableNameList = dbFormService.getAllSubTableNameList(dbFormId); + if (Func.isEmpty(allSubTableNameList)) {//当前不是主表 + return enhanceModel; + } + + //保存子表数据-新增或者修改 + this.saveOrUpdateSubTableData(dbFormId, dataId, params); + return enhanceModel; + + } + + //编辑数据-批量 + @Transactional(rollbackFor = Exception.class) + @Override + public void editBatchData(Long dbformId, List jsonObjectList) { + jsonObjectList.stream().forEach(jsonObject -> { + Long id = jsonObject.getLong("id"); + jsonObject.remove("id"); + this.editData(dbformId, id, jsonObject); + }); + } + + + //删除数据 + @Transactional(rollbackFor = Exception.class) + @Override + public ExecuteEnhanceModel delData(Long dbFormId, Map params) { + List dataIdList = (List) params.get("dataIdList"); + String whereFieldCode = (String) params.get("whereFieldCode"); + + + boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId); + if (!serviceTableFlag) {//当前不是业务表 + return null; + } + String tableName = dbFormService.getTableName(dbFormId);//获取表名 + + Integer tableType = dbFormService.getTableType(dbFormId); + if (Func.equals(tableType, TableTypeEnum.TREE.getType())) {//树结构 + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.in("pid", dataIdList); + where.eq("is_deleted", 0); + }) + .build(); + List> dataMapList = sqlService.getDataListByPlus(wrapper); + if (Func.isNotEmpty(dataMapList)) { + throw new JeeLowCodeException("存在子集,无法删除"); + } + } + + //删除主表 + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setColumn("is_deleted", -1) + .setWhere(where -> { + where.in(whereFieldCode, dataIdList); + }); + + sqlService.delDataByPlus(wrapper); + //如果是主附表的话,也要把附表关联的数据去掉 + if (Func.equals(TableTypeEnum.MAIN.getType(), tableType)) {//当前是主表,需要删除附表数据 + this.delSubData(tableName, dataIdList); + } + + ExecuteEnhanceModel saveDataModel = new ExecuteEnhanceModel(); + saveDataModel.setId(FuncBase.toStr(dataIdList)); + return saveDataModel; + } + + + //根据主表删除附表 + private void delSubData(String mainTableName, List mainDataIdList) { + //获取我的所有附表 + LambdaQueryWrapper foreignkeyWrapper = new LambdaQueryWrapper<>(); + foreignkeyWrapper.eq(FormFieldForeignkeyEntity::getMainTable, mainTableName); + foreignkeyWrapper.select(FormFieldForeignkeyEntity::getDbformId, FormFieldForeignkeyEntity::getFieldCode); + List entityList = fieldForeignkeyMapper.selectList(foreignkeyWrapper); + if (Func.isEmpty(entityList)) {//没有附表 + return; + } + + for (FormFieldForeignkeyEntity entity : entityList) { + Long sub_dbformId = entity.getDbformId(); + String sub_fieldCode = entity.getFieldCode(); + IFrameService proxyService = SpringUtils.getBean(IFrameService.class); + Map params = new HashMap<>(); + params.put("dataIdList", mainDataIdList); + params.put("whereFieldCode", sub_fieldCode); + proxyService.delData(sub_dbformId, params);//走通用删除 + } + + } + + + //公共保存 + public ExecuteEnhanceModel savePublicData(Long dbFormId, Map params) { + boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId); + if (!serviceTableFlag) {//当前不是业务表 + return null; + } + + String tableName = dbFormService.getTableName(dbFormId);//获取表名 + List fieldList = dbFormService.getDbFieldList(dbFormId); + + Map insertDataMap = Func.getSaveOrUpdateMap(fieldList, params); + + sqlService.insertDataByPlus(tableName, insertDataMap); + //处理子表 + + String resultId = JeeLowCodeUtils.getMap2Str(insertDataMap, "id"); + ExecuteEnhanceModel saveDataModel = new ExecuteEnhanceModel(); + saveDataModel.setId(resultId); + return saveDataModel; + } + + + //公共编辑 + public ExecuteEnhanceModel editPublicData(Long dbFormId, Long dataId, Map params) { + + boolean serviceTableFlag = dbFormService.isServiceTable(dbFormId); + if (!serviceTableFlag) {//当前不是业务表 + return null; + } + + String tableName = dbFormService.getTableName(dbFormId);//获取表名 + List fieldList = dbFormService.getDbFieldList(dbFormId);//所有字段 + + Map dataMap = Func.getSaveOrUpdateMap(fieldList, params); + dataMap.remove("id"); + + + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setMap(dataMap) + .setWhere(where -> { + where.eq("id", dataId); + }).build(); + + sqlService.updateDataByPlus(wrapper); + + ExecuteEnhanceModel saveDataModel = new ExecuteEnhanceModel(); + saveDataModel.setId(FuncBase.toStr(dataId)); + return saveDataModel; + } + + + //处理索引 + private void handleIndex(Long dbFormId) { + String tableName = dbFormService.getTableName(dbFormId); + List indexList = dbFormService.getIndexList(dbFormId); + if (FuncBase.isEmpty(dbFormService)) { + return; + } + //已存在的索引 + Set dbExistIndexNameSet = new HashSet<>(); + //当前需要新增的索引 + Set nowIndexNameSet = new HashSet<>(); + + String ddl = SqlHelper.getIndexAllByTableSql(tableName); + + List> dataMapList = sqlService.getSimpleData(ddl); + Set indexNames = dataMapList.stream() + .flatMap(dataMap -> Stream.of( + JeeLowCodeUtils.getMap2Str(dataMap, "index_name").toLowerCase(), + JeeLowCodeUtils.getMap2Str(dataMap, "INDEX_NAME").toLowerCase() + )) + .distinct() // 去重 + .filter(FuncBase::isNotEmpty) + .collect(Collectors.toCollection(HashSet::new)); // 使用HashSet以保证唯一性 + + dbExistIndexNameSet.addAll(indexNames); + //新增完成 + indexList.stream() + .filter(indexField -> FuncBase.isNotEmpty(indexField.getIndexFieldCodeList())) + .forEach(indexField -> { + nowIndexNameSet.add(indexField.getIndexName());//当前存在的 + this.addTableIndex(tableName, indexField.getIndexName(), FuncBase.toStrList(indexField.getIndexFieldCodeList()), dbExistIndexNameSet); + }); + //删除多余索引 + dbExistIndexNameSet.stream() + .filter(indexName -> !nowIndexNameSet.contains(indexName)) + .forEach(indexName -> this.dropTableIndex(tableName, indexName)); + + } + + + /** + * 新增/编辑数据 + * 主副表处理,保存主表的时候,要处理附表数据 + * + * @param mainDbFormId + * @param mainId + * @param params + */ + private void saveOrUpdateSubTableData(Long mainDbFormId, Long mainId, Map params) { + //如果是erp模式的话,是自己单独新增的,不用走该方法 + String tableThemeTemplate = dbFormService.getTableThemeTemplate(mainDbFormId); + if (Func.equals(ThemeTemplateEnum.ERP.getType(), tableThemeTemplate)) {//当前是ERP模式 + return; + } + + FrameServiceImpl proxyService = SpringUtils.getBean(FrameServiceImpl.class); + //如果当前是主表,则要判断附表问题 + params.put("id", mainId); + String mainTableName = dbFormService.getTableName(mainDbFormId); + + //获取所有子表 + List subTableNameList = dbFormService.getAllSubTableNameList(mainDbFormId); + if (Func.isEmpty(subTableNameList)) { + return; + } + for (String subTableName : subTableNameList) { + if (!params.containsKey(subTableName)) {//没有参数,则不做处理 + continue; + } + + //子表参数 + List> subParamList = (List) params.get(subTableName); + if (Func.isEmpty(subParamList)) {//有key,但是是空的,[] 说明全部情况了,则需要删除 + subParamList = new ArrayList<>(); + } + + //存储参数中的所有id + Set idSet = Func.list2SetId(subParamList); + + //获取子表基本信息 + FormEntity sudFormEntity = dbFormService.getFormEntityByName(subTableName); + Long subFormId = sudFormEntity.getId(); + + //找到外键列 + FormFieldForeignkeyEntity foreignkeyEntity = dbFormService.getFieldForeignkeyEntity(subFormId, mainTableName); + if (Func.isEmpty(foreignkeyEntity)) { + continue; + } + + String subFieldCode = foreignkeyEntity.getFieldCode(); + String mainField = foreignkeyEntity.getMainField(); + + //值 + Object obj = params.get(mainField); + if (Func.isEmpty(obj)) {//值为空则跳过 + continue; + } + + //清除已经删除的旧数据 + List> oldDataList = sqlService.getDataListByField(subTableName, subFieldCode, obj, Func.toStrList("id")); + oldDataList.stream() + .filter(oldData -> !idSet.contains(Func.getMap2Str(oldData, "id"))) + .forEach(oldData -> { + sqlService.baseDelDataById(subTableName, Func.toLong(Func.getMap2Str(oldData, "id"))); + }); + + //遍历每一行进行新增、修改操作 + for (Map subParam : subParamList) { + subParam.put(subFieldCode, obj);//设置值 + + Long subId = Func.getMap2Long(subParam, "id"); + if (Func.isEmpty(subId)) {//没有id,则是新增 + proxyService.savePublicData(subFormId, subParam);//保存子表 + } else { + proxyService.editPublicData(subFormId, subId, subParam);//保存子表 + } + } + } + + + } + + + /** + * 获取查询构造 + * + * @param formEntity + * @param params 参数 + * selfSelectSqlList 自定义sqlList + * @return + */ + private SqlInfoQueryWrapper.Wrapper getDataQueryWrapper(FormEntity formEntity, Map params) { + return this.getDataQueryWrapper(formEntity, params, null, true); + } + + private SqlInfoQueryWrapper.Wrapper getDataQueryWrapper(FormEntity formEntity, Map params, boolean aliasFlag) { + return this.getDataQueryWrapper(formEntity, params, null, aliasFlag); + } + + private SqlInfoQueryWrapper.Wrapper getDataQueryWrapper(FormEntity formEntity, Map params, List selfSelectSqlList, boolean aliasFlag) { + SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper(); + //表视图 + Integer tableClassify = formEntity.getTableClassify(); + if (Func.equals(tableClassify, TableClassifyEnum.SERVICE.getType())) {//业务表 + String tableName = formEntity.getTableName(); + queryWrapper.setTableName(tableName); + List select = Func.isNotEmpty(selfSelectSqlList) ? selfSelectSqlList : this.getFieldList(formEntity.getId(), params); + //查询列 + queryWrapper.select(select, aliasFlag); + queryWrapper.setWhere(where -> { + where.eq("is_deleted", 0); + }).build(); + } else {//显示表-视图 + String dataSourcesConfigJsonStr = formEntity.getDataSourcesConfig(); + if (Func.isEmpty(dataSourcesConfigJsonStr)) {//没有配置数据源 + return null; + } + DataSourceConfigModel dataSourceConfigModel = Func.json2Bean(dataSourcesConfigJsonStr, DataSourceConfigModel.class); + if (Func.isEmpty(dataSourceConfigModel) || Func.isEmpty(dataSourceConfigModel.getExecuteSql())) { + return null; + } + //直接执行数据源 + queryWrapper.setTableSql(dataSourceConfigModel.getExecuteSql()); + } + + //处理排序排序================ + this.handleOrderBy(queryWrapper, params, formEntity.getOrderbyConfig()); + + //处理默认条件============ + this.handleDefaultWhere(queryWrapper, formEntity.getWhereConfig()); + + //处理搜索where================= + this.handleWhere(formEntity.getId(), queryWrapper, params); + + //处理租户数据权限 + this.handleTenantDataRole(formEntity.getId(), queryWrapper, params); + + return queryWrapper; + } + + /** + * 获取报表wrapper + * + * @param reportEntity + * @param params + * @return + */ + private SqlInfoQueryWrapper.Wrapper getReportDataQueryWrapper(ReportEntity reportEntity, Map params) { + SqlInfoQueryWrapper.Wrapper queryWrapper = SqlHelper.getQueryWrapper(); + //自定义sql + String dataSourcesConfigJsonStr = reportEntity.getDataSourcesConfig(); + if (Func.isEmpty(dataSourcesConfigJsonStr)) {//没有配置数据源 + return null; + } + DataSourceConfigModel dataSourceConfigModel = Func.json2Bean(dataSourcesConfigJsonStr, DataSourceConfigModel.class); + if (Func.isEmpty(dataSourceConfigModel) || Func.isEmpty(dataSourceConfigModel.getExecuteSql())) { + return null; + } + //直接执行数据源 + queryWrapper.setTableSql(dataSourceConfigModel.getExecuteSql()); + + //处理排序排序================ + this.handleOrderBy(queryWrapper, params, null); + + //处理搜索where================= + List> whereFieldMapList = jeeLowCodeMapper.getReportWhereFieldList(reportEntity.getId()); + this.handleWhere(whereFieldMapList, queryWrapper, params); + + return queryWrapper; + } + + + //处理排序 + private void handleOrderBy(SqlInfoQueryWrapper.Wrapper wrapper, Map params, String orderbyConfigStr) { + Map seleOrderByMap = (Map) params.get(ParamEnum.REQUEST_PARAM_BODY.getCode()); + if (Func.isNotEmpty(seleOrderByMap)) { + String column = JeeLowCodeUtils.getMap2Str(seleOrderByMap, ParamEnum.COLUMN.getCode()); + String order = JeeLowCodeUtils.getMap2Str(seleOrderByMap, ParamEnum.ORDER.getCode()); + if (FuncBase.isNotEmpty(column) && FuncBase.isNotEmpty(order) && (FuncBase.equals(order, "desc") || FuncBase.equals(order, "asc"))) { + if (FuncBase.equals(order, "desc")) { + wrapper.orderByDesc(column); + } else { + wrapper.orderByAsc(column); + } + return; + } + } + + + String column = JeeLowCodeUtils.getMap2Str(params, ParamEnum.COLUMN.getCode()); + String order = JeeLowCodeUtils.getMap2Str(params, ParamEnum.ORDER.getCode()); + if (FuncBase.isNotEmpty(column) && FuncBase.isNotEmpty(order) && (FuncBase.equals(order, "desc") || FuncBase.equals(order, "asc"))) { + if (FuncBase.equals(order, "desc")) { + wrapper.orderByDesc(column); + } else { + wrapper.orderByAsc(column); + } + return; + } + if (Func.isEmpty(orderbyConfigStr)) { + return; + } + + //默认id 倒序排序 + List orderByList = JSONUtil.toList(orderbyConfigStr, OrderByModel.class); + + //遍历 + orderByList.forEach(model -> { + String orderBy = model.getOrder(); + String orderByColumn = model.getColumn(); + switch (orderBy) { + case "asc": + wrapper.orderByAsc(orderByColumn); + break; + default: + wrapper.orderByDesc(orderByColumn); + } + }); + + } + + //处理默认where + private void handleDefaultWhere(SqlInfoQueryWrapper.Wrapper wrapper, String whereConfig) { + if (Func.isEmpty(whereConfig)) { + return; + } + + + WhereModel whereModel = Func.json2Bean(whereConfig, WhereModel.class); + if (Func.isEmpty(whereModel)) { + return; + } + List whereList = whereModel.getWhereList(); + if (Func.isEmpty(whereList)) { + return; + } + + + String applySql = whereList.stream() + .filter(wheresql -> !wheresql.trim().isEmpty()) // 过滤掉空或只含空白字符的字符串 + .collect(Collectors.joining(" AND ")); + + if (Func.isEmpty(applySql)) { + return; + } + + //拼接 + wrapper.setWhere(where -> { + where.apply(applySql); + }).build(); + } + + + //处理where + private void handleWhere(Long dbFormId, SqlInfoQueryWrapper.Wrapper wrapper, Map params) { + List> whereFieldMapList = jeeLowCodeMapper.getDbWhereFieldList(dbFormId); + handleWhere(whereFieldMapList, wrapper, params); + } + + private void handleWhere(List> whereFieldMapList, SqlInfoQueryWrapper.Wrapper wrapper, Map params) { + //开启查询的列 + if (FuncBase.isEmpty(whereFieldMapList)) { + return; + } + //如果是多选的时候,要做特殊处理,因为多选的时候 ,数据库存储的是 11,22,33 + String moreSelectFieldListStr = (String) params.get(ParamEnum.MORE_SELECT_FIELD.getCode()); + List moreSelectFieldList = null; + if (FuncBase.isNotEmpty(moreSelectFieldListStr)) { + moreSelectFieldList = FuncBase.toStrList(moreSelectFieldListStr); + } + + for (Map whereFieldMap : whereFieldMapList) { + String field_code = whereFieldMap.get("field_code");//字段 + String field_type = whereFieldMap.get("field_type");//类型 + String query_mode = whereFieldMap.get("query_mode");//EQ LIKE + JeeLowCodeFieldTypeEnum fieldTypeEnum = JeeLowCodeFieldTypeEnum.getByFieldType(field_type); + + Object obj = params.get(field_code); + if (FuncBase.isEmpty(obj)) { + continue; + } + //类型转换 111,22,33 + if (FuncBase.equals(query_mode, QueryModelEnum.EQ.getCode())) {//精确 + if (FuncBase.isNotEmpty(moreSelectFieldList) && moreSelectFieldList.contains(field_code)) {//在多选里面 + Object finalObj = Func.paramParse2Object(obj, fieldTypeEnum); + wrapper.setWhere(where -> { + where.and(param -> { + param.eq(field_code, finalObj) + .or().likeLeft(field_code, "," + finalObj) + .or().likeRight(field_code, finalObj + ",") + .or().like(field_code, "," + finalObj + ","); + }); + }); + } else { + Object finalObj = Func.paramParse2Object(obj, fieldTypeEnum); + wrapper.setWhere(where -> { + where.eq(field_code, finalObj); + }); + } + + } else if (FuncBase.equals(query_mode, QueryModelEnum.RANGE.getCode())) {//范围 + String listStr = FuncBase.toStr(obj); + List paramList = FuncBase.toStrList(listStr);// 1<=x<2 + Object leftVal = paramList.get(0); + Object rightVal = paramList.get(1); + Object finalLeftVal1 = Func.paramParse2Object(leftVal, fieldTypeEnum); + Object finalRightVal1 = Func.paramParse2Object(rightVal, fieldTypeEnum); + + if (FuncBase.isNotEmpty(finalLeftVal1) && FuncBase.isNotEmpty(finalRightVal1)) { + wrapper.setWhere(where -> { + where.between(field_code, finalLeftVal1, finalRightVal1);//区间 + }); + } else if (FuncBase.isNotEmpty(finalLeftVal1)) {//>= + wrapper.setWhere(where -> { + where.ge(field_code, finalLeftVal1); + }); + + } else if (FuncBase.isNotEmpty(finalRightVal1)) {//<= + wrapper.setWhere(where -> { + where.le(field_code, finalRightVal1); + }); + } + } else { + Object objVal = Func.paramParse2Object(obj, fieldTypeEnum); + wrapper.setWhere(where -> { + if (objVal instanceof DateTime) { + where.eq(field_code, objVal); + } else { + where.like(field_code, objVal); + } + }); + } + } + + } + + + //处理租户数据权限 + private void handleTenantDataRole(Long dbFormId, SqlInfoQueryWrapper.Wrapper wrapper, Map params) { + //获取当前的租户 + String tenantId = jeeLowCodeAdapter.getTenantId(); + if (Func.isEmpty(tenantId) || Func.equals(tenantId, "-1")) { + return;//没有登录 + } + List dbFormRoleDataRuleVoList = dbFormRoleService.listRoleData(tenantId, dbFormId); + if (Func.isEmpty(dbFormRoleDataRuleVoList)) { + return; + } + + for (DbFormRoleDataRuleVo vo : dbFormRoleDataRuleVoList) { + String enableState = vo.getEnableState(); + String ruleSql = vo.getRuleSql(); + if (Func.isEmpty(ruleSql)) { + continue; + } + if (Func.isNotEmpty(enableState) && Func.equals(enableState, YNEnum.N.getCode())) { + continue; + } + //下面是需要执行的语句 + //替换SQL里面的值,全部都是从当前用户里面获取 + String finalRuleSql = Func.replaceParam(ruleSql, params, null, jeeLowCodeAdapter); + wrapper.setWhere(where -> { + where.apply(finalRuleSql); + }); + } + } + + /** + * 同步完成,更新状态 + * + * @param dbFormId + */ + private void syncSuccess(Long dbFormId) { + //更新状态 + FormEntity updateEntity = new FormEntity(); + updateEntity.setId(dbFormId); + updateEntity.setIsDbSync(YNEnum.Y.getCode()); + dbFormService.updateById(updateEntity); + } + + + /** + * 添加索引 + * + * @param tableName + * @param indexName + * @param fieldCodeList + */ + private void addTableIndex(String tableName, String indexName, List fieldCodeList, Set dbExistIndexNameSet) { + if (dbExistIndexNameSet.contains(indexName)) {//存在,则删除 + this.dropTableIndex(tableName, indexName); + } + //删除完成,然后新建 + String ddl = SqlHelper.createIndex(tableName, indexName, fieldCodeList); + sqlService.executeDDL(ddl); + } + + /** + * 删除索引 + * + * @param tableName + * @param indexName + */ + private void dropTableIndex(String tableName, String indexName) { + String ddl = SqlHelper.getDropIndex(tableName, indexName); + sqlService.executeDDL(ddl); + } + + + /** + * 获取表格显示列 + * + * @param dbFormId + * @return + */ + private List getFieldList(Long dbFormId, Map params) { + DbFieldCodeListModel dbFieldCodeList = dbFormService.getDbFieldCodeList(dbFormId); + List selectList = dbFieldCodeList.getSelectList(); + + if (FuncBase.isNotEmpty(params)) {//默认 + //判断是否是字典 系统特定参与默认都是jeeLowCode_开头 + List list = JeeLowCodeUtils.getMap2List(params, ParamEnum.DICT_TABLE_FIELD.getCode());//自定义列 id,name,age,sex id,name,age,sex id,name + if (FuncBase.isNotEmpty(list)) {//查字典数据 + //取交集 + List intersectionList = selectList.stream() + .filter(list::contains) + .distinct() + .collect(Collectors.toList()); + + return intersectionList; + } + } + + return selectList; + } + + /** + * 校验树表是否有子集 + * + * @param tableName + * @param treeDataList + */ + private void checkTreehasChildren(String tableName, List> treeDataList) { + if (Func.isEmpty(treeDataList)) { + return; + } + try { + Func.jeelowcodeForkJoinPool().submit(() -> treeDataList.parallelStream().forEach(dataMap -> { + Long id = Func.getMap2Long(dataMap, "id"); + + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select("id") + .setWhere(where -> { + where.eq("is_deleted", 0); + where.eq("pid", id); + }).build(); + Map subMap = sqlService.getDataOneByPlus(wrapper); + boolean hasChildren = Func.isNotEmpty(subMap); + dataMap.put("hasChildren", hasChildren); + dataMap.put("leaf", !hasChildren); + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + } + + //处理字典 + private void handleDict(ExcelImportDataDictModel dictModel, Map dataMap) { + if (Func.isEmpty(dictModel)) { + return; + } + Map> dictMaps = dictModel.getDictMaps(); + List keyList = dictModel.getKeyList(); + if (Func.isEmpty(keyList)) { + return; + } + + for (String key : keyList) { + String val = JeeLowCodeUtils.getMap2Str(dataMap, key);//值 男 + if (FuncBase.isEmpty(val)) { + continue; + } + Map valMap = dictMaps.get(key);// 男-》1 + String valStr = valMap.get(val); + if (FuncBase.isEmpty(valStr)) { + continue; + } + dataMap.put(key, valStr); + } + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameSqlServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameSqlServiceImpl.java new file mode 100644 index 0000000..a598f25 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/FrameSqlServiceImpl.java @@ -0,0 +1,284 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.mapper.JeeLowCodeSqlMapper; +import com.jeelowcode.core.framework.service.IFrameSqlService; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoDeleteWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoUpdateWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 低代码平台 + * 该接口下所有业务不用租户过滤 + */ + +@Service +public class FrameSqlServiceImpl implements IFrameSqlService { + + @Autowired + private JeeLowCodeSqlMapper sqlMapper; + + + @Override + public void executeDDL(String ddlSql){ + sqlMapper.executeDDL(ddlSql); + } + + //获取数据,不做租户等其他处理 + @Override + public List> getSimpleData(String sql){ + + Map dataMap=new HashMap<>(); + return sqlMapper.selectData(sql,dataMap); + } + + //转为ew. + private String formatSql2EW(String sql){ + String replacedSql = sql.replaceAll("(? getDataOneByPlus(SqlInfoQueryWrapper.Wrapper wrapper){ + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + List> dataMapList = sqlMapper.selectData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + if(FuncBase.isEmpty(dataMapList)){ + return new HashMap<>(); + } + return dataMapList.get(0); + } + //多个 + @Override + public List> getDataListByPlus(SqlInfoQueryWrapper.Wrapper wrapper){ + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + List> dataMapList = sqlMapper.selectData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + if(FuncBase.isEmpty(dataMapList)){ + return dataMapList; + } + return dataMapList; + } + @Override + public List> getDataListByPlus(String sql,Map params){ + String publicSql = SqlHelper.getPublicSql(sql); + + List> dataMapList = sqlMapper.selectData(formatSql2EW(publicSql),params); + return dataMapList; + } + + //分页 + @Override + public IPage> getDataIPageByPlus(IPage page,SqlInfoQueryWrapper.Wrapper wrapper){ + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + IPage> pages = sqlMapper.selectPageData(page, formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + return pages; + } + + //修改数据相关 + @Override + public void updateDataByPlus(SqlInfoUpdateWrapper.Wrapper wrapper){ + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + sqlMapper.updateData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + } + + //新增数据相关 + @Override + public void insertDataByPlus(String tableName, Map addDataMap){ + SqlFormatModel sqlFormatModel = SqlHelper.getInsertWrapper() + .setTableName(tableName) + .setMap(addDataMap) + .buildSql(); + sqlMapper.insertData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + } + + + + //真实-删除数据 + @Override + public void delRealDataByPlus(SqlInfoDeleteWrapper.Wrapper wrapper){ + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + sqlMapper.deleteData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + } + //逻辑-删除数据 + @Override + public void delDataByPlus(SqlInfoUpdateWrapper.Wrapper wrapper){ + wrapper.setColumn("is_deleted",-1); + SqlFormatModel sqlFormatModel = wrapper.buildSql(); + sqlMapper.updateData(formatSql2EW(sqlFormatModel.getSql()),sqlFormatModel.getDataMap()); + } + + //---------------------------------------------------------- + //获取表数据 + @Override + public List> getTableDataList(String tableName){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .build(); + List> resultList = this.getDataListByPlus(wrapper); + return resultList; + } + @Override + public List> getTableDataList(String tableName,List fieldList){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList,true) + .build(); + return this.getDataListByPlus(wrapper); + } + + //根据Id获取数据 + @Override + public Map getTableDataById(String tableName,Long id){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq("id", id); + }) + .build(); + return this.getDataOneByPlus(wrapper); + } + @Override + public Map getTableDataById(String tableName,Long id,List fieldList){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList,true) + .setWhere(where -> { + where.eq("id", id); + }) + .build(); + return this.getDataOneByPlus(wrapper); + } + + //自定义根据某一个字段查询--单条 + @Override + public Map getDataOneByField(String tableName, String whereFieldName, Object whereFieldValue){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }) + .build(); + + return this.getDataOneByPlus(wrapper); + } + @Override + public Map getDataOneByField(String tableName, String whereFieldName, Object whereFieldValue,List fieldList){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList,true) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }) + .build(); + return this.getDataOneByPlus(wrapper); + } + + //自定义根据某一个字段查询--多条 + @Override + public List> getDataListByField(String tableName, String whereFieldName, Object whereFieldValue){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }) + .build(); + return this.getDataListByPlus(wrapper); + } + @Override + public List> getDataListByField(String tableName, String whereFieldName, Object whereFieldValue,List fieldList){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper() + .setTableName(tableName) + .select(fieldList,true) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }) + .build(); + + return this.getDataListByPlus(wrapper); + } + + //公共修改 + @Override + public void baseUpdateDataById(String tableName,Map dataMap,Long id){ + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setMap(dataMap) + .setWhere(where -> { + where.eq("id", id); + }).build(); + this.updateDataByPlus(wrapper); + } + public void baseUpdateDataByField(String tableName,Map dataMap,String whereFieldName, Object whereFieldValue){ + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setMap(dataMap) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }).build(); + this.updateDataByPlus(wrapper); + } + + //公共删除-逻辑 + @Override + public void baseDelDataById(String tableName,Long id){ + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq("id",id); + }); + this.delDataByPlus(wrapper); + } + @Override + public void baseDelDataByField(String tableName,String whereFieldName, Object whereFieldValue){ + SqlInfoUpdateWrapper.Wrapper wrapper = SqlHelper.getUpdateWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }); + this.delDataByPlus(wrapper); + } + + //公共删除-真实 + @Override + public void baseDelRealData(String tableName,Long id){ + SqlInfoDeleteWrapper.Wrapper wrapper = SqlHelper.getDeleteWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq("id", id); + }).build(); + this.delRealDataByPlus(wrapper); + } + @Override + public void baseDelRealDataByField(String tableName,String whereFieldName, Object whereFieldValue){ + SqlInfoDeleteWrapper.Wrapper wrapper = SqlHelper.getDeleteWrapper() + .setTableName(tableName) + .setWhere(where -> { + where.eq(whereFieldName, whereFieldValue); + }).build(); + this.delRealDataByPlus(wrapper); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDbFormServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDbFormServiceImpl.java new file mode 100644 index 0000000..5215057 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDbFormServiceImpl.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.GroupDbFormEntity; +import com.jeelowcode.core.framework.mapper.GroupDbFormMapper; +import com.jeelowcode.core.framework.service.IGroupDbFormService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + + +/** + * 表单开发分组 + */ +@Service +public class GroupDbFormServiceImpl extends ServiceImpl implements IGroupDbFormService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDesFormServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDesFormServiceImpl.java new file mode 100644 index 0000000..67cf303 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupDesFormServiceImpl.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.jeelowcode.core.framework.entity.GroupDesFormEntity; +import com.jeelowcode.core.framework.mapper.GroupDesFormMapper; +import com.jeelowcode.core.framework.service.IGroupDesFormService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + + +/** + * 表单设计分组 + */ +@Service +public class GroupDesFormServiceImpl extends ServiceImpl implements IGroupDesFormService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupReportServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupReportServiceImpl.java new file mode 100644 index 0000000..6509e58 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/GroupReportServiceImpl.java @@ -0,0 +1,30 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jeelowcode.core.framework.entity.GroupReportEntity; +import com.jeelowcode.core.framework.mapper.GroupReportMapper; +import com.jeelowcode.core.framework.service.IGroupReportService; +import org.springframework.stereotype.Service; + + +/** + * 报表统计分组 + */ +@Service +public class GroupReportServiceImpl extends ServiceImpl implements IGroupReportService { + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/HistoryServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/HistoryServiceImpl.java new file mode 100644 index 0000000..047da66 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/HistoryServiceImpl.java @@ -0,0 +1,288 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + + +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.HistoryDbFormMapper; +import com.jeelowcode.core.framework.mapper.HistoryDesFormMapper; +import com.jeelowcode.core.framework.params.vo.history.HistoryJavaVo; +import com.jeelowcode.core.framework.params.vo.history.HistoryJsVo; +import com.jeelowcode.core.framework.params.vo.history.HistorySqlVo; +import com.jeelowcode.core.framework.service.IHistoryService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jeelowcode.core.framework.entity.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 历史 + */ +@Service +public class HistoryServiceImpl implements IHistoryService { + + @Autowired + private HistoryDesFormMapper historyDesFormMapper; + + @Autowired + private HistoryDbFormMapper historyDbFormMapper; + + //获取表单设计历史记录 + @Override + public IPage getDesFormPages(Long desformId, Page page) { + + //剔除最后一条 + Long maxId = null; + long current = page.getCurrent(); + if (current == 1) {//第一页,需要剔除第一条 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("MAX(id) as maxId"); + queryWrapper.eq("desform_id", desformId); + Map resultMap = historyDesFormMapper.selectMaps(queryWrapper).get(0); + if (FuncBase.isNotEmpty(resultMap)) { + maxId = JeeLowCodeUtils.getMap2Long(resultMap, "maxId"); + } + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(HistoryDesformEntity::getDesformId, desformId); + wrapper.ne(FuncBase.isNotEmpty(maxId), HistoryDesformEntity::getId, maxId); + wrapper.orderByDesc(HistoryDesformEntity::getId); + wrapper.select(HistoryDesformEntity::getId, + HistoryDesformEntity::getDesformName, + HistoryDesformEntity::getGroupDesformId, + HistoryDesformEntity::getCreateUserName, + HistoryDesformEntity::getCreateTime); + Page pages = historyDesFormMapper.selectPage(page, wrapper); + return pages; + } + + //获取表单设计历史记录详情 + @Override + public HistoryDesformEntity getDesFormInfo(Long historyId) { + return historyDesFormMapper.selectById(historyId); + } + + + //获取历史记录-JS增强 + @Override + public IPage getHistoryJsPages(Long enhanceJsId, Page page) { + + //剔除最后一条 + Long maxId = null; + long current = page.getCurrent(); + if (current == 1) {//第一页,需要剔除第一条 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("MAX(id) as maxId"); + queryWrapper.eq("service_type", "js"); + queryWrapper.eq("service_id", enhanceJsId); + Map resultMap = historyDbFormMapper.selectMaps(queryWrapper).get(0); + if (FuncBase.isNotEmpty(resultMap)) { + maxId = JeeLowCodeUtils.getMap2Long(resultMap, "maxId"); + } + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(HistoryDbformEntity::getServiceId, enhanceJsId); + wrapper.eq(HistoryDbformEntity::getServiceType, "js"); + wrapper.ne(FuncBase.isNotEmpty(maxId), HistoryDbformEntity::getId, maxId); + wrapper.orderByDesc(HistoryDbformEntity::getId); + wrapper.select(HistoryDbformEntity::getId, + HistoryDbformEntity::getServiceId, + HistoryDbformEntity::getServiceJson, + HistoryDbformEntity::getCreateTime, + HistoryDbformEntity::getCreateUserName); + Page pages = historyDbFormMapper.selectPage(page, wrapper); + + List voList = new ArrayList<>(); + List records = pages.getRecords(); + for (HistoryDbformEntity entity : records) { + String serviceJson = entity.getServiceJson(); + EnhanceJsEntity jsEntity = Func.json2Bean(serviceJson, EnhanceJsEntity.class); + + HistoryJsVo vo = new HistoryJsVo(); + vo.setId(entity.getId()); + vo.setEnhanceJsId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setJsType(jsEntity.getJsType()); + vo.setJsJson(jsEntity.getJsJson()); + voList.add(vo); + } + pages.setRecords(voList); + + return pages; + } + + @Override + public HistoryJsVo getHistoryJsInfo(Long historyId) { + HistoryDbformEntity entity = historyDbFormMapper.selectById(historyId); + + String serviceJson = entity.getServiceJson(); + EnhanceJsEntity jsEntity = Func.json2Bean(serviceJson, EnhanceJsEntity.class); + + HistoryJsVo vo = new HistoryJsVo(); + vo.setId(entity.getId()); + vo.setEnhanceJsId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setJsType(jsEntity.getJsType()); + vo.setJsJson(jsEntity.getJsJson()); + return vo; + } + + + //获取历史记录-Sql增强 + @Override + public IPage getHistorySqlPages(Long enhanceSqlId, Page page) { + //剔除最后一条 + Long maxId = null; + long current = page.getCurrent(); + if (current == 1) {//第一页,需要剔除第一条 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("MAX(id) as maxId"); + queryWrapper.eq("service_type", "sql"); + queryWrapper.eq("service_id", enhanceSqlId); + Map resultMap = historyDbFormMapper.selectMaps(queryWrapper).get(0); + if (FuncBase.isNotEmpty(resultMap)) { + maxId = JeeLowCodeUtils.getMap2Long(resultMap, "maxId"); + } + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(HistoryDbformEntity::getServiceId, enhanceSqlId); + wrapper.eq(HistoryDbformEntity::getServiceType, "sql"); + wrapper.ne(FuncBase.isNotEmpty(maxId), HistoryDbformEntity::getId, maxId); + wrapper.orderByDesc(HistoryDbformEntity::getId); + wrapper.select(HistoryDbformEntity::getId, + HistoryDbformEntity::getServiceId, + HistoryDbformEntity::getServiceJson, + HistoryDbformEntity::getCreateTime, + HistoryDbformEntity::getCreateUserName); + Page pages = historyDbFormMapper.selectPage(page, wrapper); + + List voList = new ArrayList<>(); + List records = pages.getRecords(); + for (HistoryDbformEntity entity : records) { + String serviceJson = entity.getServiceJson(); + EnhanceSqlEntity sqlEntity = Func.json2Bean(serviceJson, EnhanceSqlEntity.class); + + HistorySqlVo vo = new HistorySqlVo(); + vo.setId(entity.getId()); + vo.setServiceId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setSqlEntity(sqlEntity); + + voList.add(vo); + } + pages.setRecords(voList); + + return pages; + } + + //获取记录详情-Sql增强 + @Override + public HistorySqlVo getHistorySqlInfo(Long historyId) { + HistoryDbformEntity entity = historyDbFormMapper.selectById(historyId); + + String serviceJson = entity.getServiceJson(); + EnhanceSqlEntity sqlEntity = Func.json2Bean(serviceJson, EnhanceSqlEntity.class); + + HistorySqlVo vo = new HistorySqlVo(); + vo.setId(entity.getId()); + vo.setServiceId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setSqlEntity(sqlEntity); + return vo; + } + + + //获取历史记录-JAVA增强 + @Override + public IPage getHistoryJavaPages(Long enhanceJavaId, Page page) { + //剔除最后一条 + Long maxId = null; + long current = page.getCurrent(); + if (current == 1) {//第一页,需要剔除第一条 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("MAX(id) as maxId"); + queryWrapper.eq("service_type", "java"); + queryWrapper.eq("service_id", enhanceJavaId); + Map resultMap = historyDbFormMapper.selectMaps(queryWrapper).get(0); + if (FuncBase.isNotEmpty(resultMap)) { + maxId = JeeLowCodeUtils.getMap2Long(resultMap, "maxId"); + } + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(HistoryDbformEntity::getServiceId, enhanceJavaId); + wrapper.eq(HistoryDbformEntity::getServiceType, "java"); + wrapper.ne(FuncBase.isNotEmpty(maxId), HistoryDbformEntity::getId, maxId); + wrapper.orderByDesc(HistoryDbformEntity::getId); + wrapper.select(HistoryDbformEntity::getId, + HistoryDbformEntity::getServiceId, + HistoryDbformEntity::getServiceJson, + HistoryDbformEntity::getCreateTime, + HistoryDbformEntity::getCreateUserName); + Page pages = historyDbFormMapper.selectPage(page, wrapper); + + List voList = new ArrayList<>(); + List records = pages.getRecords(); + for (HistoryDbformEntity entity : records) { + String serviceJson = entity.getServiceJson(); + EnhanceJavaEntity javaEntity = Func.json2Bean(serviceJson, EnhanceJavaEntity.class); + + HistoryJavaVo vo = new HistoryJavaVo(); + vo.setId(entity.getId()); + vo.setServiceId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setJavaEntity(javaEntity); + + voList.add(vo); + } + pages.setRecords(voList); + + return pages; + } + + //获取记录详情-JAVA增强 + @Override + public HistoryJavaVo getHistoryJavaInfo(Long historyId) { + HistoryDbformEntity entity = historyDbFormMapper.selectById(historyId); + + String serviceJson = entity.getServiceJson(); + EnhanceJavaEntity javaEntity = Func.json2Bean(serviceJson, EnhanceJavaEntity.class); + + HistoryJavaVo vo = new HistoryJavaVo(); + vo.setId(entity.getId()); + vo.setServiceId(entity.getServiceId()); + vo.setCreateTime(entity.getCreateTime()); + vo.setCreateUserName(entity.getCreateUserName()); + vo.setJavaEntity(javaEntity); + return vo; + } +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeConfigServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeConfigServiceImpl.java new file mode 100644 index 0000000..71e7c96 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeConfigServiceImpl.java @@ -0,0 +1,105 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + + + +import com.jeelowcode.core.framework.config.btncommand.definable.DefinableButtonPlugin; +import com.jeelowcode.core.framework.entity.JeeLowCodeConfigEntity; +import com.jeelowcode.core.framework.mapper.JeeLowCodeConfigMapper; +import com.jeelowcode.core.framework.service.IJeeLowCodeConfigService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.type.filter.AssignableTypeFilter; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 低代码平台-框架配置 + */ +@Service +public class JeeLowCodeConfigServiceImpl extends ServiceImpl implements IJeeLowCodeConfigService { + + /** + * 获取自定义按钮控件 + * + * @return + */ + @Override + public Map getBtnCommandConfig() { + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(JeeLowCodeConfigEntity::getConfigType, "btn_command");//按钮 + wrapper.select(JeeLowCodeConfigEntity::getConfigKey, JeeLowCodeConfigEntity::getConfigVal); + List dataList = baseMapper.selectList(wrapper); + if (Func.isEmpty(dataList)) { + return null; + } + + ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); + scanner.addIncludeFilter(new AssignableTypeFilter(DefinableButtonPlugin.class)); + Set candidates = scanner.findCandidateComponents(JeeLowCodeBaseConstant.BASE_PACKAGES); + + // 创建类名映射 + Map classNameMap = candidates.stream() + .map(candidate -> candidate.getBeanClassName()) + .collect(Collectors.toMap( + fullClassName -> fullClassName.substring(fullClassName.lastIndexOf(".") + 1), + fullClassName -> fullClassName + )); + +// 使用流构建结果映射 + Map resultMap = dataList.stream() + .filter(entity -> classNameMap.containsKey(entity.getConfigVal())) + .collect(Collectors.toMap( + entity -> entity.getConfigKey(), + entity -> classNameMap.get(entity.getConfigVal()) + )); + return resultMap; + } + + @Override + public Map getEnhanceCodeConfig() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(JeeLowCodeConfigEntity::getConfigType, "enhance_code"); + wrapper.select(JeeLowCodeConfigEntity::getConfigKey, JeeLowCodeConfigEntity::getConfigVal); + JeeLowCodeConfigEntity jeeLowCodeConfigEntity = baseMapper.selectOne(wrapper); + //json字符串 + String configVal = jeeLowCodeConfigEntity.getConfigVal(); + Map enhanceCodes = FuncBase.json2Bean(configVal, HashMap.class); + return enhanceCodes; + } + + //获取Excel保留天数 + @Override + public Integer getExcelFileDataDay(){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(JeeLowCodeConfigEntity::getConfigType, "excel_file_data_day"); + wrapper.select(JeeLowCodeConfigEntity::getConfigKey, JeeLowCodeConfigEntity::getConfigVal); + JeeLowCodeConfigEntity jeeLowCodeConfigEntity = baseMapper.selectOne(wrapper); + String configVal = jeeLowCodeConfigEntity.getConfigVal(); + return Func.toInt(configVal); + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeServiceImpl.java new file mode 100644 index 0000000..d414710 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/JeeLowCodeServiceImpl.java @@ -0,0 +1,118 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jeelowcode.core.framework.entity.LogModuleUsageRecordsEntity; +import com.jeelowcode.core.framework.mapper.JeeLowCodeMapper; +import com.jeelowcode.core.framework.mapper.LogModuleUsageRecordsMapper; +import com.jeelowcode.core.framework.service.IApiLogService; +import com.jeelowcode.core.framework.service.IJeeLowCodeService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 低代码平台 + */ +@Service +public class JeeLowCodeServiceImpl implements IJeeLowCodeService { + + @Autowired + private JeeLowCodeMapper jeeLowCodeMapper; + + @Autowired + private LogModuleUsageRecordsMapper logModuleUsageRecordsMapper; + + + @Autowired + private IApiLogService iApiLogService; + + //清除ExcelData日志 + @Override + public Integer clearExcelData(Date clearDate){ + return jeeLowCodeMapper.clearExcelData(clearDate); + } + + // 保存模块使用记录 + @Override + public Integer saveModelUsageRecords() { + Date now = DateUtil.date(); + Date begin = DateUtil.beginOfDay(now); + LocalDate today = LocalDate.now(); + LocalDateTime dateTimeNow = LocalDateTime.now(); + // 从日志表统计模块使用记录 + List> records = iApiLogService.countModelUsageRecords(begin, now); + // 写入模块使用统计表 + for (Map record : records) { + String modelTitle = JeeLowCodeUtils.getMap2Str(record, "modelTitle"); + Long usersNum = JeeLowCodeUtils.getMap2Long(record, "usersNum"); + Long useNum = JeeLowCodeUtils.getMap2Long(record, "useNum"); + Long id = getLogModuleUsageRecordsId(modelTitle, today); + LogModuleUsageRecordsEntity moduleEntity = new LogModuleUsageRecordsEntity(); + moduleEntity.setUsersNum(usersNum); + moduleEntity.setUseNum(useNum); + if (Func.isEmpty(id)) { + moduleEntity.setTenantId("1"); + moduleEntity.setCreateUser(1L); + moduleEntity.setCreateTime(dateTimeNow); + moduleEntity.setCreateDept(101L); + moduleEntity.setIsDeleted(0); + moduleEntity.setRecordDate(today); + moduleEntity.setModelTitle(modelTitle); + } else { + moduleEntity.setId(id); + moduleEntity.setUpdateUser(1L); + moduleEntity.setUpdateTime(dateTimeNow); + } + saveLogModuleUsageRecords(moduleEntity); + } + return records.size(); + } + + /** + * 按模块标题和记录日期获取id + */ + private Long getLogModuleUsageRecordsId(String modelTitle, LocalDate recordDate) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LogModuleUsageRecordsEntity::getModelTitle, modelTitle); + wrapper.eq(LogModuleUsageRecordsEntity::getRecordDate, recordDate); + wrapper.select(LogModuleUsageRecordsEntity::getId); + LogModuleUsageRecordsEntity one = logModuleUsageRecordsMapper.selectOne(wrapper); + if (Func.isEmpty(one) || Func.isEmpty(one.getId())) { + return null; + } + return one.getId(); + } + + /** + * 写入模块使用统计表 + */ + private void saveLogModuleUsageRecords(LogModuleUsageRecordsEntity entity) { + if (Func.isEmpty(entity.getId())) { + logModuleUsageRecordsMapper.insert(entity); + } else { + logModuleUsageRecordsMapper.updateById(entity); + } + } + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ReportServiceImpl.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ReportServiceImpl.java new file mode 100644 index 0000000..ed853ad --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/service/impl/ReportServiceImpl.java @@ -0,0 +1,413 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnoaionAspectjSQL; +import com.jeelowcode.core.framework.config.aspect.enhance.JeeLowCodeAnnotationAspectjJAVA; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BaseAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.PluginManager; +import com.jeelowcode.core.framework.config.aspect.enhancereport.JeeLowCodeAnnotationAspectjReport; +import com.jeelowcode.core.framework.config.aspect.enhancereport.plugin.ReportPluginManager; +import com.jeelowcode.core.framework.entity.*; +import com.jeelowcode.core.framework.mapper.ReportFieldMapper; +import com.jeelowcode.core.framework.mapper.ReportMapper; +import com.jeelowcode.core.framework.params.DbFormAddOrUpdateParam; +import com.jeelowcode.core.framework.params.PageReportParam; +import com.jeelowcode.core.framework.params.ReportAddOrUpdateParam; +import com.jeelowcode.core.framework.params.vo.*; +import com.jeelowcode.core.framework.params.vo.webconfigreport.WebConfigReportFieldVo; +import com.jeelowcode.core.framework.params.vo.webconfigreport.WebConfigReportVo; +import com.jeelowcode.core.framework.params.vo.webconfigreport.WebConfigVo; +import com.jeelowcode.core.framework.service.IBatchService; +import com.jeelowcode.core.framework.service.IReportService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.constant.EnhanceConstant; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.enums.AuthTypeEnum; +import com.jeelowcode.framework.utils.enums.TableType2Enum; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.model.JeeLowCodeDict; +import com.jeelowcode.framework.utils.params.JeeLowCodeDictParam; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.parameters.P; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + + +/** + * 数据报表相关 + */ +@Service +public class ReportServiceImpl extends ServiceImpl implements IReportService { + + @Autowired + private ReportFieldMapper reportFieldMapper; + + @Autowired + private IBatchService batchService; + + @Autowired + private IJeeLowCodeAdapter jeeLowCodeAdapter; + + //获取认证类型 + + @Override + public AuthTypeEnum getAuthType(String reportCode) { + ReportEntity reportEntity = this.getReportEntityByCode(reportCode); + String dataConfig = reportEntity.getDataConfig(); + if (FuncBase.isEmpty(dataConfig)) { + return null; + } + List dataConfigList = FuncBase.toStrList(dataConfig); + for (String type : dataConfigList) { + AuthTypeEnum authTypeEnum = AuthTypeEnum.getByType(type); + if (Func.isNotEmpty(authTypeEnum)) { + return authTypeEnum; + } + } + return null; + + } + + + //根据id获取 + @Override + public ReportEntity getReportEntityById(Long reportId) { + ReportEntity entity = baseMapper.getById(reportId); + if (FuncBase.isEmpty(entity)) { + throw new JeeLowCodeException("数据统计表不存在"); + } + return entity; + } + + //根据code获取 + @Override + public ReportEntity getReportEntityByCode(String reportCode) { + ReportEntity entity = baseMapper.getByCode(reportCode); + if (FuncBase.isEmpty(entity)) { + throw new JeeLowCodeException("数据报表不存在"); + } + return entity; + } + + + //保存数据报表 + @Override + @Transactional(rollbackFor = Exception.class) + public Long saveReportConfig(ReportAddOrUpdateParam param) { + long formId = IdWorker.getId(); + this.saveOrupdateReportConfig(param, formId); + return formId; + } + + //修改数据报表 + @Override + @Transactional(rollbackFor = Exception.class) + public void updateReportConfig(ReportAddOrUpdateParam param) { + this.saveOrupdateReportConfig(param, param.getReport().getId()); + } + + //删除 - 表单开发 + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReportConfig(List reportIdList) { + reportIdList.stream().forEach(reportId -> { + ReportEntity reportEntity = baseMapper.selectById(reportId); + if (FuncBase.isEmpty(reportEntity)) { + return; + } + + //1.删除主表 + baseMapper.deleteById(reportId); + //2.删除属性表 + QueryWrapper fieldWrapper = new QueryWrapper(); + fieldWrapper.eq("report_id", reportId); + reportFieldMapper.delete(fieldWrapper); + + JeeLowCodeAnnotationAspectjReport.refreshPlugin("DEL", reportEntity.getReportCode(),reportEntity.getJavaConfig()); + }); + + } + + /** + * 获取详情 + * + * @param reportId + * @return + */ + @Override + public ReportConfigVo getReportConfig(Long reportId) { + ReportConfigVo resultVo = new ReportConfigVo(); + + IReportService proxyReportService = SpringUtils.getBean(IReportService.class); + //表单配置 + ReportEntity reportEntity = proxyReportService.getReportEntityById(reportId); + resultVo.setReport(reportEntity); + + //字段信息 + List fieldEntityList = reportFieldMapper.getByDbReportId(reportId); + resultVo.setFieldList(fieldEntityList); + + return resultVo; + } + + + //分页 - 表单开发 + @Override + public IPage getPageReportConfig(PageReportParam param, Page page) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FuncBase.isNotEmpty(param.getGroupReportId()), ReportEntity::getGroupReportId, param.getGroupReportId()); + wrapper.like(FuncBase.isNotEmpty(param.getReportName()), ReportEntity::getReportName, param.getReportName()); + wrapper.like(FuncBase.isNotEmpty(param.getReportCode()), ReportEntity::getReportCode, param.getReportCode()); + wrapper.like(FuncBase.isNotEmpty(param.getJavaConfig()), ReportEntity::getJavaConfig, param.getJavaConfig()); + wrapper.orderByDesc(ReportEntity::getId); + IPage pages = baseMapper.selectPage(page, wrapper); + return pages; + } + + //前端配置 + @Override + public WebConfigVo getWebConfig(String reportCode) { + ReportEntity reportEntity = baseMapper.getByCode(reportCode); + + //报表基本配置 + ReportConfigVo reportConfig = this.getReportConfig(reportEntity.getId()); + + //转为一条返回给前端 + List fieldList = reportConfig.getFieldList();//字段列表 + + //封装结果返回 + WebConfigVo webConfigVo = new WebConfigVo(); + webConfigVo.setFieldList(fieldList); + webConfigVo.setReportVo(BeanUtil.copyProperties(reportConfig.getReport(), WebConfigReportVo.class)); + return webConfigVo; + } + + //回显字典 + @Override + public void dictView(Long reportId, List> records) { + //获取字典code + LambdaQueryWrapper fieldWrapper = new LambdaQueryWrapper<>(); + fieldWrapper.isNotNull(ReportFieldEntity::getDictCode); + fieldWrapper.eq(ReportFieldEntity::getReportId,reportId); + List fieldEntityList = reportFieldMapper.selectList(fieldWrapper); + if (Func.isEmpty(fieldEntityList)) { + return; + } + //封装为map + Map> field2DictMap = new HashMap<>(); + for (ReportFieldEntity fieldEntity : fieldEntityList) { + String fieldCode = fieldEntity.getFieldCode(); + String dictCode = fieldEntity.getDictCode(); + if (Func.isEmpty(dictCode)) { + continue; + } + + JeeLowCodeDictParam param = new JeeLowCodeDictParam(); + param.setDictCodeList(FuncBase.toStrList(dictCode)); + List dictList = jeeLowCodeAdapter.getDictList(param); + if (Func.isEmpty(dictList)) { + continue; + } + JeeLowCodeDict jeeLowCodeDict = dictList.get(0); + List dataList = jeeLowCodeDict.getDataList(); + if (Func.isEmpty(dataList)) { + continue; + } + Map dictDataMap = new HashMap<>(); + for (JeeLowCodeDict.DictData dictData : dataList) { + String label = dictData.getLabel(); + String val = dictData.getVal(); + dictDataMap.put(val, label); + } + field2DictMap.put(fieldCode, dictDataMap); + } + //遍历数据 + for (Map dataMap : records) { + + Set>> entries = field2DictMap.entrySet(); + Iterator>> iterator = entries.iterator(); + while (iterator.hasNext()) { + Map.Entry> entity = iterator.next(); + + String fieldCode = entity.getKey(); + String fieldVal = Func.getMap2Str(dataMap, fieldCode); + + Map dictMap = entity.getValue(); + if (Func.isEmpty(fieldVal) || Func.isEmpty(dictMap)) {//没有值 + continue; + } + String dictLabel = dictMap.get(fieldVal); + if(Func.isEmpty(dictLabel)){ + continue; + } + dataMap.put(fieldCode,dictLabel); + + } + + + } + + + } + + //初始化增强 + @Override + public void initEnhancePluginManager() { + //获取所有增强 + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.isNotNull(ReportEntity::getJavaConfig); + List reportEntityList = baseMapper.selectList(wrapper); + if(Func.isEmpty(reportEntityList)){ + return; + } + reportEntityList.forEach(reportEntity->{ + try{ + JeeLowCodeAnnotationAspectjReport.refreshPlugin("ADD",reportEntity.getReportCode(),reportEntity.getJavaConfig()); + }catch (Exception e){ + + } + }); + } + + //复制 + @Override + public void copy(String reportCode, String newReportCode){ + long reportId = IdWorker.getId(); + //复制主表 + ReportEntity entity = baseMapper.getByCode(reportCode); + ReportVo reportVo = BeanUtil.copyProperties(entity, ReportVo.class); + reportVo.setId(null); + reportVo.setReportCode(newReportCode); + reportVo.setReportName(reportVo.getReportName() + "_copy"); + String oldEnhance = entity.getJavaConfig(); + String newEnhance; + if (oldEnhance.contains(JeeLowCodeConstant.DOT)) { + // class方式 + newEnhance = Func.copyClassEnhance(TableType2Enum.REPORT.getType(), oldEnhance, newReportCode); + }else { + // spring方式 + newEnhance = Func.copySpringEnhance(TableType2Enum.REPORT.getType(), oldEnhance, newReportCode); + } + reportVo.setJavaConfig(newEnhance); + + //字段 + List fieldEntityList = reportFieldMapper.getByDbReportId(entity.getId()); + List fieldVoList = Func.copyReportFieldList(fieldEntityList, ReportFieldVo.class); + + ReportAddOrUpdateParam param=new ReportAddOrUpdateParam(); + param.setFieldList(fieldVoList); + param.setReport(reportVo); + this.saveOrupdateReportConfig(param,reportId); + + } + + + + //新增 或 修改 + private void saveOrupdateReportConfig(ReportAddOrUpdateParam param, Long reportId) { + //1.保存主表 + this.saveOrUpdateReport(reportId, param.getReport()); + + ReportDeletedVo delIdVo = param.getDelIdVo(); + if (Func.isEmpty(delIdVo)) { + delIdVo = new ReportDeletedVo(); + } + + //2.保存字段属性 + this.saveOrUpdateReportField(reportId, param.getFieldList(), delIdVo.getFieldList()); + } + + //数据报表-主表 + private void saveOrUpdateReport(long reportId, ReportVo vo) { + ReportEntity entity = new ReportEntity(); + entity.setId(reportId); + entity.setReportName(vo.getReportName()); + entity.setReportCode(vo.getReportCode()); + entity.setGroupReportId(vo.getGroupReportId()); + entity.setJavaConfig(vo.getJavaConfig()); + entity.setDataConfig(vo.getDataConfig()); + entity.setTableConfig(vo.getTableConfig()); + entity.setUpdateTime(LocalDateTime.now()); + entity.setDataSourcesConfig(vo.getDataSourcesConfig());//表视图数据来源 + if (FuncBase.isEmpty(vo.getId())) {//新增 + baseMapper.insert(entity); + return; + } + baseMapper.updateById(entity); + } + + //数据报表-字段 + private void saveOrUpdateReportField(long reportId, List fieldList, List delIdList) { + if (Func.isNotEmpty(delIdList)) { + reportFieldMapper.deleteBatchIds(delIdList);//删除 + } + + List addList = new ArrayList<>(); + List updateList = new ArrayList<>(); + Integer sortNum = 0; + for (ReportFieldVo vo : fieldList) { + Long id = vo.getId(); + id = Func.isNotEmpty(id) ? id : IdWorker.getId(); + + ReportFieldEntity entity = new ReportFieldEntity(); + entity.setId(id); + entity.setReportId(reportId); + entity.setFieldCode(vo.getFieldCode()); + entity.setFieldName(vo.getFieldName()); + entity.setFieldType(vo.getFieldType()); + entity.setSortNum(++sortNum); + + entity.setQueryIsDb(vo.getQueryIsDb()); + entity.setQueryIsWeb(vo.getQueryIsWeb()); + entity.setQueryMode(vo.getQueryMode()); + entity.setDictCode(vo.getDictCode()); + entity.setIsExport(vo.getIsExport()); + entity.setIsShowSort(vo.getIsShowSort()); + + if (FuncBase.isEmpty(vo.getId())) {//新增 + addList.add(entity); + } else if (Func.equals(vo.getIsModify(), YNEnum.Y.getCode())) {//如果是N的时候,不修改 + updateList.add(entity); + } + + } + + if (Func.isNotEmpty(addList)) {//新增 + batchService.saveBatch(addList, reportFieldMapper, ReportFieldMapper.class, ReportFieldEntity.class); + } + + if (Func.isNotEmpty(updateList)) { + batchService.updateBatchById(updateList, reportFieldMapper, ReportFieldMapper.class, ReportFieldEntity.class); + } + + } + + +} diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java new file mode 100644 index 0000000..f27b4f0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/Func.java @@ -0,0 +1,843 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.utils; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.core.framework.params.CopyEnhanceParam; +import com.jeelowcode.core.framework.params.vo.ReportFieldVo; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.enums.SqlParamEnum; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.model.JeeLowCodeDept; +import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import com.jeelowcode.core.framework.entity.FormFieldEntity; +import com.jeelowcode.core.framework.entity.FormFieldWebEntity; +import com.jeelowcode.core.framework.params.model.WebFormatConfigModel; +import com.jeelowcode.core.framework.params.vo.DbFormFieldIdVo; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.ql.util.express.DefaultContext; +import com.ql.util.express.ExpressRunner; +import oracle.sql.TIMESTAMP; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.http.HttpServletRequest; +import java.io.*; +import java.lang.reflect.Method; +import java.math.BigDecimal; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.CodeSource; +import java.sql.Blob; +import java.sql.Clob; +import java.util.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.ForkJoinWorkerThread; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 工具类 + */ +public class Func extends FuncBase { + + + //校验数据类型 + public static Object fomatDbValue(String fieldType, Object value) { + if (FuncBase.isEmpty(value)) { + return null; + } + if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.STRING.getFieldType()) + || FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.TEXT.getFieldType()) + || FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.LONGTEXT.getFieldType())) {//字符串 + return FuncBase.toStr(value); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.INTEGER.getFieldType())) { + return FuncBase.toInt(value); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.BIGINT.getFieldType())) { + return FuncBase.toLong(value); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.BIGDECIMAL.getFieldType())) { + return new BigDecimal(FuncBase.toStr(value)); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.DATE.getFieldType())) { + //yyyy-MM-dd + String str = FuncBase.toStr(value); + return DateUtil.parseDate(str.substring(0, 10)); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.DATETIME.getFieldType())) { + //yyyy-MM-dd HH:mm:ss + String str = FuncBase.toStr(value); + return DateUtil.parseDateTime(str.substring(0, 19)); + } else if (FuncBase.equals(fieldType, JeeLowCodeFieldTypeEnum.TIME.getFieldType())) { + //HH:mm:ss + String str = FuncBase.toStr(value); + return DateUtil.parseTime(str.substring(0, 8)); + } + return FuncBase.toStr(value); + } + + /** + * 校验表名称是否可用 + * + * @param tableName + * @return true=可用 false=不可用 + */ + public static Boolean checkTableName(String tableName) { + List excludeTableNamesList = JeeLowCodeProperties.getExcludeTableNames(); + if (FuncBase.isEmpty(excludeTableNamesList)) { + return true; + } + + boolean flag = excludeTableNamesList.stream() + .anyMatch(fieldName -> tableName.startsWith(fieldName)); + return !flag; + + } + + public static boolean isJeeLowCodeUrl(HttpServletRequest request) { + List jeeLowCodeUrlList = new ArrayList<>(); + jeeLowCodeUrlList.add(JeeLowCodeBaseConstant.REQUEST_URL_START+"/** "); + if(isEmpty(request)){ + return false; + } + String requestURI = request.getRequestURI(); + if(isEmpty(requestURI)){ + return false; + } + + // 快速匹配,保证性能 + if (CollUtil.contains(jeeLowCodeUrlList, requestURI)) { + return true; + } + AntPathMatcher pathMatcher = new AntPathMatcher(); + // 逐个 Ant 路径匹配 + for (String url : jeeLowCodeUrlList) { + if (pathMatcher.match(url, request.getRequestURI())) { + return true; + } + } + return false; + } + + + /** + * 将list转为map key=id value=id + * + * @param dataList + * @return + */ + public static Set list2SetId(List> dataList) { + Set idSet = dataList.stream() + .filter(subParamMap -> !Func.isEmpty(Func.getMap2Str(subParamMap, "id"))) + .map(subParamMap -> Func.getMap2Str(subParamMap, "id")) + .collect(Collectors.toSet()); + + return idSet; + } + + /** + * 判断新字段和旧字段是否一致 + * + * @return false=不一致 true=一致 + */ + public static boolean dbFormFieldEquals(List oldFieldList, List newFieldList) { + if (FuncBase.isEmpty(oldFieldList) && FuncBase.isNotEmpty(newFieldList)) { + return false; + } + Map oldMap = new HashMap<>(); + for (FormFieldEntity dbFormFieldEntity : oldFieldList) { + String fieldCode = dbFormFieldEntity.getFieldCode(); + oldMap.put(fieldCode, dbFormFieldEntity); + } + + for (FormFieldEntity newField : newFieldList) { + String fieldCode = newField.getFieldCode(); + String isDb = newField.getIsDb(); + if (Func.equals(isDb, YNEnum.N.getCode())) {//不用同步到数据库 + continue; + } + + FormFieldEntity oldfield = oldMap.get(fieldCode); + if (FuncBase.isEmpty(oldfield)) {//新-存在,旧不存在 + return false; + } + //不一样 + if (!FuncBase.equals(oldfield.getFieldCode(), newField.getFieldCode()) + || !FuncBase.equals(oldfield.getFieldName(), newField.getFieldName()) + || !FuncBase.equals(oldfield.getFieldLen(), newField.getFieldLen()) + || !FuncBase.equals(oldfield.getFieldPointLen(), newField.getFieldPointLen()) + || !FuncBase.equals(oldfield.getFieldDefaultVal(), newField.getFieldDefaultVal()) + || !FuncBase.equals(oldfield.getFieldType(), newField.getFieldType()) + || !FuncBase.equals(oldfield.getIsPrimaryKey(), newField.getIsPrimaryKey()) + || !FuncBase.equals(oldfield.getIsNull(), newField.getIsNull()) + || !FuncBase.equals(oldfield.getIsDb(), newField.getIsDb())) { + return false; + } + + } + //判断旧的存在,新的不存在情况 + Map newMap = new HashMap<>(); + for (FormFieldEntity dbFormFieldEntity : newFieldList) { + String fieldCode = dbFormFieldEntity.getFieldCode(); + newMap.put(fieldCode, dbFormFieldEntity); + } + for (FormFieldEntity oldField : oldFieldList) { + String fieldCode = oldField.getFieldCode(); + String isDb = oldField.getIsDb(); + if (Func.equals(isDb, YNEnum.N.getCode())) {//不用同步到数据库 + continue; + } + FormFieldEntity newfield = newMap.get(fieldCode); + if (FuncBase.isEmpty(newfield)) {//旧的存在新的不存在 + return false; + } + + } + return true; + + } + + + public static List getSummaryFieldList(String fieldCode, String summarySql) { + List selfFieldList = new ArrayList<>(); + if (Func.equals(summarySql, "sum")) { + selfFieldList.add(String.format("sum(%s) as \"%s\"", fieldCode, fieldCode)); + } else if (Func.equals(summarySql, "avg")) { + selfFieldList.add(String.format("avg(%s) as \"%s\"", fieldCode, fieldCode)); + } else if (Func.equals(summarySql, "max")) { + selfFieldList.add(String.format("max(%s) as \"%s\"", fieldCode, fieldCode)); + } else if (Func.equals(summarySql, "min")) { + selfFieldList.add(String.format("min(%s) as \"%s\"", fieldCode, fieldCode)); + } else { + selfFieldList.add(String.format("("+summarySql+")" + " as \"%s\"", fieldCode)); + } + return selfFieldList; + } + + public static String getFormatExecuteSql(WebFormatConfigModel.SqlModel sqlModel) { + String valueType = sqlModel.getValueType(); + String sql = ""; + if (Func.equals(valueType, "group")) { + sql = sqlModel.getGroup(); + } else if (Func.equals(valueType, "custom")) { + sql = sqlModel.getCustom(); + } + return sql; + } + + /** + * 执行某一个类下的方法, + * + * @param classPath 类路径 + * @param methodName 方法名称 + * @param dataMap 参数 + * @return + */ + public static Object runByClass(String classPath, String methodName, Map dataMap) { + try { + // 1. 获取Class对象 + Class clazz = Class.forName(classPath); + + // 2. 创建DemoClass的一个实例 + Object demoClassInstance = clazz.getDeclaredConstructor().newInstance(); + + // 3. 获取getBjName方法的对象 + Method method = clazz.getMethod(methodName, Map.class); + + // 4. 调用getBjName方法 + return method.invoke(demoClassInstance, dataMap); + } catch (Exception e) { + e.printStackTrace(); + throw new JeeLowCodeException(e.getMessage()); + } + + } + + //计算 + public static String executeJavaExpress(String express, Map dataMap) { + try { + String expressTmp = express.replaceAll("\\#\\{([^}]+)\\}", "$1"); + ExpressRunner runner = new ExpressRunner(); + DefaultContext context = new DefaultContext(); + dataMap.forEach((key, val) -> { + // 处理键值对 + context.put(key, val); + }); + Object result = runner.execute(expressTmp, context, null, true, false); + return Func.toStr(result); + } catch (Exception e) { + e.printStackTrace(); + throw new JeeLowCodeException(e.getMessage()); + } + } + + public static Object getfieldValObj(JeeLowCodeFieldTypeEnum fieldTypeEnum, Object fieldVal) { + Object fieldValObj = fieldVal; + if (Func.equals(JeeLowCodeFieldTypeEnum.BIGINT, fieldTypeEnum)) { + fieldValObj = Func.toLong(fieldVal); + } else { + fieldValObj = Func.toStr(fieldVal); + } + return fieldValObj; + } + + public static String sendPost(String url, Object body) throws Exception { + String accept = HttpRequest.post(url) + .body(Func.json2Str(body)) + .header("Content-Type", "application/json") + .header("Accept", "application/json") + .timeout(5000) + .execute().body(); + if (FuncBase.isEmpty(accept)) { + Thread.sleep(2000);//休息2秒 + } + return accept; + + } + + /** + * 处理虚拟化字段 + * + * @param selectList + * @param asList + */ + public static void handleFieldFormatConfig(List selectList, List asList, List webEntityList) { + if (isEmpty(webEntityList)) { + return; + } + + for (int i = 0; i < webEntityList.size(); i++) { + FormFieldWebEntity web = webEntityList.get(i); + String fieldCode = web.getFieldCode(); + String formatConfig = web.getFormatConfig(); + if (Func.isEmpty(formatConfig)) { + continue; + } + WebFormatConfigModel webFormatConfigModel = Func.json2Bean(formatConfig, WebFormatConfigModel.class); + if (Func.isEmpty(webFormatConfigModel)) { + continue; + } + if (Func.isNotEmpty(webFormatConfigModel.getClass()) && Func.equals(webFormatConfigModel.getFormatType(), "sql")) {//子查询处理 + WebFormatConfigModel.Json formatJson = webFormatConfigModel.getFormatJson(); + WebFormatConfigModel.SqlModel sqlModel = formatJson.getSql(); + String sql = Func.getFormatExecuteSql(sqlModel); + if (Func.isEmpty(sql)) { + continue; + } + + selectList.add("(" + sql + ")" + " as \"" + fieldCode + "\""); + asList.add(fieldCode); + } else if (Func.isNotEmpty(webFormatConfigModel.getClass()) && Func.equals(webFormatConfigModel.getFormatType(), "fun")) {//sql函数处理 + String sql = webFormatConfigModel.getFormatJson().getFun(); + if (Func.isEmpty(sql)) { + continue; + } + + selectList.add(sql + " as \"" + fieldCode + "\""); + asList.add(fieldCode); + } + } + } + + //复制表属性 + public static List copyDbFormFieldList(List list, Class clazz) { + List fieldList = BeanUtil.copyToList(list, clazz); + fieldList.stream().forEach(vo -> { + DbFormFieldIdVo v = (DbFormFieldIdVo) vo; + v.setId(null);//剔除id + }); + return fieldList; + } + public static List copyReportFieldList(List list, Class clazz) { + List fieldList = BeanUtil.copyToList(list, clazz); + fieldList.stream().forEach(vo -> { + ReportFieldVo v = (ReportFieldVo) vo; + v.setId(null);//剔除id + }); + return fieldList; + } + + //将datamaplist 转为 ResultSet + public static Map dataMapList2ResultSet(List> dataMapList) { + // 使用Java 8的Stream API进行转换 + return dataMapList.stream() + .filter(Objects::nonNull) // 过滤掉null值 + .collect(Collectors.toMap( + map -> Func.getMap2Str(map, "fieldCode").toLowerCase(), // 作为键 + map -> Func.getMap2StrDefault(map, "fieldName", "") // 作为值 + )); + } + + public static Map getSaveOrUpdateMap(List fieldList, Map params) { + // 使用 Stream API 优化代码 + Map dataMap = fieldList.stream() + .filter(entity -> params.containsKey(entity.getFieldCode())) // 只处理 params 中存在的字段 + .collect(Collectors.toMap( + entity -> entity.getFieldCode(), + entity -> { + Object o = params.get(entity.getFieldCode()); + + if (Func.isEmpty(o)) { + return o; + } + JeeLowCodeFieldTypeEnum fieldTypeEnum = JeeLowCodeFieldTypeEnum.getByFieldType(entity.getFieldType()); + switch (fieldTypeEnum) { + case DATE: + return DateUtil.parse(Func.toStr(o), "yyyy-MM-dd"); + case DATETIME: + return DateUtil.parse(Func.toStr(o), "yyyy-MM-dd HH:mm:ss"); + case TIME: + return DateUtil.parse(Func.toStr(o), "HH:mm:ss"); + case BLOB: + // 假设 BLOB 处理方式是将字符串转换为字节数组 + return Func.toStr(o).getBytes(); + default: + return o; + } + + } + )); + return dataMap; + } + + /** + * 参数转换 + * @param obj + * @param fieldTypeEnum + * @return + */ + public static Object paramParse2Object(Object obj, JeeLowCodeFieldTypeEnum fieldTypeEnum) { + switch (fieldTypeEnum) { + case BIGINT: + return Func.toLong(obj); + case DATE: + return DateUtil.parse(Func.toStr(obj), "yyyy-MM-dd"); + case DATETIME: + return DateUtil.parse(Func.toStr(obj), "yyyy-MM-dd HH:mm:ss"); + case TIME: + return DateUtil.parse(Func.toStr(obj), "HH:mm:ss"); + case BLOB: + // 假设 BLOB 处理方式是将字符串转换为字节数组 + return Func.toStr(obj).getBytes(); + default: + return obj; + } + + } + + + public static void handlePlusDataList(List> records, Map fieldTypeEnumMap) { + try { + Func.jeelowcodeForkJoinPool().submit(() -> records.parallelStream().forEach(recordMap -> { + handlePlusDataMap(recordMap, fieldTypeEnumMap); + })).get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e.getMessage()); + } + } + + + public static void handlePlusDataMap(Map recordMap, Map fieldTypeEnumMap) { + recordMap.forEach((key, value) -> { + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldTypeEnumMap.get(key); + if (value instanceof Clob) {//二进制文件转为string + convertClob2String(recordMap, key, (Clob) value); + } else if (value instanceof oracle.sql.TIMESTAMP) {//Oracle特有 + convertTIMESTAMP(recordMap, key, (TIMESTAMP) value, fieldTypeEnum); + } else if (value instanceof Blob) { + convertBlob2String(recordMap, key, (Blob) value); + } + }); + } + + private static void convertClob2String(Map recordMap, String key, Clob clob) { + if (Func.isEmpty(clob)) { + return; + } + try (Reader reader = clob.getCharacterStream(); + StringWriter writer = new StringWriter()) { + int c; + while ((c = reader.read()) != -1) { + writer.write(c); + } + recordMap.put(key, writer.toString()); + } catch (Exception e) { + // 处理可能发生的异常,例如IOException + e.printStackTrace(); + } + } + + private static void convertBlob2String(Map recordMap, String key, Blob blob) { + if (Func.isEmpty(blob)) { + return; + } + + try (InputStream inputStream = blob.getBinaryStream(); + InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + StringWriter writer = new StringWriter()) { + + int c; + while ((c = reader.read()) != -1) { + writer.write(c); + } + recordMap.put(key, writer.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + //oracle + private static void convertTIMESTAMP(Map recordMap, String key, TIMESTAMP val, JeeLowCodeFieldTypeEnum fieldTypeEnum) { + if (Func.isEmpty(val)) { + return; + } + try { + switch (fieldTypeEnum) { + case DATE: + recordMap.put(key, val.dateValue()); + break; + case TIME: + recordMap.put(key, val.timeValue()); + break; + case DATETIME: + recordMap.put(key, val.toLocalDateTime()); + } + } catch (Exception e) { + // 处理可能发生的异常,例如IOException + e.printStackTrace(); + } + } + + public static String getButtonName(String buttonCode){ + String buttonName=""; + switch (buttonCode){ + case "addBtn": + buttonName="新增"; + break; + case "editBtn": + buttonName="编辑"; + break; + case "viewBtn": + buttonName="查看"; + break; + case "delBtn": + buttonName="删除"; + break; + case "batchDelBtn": + buttonName="批量删除"; + break; + case "importBtn": + buttonName="导入"; + break; + case "exportBtn": + buttonName="导出"; + break; + } + return buttonName; + } + + //替换参数 + public static String replaceParam(String executeSql, Map paramMap, String autoWhereSql, IJeeLowCodeAdapter jeeLowCodeAdapter){ + + //处理默认值 + if(SqlParamEnumIsExist(executeSql, SqlParamEnum.JEELOWCODE_ID)){ + paramMap.put(SqlParamEnum.JEELOWCODE_ID.getCode(),IdWorker.getId()); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_DATE_TIME)){ + paramMap.put(SqlParamEnum.JEELOWCODE_DATE_TIME.getCode(),DateUtil.now()); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_DATE)){ + paramMap.put(SqlParamEnum.JEELOWCODE_DATE.getCode(),DateUtil.now()); + + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_TIME)){ + paramMap.put(SqlParamEnum.JEELOWCODE_TIME.getCode(),DateUtil.now()); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_IS_DELETED)){ + paramMap.put(SqlParamEnum.JEELOWCODE_IS_DELETED.getCode(),"0"); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_TENANT_ID)){ + String tenantId = jeeLowCodeAdapter.getTenantId(); + paramMap.put(SqlParamEnum.JEELOWCODE_TENANT_ID.getCode(),tenantId); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_USER_ID)){ + String onlineUserId = jeeLowCodeAdapter.getOnlineUserId(); + paramMap.put(SqlParamEnum.JEELOWCODE_USER_ID.getCode(),onlineUserId); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_USER_NAME)){ + String onlineUserName = jeeLowCodeAdapter.getOnlineUserName(); + paramMap.put(SqlParamEnum.JEELOWCODE_USER_NAME.getCode(),onlineUserName); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_USER_NICKNAME)){ + String onlineUserNickName = jeeLowCodeAdapter.getOnlineUserNickName(); + paramMap.put(SqlParamEnum.JEELOWCODE_USER_NICKNAME.getCode(),onlineUserNickName); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_USER_DEPT)){ + String onlineUserDeptId = jeeLowCodeAdapter.getOnlineUserDeptId(); + paramMap.put(SqlParamEnum.JEELOWCODE_USER_DEPT.getCode(),onlineUserDeptId); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_USER_ALL_DEPT)){ + JeeLowCodeDeptParam param=new JeeLowCodeDeptParam(); + param.setType("sub"); + List deptList = jeeLowCodeAdapter.getDeptList(param); + String allDeptIds = deptList.stream() + .map(JeeLowCodeDept::getDeptId) + .collect(Collectors.joining(",")); + paramMap.put(SqlParamEnum.JEELOWCODE_USER_ALL_DEPT.getCode(),allDeptIds);//当前登录人所有部 + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_MAIN_ID)){ + Long mainId = JeeLowCodeUtils.getMap2Long(paramMap, "id"); + paramMap.put(SqlParamEnum.JEELOWCODE_MAIN_ID.getCode(),mainId); + } + if(SqlParamEnumIsExist(executeSql,SqlParamEnum.JEELOWCODE_AUTO_WHERE)){ + executeSql=replacePlaceholder(executeSql,SqlParamEnum.JEELOWCODE_AUTO_WHERE, autoWhereSql);//动态where + } + + return formatSql2EW(executeSql); + } + + public static String formatSql2EW(String sql){ + String replacedSql = sql.replaceAll("(? aClass = null; + try { + aClass = Class.forName(oldClazzName); + } catch (ClassNotFoundException ignored) {} + if (aClass == null) { + return null; + } + CodeSource codeSource = aClass.getProtectionDomain().getCodeSource(); + URI uri = null; + try { + uri = codeSource.getLocation().toURI(); + } catch (URISyntaxException ignored) {} + if (uri == null) { + return null; + } + String oldClassesPath = new File(uri).getPath(); + CopyEnhanceParam copyEnhanceParam = copyEnhanceFile(type, oldClassesPath, oldClazzName, newTableName); + if (FuncBase.isEmpty(copyEnhanceParam)) { + return null; + } + return copyEnhanceParam.getReference(); + } + + /** + * 复制文件 + */ + private static CopyEnhanceParam copyEnhanceFile(String type, String oldClassesPath, String oldClazzName, String newTableName) { + // 要复制的增强的文件绝对地址 + String oldFilePath = new StringBuilder().append(StringUtils.substringBefore(oldClassesPath, JeeLowCodeConstant.CLASSES_DIR)) + .append(JeeLowCodeConstant.PROGRAM_DIR) + .append(oldClazzName.replace(JeeLowCodeConstant.DOT, JeeLowCodeConstant.BACK_SLASH)) + .append(JeeLowCodeConstant.JAVA_SUFFIX).toString(); + // 要复制的增强的类名 + String oldClassName = StringUtils.substringAfterLast(oldClazzName, JeeLowCodeConstant.DOT); + // 读取原增强 + List readList = null; + try { + readList = Files.readAllLines(Paths.get(oldFilePath)); + } catch (IOException ignored) {} + if (readList == null) { + return null; + } + // 生成新增强java文件 + // 处理新增强bean名称、类名、绝对地址等 + String humpTable = StrUtil.toCamelCase(newTableName); + String lowerCaseTable = humpTable.toLowerCase(); + // 新增强文件绝对地址 + String baseNewEnhancePath = new StringBuilder().append(JeeLowCodeProperties.getEnhancePath()) + .append(JeeLowCodeConstant.BACK_SLASH) + .append(type).toString(); + String newFilePathStr = new StringBuilder().append(JeeLowCodeConstant.USER_DIR) + .append(JeeLowCodeConstant.BACK_SLASH) + .append(baseNewEnhancePath) + .append(JeeLowCodeConstant.BACK_SLASH) + .append(lowerCaseTable) + .append(JeeLowCodeConstant.BACK_SLASH) + .append(humpTable) + .append(StringUtils.substringAfterLast(oldFilePath, JeeLowCodeConstant.BACK_SLASH)).toString(); + Path newFilePath = Paths.get(newFilePathStr); + // 判断文件名是否已经存在,存在则累加1 + int counter = 1; + String basePath = StringUtils.substringBeforeLast(newFilePathStr, JeeLowCodeConstant.DOT); + while (Files.exists(newFilePath)) { + newFilePathStr = new StringBuilder().append(basePath).append(counter).append(JeeLowCodeConstant.JAVA_SUFFIX).toString(); + newFilePath = Paths.get(newFilePathStr); + counter++; + } + // 新增强类名 + String newClassName = StringUtils.substringBeforeLast(StringUtils.substringAfterLast(newFilePathStr, JeeLowCodeConstant.BACK_SLASH), JeeLowCodeConstant.DOT); + // 新增强bean名称 + String newEnhanceName = StrUtil.lowerFirst(newClassName); + // 替换指定内容 + String newPackageReference = new StringBuilder().append(StringUtils.substringAfter(baseNewEnhancePath, JeeLowCodeConstant.PROGRAM_DIR)) + .append(JeeLowCodeConstant.BACK_SLASH) + .append(lowerCaseTable) + .toString().replace(JeeLowCodeConstant.BACK_SLASH, JeeLowCodeConstant.DOT); + String pattern1 = "(package)(" + StringUtils.substringBeforeLast(oldClazzName, JeeLowCodeConstant.DOT) + ")(;)"; + String pattern2 = "(\\s*@Component\\s*\\()((\\s*value\\s*=\\s*)|(\\s*))(\")(.+?)(\"\\s*\\))"; + String pattern3 = "(\\s*public\\s+class\\s+)" + oldClassName + "(\\s+implements)"; + String replace1 = "$1" + JeeLowCodeConstant.SPACE + newPackageReference + "$3"; + String replace2 = "$1$2$5" + newEnhanceName + "$7"; + String replace3 = "$1" + newClassName + "$2"; + AtomicBoolean flag1 = new AtomicBoolean(false); + AtomicBoolean flag3 = new AtomicBoolean(false); + List writeList = readList.stream().map(item -> { + String trim = item.replaceAll(JeeLowCodeConstant.SPACE, JeeLowCodeConstant.EMPTY); + if (Pattern.compile(pattern1).matcher(trim).find()) { + flag1.set(true); + return Pattern.compile(pattern1).matcher(trim).replaceAll(replace1); + } + else if (Pattern.compile(pattern2).matcher(item).find()) { + return Pattern.compile(pattern2).matcher(item).replaceAll(replace2); + } + else if (Pattern.compile(pattern3).matcher(item).find()) { + flag3.set(true); + return Pattern.compile(pattern3).matcher(item).replaceAll(replace3); + } + return item; + }).collect(Collectors.toList()); + if (flag1.get() && flag3.get()) { + try { + // 创建文件 + Files.createDirectories(Paths.get(StringUtils.substringBeforeLast(newFilePathStr, JeeLowCodeConstant.BACK_SLASH))); + Files.createFile(newFilePath); + Files.write(newFilePath, writeList); + } catch (IOException e) { + throw new RuntimeException(e); + } + }else { + // 未找到替换目标 + return null; + } + CopyEnhanceParam copyEnhanceParam = new CopyEnhanceParam(); + copyEnhanceParam.setBeanName(newEnhanceName); + copyEnhanceParam.setReference(StringUtils.substringBeforeLast(StringUtils.substringAfter(newFilePathStr, JeeLowCodeConstant.PROGRAM_DIR), JeeLowCodeConstant.JAVA_SUFFIX) + .replace(JeeLowCodeConstant.BACK_SLASH, JeeLowCodeConstant.DOT)); + return copyEnhanceParam; + } + + /** + * 自定义ForkJoinPool + */ + public static ForkJoinPool jeelowcodeForkJoinPool(){ + return jeelowcodeForkJoinPool(20); + } + + /** + * 自定义ForkJoinPool + * + * @param poolSize + */ + public static ForkJoinPool jeelowcodeForkJoinPool(Integer poolSize){ + ForkJoinPool.ForkJoinWorkerThreadFactory factory = pool -> { + ForkJoinWorkerThread thread = ForkJoinPool.defaultForkJoinWorkerThreadFactory.newThread(pool); + thread.setName("jeelowcodeForkJoinPool-worker-"+IdWorker.getIdStr()); + return thread; + }; + return new ForkJoinPool(poolSize, factory, null, false); + } +} + diff --git a/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/FuncWeb.java b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/FuncWeb.java new file mode 100644 index 0000000..76411b0 --- /dev/null +++ b/jeelowcode-core/src/main/java/com/jeelowcode/core/framework/utils/FuncWeb.java @@ -0,0 +1,317 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.core.framework.utils; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhancereport.model.EnhanceReportContext; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.enums.ParamEnum; +import com.jeelowcode.framework.utils.tool.AesUtil; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.FuncWebBase; +import com.jeelowcode.framework.utils.utils.JeeLowCodeUtils; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import com.jeelowcode.core.framework.params.DictLabelParam; +import com.jeelowcode.core.framework.params.DictTableParam; +import com.jeelowcode.core.framework.params.TreeParentParam; +import com.jeelowcode.core.framework.service.impl.FormServiceImpl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.io.IOException; +import java.util.*; + +/** + * 网络工具包集合,工具类快捷方式 + */ +public class FuncWeb extends FuncWebBase { + + + //获取分页 + public static Page getPage(Map params){ + Integer pageNo = Func.getMap2Int(params, ParamEnum.PAGE_NO.getCode()); + Integer pageSize = Func.getMap2Int(params, ParamEnum.PAGE_SIZE.getCode()); + pageNo = FuncBase.isEmpty(pageNo) ? 1 : pageNo; + pageSize = FuncBase.isEmpty(pageSize) ? JeeLowCodeConstant.NOT_PAGE : pageSize; + + Page page=new Page<>(pageNo,pageSize);//分页 + return page; + } + public static Page getPage(Integer pageNo,Integer pageSize){ + Map params=new HashMap<>(); + params.put(ParamEnum.PAGE_NO.getCode(),pageNo); + params.put( ParamEnum.PAGE_SIZE.getCode(),pageSize); + return getPage(params); + } + + /** + * 增强内设置返回结果
+ * 不往下执行框架的查询以及后续增强 + * + * @param enhanceContext + * @param page + */ + public static void setPageResult(EnhanceContext enhanceContext, IPage> page) { + setPageResult(enhanceContext, page, true); + } + + /** + * 增强内设置返回结果 + * + * @param enhanceContext + * @param page + * @param exitFlag exitFlag=true则不往下执行框架的查询以及后续增强 + */ + public static void setPageResult(EnhanceContext enhanceContext, IPage> page, boolean exitFlag) { + List> records; + long total; + if (Func.isEmpty(page) || Func.isEmpty(page.getRecords())) { + records = new ArrayList<>(); + total = 0; + } else { + records = page.getRecords(); + total = page.getTotal(); + } + // exitFlag=true:不往下执行框架的查询以及后续增强 + // id:用于新增、修改和删除,这里null就可以 + enhanceContext.setResult(new EnhanceResult(exitFlag, null, total, records)); + } + + /** + * 报表增强内设置返回结果 + * + * @param enhanceReportContext + * @param list + */ + public static void setReportResult(EnhanceReportContext enhanceReportContext, List> list) { + if (Func.isEmpty(list)) { + list = new ArrayList<>(); + } + enhanceReportContext.getResult().setTotal((long) list.size()); + enhanceReportContext.getResult().setRecords(list); + } + + /** + * 增强内设置返回结果
+ * 不往下执行框架的查询以及后续增强 + * + * @param enhanceContext + * @param map + */ + public static void setDetailResult(EnhanceContext enhanceContext, Map map) { + setDetailResult(enhanceContext, map, true); + } + + /** + * 增强内设置返回结果 + * + * @param enhanceContext + * @param map + * @param exitFlag exitFlag=true则不往下执行框架的查询以及后续增强 + */ + public static void setDetailResult(EnhanceContext enhanceContext, Map map, boolean exitFlag) { + // id:用于新增、修改和删除,这里null就可以 + enhanceContext.setResult(new EnhanceResult(exitFlag, null, 1L, Collections.singletonList(map))); + } + + /** + * 获取所有参数 + * + * @param request + * @return + */ + public static Map getParameterMap(HttpServletRequest request) { + ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request); + Map resultMap = new HashMap<>(); + + //获取所有参数 + Map parameterMap = requestWrapper.getParameterMap(); + Iterator> iterator = parameterMap.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry map = iterator.next(); + + String key = map.getKey(); + String[] values = map.getValue(); + + // 字符串计数器 + String vauleStr = ""; + if (FuncBase.isNotEmpty(values)) { + // value不是字符数组,转成字符串 + if (!(values instanceof String[])) { + vauleStr = values.toString(); + } else { + for (String val : values) { + vauleStr = val + ","; + } + vauleStr = vauleStr.substring(0, vauleStr.length() - 1); + } + } else { + vauleStr = ""; + } + // 重新封装请求参数: + resultMap.put(key, vauleStr); + } + + if (requestWrapper.getMethod().equalsIgnoreCase("POST")) { + try { + BufferedReader reader = requestWrapper.getReader(); + StringBuilder sb = new StringBuilder(); + String line; + while (null != (line = reader.readLine())) { + sb.append(line); + } + Map bodyMap =Func.json2Bean(sb.toString(), Map.class); + if(FuncBase.isEmpty(bodyMap)){ + bodyMap=new HashMap<>(); + } + resultMap.put(ParamEnum.REQUEST_PARAM_BODY.getCode(),bodyMap); + } catch (IOException e) { + e.printStackTrace(); + } + } + Map bodyMap = (Map)resultMap.get(ParamEnum.REQUEST_PARAM_BODY.getCode()); + if(FuncBase.isEmpty(bodyMap)){ + bodyMap=new HashMap<>(); + resultMap.put(ParamEnum.REQUEST_PARAM_BODY.getCode(),bodyMap); + } + //特殊参数值处理 + if(bodyMap.containsKey(ParamEnum.DICT_TABLE_FIELD.getCode())){//字典表显示列 + handleSelfParam_dictTable(bodyMap,ParamEnum.DICT_TABLE_FIELD); + } + if(bodyMap.containsKey(ParamEnum.DICT_LABEL.getCode())){//字典表回显 + handleSelfParam_dictLabel(bodyMap,ParamEnum.DICT_LABEL); + } + if(bodyMap.containsKey(ParamEnum.TREE_PARENT.getCode())){//父级树表 + handleSelfParam_treeParent(bodyMap,ParamEnum.TREE_PARENT); + } + + return resultMap; + } + + /** + * 获取body参数 转为map + * @param request + * @return + */ + public static Map getParameterBodyMap(HttpServletRequest request) { + Map params = getParameterMap(request); + Map bodyMap = (Map)params.get(ParamEnum.REQUEST_PARAM_BODY.getCode()); + return bodyMap; + } + + /** + * 获取body参数 转为对象 + * @param request + * @param clazz + * @param + * @return + */ + public static T getParameterBodyObj(HttpServletRequest request, Class clazz) { + Map bodyMap = getParameterBodyMap(request); + + String jsonStr = Func.json2Str(bodyMap); + return Func.json2Bean(jsonStr,clazz); + } + + + /** + * 字典表自定义列 + * + * @param resultMap + * @param paramEnum + */ + private static void handleSelfParam_dictTable(Map resultMap, ParamEnum paramEnum) { + String str = JeeLowCodeUtils.getMap2Str(resultMap, paramEnum.getCode());//自定义列 id,name,age,sex id,name,age,sex + if (FuncBase.isEmpty(str)) { + return; + } + FormServiceImpl proxyService = SpringUtils.getBean(FormServiceImpl.class); + //解密 + String jsonStr = AesUtil.decryptFormBase64ToString(str, JeeLowCodeProperties.getAesKey()); + DictTableParam dictTableParam = Func.json2Bean(jsonStr, DictTableParam.class); + if(Func.isEmpty(dictTableParam.getDbformId())){ + return; + } + List fieldList = proxyService.getDictTableFieldList(dictTableParam.getDbformId(), dictTableParam.getFieldCodeList()); + + resultMap.put(paramEnum.getCode(),fieldList);//转为字符串 + + } + + /** + * 字典表回显 + * + * @param resultMap + * @param paramEnum + */ + private static void handleSelfParam_dictLabel(Map resultMap, ParamEnum paramEnum) { + String str = JeeLowCodeUtils.getMap2Str(resultMap, paramEnum.getCode());//自定义列 id,name,age,sex id,name,age,sex + if (FuncBase.isEmpty(str)) { + return; + } + FormServiceImpl proxyService = SpringUtils.getBean(FormServiceImpl.class); + //解密 + String jsonStr = AesUtil.decryptFormBase64ToString(str, JeeLowCodeProperties.getAesKey()); + List labelParamList = Func.json2List(jsonStr, DictLabelParam.class); + + for (DictLabelParam param : labelParamList) { + String code = param.getCode();// where id = + String label = param.getLabel();//selct name + + if(Func.isEmpty(param.getDbformId())){ + continue; + } + + List selectFieldList = new ArrayList<>(); + selectFieldList.add(code); + selectFieldList.add(label); + + + + List fieldList = proxyService.getDictTableFieldList(param.getDbformId(), selectFieldList); + param.setFieldList(fieldList); + + } + + resultMap.put(paramEnum.getCode(), labelParamList);//转为字符串 + + } + + /** + * 上级鼠标 + * + * @param resultMap + * @param paramEnum + */ + private static void handleSelfParam_treeParent(Map resultMap, ParamEnum paramEnum) { + String str = JeeLowCodeUtils.getMap2Str(resultMap, paramEnum.getCode());//自定义列 id,name,age,sex id,name,age,sex + if (FuncBase.isEmpty(str)) { + return; + } + + //解密 + String jsonStr = AesUtil.decryptFormBase64ToString(str, JeeLowCodeProperties.getAesKey()); + List paramList = Func.json2List(jsonStr, TreeParentParam.class); + + resultMap.put(paramEnum.getCode(), paramList);//转为字符串 + + } + +} diff --git a/jeelowcode-core/src/main/resources/mapper/example/ExampleDbFormMapper.xml b/jeelowcode-core/src/main/resources/mapper/example/ExampleDbFormMapper.xml new file mode 100644 index 0000000..755a413 --- /dev/null +++ b/jeelowcode-core/src/main/resources/mapper/example/ExampleDbFormMapper.xml @@ -0,0 +1,41 @@ + + + + + + INSERT INTO example_student (id,sno,name,sex,birthday,flag) + VALUES(#{map.id},#{map.sno},#{map.name},#{map.sex},#{map.birthday},#{map.flag}) + + + + INSERT INTO example_student (id,name,birthday) + VALUES(#{id},#{name},#{birthday}) + + + + update example_score set is_deleted = -1 where student_id in + + #{studentId} + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeelowcode-core/src/main/resources/mapper/example/ExampleReportMapper.xml b/jeelowcode-core/src/main/resources/mapper/example/ExampleReportMapper.xml new file mode 100644 index 0000000..5a75a7e --- /dev/null +++ b/jeelowcode-core/src/main/resources/mapper/example/ExampleReportMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/jeelowcode-core/src/main/resources/mapper/framework/AdapterMapper.xml b/jeelowcode-core/src/main/resources/mapper/framework/AdapterMapper.xml new file mode 100644 index 0000000..ace276b --- /dev/null +++ b/jeelowcode-core/src/main/resources/mapper/framework/AdapterMapper.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + diff --git a/jeelowcode-core/src/main/resources/mapper/framework/JeeLowCodeMapper.xml b/jeelowcode-core/src/main/resources/mapper/framework/JeeLowCodeMapper.xml new file mode 100644 index 0000000..40cd6ae --- /dev/null +++ b/jeelowcode-core/src/main/resources/mapper/framework/JeeLowCodeMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + diff --git a/jeelowcode-core/src/main/resources/mapper/framework/LogApiMapper.xml b/jeelowcode-core/src/main/resources/mapper/framework/LogApiMapper.xml new file mode 100644 index 0000000..f13bcd8 --- /dev/null +++ b/jeelowcode-core/src/main/resources/mapper/framework/LogApiMapper.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/jeelowcode-dependencies/pom.xml b/jeelowcode-dependencies/pom.xml new file mode 100644 index 0000000..0bebc50 --- /dev/null +++ b/jeelowcode-dependencies/pom.xml @@ -0,0 +1,770 @@ + + + 4.0.0 + + com.jeelowcode + jeelowcode-dependencies + ${revision} + pom + + ${project.artifactId} + 基础 bom 文件,管理整个项目的依赖版本 + + + 2.0.1-jdk8-snapshot + 1.5.0 + + 2.7.18 + + 1.6.15 + 4.3.0 + 2.5 + + 1.2.21 + 3.5.15 + 3.5.5 + 3.5.5 + 4.3.0 + 1.4.10 + 3.18.0 + 8.1.3.62 + + 2.2.3 + + 2.2.7 + 1.7.1 + + 8.12.0 + 2.7.15 + 0.33.0 + + 7.2.11.RELEASE + 1.0.13 + 4.11.0 + + 6.8.0 + + 1.0.10 + 1.17.2 + 1.18.30 + 1.5.5.Final + 5.8.25 + 4.1.2 + 4.1.2 + 3.3.3 + 2.3 + 1.0.5 + 1.2.83 + 33.0.0-jre + 5.1.0 + 2.14.5 + 3.10.0 + 0.1.55 + 2.9.1 + 2.7.0 + 3.0.6 + + 3.5.0 + 4.11.0 + 2.15.1 + 8.5.7 + 4.6.4 + 2.2.1 + 3.1.880 + 1.0.8 + 2.12.2 + 4.6.0 + + 1.0.0 + + 4.3 + 4.0.4 + 1.6.1 + 4.13.2 + 1.9.7 + 2.3.12.RELEASE + 3.0.21 + 3.3.3 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-operatelog + ${revision} + + + io.github.mouzt + bizlog-sdk + ${bizlog-sdk.version} + + + org.springframework.boot + spring-boot-starter + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-dict + ${revision} + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + ${revision} + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-data-permission + ${revision} + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-ip + ${revision} + + + cn.iocoder.boot + yudao-spring-boot-starter-captcha + ${revision} + + + + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + ${revision} + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + ${revision} + + + + cn.iocoder.boot + yudao-spring-boot-starter-websocket + ${revision} + + + + com.github.xiaoymin + knife4j-openapi3-spring-boot-starter + ${knife4j.version} + + + org.springdoc + springdoc-openapi-ui + ${springdoc.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + ${revision} + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + org.mybatis + mybatis + ${mybatis.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + com.baomidou + mybatis-plus-generator + ${mybatis-plus-generator.version} + + + com.baomidou + dynamic-datasource-spring-boot-starter + ${dynamic-datasource.version} + + + com.github.yulichang + mybatis-plus-join-boot-starter + ${mybatis-plus-join.version} + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + ${revision} + + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + org.springframework.boot + spring-boot-starter-actuator + + + + + + com.dameng + DmJdbcDriver18 + ${dm8.jdbc.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-job + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + ${revision} + + + + org.apache.rocketmq + rocketmq-spring-boot-starter + ${rocketmq-spring.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-protection + ${revision} + + + + com.baomidou + lock4j-redisson-spring-boot-starter + ${lock4j.version} + + + redisson-spring-boot-starter + org.redisson + + + + + + io.github.resilience4j + resilience4j-ratelimiter + ${resilience4j.version} + + + io.github.resilience4j + resilience4j-spring-boot2 + ${resilience4j.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-monitor + ${revision} + + + + org.apache.skywalking + apm-toolkit-trace + ${skywalking.version} + + + org.apache.skywalking + apm-toolkit-logback-1.x + ${skywalking.version} + + + org.apache.skywalking + apm-toolkit-opentracing + ${skywalking.version} + + + + + + + + + + + + + io.opentracing + opentracing-api + ${opentracing.version} + + + io.opentracing + opentracing-util + ${opentracing.version} + + + io.opentracing + opentracing-noop + ${opentracing.version} + + + + de.codecentric + spring-boot-admin-starter-server + ${spring-boot-admin.version} + + + de.codecentric + spring-boot-admin-server-cloud + + + + + de.codecentric + spring-boot-admin-starter-client + ${spring-boot-admin.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + ${revision} + test + + + + org.mockito + mockito-inline + ${mockito-inline.version} + + + + org.springframework.boot + spring-boot-starter-test + ${spring.boot.version} + + + asm + org.ow2.asm + + + org.mockito + mockito-core + + + + + + com.github.fppt + jedis-mock + ${jedis-mock.version} + + + + uk.co.jemos.podam + podam + ${podam.version} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-flowable + ${revision} + + + org.flowable + flowable-spring-boot-starter-process + ${flowable.version} + + + org.flowable + flowable-spring-boot-starter-actuator + ${flowable.version} + + + + + + cn.iocoder.boot + yudao-common + ${revision} + + + + cn.iocoder.boot + yudao-spring-boot-starter-excel + ${revision} + + + + org.projectlombok + lombok + ${lombok.version} + + + + org.mapstruct + mapstruct + ${mapstruct.version} + + + org.mapstruct + mapstruct-jdk8 + ${mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + cn.hutool + hutool-all + ${hutool.version} + + + + org.apache.poi + poi-ooxml + ${poi-ooxml.verion} + + + org.apache.poi + poi-scratchpad + ${poi-scratchpad.verion} + + + com.alibaba + easyexcel + ${easyexcel.verion} + + + commons-io + commons-io + ${commons-io.version} + + + org.apache.tika + tika-core + ${tika-core.version} + + + + org.apache.velocity + velocity-engine-core + ${velocity.version} + + + + com.alibaba + fastjson + ${fastjson.version} + + + + cn.smallbun.screw + screw-core + ${screw.version} + + + org.freemarker + freemarker + + + com.alibaba + fastjson + + + + + + com.google.guava + guava + ${guava.version} + + + + + + com.alibaba + transmittable-thread-local + ${transmittable-thread-local.version} + + + + commons-net + commons-net + ${commons-net.version} + + + + com.jcraft + jsch + ${jsch.version} + + + + com.xingyuv + spring-boot-starter-captcha-plus + ${captcha-plus.version} + + + + org.lionsoul + ip2region + ${ip2region.version} + + + + org.jsoup + jsoup + ${jsoup.version} + + + + + com.squareup.okio + okio + ${okio.version} + + + com.squareup.okhttp3 + okhttp + ${okhttp3.version} + + + cn.iocoder.boot + yudao-spring-boot-starter-file + ${revision} + + + io.minio + minio + ${minio.version} + + + + + com.aliyun + aliyun-java-sdk-core + ${aliyun-java-sdk-core.version} + + + opentracing-api + io.opentracing + + + opentracing-util + io.opentracing + + + + + com.aliyun + aliyun-java-sdk-dysmsapi + ${aliyun-java-sdk-dysmsapi.version} + + + com.tencentcloudapi + tencentcloud-sdk-java-sms + ${tencentcloud-sdk-java.version} + + + + + com.xingyuv + spring-boot-starter-justauth + ${justauth.version} + + + cn.hutool + hutool-core + + + + + + com.github.binarywang + wx-java-mp-spring-boot-starter + ${weixin-java.version} + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + ${weixin-java.version} + + + + + + jakarta.servlet + jakarta.servlet-api + ${servlet.version} + + + + dom4j + dom4j + ${dom4j.version} + + + + junit + junit + ${junit.version} + + + + org.aspectj + aspectjweaver + ${aspectjweaver.version} + + + + com.github.jsqlparser + jsqlparser + ${jsqlparser.version} + + + + org.codehaus.groovy + groovy + ${groovy.version} + + + + com.alibaba + QLExpress + ${express.version} + + + + + com.jeelowcode + jeelowcode-utils + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-tenant + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-excel + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-exception + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-plus + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-global + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-module-api + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-module-biz + ${jeelowcode.version} + + + + com.jeelowcode + jeelowcode-core + ${jeelowcode.version} + + + + + + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + resolveCiFriendliesOnly + true + + + + + flatten + + flatten + process-resources + + + + clean + + flatten.clean + clean + + + + + + + diff --git a/jeelowcode-framework/jeelowcode-excel/pom.xml b/jeelowcode-framework/jeelowcode-excel/pom.xml new file mode 100644 index 0000000..3a1fc98 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/pom.xml @@ -0,0 +1,33 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-excel + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - excel模块 + + + + + com.jeelowcode + jeelowcode-utils + + + + com.alibaba + easyexcel + + + + + + diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/JeeLowCodeExcelUtils.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/JeeLowCodeExcelUtils.java new file mode 100644 index 0000000..3254bf4 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/JeeLowCodeExcelUtils.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel; + +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.excel.read.ExcelImportUtils; +import com.jeelowcode.framework.excel.write.ExcelExportUtils; +import org.apache.commons.collections4.map.LinkedMap; + +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.util.List; +import java.util.Map; + +public class JeeLowCodeExcelUtils { + + + /** + * 导出 Excel + * @param response + * @param sheetName + * @param headMap + * @param dataList + */ + public static void exportExcel(HttpServletResponse response, String sheetName, LinkedMap headMap, List> dataList) { + ExcelExportUtils.exportExcel(response,sheetName,headMap,dataList); + } + + /** + * 导入Excel + * @param inputStream + * @param headerCou 表头所在的行数 + * @return + */ + public static List> importExcel(InputStream inputStream, Integer headerCou, Map fieldNameAndCodeMap){ + return ExcelImportUtils.importExcel(inputStream,headerCou,fieldNameAndCodeMap); + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/CustomSheetWriteHandler.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/CustomSheetWriteHandler.java new file mode 100644 index 0000000..6f83cde --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/CustomSheetWriteHandler.java @@ -0,0 +1,42 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.handler; + +import com.alibaba.excel.write.handler.SheetWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.xssf.streaming.SXSSFSheet; + +/** + * + */ +public class CustomSheetWriteHandler implements SheetWriteHandler { + + private static final Integer COLUMN = 26; + + @Override + public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + for (int i = 0; i < COLUMN; i++) { + // 设置为文本格式 + SXSSFSheet sxssfSheet = (SXSSFSheet) writeSheetHolder.getSheet(); + CellStyle cellStyle = writeWorkbookHolder.getCachedWorkbook().createCellStyle(); + // 49为文本格式 + cellStyle.setDataFormat((short) 49); + // i为列,一整列设置为文本格式 + sxssfSheet.setDefaultColumnStyle(i, cellStyle); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/RowFormatSetTextHandler.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/RowFormatSetTextHandler.java new file mode 100644 index 0000000..fcc6af9 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/handler/RowFormatSetTextHandler.java @@ -0,0 +1,146 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.handler; + +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.alibaba.excel.write.handler.CellWriteHandler; +import com.alibaba.excel.write.handler.context.CellWriteHandlerContext; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.util.CellRangeAddressList; +import org.apache.poi.xssf.usermodel.DefaultIndexedColorMap; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFColor; + +import java.awt.Color; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 单元格设置文本格式 + */ +public class RowFormatSetTextHandler implements CellWriteHandler { + + Map> dropdownOptionsMap=new HashMap<>(); + + Map cellStyleMap = new HashMap<>(); + + public RowFormatSetTextHandler() { + } + + + @Override + public void beforeCellCreate(CellWriteHandlerContext context) { + + WriteSheetHolder writeSheetHolder = context.getWriteSheetHolder(); + Sheet sheet = writeSheetHolder.getSheet(); + Integer rowIndex = context.getRowIndex(); + if(rowIndex!=0){ + return; + } + Integer columnIndex = context.getColumnIndex(); + + //下拉列表 + List dropdownOptionList = dropdownOptionsMap.get(columnIndex); + if(FuncBase.isEmpty(dropdownOptionList)){ + return; + } + + createDropdownList(sheet,dropdownOptionList,columnIndex); + } + + @Override + public void afterCellDispose(CellWriteHandlerContext context) { + WriteCellData cellData = context.getFirstCellData(); + // 清除原有单元格颜色 + WriteCellStyle writeCellStyle = cellData.getWriteCellStyle(); + writeCellStyle.setFillForegroundColor(null); + // 重新设置自定义RGB颜色 + CellStyle cellStyle; + int cellStyleKey; + Integer rowIndex = context.getRowIndex(); + if (rowIndex == 0) { + // 第0行,即表头 + cellStyleKey = 0; + cellStyle = cellStyleMap.computeIfAbsent(cellStyleKey, + value -> getCellStyle(cellData, context, new Color(115, 174, 76))); + } else if ((rowIndex & 1) == 0) { + // 偶数行 + cellStyleKey = 2; + cellStyle = cellStyleMap.computeIfAbsent(cellStyleKey, + value -> getCellStyle(cellData, context, new Color(255, 255, 255))); + } else { + // 奇数行 + cellStyleKey = 1; + cellStyle = cellStyleMap.computeIfAbsent(cellStyleKey, + value -> getCellStyle(cellData, context, new Color(227, 239, 219))); + } + cellData.setOriginCellStyle(cellStyle); + } + + /** + * 单元格样式 + */ + private CellStyle getCellStyle(WriteCellData cellData, CellWriteHandlerContext context, Color color) { + CellStyle style = cellData.getOriginCellStyle(); + if (FuncBase.isEmpty(style)) { + style = context.getWriteWorkbookHolder().getWorkbook().createCellStyle(); + } + XSSFColor xssfColor = new XSSFColor(color, new DefaultIndexedColorMap()); + ((XSSFCellStyle) style).setFillForegroundColor(xssfColor); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); + return style; + } + + /** + * 下拉 + * @param sheet + * @param dropdownOptionList + */ + public void createDropdownList( Sheet sheet, List dropdownOptionList, int firstCol) { + if(FuncBase.isEmpty(dropdownOptionList)){ + return; + } + + DataValidationHelper helper = sheet.getDataValidationHelper(); + + String[] dropdownOptionsArray = dropdownOptionList.toArray(new String[0]); + + // 创建下拉列表的约束 + DataValidationConstraint constraint = helper.createExplicitListConstraint(dropdownOptionsArray); + + // 设置下拉列表应用的单元格区域,例如第2行到最后一行的第2列 + int firstRow = 1; // 通常Excel中第一行是1,这里假设第一行为表头 + int lastRow=65536; + int lastCol = firstCol; + CellRangeAddressList regions = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol); + + // 创建数据验证规则并添加到工作表 + DataValidation validation = helper.createValidation(constraint, regions); + sheet.addValidationData(validation); + } + + + public Map> getDropdownOptionsMap() { + return dropdownOptionsMap; + } + + public void setDropdownOptionsMap(Map> dropdownOptionsMap) { + this.dropdownOptionsMap = dropdownOptionsMap; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/listener/JeeLowCodeExcelListener.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/listener/JeeLowCodeExcelListener.java new file mode 100644 index 0000000..44a5842 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/listener/JeeLowCodeExcelListener.java @@ -0,0 +1,55 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 自定义监听器 + */ +public class JeeLowCodeExcelListener extends AnalysisEventListener> { + //表头数据(存储所有的表头数据) + private List> headList = new ArrayList<>(); + //数据体 + private List> dataList = new ArrayList<>(); + + + @Override//这里会一行行的返回头 + public void invokeHeadMap(Map headMap, AnalysisContext context) { + //存储全部表头数据 + headList.add(headMap); + } + + @Override// 处理每一行数据 + public void invoke(Map data, AnalysisContext context) { + dataList.add(data); + } + + @Override// 全部处理结束执行 + public void doAfterAllAnalysed(AnalysisContext context) { + } + + public List> getHeadList() { + return headList; + } + + public List> getDataList() { + return dataList; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/model/ExcelTitleModel.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/model/ExcelTitleModel.java new file mode 100644 index 0000000..834a81a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/model/ExcelTitleModel.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.model; + +import java.util.List; + +public class ExcelTitleModel { + private String title;//标题 + private List dropdownOptionList;//下拉列表 + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public List getDropdownOptionList() { + return dropdownOptionList; + } + + public void setDropdownOptionList(List dropdownOptionList) { + this.dropdownOptionList = dropdownOptionList; + } +} diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/read/ExcelImportUtils.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/read/ExcelImportUtils.java new file mode 100644 index 0000000..7f85c54 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/read/ExcelImportUtils.java @@ -0,0 +1,103 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.read; + + +import cn.hutool.core.util.IdUtil; +import com.jeelowcode.framework.excel.listener.JeeLowCodeExcelListener; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.alibaba.excel.EasyExcelFactory; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 处理导入数据 + */ +public class ExcelImportUtils { + + + /** + * 动态表头导入功能 + * + * @param inputStream 文件 + * @return + */ + public static List> importExcel(InputStream inputStream,Integer headerCou, Map fieldNameAndCodeMap) { + try { + Integer sheet=0;; + + // 首先校验传入文件是否为空 + if (inputStream == null) { + throw new JeeLowCodeException("文件源为空"); + } + // 引入监听器(此处需注意,监听器不可被Spring管理) + JeeLowCodeExcelListener readListener = new JeeLowCodeExcelListener(); + // 开始处理excel + EasyExcelFactory.read(inputStream, readListener) + .sheet(sheet) + .headRowNumber(headerCou) + .doRead(); + // 获取表头(验空) + List> headList = readListener.getHeadList(); + if (FuncBase.isEmpty(headList)) { + throw new JeeLowCodeException("Excel表头不能为空"); + } + //获取头部,取最后一次解析的列头数据 + Map excelHeadIdxNameMap = headList.get(headList.size() - 1); + + // 获取表数据(验空) + List> dataList = readListener.getDataList(); + if (FuncBase.isEmpty(dataList)) { + throw new JeeLowCodeException("Excel数据内容不能为空"); + } + + //封装数据体 + AtomicInteger atomicInteger= new AtomicInteger(1); + List> excelDataList = new ArrayList>(); + for (Map dataRow : dataList) { + HashMap rowData = new HashMap<>(); + int step =atomicInteger.getAndIncrement(); + rowData.put(JeeLowCodeConstant.EXCEL_IMPORT_STEP,step);//处理序号 + rowData.put(JeeLowCodeConstant.EXCEL_IMPORT_ID,IdUtil.getSnowflakeNextId());//id + + + excelHeadIdxNameMap.entrySet().forEach(columnHead -> { + String value = columnHead.getValue(); + String fieldCode = fieldNameAndCodeMap.get(value); + if(FuncBase.isNotEmpty(fieldCode)){ + rowData.put(fieldCode, dataRow.get(columnHead.getKey())); + } + }); + if(FuncBase.isEmpty(rowData)){ + continue; + } + excelDataList.add(rowData); + } + + return excelDataList; + } catch (Exception e) { + e.printStackTrace(); + throw new JeeLowCodeException(e.getMessage()); + } + + } + +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CellStyleUtils.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CellStyleUtils.java new file mode 100644 index 0000000..84a6a62 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CellStyleUtils.java @@ -0,0 +1,136 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.write; + +import com.alibaba.excel.metadata.data.DataFormatData; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.metadata.style.WriteFont; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import org.apache.poi.ss.usermodel.*; + +import java.util.ArrayList; +import java.util.List; + +public class CellStyleUtils { + + /** + * 对行使用相同的样式
+ * 头和内容分别使用不同样式 + */ + public static HorizontalCellStyleStrategy getCellStyleStrategy(){ +// List contentStyleList = new ArrayList<>();// 内容奇偶数行样式不一致 +// contentStyleList.add(getOddRowContentStyle()); +// contentStyleList.add(getEvenRowContentStyle()); + return new HorizontalCellStyleStrategy(getHeadStyle(), getContentStyle()); + } + + /** + * 头样式 + */ + public static WriteCellStyle getHeadStyle() { + WriteCellStyle style = new WriteCellStyle(); + DataFormatData dataFormatData = new DataFormatData(); + dataFormatData.setFormat("@"); + style.setDataFormatData(dataFormatData);// 单元格格式 + WriteFont font = new WriteFont(); + font.setFontHeightInPoints((short) 12); + font.setBold(false); + font.setColor(IndexedColors.WHITE.getIndex()); + style.setWriteFont(font);// 字体 + style.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平对齐方式 + style.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直对齐方式 + style.setBorderTop(BorderStyle.THIN); + style.setBorderBottom(BorderStyle.THIN);// 边框样式 + style.setBorderLeft(BorderStyle.THIN); + style.setBorderRight(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex());// 边框颜色 + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + return style; + } + + /** + * 内容样式 + */ + public static WriteCellStyle getContentStyle() { + WriteCellStyle style = new WriteCellStyle(); + DataFormatData dataFormatData = new DataFormatData(); + dataFormatData.setFormat("@"); + style.setDataFormatData(dataFormatData);// 单元格格式 + WriteFont font = new WriteFont(); + font.setFontHeightInPoints((short) 12); + style.setWriteFont(font);// 字体 + style.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平对齐方式 + style.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直对齐方式 + style.setBorderTop(BorderStyle.THIN); + style.setBorderBottom(BorderStyle.THIN);// 边框样式 + style.setBorderLeft(BorderStyle.THIN); + style.setBorderRight(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex());// 边框颜色 + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + return style; + } + + /** + * 奇数行内容样式 + */ + public static WriteCellStyle getOddRowContentStyle() { + WriteCellStyle style = new WriteCellStyle(); + DataFormatData dataFormatData = new DataFormatData(); + dataFormatData.setFormat("@"); + style.setDataFormatData(dataFormatData);// 单元格格式 + WriteFont font = new WriteFont(); + font.setFontHeightInPoints((short) 12); + style.setWriteFont(font);// 字体 + style.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平对齐方式 + style.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直对齐方式 + style.setBorderTop(BorderStyle.THIN); + style.setBorderBottom(BorderStyle.THIN);// 边框样式 + style.setBorderLeft(BorderStyle.THIN); + style.setBorderRight(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex());// 边框颜色 + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + return style; + } + + /** + * 偶数行内容样式 + */ + public static WriteCellStyle getEvenRowContentStyle() { + WriteCellStyle style = new WriteCellStyle(); + WriteFont font = new WriteFont(); + DataFormatData dataFormatData = new DataFormatData(); + dataFormatData.setFormat("@"); + style.setDataFormatData(dataFormatData);// 文本格式 + font.setFontHeightInPoints((short) 12); + style.setWriteFont(font);// 字体 + style.setHorizontalAlignment(HorizontalAlignment.CENTER);// 水平对齐方式 + style.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直对齐方式 + style.setBorderTop(BorderStyle.THIN); + style.setBorderBottom(BorderStyle.THIN);// 边框样式 + style.setBorderLeft(BorderStyle.THIN); + style.setBorderRight(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex());// 边框颜色 + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + return style; + } +} diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CustomColumnWidthStyleStrategy.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CustomColumnWidthStyleStrategy.java new file mode 100644 index 0000000..72ef33a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/CustomColumnWidthStyleStrategy.java @@ -0,0 +1,43 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.write; + +import com.alibaba.excel.write.handler.context.CellWriteHandlerContext; +import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.ss.usermodel.Sheet; + +/** + * 列宽样式策略 + */ +public class CustomColumnWidthStyleStrategy extends AbstractColumnWidthStyleStrategy { + + @Override + protected void setColumnWidth(CellWriteHandlerContext context) { + // 只需设置首行 + if (context.getRowIndex() != 0) { + return; + } + DataFormatter dataFormatter = new DataFormatter(); + Cell cell = context.getCell(); + int length = dataFormatter.formatCellValue(cell).length(); + if (length < 6) { + length = 6; + } + Sheet sheet = context.getWriteSheetHolder().getSheet(); + sheet.setColumnWidth(context.getColumnIndex(), length * 1000); + } +} diff --git a/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/ExcelExportUtils.java b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/ExcelExportUtils.java new file mode 100644 index 0000000..d4812a7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-excel/src/main/java/com/jeelowcode/framework/excel/write/ExcelExportUtils.java @@ -0,0 +1,134 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.excel.write; + +import com.jeelowcode.framework.excel.handler.CustomSheetWriteHandler; +import com.jeelowcode.framework.excel.handler.RowFormatSetTextHandler; +import com.jeelowcode.framework.excel.model.ExcelTitleModel; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.alibaba.excel.EasyExcel; +import org.apache.commons.collections4.map.LinkedMap; + +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.*; + +public class ExcelExportUtils { + + /** + * 封装表头信息 + * @param headMap {name:姓名} {age:年龄} + * @return + */ + private static List> getExcelHeaderList(LinkedMap headMap){ + //处理头部 + List> head = new ArrayList<>(); + headMap.forEach((code, model) -> { + List headList = new ArrayList<>(); + headList.add(model.getTitle()); + head.add(headList); + }); + return head; + } + + /** + * 封装表数据 + * @param headMap + * @param dataList {name:张三}{age:18} + * @return + */ + private static List> getExcelDataList(LinkedMap headMap, List> dataList){ + List> data=new ArrayList<>(); + //处理数据 + dataList.stream().forEach(dataMap->{ + List tmpList=new ArrayList<>(); + headMap.forEach((code,title)->{ + Object tmpVal = dataMap.get(code); + tmpList.add(tmpVal); + }); + data.add(tmpList); + }); + return data; + } + + + /** + * 动态表头导出 + * @param response + * @param sheetName + * @param headMap + * @param dataList + */ + public static void exportExcel(HttpServletResponse response, String sheetName, LinkedMap headMap, List> dataList) { + try { + if(FuncBase.isEmpty(headMap)){ + throw new JeeLowCodeException("表头不允许为空"); + } + + + //设置mime类型 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + //设置编码 + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + String outFileName = URLEncoder.encode(sheetName, "UTF-8"); + //设置响应头信息 Content-disposition + response.setHeader("Content-disposition", "attachment;filename=" + outFileName + ".xlsx"); + + //处理头部 + List> head =getExcelHeaderList(headMap); + //处理表数据 + List> data=getExcelDataList(headMap,dataList); + //处理下拉内容 + Map> dropdownOptionsMap=getDropdownOptionsMap(headMap); + + RowFormatSetTextHandler rowFormatSetTextHandler = new RowFormatSetTextHandler(); + rowFormatSetTextHandler.setDropdownOptionsMap(dropdownOptionsMap); + EasyExcel.write(response.getOutputStream()) + .registerWriteHandler(rowFormatSetTextHandler) + .registerWriteHandler(new CustomSheetWriteHandler())// 初始化单元格为文本格式 + .registerWriteHandler(new CustomColumnWidthStyleStrategy())// 单元格宽度 + .registerWriteHandler(CellStyleUtils.getCellStyleStrategy())// 单元格样式 + .head(head) + .sheet(sheetName).doWrite(data); + } catch (Exception e) { + throw new JeeLowCodeException(e.getMessage()); + } + } + + /** + * 处理下拉列表 + * @param headMap + * @return + */ + private static Map> getDropdownOptionsMap(LinkedMap headMap){ + Map> dropdownOptionsMap=new HashMap<>(); + + int index = 0; // 初始化序号变量 + Iterator> iterator = headMap.entrySet().iterator(); + while (iterator.hasNext()) { + + Map.Entry entry = iterator.next(); + ExcelTitleModel model = entry.getValue(); + List dropdownOptionList = model.getDropdownOptionList(); + if(FuncBase.isNotEmpty(dropdownOptionList)){ + dropdownOptionsMap.put(index,dropdownOptionList); + } + ++index; + } + return dropdownOptionsMap; + } + +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-exception/pom.xml b/jeelowcode-framework/jeelowcode-exception/pom.xml new file mode 100644 index 0000000..3053e2a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-exception/pom.xml @@ -0,0 +1,26 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-exception + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - 自定义异常模块 + + + + cn.hutool + hutool-all + + + + + diff --git a/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/code/JeeLowCodeErrorCode.java b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/code/JeeLowCodeErrorCode.java new file mode 100644 index 0000000..de8f316 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/code/JeeLowCodeErrorCode.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.code; + +/** + */ +public class JeeLowCodeErrorCode { + + /** + * 错误码 + */ + private final Integer code; + /** + * 错误提示 + */ + private final String msg; + + public JeeLowCodeErrorCode(Integer code, String message) { + this.code = code; + this.msg = message; + } + + public Integer getCode() { + return code; + } + + public String getMsg() { + return msg; + } +} diff --git a/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/constants/FrameErrorCodeConstants.java b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/constants/FrameErrorCodeConstants.java new file mode 100644 index 0000000..8912fe6 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/constants/FrameErrorCodeConstants.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.constants; +import com.jeelowcode.framework.code.*; +import com.jeelowcode.framework.code.JeeLowCodeErrorCode; + +/** + * 框架 错误码枚举类 + *

+ * 低代码 系统,使用 6-001-000-000 段 + */ +public interface FrameErrorCodeConstants { + + JeeLowCodeErrorCode SUCCESS = new JeeLowCodeErrorCode(0, "成功"); + + // ========== 框架相关 6-001-001-000 ============ + JeeLowCodeErrorCode FRAME_PARAM_ERROR = new JeeLowCodeErrorCode(1_600_001_000, "系统开小差了"); + JeeLowCodeErrorCode FRAME_NOT_ROLE_ERROR = new JeeLowCodeErrorCode(1_600_011_000, "无权限访问"); + + JeeLowCodeErrorCode FRAM_SELF_ERROR = new JeeLowCodeErrorCode(1_600_001_001, "自定义错误"); + JeeLowCodeErrorCode FRAME_ISNOT_ADMINISTOR_ERROR = new JeeLowCodeErrorCode(1_600_001_002, "该功能只允许超级管理员操作"); + + + JeeLowCodeErrorCode FRAME_OP_ERROR = new JeeLowCodeErrorCode(1_600_001_003, "操作失败"); + JeeLowCodeErrorCode FRAME_ENHANCE_ERROR = new JeeLowCodeErrorCode(1_600_001_004, "增强已锁"); + JeeLowCodeErrorCode FRAME_LOGIN_VIEW_ERROR = new JeeLowCodeErrorCode(1_600_001_005,"用户未登录"); + + JeeLowCodeErrorCode FRAME_TABLE_NAME_ILLEGAL= new JeeLowCodeErrorCode(1_600_001_006,"表名称不符合"); + JeeLowCodeErrorCode FRAME_DESFORM_CORE_ISEXIT_ERROR = new JeeLowCodeErrorCode(1_600_001_07,"编码已存在"); + JeeLowCodeErrorCode FRAME_PARAM_NULL_ERROR = new JeeLowCodeErrorCode(1_600_001_08,"参数不允许为空"); + JeeLowCodeErrorCode FRAME_MAIN_TABLE_NOT = new JeeLowCodeErrorCode(1_600_001_09,"绑定的主表不存在"); + JeeLowCodeErrorCode FRAME_IMPORT_EXCEL = new JeeLowCodeErrorCode(1_600_001_10,"请使用正确的Excel表导入数据"); + JeeLowCodeErrorCode FRAME_DESFORM_IS_OPEN = new JeeLowCodeErrorCode(1_600_001_11,"该表单需要登录才可访问"); + + JeeLowCodeErrorCode FRAME_IMPORT_EXCEL_NOT_DATA = new JeeLowCodeErrorCode(1_600_001_12,"数据不存在"); + JeeLowCodeErrorCode FRAME_IMPORT_EXCEL_STATE_ERROR = new JeeLowCodeErrorCode(1_600_001_13,"表状态不符合"); + JeeLowCodeErrorCode FRAME_CORE_EXIT = new JeeLowCodeErrorCode(1_600_001_14,"编号已存在"); +} diff --git a/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeException.java b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeException.java new file mode 100644 index 0000000..6aec7d4 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeException.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.exception; + +/** + * 自定义异常 + */ +public class JeeLowCodeException extends RuntimeException { + public JeeLowCodeException(String message) { + super(message); + } +} diff --git a/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeMoreException.java b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeMoreException.java new file mode 100644 index 0000000..913139a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-exception/src/main/java/com/jeelowcode/framework/exception/JeeLowCodeMoreException.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.exception; + + +import cn.hutool.json.JSONUtil; + +import java.util.HashMap; +import java.util.Map; + +/** + * 自定义异常-详细错误信息 + */ +public class JeeLowCodeMoreException extends RuntimeException { + public JeeLowCodeMoreException(String title,String message) { + if(message==null){ + message=""; + } + if(message.startsWith("\r\n")){ + message=message.substring(2); + } + + Map map=new HashMap<>(); + map.put("title",title); + map.put("e",message); + String jsonStr = JSONUtil.toJsonStr(map); + throw new JeeLowCodeMoreException(jsonStr); + } + private JeeLowCodeMoreException(String message) { + super(message); + } +} diff --git a/jeelowcode-framework/jeelowcode-global/pom.xml b/jeelowcode-framework/jeelowcode-global/pom.xml new file mode 100644 index 0000000..0d8f2dc --- /dev/null +++ b/jeelowcode-framework/jeelowcode-global/pom.xml @@ -0,0 +1,24 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-global + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - 全局常量 + + + + + + + + diff --git a/jeelowcode-framework/jeelowcode-global/src/main/java/com/jeelowcode/framework/global/JeeLowCodeBaseConstant.java b/jeelowcode-framework/jeelowcode-global/src/main/java/com/jeelowcode/framework/global/JeeLowCodeBaseConstant.java new file mode 100644 index 0000000..f6214d3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-global/src/main/java/com/jeelowcode/framework/global/JeeLowCodeBaseConstant.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.global; + +/** + * 全局公共 + */ +public interface JeeLowCodeBaseConstant { + String REQUEST_URL_START="/admin-api/jeelowcode";//公共请求 + String BASE_PACKAGES="com.jeelowcode";//公共包名称 + String BASE_PACKAGES_CODE=BASE_PACKAGES+".core";//核心包名 +} diff --git a/jeelowcode-framework/jeelowcode-plus/pom.xml b/jeelowcode-framework/jeelowcode-plus/pom.xml new file mode 100644 index 0000000..e0380d8 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/pom.xml @@ -0,0 +1,36 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-plus + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - Sql封装 + + + + + com.jeelowcode + jeelowcode-utils + + + + com.jeelowcode + jeelowcode-tenant + + + + com.github.jsqlparser + jsqlparser + + + + diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/SqlHelper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/SqlHelper.java new file mode 100644 index 0000000..89258e4 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/SqlHelper.java @@ -0,0 +1,447 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.AndExpression; +import com.jeelowcode.framework.plus.build.build.ddl.*; +import com.jeelowcode.framework.plus.build.build.dql.BuildSelect; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.*; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoPublicModel; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoDeleteWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoInsertWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoUpdateWrapper; +import com.jeelowcode.framework.plus.chain.entity.TenantIdFilterEntity; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.enums.DbTypeEnum; +import com.jeelowcode.framework.plus.flyweight.FlyweightDBFactory; +import com.jeelowcode.framework.plus.template.AbstractDbTemplate; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class SqlHelper { + + //数据库类型 + //private static String dbType="postgresql"; + //private static String dbSchemaName="db_jeelowcode"; + + private static String dbType="mysql"; + private static String dbSchemaName="db_jeelowcode"; + + //数据库类型 + //private static String dbType="oracle"; + //private static String dbSchemaName="c##jee_test"; + + public static void setDbType(String dbType) { + SqlHelper.dbType = dbType; + } + + + public static void setDbSchemaName(String dbSchemaName) { + SqlHelper.dbSchemaName = dbSchemaName; + } + + private static AbstractDbTemplate getAbstractDbTemplate() { + DbTypeEnum dbTypeEnum = DbTypeEnum.getByDbCode(dbType); + AbstractDbTemplate template = FlyweightDBFactory.getDbType(dbTypeEnum); + return template; + } + + public static DbColunmTypesEntity getDbColunmTypesEntity() { + DbTypeEnum dbTypeEnum = DbTypeEnum.getByDbCode(dbType); + AbstractDbTemplate template = FlyweightDBFactory.getDbType(dbTypeEnum); + + SqlInfoEntity sqlInfoEntity=new SqlInfoEntity(); + SQLInterpretContext context =new SQLInterpretContext(dbSchemaName); + sqlInfoEntity.setContext(context); + template.operation(sqlInfoEntity); + return sqlInfoEntity.getContext().getDbColunmTypes(); + } + + //获取租户权限 + private static TenantIdFilterEntity getTenantIdFilterEntity() { + //处理租户 + IJeeLowCodeAdapter adapter = SpringUtils.getBean(IJeeLowCodeAdapter.class); + Set tenantIgnoreTable = adapter.getTenantIgnoreTable();//忽略的表 + Set tenantIgnoreUrl = adapter.getTenantIgnoreUrl();//忽略的表 + boolean tenantEnable = adapter.getTenantEnable(); + + TenantIdFilterEntity tenantIdFilterEntity = new TenantIdFilterEntity(); + tenantIdFilterEntity.setEnable(tenantEnable); + tenantIdFilterEntity.setTenantId(Long.parseLong(adapter.getTenantId())); + tenantIdFilterEntity.setIgnore(adapter.getTenantIsIgnore()); + tenantIdFilterEntity.setIgnoreTables(tenantIgnoreTable); + tenantIdFilterEntity.setIgnoreUrl(tenantIgnoreUrl); + return tenantIdFilterEntity; + } + + //新建表 + public static List createTable(String tableName, String tableAlias, List fieldModelList) throws JSQLParserException { + /** + * 创建表分三步 + * 1.创建简单表 id varchar(10) not null + * 2.处理备注 + * 3.处理主键 + */ + //1.创建表 + SqlInfoCreateModel createModel = SqlInfoCreateModel.builder() + .setTableName(tableName) + .setTableOptions(fieldModelList) + .build(); + + //2.处理字段备注 + SqlInfoCommentModel commentmodel = SqlInfoCommentModel.builder() + .setTableName(tableName) + .setTableAlias(tableAlias) + .setfieldModelList(fieldModelList) + .build(); + //3.处理主键 + List primaryKeyList = fieldModelList.stream() + .filter(fieldModel -> !FuncBase.isEmpty(fieldModel.getIsPrimaryKey()) && !FuncBase.equals(fieldModel.getIsPrimaryKey(), YNEnum.N.getCode())) + .map(FieldModel::getFieldCode) + .collect(Collectors.toList()); + //3.处理主键 + SqlInfoPrimaryKeyModel primaryKeyModel = SqlInfoPrimaryKeyModel.builder() + .setTableName(tableName) + .setPrimaryKey(primaryKeyList) + .build(); + + //构建SQL上下文 + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setCreateModel(createModel); + context.setCommentModel(commentmodel); + context.setPrimaryKeyModel(primaryKeyModel); + + //多个 + AndExpression expression = new AndExpression(createModel.getSqlExpression(), commentmodel.getSqlExpression(),primaryKeyModel.getSqlExpression()); + List sqlFormatModelList = ddlExpression(context, expression); + + List ddlList = sqlFormatModelList.stream() + .map(SqlFormatModel::getSql) + .collect(Collectors.toList()); + return ddlList; + } + + //增加列 + public static List addColumn(String tableName, FieldModel fieldModel) { + /** + * 增加列分两步 + * 1.创建简单表 + * 2.处理备注 + */ + + //1.创建表 + SqlInfoAlterModel addColumnModel = SqlInfoAlterModel.builder() + .setTableName(tableName) + .buildAddColumn(fieldModel); + + //2.处理主键 + SqlInfoPrimaryKeyModel primaryKeyModel =null; + if(FuncBase.equals(fieldModel.getFieldCode(),"id")){ + primaryKeyModel = SqlInfoPrimaryKeyModel.builder() + .setTableName(tableName) + .setPrimaryKey(FuncBase.toStrList("id")) + .build(); + } + + + + + List fieldModelList = new ArrayList<>(); + fieldModelList.add(fieldModel); + + SqlInfoCommentModel commentmodel = SqlInfoCommentModel.builder() + .setTableName(tableName) + .setfieldModelList(fieldModelList) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setAlterModel(addColumnModel); + context.setCommentModel(commentmodel); + context.setPrimaryKeyModel(primaryKeyModel);//主键 + + //多个 + AndExpression expression =null; + if(FuncBase.isNotEmpty(context.getPrimaryKeyModel())){ + expression = new AndExpression(addColumnModel.getSqlExpression(), commentmodel.getSqlExpression(),primaryKeyModel.getSqlExpression()); + }else{ + expression = new AndExpression(addColumnModel.getSqlExpression(), commentmodel.getSqlExpression()); + } + + List sqlFormatModelList = ddlExpression(context, expression); + + List ddlList = sqlFormatModelList.stream() + .map(SqlFormatModel::getSql) + .collect(Collectors.toList()); + return ddlList; + } + + //修改列 + public static List modifyColumnSql(String tableName, FieldModel fieldModel) { + /** + * 增加列分两步 + * 1.创建简单表 + * 2.处理备注 + */ + //修改表 + SqlInfoAlterModel modifyColumnModel = SqlInfoAlterModel.builder() + .setTableName(tableName) + .buildUpdateColum(fieldModel); + + List fieldModelList = new ArrayList<>(); + fieldModelList.add(fieldModel); + + SqlInfoCommentModel commentModel = SqlInfoCommentModel.builder() + .setTableName(tableName) + .setfieldModelList(fieldModelList) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setAlterModel(modifyColumnModel); + context.setCommentModel(commentModel); + + //多个 + AndExpression expression = new AndExpression(modifyColumnModel.getSqlExpression(), commentModel.getSqlExpression()); + List sqlFormatModelList = ddlExpression(context, expression); + + List ddlList = sqlFormatModelList.stream() + .map(SqlFormatModel::getSql) + .collect(Collectors.toList()); + return ddlList; + } + + //删除列 + public static String getDropColumnSql(String tableName,String clumn) { + SqlInfoDropModel dropModel = SqlInfoDropModel.builder() + .buildDropColumn(tableName, clumn); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDropModel(dropModel); + + List sqlFormatModelList = ddlExpression(context, dropModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //删除表 + public static String getDropTableSql(String tableName) { + SqlInfoDropModel dropTableModel = SqlInfoDropModel.builder() + .buildDropTable(tableName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDropModel(dropTableModel); + + List sqlFormatModelList = ddlExpression(context, dropTableModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //创建索引 + public static String createIndex(String tableName,String indexName,List fieldList) { + + SqlInfoCreateIndexModel createIndexModel = SqlInfoCreateIndexModel.builder() + .setTableName(tableName) + .setIndexName(indexName) + .setIndexFieldCodeList(fieldList) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setCreateIndexModel(createIndexModel); + + List sqlFormatModelList = ddlExpression(context, createIndexModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //删除索引 + public static String getDropIndex(String tableName,String indexName) { + + SqlInfoDropModel dropModel = SqlInfoDropModel.builder() + .buildDropIndex(tableName, indexName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDropModel(dropModel); + + List sqlFormatModelList = ddlExpression(context, dropModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //校验索引是否存在 + public static String getIndexExistSql(String tableName,String indexName){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildIndexExist(tableName, indexName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //获取某一个表所有索引 + public static String getIndexAllByTableSql(String tableName){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildIndexAllByTable(tableName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //校验表是否存在 + public static String getTableExistSql(String tableName){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildTableExist(tableName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //校验表是否存在 + public static String getAllTableNameSql(){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildGetAllTableName(); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //获取表字段备注 + public static String getTableFieldComment(String tableName){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildFieldComment(tableName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //获取表备注 + public static String getTableComment(String tableName){ + SqlInfoDdlModel ddlModel = SqlInfoDdlModel.builder().buildTableComment(tableName); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setDdlModel(ddlModel); + List sqlFormatModelList = ddlExpression(context, ddlModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //--------------dql--------------- + //通用sql + public static String getPublicSql(String sql){ + SqlInfoPublicModel publicModel = SqlInfoPublicModel.builder().setSql(sql).build(); + + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + context.setPublicModel(publicModel); + List sqlFormatModelList = sqlExpression(context, publicModel.getSqlExpression()); + return sqlFormatModelList.get(0).getSql(); + } + + //查询数据 + public static SqlInfoQueryWrapper.Wrapper getQueryWrapper(){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlInfoQueryWrapper.wrapper(dbSchemaName); + return wrapper; + } + + //新增数据 + public static SqlInfoInsertWrapper.Wrapper getInsertWrapper(){ + SqlInfoInsertWrapper.Wrapper wrapper = SqlInfoInsertWrapper.wrapper(dbSchemaName); + return wrapper; + } + + //修改数据 + public static SqlInfoUpdateWrapper.Wrapper getUpdateWrapper(){ + SqlInfoUpdateWrapper.Wrapper wrapper = SqlInfoUpdateWrapper.wrapper(dbSchemaName); + return wrapper; + } + + //删除数据 + public static SqlInfoDeleteWrapper.Wrapper getDeleteWrapper(){ + SqlInfoDeleteWrapper.Wrapper wrapper = SqlInfoDeleteWrapper.wrapper(dbSchemaName); + return wrapper; + } + + + + //自定义 sql + public static List sqlExpression(SQLInterpretContext context, ISQLExpression expression) { + TenantIdFilterEntity tenantIdFilterEntity =getTenantIdFilterEntity(); + SqlInfoEntity sqlInfoEntity = new SqlInfoEntity(); + List sqlModelList = sqlExpression(sqlInfoEntity,context, expression, tenantIdFilterEntity); + return sqlModelList; + } + //自定义 ddl + public static List ddlExpression(SQLInterpretContext context, ISQLExpression expression) { + SqlInfoEntity sqlInfoEntity = new SqlInfoEntity(); + List sqlModelList = sqlExpression(sqlInfoEntity,context, expression, null); + return sqlModelList; + } + //自定义 只需要使用sql解析 + public static List parserExpression(SQLInterpretContext context, ISQLExpression expression) { + SqlInfoEntity sqlInfoEntity = new SqlInfoEntity(); + sqlInfoEntity.setSqlParserLevel(3); + List sqlModelList = sqlExpression(sqlInfoEntity,context, expression, null); + return sqlModelList; + } + + private static List sqlExpression(SqlInfoEntity sqlInfoEntity,SQLInterpretContext context, ISQLExpression expression, TenantIdFilterEntity tenantIdFilterEntity) { + AbstractDbTemplate template = getAbstractDbTemplate(); + + sqlInfoEntity.setContext(context); + sqlInfoEntity.setSqlExpression(expression); + if (FuncBase.isNotEmpty(tenantIdFilterEntity)) { + sqlInfoEntity.setTenantIdFilterEntity(tenantIdFilterEntity); + } + + template.operation(sqlInfoEntity); + List sqlModelList = sqlInfoEntity.getSqlModelList(); + if (FuncBase.isEmpty(sqlModelList)) { + return sqlModelList; + } + sqlModelList.forEach(model->{ + String sql = model.getSql(); + if(sql.endsWith(";")){ + System.out.println(sql); + }else{ + System.out.println(sql+";"); + } + }); + return sqlModelList; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/ISQLExpression.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/ISQLExpression.java new file mode 100644 index 0000000..24e89c2 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/ISQLExpression.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build; + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import net.sf.jsqlparser.JSQLParserException; + +/** + * + * @param 返回值 + */ +public interface ISQLExpression { + + + //解析器 + T interpret(SQLInterpretContext contextT) throws JSQLParserException; +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/AndExpression.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/AndExpression.java new file mode 100644 index 0000000..527161a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/AndExpression.java @@ -0,0 +1,237 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build; + +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.*; +import com.jeelowcode.framework.plus.build.build.dql.*; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 多条件 + */ +public class AndExpression implements ISQLExpression> { + + private ISQLExpression[] expressions; + + public AndExpression(ISQLExpression... expressions) { + this.expressions = expressions; + } + public AndExpression(List expressionList) { + expressions =new ISQLExpression[expressionList.size()]; + for (int i = 0; i < expressionList.size(); i++) { + ISQLExpression expression = expressionList.get(i); + expressions[i]=expression; + } + } + + /** + * ddl允许多个,dql只允许一个 + * @param context + * @return + * @throws JSQLParserException + */ + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + List sqlFormatModelList = this.getDDL(context); + if (FuncBase.isNotEmpty(sqlFormatModelList)) { + return sqlFormatModelList; + } + SqlFormatModel sqlFormatModel = this.getDQL(context); + return Collections.singletonList(sqlFormatModel); + } + + //获取ddl + private List getDDL(SQLInterpretContext context) throws JSQLParserException { + + List ddlList = Arrays.stream(expressions) + .filter(expression -> expression instanceof BuildAlter + || expression instanceof BuildCreateIndex + || expression instanceof BuildCreateTable + || expression instanceof BuildDrop + || expression instanceof BuildComment + || expression instanceof BuildPrimaryKey + || expression instanceof BuildDdl) + .collect(Collectors.toList()); + + if (FuncBase.isEmpty(ddlList)) { + return null; + } + + List resultModelList=new ArrayList<>(); + for (ISQLExpression expression : ddlList) { + Object obj= expression.interpret(context); + if (FuncBase.isEmpty(obj)) { + continue; + } + if(obj instanceof SqlFormatModel){ + resultModelList.add((SqlFormatModel)obj); + }else if(obj instanceof List){ + resultModelList.addAll((List)obj); + } + + } + return resultModelList; + } + + private SqlFormatModel getDQL(SQLInterpretContext context) throws JSQLParserException { + List expressionList = this.getDQLExpression(); + if (FuncBase.isEmpty(expressionList)) { + throw new JeeLowCodeException("表达式为空"); + } + String sql = ""; + Map dataMap = new LinkedHashMap<>(); + int step = 0; + for (ISQLExpression expression : expressionList) {//buildselect buildwhere buidlorderby + SqlFormatModel sqlFormatModel = (SqlFormatModel) expression.interpret(context); + String tmpSql = sqlFormatModel.getSql(); + Map tmpMap = sqlFormatModel.getDataMap(); + if (FuncBase.isEmpty(tmpMap)) { + sql += " " + tmpSql; + continue; + } + + // 首先,将entrySet中的元素复制到一个列表中 + List> entrieList = new ArrayList<>(tmpMap.entrySet()); + Collections.reverse(entrieList); + + for (Map.Entry entry : entrieList) { + step++; + + String key = entry.getKey(); // 获取键 + Object value = entry.getValue(); // 获取值 + + String newKey = "JEELOWCODE_MPGENVAL" + step; + + // 执行你的替换逻辑 + tmpSql = tmpSql.replace("#{ew.paramNameValuePairs." + key+"," , "#{" +context.getPreSymbol()+ newKey+"," ); + tmpSql = tmpSql.replace("#{ew.paramNameValuePairs." + key+"}" , "#{" +context.getPreSymbol()+ newKey+"}" ); + + dataMap.put("JEELOWCODE_MPGENVAL" + step, value); + } + + sql += " " + tmpSql; + } + + return new SqlFormatModel(sql, dataMap); + + } + + //获取dql 排序后的表达式 + private List getDQLExpression() { + + List dqllList = Arrays.stream(expressions) + .filter(expression -> expression instanceof BuildSelect + || expression instanceof BuildJoin + || expression instanceof BuildWhere + || expression instanceof BuildGroupBy + || expression instanceof BuildHaving + || expression instanceof BuildOrderBy + || expression instanceof BuildInsert + || expression instanceof BuildUpdate + || expression instanceof BuildDelete) + .collect(Collectors.toList()); + + if (FuncBase.isEmpty(dqllList)) { + return null; + } + //只有一个,不用排序 + if(FuncBase.isNotEmpty(dqllList) && dqllList.size()==1){ + return dqllList; + } + + //排序 + List sortList = new ArrayList<>(); + + //下面是dql,需要安装sql标准查询的格式来凭接 + ISQLExpression tmpSelect = null; + List tmpJoinList = new ArrayList<>(); + ISQLExpression tmpWhere = null; + ISQLExpression tmpGroupBy = null; + ISQLExpression tmpOrderBy = null; + ISQLExpression tmpHaving = null; + + ISQLExpression tmpInsert = null; + ISQLExpression tmpUpdate = null; + ISQLExpression tmpDelete = null; + for (ISQLExpression expression : expressions) { + if (expression instanceof BuildSelect) { + tmpSelect = expression; + } else if (expression instanceof BuildJoin) { + tmpJoinList.add(expression);//因为会多个 + } else if (expression instanceof BuildWhere) { + tmpWhere = expression; + } else if (expression instanceof BuildGroupBy) { + tmpGroupBy = expression; + } else if (expression instanceof BuildHaving) { + tmpHaving = expression; + } else if (expression instanceof BuildOrderBy) { + tmpOrderBy = expression; + } else if (expression instanceof BuildInsert) { + tmpInsert = expression; + } else if (expression instanceof BuildUpdate) { + tmpUpdate = expression; + } else if (expression instanceof BuildDelete) { + tmpDelete = expression; + } + } + + //如果是insert类的话,则直接返回 + if (FuncBase.isNotEmpty(tmpInsert)) { + sortList.add(tmpInsert); + return sortList; + } + + //如果是update 和 delete select 都可以带where + if (FuncBase.isNotEmpty(tmpSelect)) { + sortList.add(tmpSelect); + } else if (FuncBase.isNotEmpty(tmpUpdate)) { + sortList.add(tmpUpdate); + } else if (FuncBase.isNotEmpty(tmpDelete)) { + sortList.add(tmpDelete); + } else { + throw new JeeLowCodeException("表达式必须有BuildSelect/BuildUpdate/BuildDelete"); + } + + //第一个 + ISQLExpression firstExpression = sortList.get(0); + if (firstExpression instanceof BuildSelect && FuncBase.isNotEmpty(tmpJoinList)) {//必须是select的情况下,才能inner join + sortList.addAll(tmpJoinList); + } + + //后面是带 where + if (FuncBase.isNotEmpty(tmpWhere)) { + sortList.add(tmpWhere); + } + + if (firstExpression instanceof BuildSelect && FuncBase.isNotEmpty(tmpGroupBy)) {//必须是select的情况下,才有group by + sortList.add(tmpGroupBy); + if (FuncBase.isNotEmpty(tmpHaving)) { + sortList.add(tmpHaving); + } + } + + if (firstExpression instanceof BuildSelect && FuncBase.isNotEmpty(tmpOrderBy)) {//必须是select的情况下,才有order by + sortList.add(tmpOrderBy); + } + return sortList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/TestBuild.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/TestBuild.java new file mode 100644 index 0000000..56e2fba --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/TestBuild.java @@ -0,0 +1,624 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build; + + + +import com.jeelowcode.framework.plus.build.build.dql.*; +import com.jeelowcode.framework.plus.build.buildmodel.dql.*; + + +/** + * @author JX + * @create 2024-07-03 10:16 + * @dedescription: + */ +public class TestBuild { + + /* @Test + public void testBuildSelect() throws JSQLParserException { + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + *//* .setColumns("id", "name")*//* + .setTableName("tbl_student") + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setSelectModel(selectModel); + BuildSelect buildSelect = new BuildSelect(); + SqlFormatModel interpret = buildSelect.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + @Test + public void testBuildOrderBy() throws JSQLParserException { + + SqlInfoOrderModel build = SqlInfoOrderModel.builder() + .setOrderByAsc("id","name") + .setOrderByDesc("age") + .setOrderByAsc("sex") + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setOrderModel(build); + BuildOrderBy buildOrderBy=new BuildOrderBy(); + + SqlFormatModel interpret = buildOrderBy.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + + @Test + public void testBuildGroupBy() throws JSQLParserException { + + SqlInfoGroupModel build = SqlInfoGroupModel.builder() + .setColumns("name", "age") + .build(); + + + SQLInterpretContext context = new SQLInterpretContext(); + context.setGroupModel(build); + BuildGroupBy buildGroupBy=new BuildGroupBy(); + + SqlFormatModel interpret = buildGroupBy.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + @Test + public void testBuildWhere() throws JSQLParserException { + + SqlInfoWhereModel build = SqlInfoWhereModel.builder() + .gt("id", 12) + .ge("age", 18) + .ne("name", "张三") + .between("height",18,30) + .in("a.id",1,2,3,4,5) + .like("name","张三") + .buildWhere(); + + + + SQLInterpretContext context = new SQLInterpretContext(); + context.setWhereModel(build); + BuildWhere buildWhere=new BuildWhere(); + + SqlFormatModel interpret = buildWhere.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + + @Test + public void testBuildDelete() throws JSQLParserException { + + SqlInfoDeleteModel build = SqlInfoDeleteModel.builder() + .setTableName("tbl_student") + .build(); + SQLInterpretContext context = new SQLInterpretContext(); + context.setDeleteModel(build); + BuildDelete buildDelete=new BuildDelete(); + + SqlFormatModel interpret = buildDelete.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + + @Test + public void testBuildRealDelete() throws JSQLParserException { + + SqlInfoDeleteModel build = SqlInfoDeleteModel.builder() + .setTableName("tbl_student",true) + .build(); + SQLInterpretContext context = new SQLInterpretContext(); + BuildDelete buildDelete=new BuildDelete(); + + context.setDeleteModel(build); + SqlFormatModel interpret = buildDelete.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + @Test + public void testBuildInsert() throws JSQLParserException { + + Map addMap=new HashMap<>(); + addMap.put("age",18); + addMap.put("name","张三"); + + SqlInfoInsertModel build = SqlInfoInsertModel.builder() + .setTableName("tbl_student") + .addColumn("id", 123) + .addMap(addMap) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setInsertModel(build); + BuildInsert buildInsert=new BuildInsert(); + + SqlFormatModel interpret = buildInsert.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + @Test + public void testBuildUpdate() throws JSQLParserException { + + Map updateMap=new HashMap<>(); + updateMap.put("age",18); + updateMap.put("name","张三"); + + SqlInfoUpdateModel build = SqlInfoUpdateModel.builder() + .setTableName("tbl_student") + .addColumn("id", 123) + .addMap(updateMap) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setUpdateModel(build); + BuildUpdate buildUpdate=new BuildUpdate(); + + SqlFormatModel interpret = buildUpdate.interpret(context); + System.out.println(FuncBase.json2Str(interpret)); + } + + @Test + public void testBuildAlter_AddColumn() throws JSQLParserException { +*//* + TableFieldModel fieldModel = new TableFieldModel(); + fieldModel.setFieldCode("name"); + fieldModel.setFieldType("varchar(128)"); + fieldModel.setCommentSql("年龄"); + + SqlInfoAlterModel model = SqlInfoAlterModel.builder() + .setTableName("tbl_student") + .buildAddColumn(fieldModel); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setAlterModel(model); + + BuildAlter build=new BuildAlter(); + SqlFormatModel interpret = build.interpret(context); + System.out.println(Func.json2Str(interpret));*//* + } + + @Test + public void testBuildAlter_updaateColumn() throws JSQLParserException { + + *//*TableFieldModel fieldModel = new TableFieldModel(); + fieldModel.setFieldCode("name"); + fieldModel.setFieldType("varchar(128)"); + fieldModel.setCommentSql("年龄"); + + SqlInfoAlterModel model = SqlInfoAlterModel.builder() + .setTableName("tbl_student") + .buildUpdateColum(fieldModel); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setAlterModel(model); + + BuildAlter build=new BuildAlter(); + + SqlFormatModel interpret = build.interpret(context); + System.out.println(Func.json2Str(interpret));*//* + } + + @Test + public void testBuildDrop_dropTable() throws JSQLParserException { + + SqlInfoDropModel model = SqlInfoDropModel.builder() + .buildDropTable("","tbl_student"); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setDropModel(model); + + BuildDrop build=new BuildDrop(); + List sqlFormatModelList = build.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testBuildDrop_dropColumn() throws JSQLParserException { + + SqlInfoDropModel model = SqlInfoDropModel.builder() + .buildDropColumn("","tbl_student","name"); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setDropModel(model); + + BuildDrop build=new BuildDrop(); + + List sqlFormatModelList = build.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testBuildDrop_dropIndex() throws JSQLParserException { + + SqlInfoDropModel model = SqlInfoDropModel.builder() + .buildDropIndex("","tbl_student","ind_name"); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setDropModel(model); + + BuildDrop build=new BuildDrop(); + List sqlFormatModelList = build.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testBuildCreate() throws JSQLParserException { + + List buildTableFieldModelList=new ArrayList<>(); + + FieldModel idModel = new FieldModel(); + idModel.setFieldCode("id"); + idModel.setFieldName("id"); + idModel.setFieldLen(12); + idModel.setFieldPointLen(0); + idModel.setFieldType(JeeLowCodeFieldTypeEnum.BIGINT); + idModel.setIsPrimaryKey("Y"); + idModel.setIsNull("N"); + + + FieldModel nameModel = new FieldModel(); + nameModel.setFieldCode("name"); + nameModel.setFieldName("姓名"); + nameModel.setFieldLen(12); + nameModel.setFieldPointLen(0); + nameModel.setFieldType(JeeLowCodeFieldTypeEnum.STRING); + nameModel.setIsPrimaryKey("N"); + nameModel.setIsNull("Y"); + + + buildTableFieldModelList.add(idModel); + buildTableFieldModelList.add(nameModel); + + + SqlInfoCreateModel model = SqlInfoCreateModel.builder() + .setTableName("tbl_student") + .setTableOptions(buildTableFieldModelList) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setCreateModel(model); + BuildCreateTable build=new BuildCreateTable(); + + List sqlFormatModelList = build.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testBuildCreateIndex() throws JSQLParserException { + + SqlInfoCreateIndexModel model = SqlInfoCreateIndexModel.builder() + .setTableName("tbl_student") + .setIndexName("ind_aa") + .setIndexFieldCodeList(FuncBase.toStrList("name,age")) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setCreateIndexModel(model); + + BuildCreateIndex build=new BuildCreateIndex(); + + List sqlFormatModelList = build.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testBuildAndUpdateExpression() throws JSQLParserException { + + //构建update语句 + Map updateMap=new HashMap<>(); + updateMap.put("age",18); + updateMap.put("name","张三"); + + SqlInfoUpdateModel build = SqlInfoUpdateModel.builder() + .setTableName("tbl_student") + .addColumn("id", 123) + .addMap(updateMap) + .build(); + + SQLInterpretContext context = new SQLInterpretContext(); + BuildUpdate buildUpdate=new BuildUpdate(); + context.setUpdateModel(build); + + //构建where语句 + SqlInfoWhereModel whereModel = SqlInfoWhereModel.builder() + .ge("age",18) + .like("name","张三") + .buildWhere(); + context.setWhereModel(whereModel); + BuildWhere buildWhere=new BuildWhere(); + + + //update语句+where语句 + AndExpression expression=new AndExpression(buildUpdate,buildWhere); + List sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + + } + + @Test + public void testBuildSelectExpression() throws JSQLParserException { + + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("name", "age") + .setTableName("tbl_student") + .build(); + + SQLInterpretContext contextSelect = new SQLInterpretContext(); + contextSelect.setSelectModel(selectModel); + BuildSelect buildSelect = new BuildSelect(); + + +*//* SqlInfoWhereModel whereOrModel = SqlInfoWhereModel.builder() + .ge("age", 18) + .or() + .le("age",10) + .build(); + SQLInterpretContext contextWhereOr = new SQLInterpretContext<>(whereOrModel); + BuildWhere buildWhereOr=new BuildWhere(contextWhereOr);*//* + + *//* SqlInfoWhereModel whereOrModel2 = SqlInfoWhereModel.builder() + .le("age", 182) + .notLike("name", "张三2") + .or(buildWhereOr) + .build(); + SQLInterpretContext contextWhereOr2 = new SQLInterpretContext<>(whereOrModel2); + BuildWhere buildWhereOr2=new BuildWhere(contextWhereOr2);*//* + + + SqlInfoWhereModel whereAndModel = SqlInfoWhereModel.builder()// 18 sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + + } + + @Test + public void testBuildSelectAllExpression() throws JSQLParserException { + + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("name", "age") + .setTableName("tbl_student") + .build(); + + SQLInterpretContext contextSelect = new SQLInterpretContext(); + BuildSelect buildSelect = new BuildSelect(); + contextSelect.setSelectModel(selectModel); + // + AndExpression expression=new AndExpression(buildSelect); + List sqlFormatModelList = expression.interpret(contextSelect); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + + } + + @Test + public void testBuildHavingExpression() throws JSQLParserException { + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("name", "count( id ) AS cou") + .setTableName("system_dept") + .build(); + + BuildSelect buildSelect = new BuildSelect(); + + SqlInfoHavingModel havingModel = SqlInfoConditionModel.builder() + .gt("cou", 1) + .likeLeft("name", "财务部门") + .buildHaving(); + SQLInterpretContext contextHaving = new SQLInterpretContext(); + contextHaving.setHavingModel(havingModel); + BuildHaving buildHaving=new BuildHaving(); + buildHaving.setContext(contextHaving); + + + SqlInfoGroupModel groupByModel = SqlInfoGroupModel.builder() + .setColumns("name") + .build(); + SQLInterpretContext contextGroupBy = new SQLInterpretContext(); + BuildGroupBy buildGroupBy=new BuildGroupBy(); + + SqlInfoOrderModel orderByModel = SqlInfoOrderModel.builder() + .setOrderByAsc("cou") + .build(); + SQLInterpretContext contextOrderBy = new SQLInterpretContext(); + BuildOrderBy buildOrderBy=new BuildOrderBy(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setSelectModel(selectModel); + context.setGroupModel(groupByModel); + context.setOrderModel(orderByModel); + context.setHavingModel(havingModel); + + //update语句+where语句 + AndExpression expression=new AndExpression(buildGroupBy,buildSelect,buildOrderBy,buildHaving); + List sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + + } + + @Test + public void testBuildJoinExpression() throws JSQLParserException { + ///主表 + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("a.*","b.*","c.*") + .setTableName("tbl_a","a") + .build(); + SQLInterpretContext contextSelect = new SQLInterpretContext(); + BuildSelect buildSelect = new BuildSelect(); + + //B表 + SqlInfoJoinModel joinModelB = SqlInfoJoinModel.builder() + .innerJoin() + .joinTable("tbl_b", "b") + .on("a.id", "b.a_id") + .build(); + + SQLInterpretContext contextJoinB = new SQLInterpretContext(); + BuildJoin buildJsonB = new BuildJoin(); + + //C表 + SqlInfoJoinModel joinModelC = SqlInfoJoinModel.builder() + .innerJoin() + .joinTable("tbl_c", "c") + .on("b.id", "c.b_id") + .build(); + + SQLInterpretContext contextJoinC = new SQLInterpretContext(); + BuildJoin buildJsonC = new BuildJoin(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setSelectModel(selectModel); + context.setJoinModel(joinModelB); + //update语句+where语句 + AndExpression expression=new AndExpression(buildSelect,buildJsonB,buildJsonC); + List sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + + } + + @Test + public void testHavingAndOrExpression() throws JSQLParserException { + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("name", "count( id ) AS cou") + .setTableName("system_dept") + .build(); + + BuildSelect buildSelect = new BuildSelect(); + + + + SqlInfoHavingModel havingModel = SqlInfoConditionModel.builder() + .gt("cou", 1) + .likeLeft("name", "财务部门") + .and( andTest ->{ + andTest.eq("status", 1) + .or( orTest ->{ + orTest.ne("id", 1); + }); + }) + .buildHaving(); + SQLInterpretContext contextHaving = new SQLInterpretContext(); + contextHaving.setHavingModel(havingModel); + BuildHaving buildHaving=new BuildHaving(); + buildHaving.setContext(contextHaving); + + + SqlInfoGroupModel groupByModel = SqlInfoGroupModel.builder() + .setColumns("name") + .build(); + SQLInterpretContext contextGroupBy = new SQLInterpretContext(); + BuildGroupBy buildGroupBy=new BuildGroupBy(); + + + SQLInterpretContext context = new SQLInterpretContext(); + context.setSelectModel(selectModel); + context.setGroupModel(groupByModel); + context.setHavingModel(havingModel); + + //update语句+where语句 + AndExpression expression=new AndExpression(buildGroupBy,buildSelect,buildHaving); + List sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + } + + @Test + public void testWhereAndOrExpression() throws JSQLParserException { + SqlInfoSelectModel selectModel = SqlInfoSelectModel.builder() + .setColumns("name", "age") + .setTableName("tbl_student") + .build(); + + SQLInterpretContext contextSelect = new SQLInterpretContext(); + contextSelect.setSelectModel(selectModel); + BuildSelect buildSelect = new BuildSelect(); + + + SqlInfoWhereModel whereModel = SqlInfoWhereModel.builder() + .gt("id", 12) + .and(andTest ->{ + andTest.eq("name","李四") + .or(orTest ->{ + orTest.eq("name", "张三"); + }); + }) + .eq("na","历史") + .buildWhere(); + SQLInterpretContext contextWhere = new SQLInterpretContext(); + contextWhere.setWhereModel(whereModel); + BuildWhere buildWhere=new BuildWhere(); + buildWhere.setContext(contextWhere); + + + SqlInfoGroupModel groupByModel = SqlInfoGroupModel.builder() + .setColumns("name", "age") + .build(); + SQLInterpretContext contextGroupBy = new SQLInterpretContext(); + BuildGroupBy buildGroupBy=new BuildGroupBy(); + + SqlInfoOrderModel orderByModel = SqlInfoOrderModel.builder() + .setOrderByAsc("age") + .build(); + SQLInterpretContext contextOrderBy = new SQLInterpretContext(); + BuildOrderBy buildOrderBy=new BuildOrderBy(); + + SQLInterpretContext context = new SQLInterpretContext(); + context.setWhereModel(whereModel); + context.setSelectModel(selectModel); + context.setOrderModel(orderByModel); + context.setGroupModel(groupByModel); + + + AndExpression expression=new AndExpression(buildWhere,buildSelect,buildOrderBy,buildGroupBy); + List sqlFormatModelList = expression.interpret(context); + System.out.println(FuncBase.json2Str(sqlFormatModelList)); + }*/ +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildAlter.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildAlter.java new file mode 100644 index 0000000..d8fa1a0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildAlter.java @@ -0,0 +1,106 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoAlterModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.ddl.alter.JeeLowCodeAlterTable; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.tool.StringPool; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; + +/** + * 修改表相关 + */ +public class BuildAlter implements ISQLExpression> { + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + SqlInfoAlterModel alterModel = context.getAlterModel(); + + if(FuncBase.isEmpty(alterModel)){ + return null; + } + //存在自定义ddl + List executeDdlList = alterModel.getExecuteDdlList(); + if(FuncBase.isNotEmpty(executeDdlList)){ + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + String ddl=""; + switch (alterModel.getAlterType()) { + case ADD_COLUMN: + ddl = getAddColumnDDL(context.getSchemaName(),alterModel.getTableName(),alterModel.getFieldModel(),dbColunmTypes); + break; + case UPDATE_COLUMN: + ddl = getModifyColumnDDL(context.getSchemaName(),alterModel.getTableName(),alterModel.getFieldModel(),dbColunmTypes); + break; + } + return PlusUtils.ddl2SqlFormatModel(ddl); + } + + + //获取增加字段ddl + private String getAddColumnDDL(String schemaName,String tableName, FieldModel fieldModel, DbColunmTypesEntity dbColunmTypes) { + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + tableName= FuncBase.concatSymbol(tableName,symbol,upperFlag); + schemaName= FuncBase.concatSymbol(schemaName,symbol); + + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldModel.getFieldType(); + DbColunmTypesEntity.TypeEntity typeEntity = PlusUtils.jeelowCodeType2DbType(fieldTypeEnum, dbColunmTypes); + String fieldType = PlusUtils.getDbType(fieldTypeEnum, typeEntity.getDbType(), fieldModel.getFieldLen(), fieldModel.getFieldPointLen(),typeEntity.getDbMaxLen()); + String defaultValSql = PlusUtils.getDefaultValSql(fieldModel.getFieldDefaultVal(), fieldModel.getIsNull(),fieldModel.getDbNowIsNull()); + String fieldCode = FuncBase.concatSymbol(fieldModel.getFieldCode(),symbol,upperFlag); + + JeeLowCodeAlterTable alterTable = new JeeLowCodeAlterTable(); + alterTable.setTableName(schemaName+ StringPool.DOT+tableName); + alterTable.addCoulumn(fieldCode, fieldType, defaultValSql); + String ddl = alterTable.getFullSQL(); + return ddl; + } + + //修改字段 + private String getModifyColumnDDL(String schemaName,String tableName, FieldModel fieldModel, DbColunmTypesEntity dbColunmTypes) { + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + + tableName=FuncBase.concatSymbol(tableName,symbol,upperFlag); + schemaName= FuncBase.concatSymbol(schemaName,symbol); + + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldModel.getFieldType(); + DbColunmTypesEntity.TypeEntity typeEntity = PlusUtils.jeelowCodeType2DbType(fieldTypeEnum, dbColunmTypes); + String fieldType = PlusUtils.getDbType(fieldTypeEnum, typeEntity.getDbType(), fieldModel.getFieldLen(), fieldModel.getFieldPointLen(),typeEntity.getDbMaxLen()); + String defaultValSql = PlusUtils.getDefaultValSql(fieldModel.getFieldDefaultVal(), fieldModel.getIsNull(),fieldModel.getDbNowIsNull()); + String fieldCode = fieldModel.getFieldCode(); + + JeeLowCodeAlterTable alterTable = new JeeLowCodeAlterTable(); + alterTable.setTableName(schemaName+ StringPool.DOT+tableName); + alterTable.modifyColumn(FuncBase.concatSymbol(fieldCode,symbol,upperFlag), fieldType, defaultValSql); + return alterTable.getFullSQL(); + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildComment.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildComment.java new file mode 100644 index 0000000..99eaf7c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildComment.java @@ -0,0 +1,107 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoCommentModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.ArrayList; +import java.util.List; + + +/** + * 备注 相关 + */ +public class BuildComment implements ISQLExpression> { + + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoCommentModel commentModel = context.getCommentModel(); + if (FuncBase.isEmpty(commentModel)) { + return null; + } + + //存在自定义ddl + List executeDdlList = commentModel.getExecuteDdlList(); + if (FuncBase.isNotEmpty(executeDdlList)) { + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + String schemaName = FuncBase.concatSymbol(context.getSchemaName(), symbol); + String tableName = FuncBase.concatSymbol(commentModel.getTableName(), symbol, upperFlag); + String tableAlias = commentModel.getTableAlias(); + List fieldModelList = commentModel.getFieldModelList(); + + List ddlList = new ArrayList<>(); + String tableDdl = this.tableComment(schemaName, tableName, tableAlias); + if (FuncBase.isNotEmpty(tableDdl)) { + ddlList.add(tableDdl); + } + List columnDdlList = this.columnComment(dbColunmTypes, schemaName, tableName, fieldModelList); + if (FuncBase.isNotEmpty(columnDdlList)) { + ddlList.addAll(columnDdlList); + } + + return PlusUtils.ddl2SqlFormatModel(ddlList); + } + + /** + * 表备注 + * + * @return + */ + private String tableComment(String schemaName, String tableName, String tableAlias) { + if (FuncBase.isEmpty(tableAlias)) { + return null; + } + String str = "COMMENT ON TABLE %s.%s IS '%s';"; + String ddl = String.format(str, schemaName, tableName, tableAlias); + return ddl; + } + + private List columnComment(DbColunmTypesEntity dbColunmTypes, String schemaName, String tableName, List fieldModelList) { + + if (FuncBase.isEmpty(fieldModelList)) { + return null; + } + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + List ddlList = new ArrayList<>(); + for (FieldModel fieldModel : fieldModelList) { + String fieldCode = FuncBase.concatSymbol(fieldModel.getFieldCode(), symbol, upperFlag); + String fieldName = fieldModel.getFieldName(); + + String str = "COMMENT ON COLUMN %s.%s.%s IS '%s';"; + String ddl = String.format(str, schemaName, tableName, fieldCode, fieldName); + ddlList.add(ddl); + } + return ddlList; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateIndex.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateIndex.java new file mode 100644 index 0000000..545109b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateIndex.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoCreateIndexModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; +import java.util.stream.Collectors; + +/*** + * 索引相关 + */ +public class BuildCreateIndex implements ISQLExpression> { + + + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoCreateIndexModel model = context.getCreateIndexModel(); + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + if(FuncBase.isEmpty(model)){ + return null; + } + //存在自定义ddl + List executeDdlList = model.getExecuteDdlList(); + if(FuncBase.isNotEmpty(executeDdlList)){ + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + String tableName = FuncBase.concatSymbol(model.getTableName(),symbol,upperFlag); + String indexName = FuncBase.concatSymbol(model.getIndexName(),symbol,upperFlag); + String schemaName = FuncBase.concatSymbol(context.getSchemaName(),symbol); + + List indexFieldCodeList = model.getIndexFieldCodeList(); + + List list = indexFieldCodeList.stream() + .map(key -> FuncBase.concatSymbol( key , symbol,upperFlag)) + .collect(Collectors.toList()); + + String str = "CREATE INDEX %s ON %s.%s (%s)"; + String ddl = String.format(str, indexName, schemaName,tableName, String.join(",", list)); + return PlusUtils.ddl2SqlFormatModel(ddl); + + + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateTable.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateTable.java new file mode 100644 index 0000000..3caa9ba --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildCreateTable.java @@ -0,0 +1,93 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoCreateModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.ddl.create.JeeLowCodeCreateTable; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.tool.StringPool; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; + +/** + * 建表相关 + */ +public class BuildCreateTable implements ISQLExpression> { + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + SqlInfoCreateModel creteModel = context.getCreateModel(); + if(FuncBase.isEmpty(creteModel)){ + return null; + } + //存在自定义ddl + List executeDdlList = creteModel.getExecuteDdlList(); + if(FuncBase.isNotEmpty(executeDdlList)){ + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + String tableName = creteModel.getTableName(); + String schemaName = context.getSchemaName(); + List tableOptions = creteModel.getTableOptions(); + + String ddl = this.getDDL(schemaName,tableName, tableOptions, dbColunmTypes); + return PlusUtils.ddl2SqlFormatModel(ddl); + } + + /** + * 获取ddl + * + * @param tableName + * @param tableOptions + * @param dbColunmTypes + * @return + */ + public String getDDL(String schemaName,String tableName, List tableOptions, DbColunmTypesEntity dbColunmTypes) { + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + String symbol = dbColunmTypes.getSymbol(); + JeeLowCodeCreateTable createTable = new JeeLowCodeCreateTable(); + + tableName=FuncBase.concatSymbol(tableName,symbol,upperFlag); + schemaName=FuncBase.concatSymbol(schemaName,symbol); + for (int i = 0; i < tableOptions.size(); i++) { + FieldModel fieldModel = tableOptions.get(i); + String fieldCode = FuncBase.concatSymbol(fieldModel.getFieldCode(),symbol,upperFlag); + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldModel.getFieldType(); + //类型 + DbColunmTypesEntity.TypeEntity typeEntity = PlusUtils.jeelowCodeType2DbType(fieldTypeEnum, dbColunmTypes); + Integer dbMaxLen = typeEntity.getDbMaxLen(); + if(dbMaxLen < fieldModel.getFieldLen()){ + fieldModel.setFieldLen(dbMaxLen); + } + String fieldType = PlusUtils.getDbType(fieldTypeEnum, typeEntity.getDbType(), fieldModel.getFieldLen(), fieldModel.getFieldPointLen(),typeEntity.getDbMaxLen()); + String defaultValSql = PlusUtils.getDefaultValSql(fieldModel.getFieldDefaultVal(), fieldModel.getIsNull(),null); + + createTable.addCoulumn(fieldCode, fieldType, defaultValSql); + } + createTable.setTableName(schemaName+ StringPool.DOT+tableName);//表名称 + String ddl = createTable.getDDL(); + return ddl; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDdl.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDdl.java new file mode 100644 index 0000000..f81a565 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDdl.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDdlModel; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; + +/** + * 通用DDL + */ +public class BuildDdl implements ISQLExpression> { + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoDdlModel ddlModel = context.getDdlModel(); + if (FuncBase.isEmpty(ddlModel)) { + return null; + } + //存在自定义ddl + List executeDdlList = ddlModel.getExecuteDdlList(); + if (FuncBase.isEmpty(executeDdlList)) { + return null; + } + + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDrop.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDrop.java new file mode 100644 index 0000000..270f157 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildDrop.java @@ -0,0 +1,116 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDropModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.ddl.alter.JeeLowCodeAlterTable; +import com.jeelowcode.framework.plus.core.ddl.drop.JeeLowCodeDropTable; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.tool.StringPool; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; + +/** + * 删除表,字段,索引 + */ +public class BuildDrop implements ISQLExpression> { + + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoDropModel dropModel = context.getDropModel(); + if (FuncBase.isEmpty(dropModel)) { + return null; + } + //存在自定义ddl + List executeDdlList = dropModel.getExecuteDdlList(); + if(FuncBase.isNotEmpty(executeDdlList)){ + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + String tableName = FuncBase.concatSymbol(dropModel.getTableName(), symbol, upperFlag); + String indexName = FuncBase.concatSymbol(dropModel.getIndexName(), symbol, upperFlag); + String cloumnCode = FuncBase.concatSymbol(dropModel.getCloumnCode(), symbol, upperFlag); + String schemaName = FuncBase.concatSymbol(context.getSchemaName(), symbol); + + String ddl = ""; + switch (dropModel.getDropType()) { + case DROP_TABLE: + ddl = this.dropTable(schemaName, tableName); + break; + case DROP_COLUMN: + ddl = this.dropColumn(schemaName, tableName, cloumnCode,dropModel.getCloumnFormat()); + break; + case DROP_INDEX: + ddl = this.dropIndex(schemaName, indexName); + break; + } + + return PlusUtils.ddl2SqlFormatModel(ddl); + } + + /** + * 删除表 + * + * @param schemaName + * @param tableName + * @return + */ + private String dropTable(String schemaName, String tableName) { + JeeLowCodeDropTable dropTable = new JeeLowCodeDropTable(); + dropTable.setTableName(schemaName + StringPool.DOT + tableName); + return dropTable.getFullSQL(); + } + + /** + * 删除字段 + * + * @param schemaName + * @param tableName + * @param cloumnCode + * @return + */ + private String dropColumn(String schemaName, String tableName, String cloumnCode,String cloumnFormat) { + if(FuncBase.isNotEmpty(cloumnFormat)){ + cloumnCode =String.format(cloumnFormat,cloumnCode); + } + JeeLowCodeAlterTable dropColumn = new JeeLowCodeAlterTable(); + dropColumn.setTableName(schemaName + StringPool.DOT + tableName); + dropColumn.dropColumn(cloumnCode); + return dropColumn.getFullSQL(); + } + + /** + * 删除索引 + * @param schemaName + * @param indexName + * @return + */ + private String dropIndex(String schemaName, String indexName) { + String str = "DROP INDEX %s.%s"; + String ddl = String.format(str, schemaName, indexName); + return ddl; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildPrimaryKey.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildPrimaryKey.java new file mode 100644 index 0000000..0bb556c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/ddl/BuildPrimaryKey.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoPrimaryKeyModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 主键相关 + */ +public class BuildPrimaryKey implements ISQLExpression> { + + + @Override + public List interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoPrimaryKeyModel primaryKeyModel = context.getPrimaryKeyModel(); + + if (FuncBase.isEmpty(primaryKeyModel)) { + return null; + } + //存在自定义ddl + List executeDdlList = primaryKeyModel.getExecuteDdlList(); + if(FuncBase.isNotEmpty(executeDdlList)){ + return PlusUtils.ddl2SqlFormatModel(executeDdlList); + } + + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + String tableName = FuncBase.concatSymbol(primaryKeyModel.getTableName(),symbol,upperFlag); + String schemaName = FuncBase.concatSymbol(context.getSchemaName(),symbol); + List tmpkeyList = primaryKeyModel.getKeyList(); + if(FuncBase.isEmpty(tmpkeyList)){ + return null; + } + + List keyList = tmpkeyList.stream() + .map(key -> FuncBase.concatSymbol( key , symbol,upperFlag)) + .collect(Collectors.toList()); + + String str="ALTER TABLE %s.%s ADD PRIMARY KEY(%s)"; + String ddl = String.format(str,schemaName,tableName,String.join(",",keyList)); + return PlusUtils.ddl2SqlFormatModel(ddl); + + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildCondition.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildCondition.java new file mode 100644 index 0000000..8e9e622 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildCondition.java @@ -0,0 +1,343 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.buildmodel.ExpressionModel; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoConditionModel; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoHavingModel; +import com.jeelowcode.framework.plus.core.dql.select.JeeLowCodeQueryWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + * @author JX + * @create 2024-07-29 16:00 + * @dedescription: + */ + +public class BuildCondition { + + public JeeLowCodeQueryWrapper wrapper = new JeeLowCodeQueryWrapper(); + + public SQLInterpretContext context; + + + public SqlFormatModel context2Condition(SqlInfoConditionModel conditionModel){ + List expressions =conditionModel.getExpressions(); + expressions.forEach(expressionModel -> { + SqlInfoConditionModel.WhereType whereType = expressionModel.getWhereType(); + String column = expressionModel.getColumn(); + Object[] value = expressionModel.getValue(); + switch (whereType) { + case GT://> + gt(column, value); + break; + case GE://>= + ge(column, value); + break; + case NE:// != + ne(column, value); + break; + case EQ:// = + eq(column, value); + break; + case LT://< + lt(column, value); + break; + case LE://<= + le(column, value); + break; + case BETWEEN: + between(column, value); + break; + case NOT_BETWEEN: + notbetween(column, value); + break; + case IN: + in(column, value); + break; + case NOT_IN: + notIn(column, value); + break; + case LIKE: + like(column, value); + break; + case NOT_LIKE: + notLike(column, value); + break; + case LIKE_LEFT: + likeLeft(column, value); + break; + case LIKE_RIGHT: + likeRight(column, value); + break; + case IS_NULL: + isNull(column); + break; + case IS_NOT_NULL: + isNotNull(column); + break; + case OR: + or(); + break; + case OR_BUILD: + orBuild((Consumer) value[0]); + break; + case AND_BUILD: + andBuild((Consumer) value[0]); + break; + case APPLY: + apply(column); + break; + } + }); + String sqlStr = ""; + + if(conditionModel instanceof SqlInfoHavingModel){ + sqlStr=wrapper.getHavingCustomSqlSegment(); + }else{ + sqlStr=wrapper.getCustomSqlSegment(); + } + Map paramNameValuePairs = wrapper.getParamNameValuePairs(); + + SqlFormatModel sqlFormatModel = new SqlFormatModel(sqlStr, paramNameValuePairs); + return sqlFormatModel; + } + + public void gt(String column, Object[] value) { + wrapper.gt(column, value[0]); + return; + } + + public void ge(String column, Object[] value) { + wrapper.ge(column, value[0]); + return; + } + + public void ne(String column, Object[] value) { + wrapper.ne(column, value[0]); + return; + } + + public void eq(String column, Object[] value) { + wrapper.eq(column, value[0]); + return; + } + + public void between(String column, Object[] value) { + Object value1=value[0]; + Object value2=value[1]; + wrapper.between(column, value1, value2); + return; + } + + public void notbetween(String column,Object[] value) { + Object value1=value[0]; + Object value2=value[1]; + wrapper.notBetween(column, value1, value2); + return; + } + + public void in(String column, Object[] value) { + if(value.length>1){ + wrapper.in(column, value); + return; + } + Object obj = value[0]; + if(obj instanceof List){ + List objList=(List)value[0]; + wrapper.in(column, objList); + }else{ + wrapper.in(column, obj); + } + return; + } + + public void notIn(String column, Object[] value) { + if(value.length>1){ + wrapper.notIn(column, value); + return; + } + Object obj = value[0]; + if(obj instanceof List){ + List objList=(List)value[0]; + wrapper.notIn(column, objList); + }else{ + wrapper.notIn(column, obj); + } + return; + } + + public void like(String column, Object[] value) { + wrapper.like(column, value[0]); + return; + } + + public void notLike(String column, Object[] value) { + wrapper.notLike(column, value[0]); + return; + } + + public void likeLeft(String column, Object[] value) { + wrapper.likeLeft(column, value[0]); + return; + } + + public void likeRight(String column, Object[] value) { + wrapper.likeRight(column, value[0]); + return; + } + + public void lt(String column, Object[] value) { + wrapper.lt(column, value[0]); + return; + } + + public void le(String column, Object[] value) { + wrapper.le(column, value[0]); + return; + } + + public void isNull(String column) { + wrapper.isNull(column); + return; + } + + public void isNotNull(String column) { + wrapper.isNotNull(column); + return; + } + public void apply(String column) { + wrapper.apply(column); + return; + } + public void or() { + wrapper.or(); + return; + } + + + public void orBuild(Consumer condition) { + try{ + SqlInfoConditionModel.Builder builder = new SqlInfoConditionModel.Builder(); + condition.accept(builder); + SqlInfoConditionModel build = builder.build(); + BuildCondition buildCondition = new BuildCondition(); + SqlFormatModel sqlFormatModel = buildCondition.context2Condition(build); + + String tmpSql = sqlFormatModel.getSql(); + tmpSql=tmpSql.substring(6); + Map tmpMap = sqlFormatModel.getDataMap(); + if (FuncBase.isEmpty(tmpMap)) {//没有参数的情况下 + String newSql=String.format("( 1!=1 OR %s) ",tmpSql); + wrapper.apply(newSql); + return; + } + + //存在参数的情况下 + List> entrieList = new ArrayList<>(tmpMap.entrySet()); + Collections.reverse(entrieList); + + int step=0; + Object[] objects=new Object[entrieList.size()]; + + // 然后,从列表的末尾开始遍历 + for (Map.Entry entry : entrieList) { + String key = entry.getKey(); // 获取键 + Object value = entry.getValue(); // 获取值 + + // 执行你的替换逻辑 + tmpSql = tmpSql.replace("#{"+ FuncBase.PARAM_NAME_VALUE_PAIRS+"." + key + "}", "{"+step+"}"); + objects[step]=value; + + step++; + } + String newSql=String.format(" ( 1!=1 OR %s) ",tmpSql);//1!=1 兼容语法 + wrapper.apply(newSql,objects); + }catch (Exception e){ + + } + + return; + } + + public void andBuild(Consumer condition) { + try{ + + SqlInfoConditionModel.Builder builder = new SqlInfoConditionModel.Builder(); + condition.accept(builder); + SqlInfoConditionModel build = builder.build(); + BuildCondition buildCondition = new BuildCondition(); + SqlFormatModel sqlFormatModel = buildCondition.context2Condition(build); + + String tmpSql = sqlFormatModel.getSql(); + tmpSql=tmpSql.substring(6); + Map tmpMap = sqlFormatModel.getDataMap(); + if (FuncBase.isEmpty(tmpMap)) {//没有参数的情况下 + String newSql=String.format("(%s) ",tmpSql); + wrapper.apply(newSql); + return; + } + + //存在参数的情况下 + List> entrieList = new ArrayList<>(tmpMap.entrySet()); + Collections.reverse(entrieList); + + int step=0; + Object[] objects=new Object[entrieList.size()]; + + // 然后,从列表的末尾开始遍历 + for (Map.Entry entry : entrieList) { + String key = entry.getKey(); // 获取键 + Object value = entry.getValue(); // 获取值 + + // 执行你的替换逻辑 + tmpSql = tmpSql.replace("#{"+ FuncBase.PARAM_NAME_VALUE_PAIRS+"." + key + "}", "{"+step+"}"); + + objects[step]=value; + + step++; + } + String newSql=String.format(" (%s) ",tmpSql); + wrapper.apply(newSql,objects); + }catch (Exception e){ + + } + + return; + } + + public JeeLowCodeQueryWrapper getWrapper() { + return wrapper; + } + + public void setWrapper(JeeLowCodeQueryWrapper wrapper) { + this.wrapper = wrapper; + } + + public SQLInterpretContext getContext() { + return this.context; + } + + public void setContext(SQLInterpretContext context) { + this.context = context; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildDelete.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildDelete.java new file mode 100644 index 0000000..597f2b3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildDelete.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoDeleteModel; +import com.jeelowcode.framework.plus.core.dql.update.JeeLowCodeUpdateWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Map; + +/** + * 构建 删除 语句 + */ +public class BuildDelete implements ISQLExpression { + + + public SqlFormatModel interpret(SQLInterpretContext context){ + SqlInfoDeleteModel sqlInfo = context.getDeleteModel(); + String tableName = sqlInfo.getTableName(); + Boolean isReal = sqlInfo.getReal(); + + + SqlFormatModel sqlFormatModel; + if (isReal){//真实删除 + String sql = "Delete from " + tableName; + sqlFormatModel = new SqlFormatModel(sql); + }else {//逻辑删除 + JeeLowCodeUpdateWrapper updateWrapper = new JeeLowCodeUpdateWrapper<>(); + updateWrapper.set("is_deleted",-1); + + String sqlSet = updateWrapper.getSqlSet(); + Map paramNameValuePairs = updateWrapper.getParamNameValuePairs(); + + //处理null值 + for (Map.Entry entry : paramNameValuePairs.entrySet()) { + Object value = entry.getValue(); + if(FuncBase.isEmpty(value)){ + entry.setValue(null); + } + } + + String sql = "update " + tableName + " set " + sqlSet ; + sqlFormatModel = new SqlFormatModel(sql, paramNameValuePairs); + } + return sqlFormatModel; + + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildGroupBy.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildGroupBy.java new file mode 100644 index 0000000..bbece51 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildGroupBy.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoGroupModel; +import com.jeelowcode.framework.plus.core.dql.select.JeeLowCodeQueryWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.Arrays; + +/** + * group by + */ +public class BuildGroupBy implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + + SqlInfoGroupModel sqlInfo = context.getGroupModel(); + String[] columns = sqlInfo.getColumns(); + + JeeLowCodeQueryWrapper wrapper=new JeeLowCodeQueryWrapper(); + wrapper.groupBy(Arrays.asList(columns)); + String groupByStr = wrapper.getCustomSqlSegment(); + + return new SqlFormatModel(groupByStr); + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildHaving.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildHaving.java new file mode 100644 index 0000000..0cf1349 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildHaving.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoHavingModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; + + +/** + * having 相关 + */ +public class BuildHaving extends BuildCondition implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + + SqlInfoHavingModel havingModel = context.getHavingModel(); + SqlFormatModel sqlFormatModel = super.context2Condition(havingModel); + return sqlFormatModel; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildInsert.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildInsert.java new file mode 100644 index 0000000..3f7f909 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildInsert.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoInsertModel; +import com.jeelowcode.framework.plus.core.dql.insert.JeeLowCodeInsertWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +/** + * 构建 insert 语句 + */ +public class BuildInsert implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context){ + SqlInfoInsertModel sqlInfo = context.getInsertModel(); + String tableName = sqlInfo.getTableName(); + + Map insertMap = sqlInfo.getInsertMap(); + + JeeLowCodeInsertWrapper insertWrapper = new JeeLowCodeInsertWrapper<>(); + for (Map.Entry entry : insertMap.entrySet()) { + insertWrapper.set(entry.getKey(),entry.getValue()); + } + + + //封装 + String sqlSet = insertWrapper.getSqlSet(); + String customSqlSegment = insertWrapper.getCustomSqlSegment(); + Map paramNameValuePairs = insertWrapper.getParamNameValuePairs(); + for (Map.Entry entry : paramNameValuePairs.entrySet()) { + Object value = entry.getValue(); + if(FuncBase.isEmpty(value)){ + entry.setValue(null); + } + } + + List fieldList=new ArrayList<>(); + List valueList=new ArrayList<>(); + List setList = FuncBase.toStrList(sqlSet); + for(String set:setList){ + String[] split = set.split("="); + String field=split[0]; + String value=split[1]; + fieldList.add(field); + if(!insertMap.containsKey(field)){//不存在,指定jdbc类型,不然oracle报错 + value=value.substring(0,value.length()-1)+",jdbcType=VARCHAR}"; + }else if(FuncBase.isEmpty(insertMap.get(field))){//为空,指定jdbc类型,不然oracle报错 + value=value.substring(0,value.length()-1)+",jdbcType=VARCHAR}"; + } + valueList.add(value); + + } + + String sql = "insert into " + tableName + "(%s) VALUE(%s) "; + String finalSql = String.format(sql, String.join(",", fieldList), String.join(",", valueList)); + + SqlFormatModel sqlFormatModel = new SqlFormatModel(finalSql,paramNameValuePairs); + return sqlFormatModel; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildJoin.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildJoin.java new file mode 100644 index 0000000..22de9db --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildJoin.java @@ -0,0 +1,56 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoJoinModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; +/** + * left join ,inner join ,right join相关 + */ +public class BuildJoin implements ISQLExpression { + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + + SqlInfoJoinModel model = context.getJoinModel(); + SqlInfoJoinModel.JoinType joinType = model.getJoinType(); + String onStr = model.getOnStr(); + String tableName = model.getTableName(); + + String joinSymbolStr=""; + switch (joinType) { + case LEFT_JOIN: + joinSymbolStr = "LEFT JOIN"; + break; + case RIGHT_JOIN: + joinSymbolStr = "RIGHT JOIN"; + break; + case INNER_JOIN: + joinSymbolStr = "INNER JOIN"; + break; + } + String sql= joinSymbolStr+" "+tableName+" on "+onStr; + + SqlFormatModel sqlFormatModel = new SqlFormatModel(sql); + return sqlFormatModel; + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildOrderBy.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildOrderBy.java new file mode 100644 index 0000000..0398a32 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildOrderBy.java @@ -0,0 +1,52 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoOrderModel; +import com.jeelowcode.framework.plus.core.dql.select.JeeLowCodeQueryWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; + +import java.util.*; + +/** + * 排序 + */ +public class BuildOrderBy implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + JeeLowCodeQueryWrapper wrapper=new JeeLowCodeQueryWrapper(); + + SqlInfoOrderModel sqlInfoOrderModel = context.getOrderModel(); + List orderModels = sqlInfoOrderModel.getOrderByList(); + orderModels.forEach(orderModel -> { + String[] columns = orderModel.getColumns();//列 + boolean isAsc = orderModel.isAsc(); + wrapper.orderBy(true,isAsc, Arrays.asList(columns)); + }); + + String orderByStr = wrapper.getCustomSqlSegment(); + + return new SqlFormatModel(orderByStr); + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildPublicSql.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildPublicSql.java new file mode 100644 index 0000000..911e19b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildPublicSql.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoPublicModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; + +/** + * 通用sql + */ +public class BuildPublicSql implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoPublicModel sqlInfo = context.getPublicModel(); + String sql = sqlInfo.getSql();//获取原有的sql + return new SqlFormatModel(sql); + + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildSelect.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildSelect.java new file mode 100644 index 0000000..b99a39a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildSelect.java @@ -0,0 +1,54 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoSelectModel; +import com.jeelowcode.framework.plus.core.dql.select.JeeLowCodeQueryWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.JSQLParserException; + +/** + * 查询相关 + */ +public class BuildSelect implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoSelectModel sqlInfo = context.getSelectModel(); + String[] columns = sqlInfo.getColumns();//查询列 + String tableName = sqlInfo.getTableName();//查询表 + + if(FuncBase.isEmpty(columns)){ + columns = new String[]{"*"}; + } + JeeLowCodeQueryWrapper wrapper=new JeeLowCodeQueryWrapper(); + wrapper.select(columns); + + String sqlSelect = wrapper.getSqlSelect(); + + String sql = "select " + sqlSelect + " from " + tableName; + + + return new SqlFormatModel(sql); + + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildUpdate.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildUpdate.java new file mode 100644 index 0000000..ebb342e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildUpdate.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoUpdateModel; +import com.jeelowcode.framework.plus.core.dql.update.JeeLowCodeUpdateWrapper; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.*; + +/** + * 构建 update 语句 + */ +public class BuildUpdate implements ISQLExpression { + + + + @Override + public SqlFormatModel interpret(SQLInterpretContext context){ + SqlInfoUpdateModel sqlInfo = context.getUpdateModel(); + String tableName = sqlInfo.getTableName(); + JeeLowCodeUpdateWrapper updateWrapper = new JeeLowCodeUpdateWrapper(tableName); + + + Map updateMap = sqlInfo.getUpdateMap(); + updateMap.forEach((k,v)->{ + updateWrapper.set(k,v); + }); + + String sqlSet = updateWrapper.getSqlSet(); + Map paramNameValuePairs = updateWrapper.getParamNameValuePairs(); + + String newSqlSet=""; + + + List setList = FuncBase.toStrList(sqlSet); + for(String set:setList){ + String[] split = set.split("="); + String field=split[0]; + String value=split[1]; + if(!updateMap.containsKey(field)){//不存在,指定jdbc类型,不然oracle报错 + value=value.substring(0,value.length()-1)+",jdbcType=VARCHAR}"; + }else if(FuncBase.isEmpty(updateMap.get(field))){//为空,指定jdbc类型,不然oracle报错 + value=value.substring(0,value.length()-1)+",jdbcType=VARCHAR}"; + } + if(FuncBase.isEmpty(newSqlSet)){ + newSqlSet=field+"="+value; + }else{ + newSqlSet+=","+field+"="+value; + } + } + + //处理null值 + for (Map.Entry entry : paramNameValuePairs.entrySet()) { + Object value = entry.getValue(); + if(FuncBase.isEmpty(value)){ + entry.setValue(null); + } + } + + String sql = "update " + tableName + " set " + newSqlSet ; + SqlFormatModel sqlFormatModel = new SqlFormatModel(sql, paramNameValuePairs); + + return sqlFormatModel; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildWhere.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildWhere.java new file mode 100644 index 0000000..62a420c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/build/dql/BuildWhere.java @@ -0,0 +1,46 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.build.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoWhereModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import net.sf.jsqlparser.JSQLParserException; + +/** + * 构建where语句相关 + */ +public class BuildWhere extends BuildCondition implements ISQLExpression { + + + + + public BuildWhere() { + } + + public BuildWhere(SQLInterpretContext context){ + super.context = context; + } + + @Override + public SqlFormatModel interpret(SQLInterpretContext context) throws JSQLParserException { + SqlInfoWhereModel whereModel = context.getWhereModel(); + SqlFormatModel sqlFormatModel = super.context2Condition(whereModel); + return sqlFormatModel; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ExpressionModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ExpressionModel.java new file mode 100644 index 0000000..aa896e7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ExpressionModel.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel; + + +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoConditionModel; + +public class ExpressionModel { + private SqlInfoConditionModel.WhereType whereType; + private String column; + private Object[] value; + + public SqlInfoConditionModel.WhereType getWhereType() { + return whereType; + } + + public void setWhereType(SqlInfoConditionModel.WhereType whereType) { + this.whereType = whereType; + } + + public String getColumn() { + return column; + } + + public void setColumn(String column) { + this.column = column; + } + + public Object[] getValue() { + return value; + } + + public void setValue(Object[] value) { + this.value = value; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SQLInterpretContext.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SQLInterpretContext.java new file mode 100644 index 0000000..acb46c2 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SQLInterpretContext.java @@ -0,0 +1,247 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel; + +import com.jeelowcode.framework.plus.build.buildmodel.dql.*; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.*; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.*; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.build.buildmodel.dql.*; + +/** + * @author JX + * @create 2024-07-23 9:07 + * @dedescription: + */ +public class SQLInterpretContext { + + private String preSymbol="ew."; + + private String schemaName; + + private SqlInfoInsertModel insertModel; + + private SqlInfoDeleteModel deleteModel; + + private SqlInfoAlterModel alterModel; + + private SqlInfoSelectModel selectModel; + + private SqlInfoCreateModel createModel; + + private SqlInfoCreateIndexModel createIndexModel; + + private SqlInfoUpdateModel updateModel; + + private SqlInfoDropModel dropModel; + + private SqlInfoWhereModel whereModel; + + private SqlInfoOrderModel orderModel; + + private SqlInfoGroupModel groupModel; + + private SqlInfoHavingModel havingModel; + + private SqlInfoJoinModel joinModel; + + private ExpressionModel expressionModel; + + private DbColunmTypesEntity dbColunmTypes; + + private SqlInfoCommentModel commentModel; + + private SqlInfoPrimaryKeyModel primaryKeyModel; + + private SqlInfoDdlModel ddlModel; + + private SqlInfoPublicModel publicModel; + + + public SQLInterpretContext(String schemaName) { + this.schemaName = schemaName; + } + + + ///=========================================================================== + + + public String getSchemaName() { + return schemaName; + } + + public void setSchemaName(String schemaName) { + this.schemaName = schemaName; + } + + public SqlInfoInsertModel getInsertModel() { + return insertModel; + } + + public void setInsertModel(SqlInfoInsertModel insertModel) { + this.insertModel = insertModel; + } + + public SqlInfoDeleteModel getDeleteModel() { + return deleteModel; + } + + public void setDeleteModel(SqlInfoDeleteModel deleteModel) { + this.deleteModel = deleteModel; + } + + public SqlInfoAlterModel getAlterModel() { + return alterModel; + } + + public void setAlterModel(SqlInfoAlterModel alterModel) { + this.alterModel = alterModel; + } + + public SqlInfoSelectModel getSelectModel() { + return selectModel; + } + + public void setSelectModel(SqlInfoSelectModel selectModel) { + this.selectModel = selectModel; + } + + public SqlInfoCreateModel getCreateModel() { + return createModel; + } + + public void setCreateModel(SqlInfoCreateModel createModel) { + this.createModel = createModel; + } + + public SqlInfoCreateIndexModel getCreateIndexModel() { + return createIndexModel; + } + + public void setCreateIndexModel(SqlInfoCreateIndexModel createIndexModel) { + this.createIndexModel = createIndexModel; + } + + public SqlInfoUpdateModel getUpdateModel() { + return updateModel; + } + + public void setUpdateModel(SqlInfoUpdateModel updateModel) { + this.updateModel = updateModel; + } + + public SqlInfoDropModel getDropModel() { + return dropModel; + } + + public void setDropModel(SqlInfoDropModel dropModel) { + this.dropModel = dropModel; + } + + public SqlInfoWhereModel getWhereModel() { + return whereModel; + } + + public void setWhereModel(SqlInfoWhereModel whereModel) { + this.whereModel = whereModel; + } + + public SqlInfoOrderModel getOrderModel() { + return orderModel; + } + + public void setOrderModel(SqlInfoOrderModel orderModel) { + this.orderModel = orderModel; + } + + public SqlInfoGroupModel getGroupModel() { + return groupModel; + } + + public void setGroupModel(SqlInfoGroupModel groupModel) { + this.groupModel = groupModel; + } + + public SqlInfoHavingModel getHavingModel() { + return havingModel; + } + + public void setHavingModel(SqlInfoHavingModel havingModel) { + this.havingModel = havingModel; + } + + public SqlInfoJoinModel getJoinModel() { + return joinModel; + } + + public void setJoinModel(SqlInfoJoinModel joinModel) { + this.joinModel = joinModel; + } + + public ExpressionModel getExpressionModel() { + return expressionModel; + } + + public void setExpressionModel(ExpressionModel expressionModel) { + this.expressionModel = expressionModel; + } + + public DbColunmTypesEntity getDbColunmTypes() { + return dbColunmTypes; + } + + public void setDbColunmTypes(DbColunmTypesEntity dbColunmTypes) { + this.dbColunmTypes = dbColunmTypes; + } + + public SqlInfoCommentModel getCommentModel() { + return commentModel; + } + + public void setCommentModel(SqlInfoCommentModel commentModel) { + this.commentModel = commentModel; + } + + public SqlInfoPrimaryKeyModel getPrimaryKeyModel() { + return primaryKeyModel; + } + + public void setPrimaryKeyModel(SqlInfoPrimaryKeyModel primaryKeyModel) { + this.primaryKeyModel = primaryKeyModel; + } + + public SqlInfoDdlModel getDdlModel() { + return ddlModel; + } + + public void setDdlModel(SqlInfoDdlModel ddlModel) { + this.ddlModel = ddlModel; + } + + public String getPreSymbol() { + return preSymbol; + } + + public void setPreSymbol(String preSymbol) { + this.preSymbol = preSymbol; + } + + public SqlInfoPublicModel getPublicModel() { + return publicModel; + } + + public void setPublicModel(SqlInfoPublicModel publicModel) { + this.publicModel = publicModel; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SqlInfoBaseModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SqlInfoBaseModel.java new file mode 100644 index 0000000..e9b0408 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/SqlInfoBaseModel.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; + +/** + * 自定义 model + */ + +public class SqlInfoBaseModel { + + ISQLExpression sqlExpression; + + public ISQLExpression getSqlExpression() { + return sqlExpression; + } + + public void setSqlExpression(ISQLExpression sqlExpression) { + this.sqlExpression = sqlExpression; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/FieldCommentModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/FieldCommentModel.java new file mode 100644 index 0000000..fd65c89 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/FieldCommentModel.java @@ -0,0 +1,47 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; + +/** + * 数据库字段列表 + */ +public class FieldCommentModel extends SqlInfoBaseModel { + private String fieldCode;//字段 + private String fieldName;//字段名称 + + public FieldCommentModel(String fieldCode, String fieldName) { + this.fieldCode = fieldCode; + this.fieldName = fieldName; + } + + public String getFieldCode() { + return fieldCode; + } + + public void setFieldCode(String fieldCode) { + this.fieldCode = fieldCode; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoAlterModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoAlterModel.java new file mode 100644 index 0000000..bd77ee2 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoAlterModel.java @@ -0,0 +1,102 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildAlter; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-06 11:45 + * @dedescription: + */ +public class SqlInfoAlterModel extends SqlInfoBaseDdlModel { + + private AlterType alterType;//操作类型 + + private String tableName;//表名称 + //addColumn + private FieldModel fieldModel;//字段属性 + + + private SqlInfoAlterModel(){} + + + public enum AlterType{ + ADD_COLUMN, //增加字段 + UPDATE_COLUMN //修改字段 + } + + public static Builder builder(){ + return new Builder(); + } + public static class Builder{ + + private SqlInfoAlterModel alterModel = new SqlInfoAlterModel(); + ISQLExpression> alterExpression = new BuildAlter(); + + public Builder setTableName(String tableName){ + alterModel.tableName = tableName; + return this; + } + //增加字段 + public SqlInfoAlterModel buildAddColumn(FieldModel fieldModel){ + alterModel.alterType = AlterType.ADD_COLUMN; + alterModel.fieldModel =fieldModel; + alterModel.setSqlExpression(alterExpression); + return alterModel; + } + + //更新字段 + public SqlInfoAlterModel buildUpdateColum(FieldModel fieldModel){ + alterModel.alterType = AlterType.UPDATE_COLUMN; + alterModel.fieldModel =fieldModel; + alterModel.setSqlExpression(alterExpression); + return alterModel; + } + + } + + + public AlterType getAlterType() { + return alterType; + } + + public void setAlterType(AlterType alterType) { + this.alterType = alterType; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public FieldModel getFieldModel() { + return fieldModel; + } + + public void setFieldModel(FieldModel fieldModel) { + this.fieldModel = fieldModel; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoBaseDdlModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoBaseDdlModel.java new file mode 100644 index 0000000..e310cbc --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoBaseDdlModel.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; + +import java.util.List; + +/** + * DDL 公共 + * @param + */ +public class SqlInfoBaseDdlModel extends SqlInfoBaseModel { + + //优先级最高,有值则只运行这里 + private List executeDdlList; + + public List getExecuteDdlList() { + return executeDdlList; + } + + public void setExecuteDdlList(List executeDdlList) { + this.executeDdlList = executeDdlList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCommentModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCommentModel.java new file mode 100644 index 0000000..6ae1656 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCommentModel.java @@ -0,0 +1,79 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildComment; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-06 11:45 + * @dedescription: + */ +public class SqlInfoCommentModel extends SqlInfoBaseDdlModel { + + String tableName; + String tableAlias; + List fieldModelList; + + + + private SqlInfoCommentModel(){} + + //构建表备注 + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + + private SqlInfoCommentModel model = new SqlInfoCommentModel(); + ISQLExpression> commentExpression = new BuildComment(); + + public Builder setTableName(String tableName){ + model.tableName = tableName; + return this; + } + public Builder setTableAlias(String tableAlias){ + model.tableAlias = tableAlias; + return this; + } + public Builder setfieldModelList(List fieldModelList){ + model.fieldModelList = fieldModelList; + return this; + } + //增加字段 + public SqlInfoCommentModel build(){ + model.setSqlExpression(commentExpression); + return model; + } + } + + public String getTableName() { + return tableName; + } + + public String getTableAlias() { + return tableAlias; + } + + public List getFieldModelList() { + return fieldModelList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateIndexModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateIndexModel.java new file mode 100644 index 0000000..d12933e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateIndexModel.java @@ -0,0 +1,92 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildCreateIndex; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-05 17:09 + * @dedescription: + */ +public class SqlInfoCreateIndexModel extends SqlInfoBaseDdlModel { + + String tableName;//表 + //index + private String indexName;//索引名称 + + private List indexFieldCodeList;//索引值 + + + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + private SqlInfoCreateIndexModel sqlInfoCreateModel = new SqlInfoCreateIndexModel(); + ISQLExpression> expression = new BuildCreateIndex(); + + public Builder setTableName(String tableName) { + sqlInfoCreateModel.tableName = tableName; + return this; + } + + public Builder setIndexName(String indexName) { + sqlInfoCreateModel.indexName = indexName; + return this; + } + + public Builder setIndexFieldCodeList(List indexFieldCodeList) { + sqlInfoCreateModel.indexFieldCodeList = indexFieldCodeList; + return this; + } + + public SqlInfoCreateIndexModel build() { + ISQLExpression> expression = new BuildCreateIndex(); + sqlInfoCreateModel.setSqlExpression(expression); + return sqlInfoCreateModel; + } + } + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getIndexName() { + return indexName; + } + + public void setIndexName(String indexName) { + this.indexName = indexName; + } + + public List getIndexFieldCodeList() { + return indexFieldCodeList; + } + + public void setIndexFieldCodeList(List indexFieldCodeList) { + this.indexFieldCodeList = indexFieldCodeList; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateModel.java new file mode 100644 index 0000000..1e37b40 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoCreateModel.java @@ -0,0 +1,74 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildCreateTable; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-05 17:09 + * @dedescription: + */ +public class SqlInfoCreateModel extends SqlInfoBaseDdlModel { + + String tableName;//表 + List tableOptions; + + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + private SqlInfoCreateModel sqlInfoCreateModel = new SqlInfoCreateModel(); + ISQLExpression> createTableExpression = new BuildCreateTable(); + public Builder setTableName(String tableName) { + sqlInfoCreateModel.tableName = tableName; + return this; + } + + public Builder setTableOptions(List tableOptions) { + sqlInfoCreateModel.tableOptions = tableOptions; + return this; + } + + public SqlInfoCreateModel build() { + sqlInfoCreateModel.setSqlExpression(createTableExpression); + return sqlInfoCreateModel; + } + } + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public List getTableOptions() { + return tableOptions; + } + + public void setTableOptions(List tableOptions) { + this.tableOptions = tableOptions; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDdlModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDdlModel.java new file mode 100644 index 0000000..7d73a7d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDdlModel.java @@ -0,0 +1,112 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildDdl; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + */ +public class SqlInfoDdlModel extends SqlInfoBaseDdlModel { + + private DdlType type;//操作类型 + + private Map map;//参数 + + private SqlInfoDdlModel(){} + + public static Builder builder(){ + return new Builder(); + } + + + public static class Builder{ + + private SqlInfoDdlModel ddlModel = new SqlInfoDdlModel(); + + ISQLExpression> expression = new BuildDdl(); + + public SqlInfoDdlModel buildIndexExist(String tableName,String indexName){ + Map map=new HashMap<>(); + map.put("tableName",tableName); + map.put("indexName",indexName); + ddlModel.type= DdlType.INDEX_EXIST; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + public SqlInfoDdlModel buildIndexAllByTable(String tableName){ + Map map=new HashMap<>(); + map.put("tableName",tableName); + ddlModel.type= DdlType.INDEX_ALL; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + public SqlInfoDdlModel buildTableExist(String tableName){ + Map map=new HashMap<>(); + map.put("tableName",tableName); + ddlModel.type= DdlType.TABLE_EXIST; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + public SqlInfoDdlModel buildGetAllTableName(){ + Map map=new HashMap<>(); + ddlModel.type= DdlType.ALL_TABLE_NAME; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + public SqlInfoDdlModel buildFieldComment(String tableName){ + Map map=new HashMap<>(); + map.put("tableName",tableName); + ddlModel.type= DdlType.TABLE_FIELD_COMMENT; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + public SqlInfoDdlModel buildTableComment(String tableName){ + Map map=new HashMap<>(); + map.put("tableName",tableName); + ddlModel.type= DdlType.TABLE_COMMENT; + ddlModel.map=map; + ddlModel.setSqlExpression(expression); + return ddlModel; + } + } + + + public enum DdlType{ + INDEX_EXIST,//索引是否存在 + INDEX_ALL,//所有索引 + TABLE_EXIST,//表名是否存在 + ALL_TABLE_NAME,//所有表名 + TABLE_COMMENT,//表备注 + TABLE_FIELD_COMMENT;//表字段备注 + } + + public DdlType getType() { + return type; + } + + public Map getMap() { + return map; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDropModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDropModel.java new file mode 100644 index 0000000..583df93 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoDropModel.java @@ -0,0 +1,121 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildDrop; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-06 11:45 + * @dedescription: + */ +public class SqlInfoDropModel extends SqlInfoBaseDdlModel { + + private DropType dropType;//操作类型 + + String tableName;//表 + + private String cloumnCode;//字段 + private String cloumnFormat;//格式化 + + private String indexName;//索引名称 + + private SqlInfoDropModel(){} + + public static Builder builder(){ + return new Builder(); + } + + + public static class Builder{ + + private SqlInfoDropModel dropModel = new SqlInfoDropModel(); + + ISQLExpression> expression = new BuildDrop(); + + public SqlInfoDropModel buildDropTable(String tableName){ + dropModel.tableName = tableName; + dropModel.dropType = DropType.DROP_TABLE; + dropModel.setSqlExpression(expression); + return dropModel; + } + public SqlInfoDropModel buildDropColumn(String tableName,String column){ + dropModel.tableName = tableName; + dropModel.cloumnCode=column; + dropModel.dropType = DropType.DROP_COLUMN; + dropModel.setSqlExpression(expression); + return dropModel; + } + public SqlInfoDropModel buildDropIndex(String tableName,String indexName){ + dropModel.tableName = tableName; + dropModel.dropType = DropType.DROP_INDEX; + dropModel.indexName=indexName; + dropModel.setSqlExpression(expression); + return dropModel; + } + + } + + + public enum DropType{ + DROP_TABLE, //删除表 + DROP_COLUMN, //删除字段 + DROP_INDEX //删除索引 + } + + public DropType getDropType() { + return dropType; + } + + public void setDropType(DropType dropType) { + this.dropType = dropType; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getCloumnCode() { + return cloumnCode; + } + + public void setCloumnCode(String cloumnCode) { + this.cloumnCode = cloumnCode; + } + + public String getIndexName() { + return indexName; + } + + public void setIndexName(String indexName) { + this.indexName = indexName; + } + + public String getCloumnFormat() { + return cloumnFormat; + } + + public void setCloumnFormat(String cloumnFormat) { + this.cloumnFormat = cloumnFormat; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoPrimaryKeyModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoPrimaryKeyModel.java new file mode 100644 index 0000000..3e70bad --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/ddl/SqlInfoPrimaryKeyModel.java @@ -0,0 +1,73 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.ddl; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.ddl.BuildPrimaryKey; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + +/** + * @author JX + * @create 2024-07-05 17:09 + * @dedescription: + */ +public class SqlInfoPrimaryKeyModel extends SqlInfoBaseDdlModel { + + String tableName;//表 + List keyList; + + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + private SqlInfoPrimaryKeyModel sqlInfoCreateModel = new SqlInfoPrimaryKeyModel(); + ISQLExpression> primaryKeyExpression = new BuildPrimaryKey(); + public Builder setTableName(String tableName) { + sqlInfoCreateModel.tableName = tableName; + return this; + } + + public Builder setPrimaryKey(List keyList) { + sqlInfoCreateModel.keyList = keyList; + return this; + } + + public SqlInfoPrimaryKeyModel build() { + sqlInfoCreateModel.setSqlExpression(primaryKeyExpression); + return sqlInfoCreateModel; + } + } + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public List getKeyList() { + return keyList; + } + + public void setKeyList(List keyList) { + this.keyList = keyList; + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoConditionModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoConditionModel.java new file mode 100644 index 0000000..0919405 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoConditionModel.java @@ -0,0 +1,248 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildCondition; +import com.jeelowcode.framework.plus.build.build.dql.BuildHaving; +import com.jeelowcode.framework.plus.build.build.dql.BuildWhere; +import com.jeelowcode.framework.plus.build.buildmodel.ExpressionModel; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +/** + * @author JX + * @create 2024-07-30 10:17 + * @dedescription: + */ +public class SqlInfoConditionModel extends SqlInfoBaseModel { + + + private List expressions = new ArrayList<>(); + + public static SqlInfoConditionModel.Builder builder() { + return new SqlInfoConditionModel.Builder(); + } + + public static class Builder { + + private SqlInfoConditionModel conditionModel = new SqlInfoConditionModel(); + + public SqlInfoConditionModel.Builder gt(String column, Object value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.GT, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder ge(String column, Object value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.GE, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder ne(String column, Object value) { + if (FuncBase.isEmpty(value)) { + return this; + } + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.NE, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder eq(String column, Object value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.EQ, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder lt(String column, Object value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.LT, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder le(String column, Object value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.LE, column, value)); + return this; + } + + + public SqlInfoConditionModel.Builder between(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.BETWEEN, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder notbetween(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.NOT_BETWEEN, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder in(boolean condition, String column, Object... value) { + if (!condition) { + return this; + } + return this.in(column, value); + } + + public SqlInfoConditionModel.Builder in(String column, Object... value) { + if (FuncBase.isEmpty(value)) { + return this; + } + Object valueTmp = value[0]; + if (FuncBase.isEmpty(valueTmp)) { + return this; + } + + if (value.length == 1) { + if (valueTmp instanceof List) { + List tmpList = (List) valueTmp; + if (tmpList.size() == 1) { + this.eq(column, tmpList.get(0)); + return this; + } + + } + } + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.IN, column, value)); + + return this; + } + + public SqlInfoConditionModel.Builder notIn(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.NOT_IN, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder like(boolean condition, String column, Object... value) { + if (!condition) { + return this; + } + return like(column, value); + } + + public SqlInfoConditionModel.Builder like(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.LIKE, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder notLike(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.NOT_LIKE, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder likeLeft(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.LIKE_LEFT, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder likeRight(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.LIKE_RIGHT, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder isNull(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.IS_NULL, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder isNotNull(String column, Object... value) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.IS_NOT_NULL, column, value)); + return this; + } + + public SqlInfoConditionModel.Builder apply(String apply) { + conditionModel.expressions.add(buildExpression(WhereType.APPLY, apply, null)); + return this; + } + + public SqlInfoConditionModel.Builder or() { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.OR, null, null)); + return this; + } + + public SqlInfoConditionModel.Builder or(Consumer orBuilderConsumer) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.OR_BUILD, null, orBuilderConsumer)); + return this; + } + + public SqlInfoConditionModel.Builder and(Consumer andBuilderConsumer) { + conditionModel.expressions.add(buildExpression(SqlInfoConditionModel.WhereType.AND_BUILD, null, andBuilderConsumer)); + return this; + } + + + public SqlInfoWhereModel buildWhere() { + ISQLExpression expression = new BuildWhere(); + SqlInfoWhereModel whereModel = new SqlInfoWhereModel(); + List expressions = conditionModel.getExpressions(); + whereModel.setExpressions(expressions); + whereModel.setSqlExpression(expression); + return whereModel; + } + + public SqlInfoHavingModel buildHaving() { + ISQLExpression expression = new BuildHaving(); + + SqlInfoHavingModel havingModel = new SqlInfoHavingModel(); + List expressions = conditionModel.getExpressions(); + havingModel.setExpressions(expressions); + havingModel.setSqlExpression(expression); + return havingModel; + } + + public SqlInfoConditionModel build() { + return conditionModel; + } + } + + public List getExpressions() { + return expressions; + } + + + public enum WhereType { + GT, //> + GE, //>= + NE, //!= + EQ, //= + LT, //< + LE, //<= + BETWEEN, + NOT_BETWEEN, + IN, + NOT_IN, + LIKE, + NOT_LIKE, + LIKE_LEFT, + LIKE_RIGHT, + IS_NULL, + IS_NOT_NULL, + OR, + OR_BUILD, + AND_BUILD, + APPLY + } + + private static ExpressionModel buildExpression(SqlInfoConditionModel.WhereType whereType, String column, Object... value) { + ExpressionModel expression = new ExpressionModel(); + expression.setWhereType(whereType); + expression.setColumn(column); + expression.setValue(value); + return expression; + } + + public void setExpressions(List expressions) { + this.expressions = expressions; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoDeleteModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoDeleteModel.java new file mode 100644 index 0000000..dca5e71 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoDeleteModel.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildDelete; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +public class SqlInfoDeleteModel extends SqlInfoBaseModel { + private String tableName; + + private Boolean isReal; + + private SqlInfoDeleteModel(){} + + public static Builder builder(){ + return new Builder(); + } + + + public static class Builder { + + private SqlInfoDeleteModel sqlInfoDeleteModel = new SqlInfoDeleteModel(); + + public Builder setTableName(String tableName) { + sqlInfoDeleteModel.tableName = tableName; + sqlInfoDeleteModel.isReal=false;//逻辑删除 + return this; + } + + public Builder setTableName(String tableName,boolean isReal) { + sqlInfoDeleteModel.tableName = tableName; + sqlInfoDeleteModel.isReal=isReal; + return this; + } + + public SqlInfoDeleteModel build(){ + ISQLExpression expression = new BuildDelete(); + sqlInfoDeleteModel.setSqlExpression(expression); + return sqlInfoDeleteModel; + } + } + + public String getTableName() { + return tableName; + } + + public Boolean getReal() { + return isReal; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoGroupModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoGroupModel.java new file mode 100644 index 0000000..53c4b30 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoGroupModel.java @@ -0,0 +1,59 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildDelete; +import com.jeelowcode.framework.plus.build.build.dql.BuildGroupBy; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +/** + * @author JX + * @create 2024-07-04 10:51 + * @dedescription: + */ +public class SqlInfoGroupModel extends SqlInfoBaseModel { + + private String[] columns; + + public String[] getColumns() { + return columns; + } + + public void setColumns(String... columns) { + this.columns = columns; + } + + public SqlInfoGroupModel (){} + + public static Builder builder (){ + return new Builder(); + } + public static class Builder{ + private SqlInfoGroupModel groupModel = new SqlInfoGroupModel(); + + public Builder setColumns(String... columns){ + groupModel.columns = columns; + return this; + } + + public SqlInfoGroupModel build(){ + ISQLExpression expression = new BuildGroupBy(); + groupModel.setSqlExpression(expression); + return groupModel; + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoHavingModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoHavingModel.java new file mode 100644 index 0000000..b9b71ec --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoHavingModel.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +/** + * @author JX + * @create 2024-07-04 9:14 + * @dedescription: + */ +public class SqlInfoHavingModel extends SqlInfoConditionModel { + + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoInsertModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoInsertModel.java new file mode 100644 index 0000000..4ba0228 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoInsertModel.java @@ -0,0 +1,77 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildInsert; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class SqlInfoInsertModel extends SqlInfoBaseModel { + + private String tableName; + + private Map insertMap=new LinkedHashMap<>(); + + private SqlInfoInsertModel (){} + + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + private SqlInfoInsertModel insertModel = new SqlInfoInsertModel(); + + public Builder setTableName(String tableName){ + insertModel.setTableName(tableName); + return this; + } + public Builder addColumn(String column,Object val){ + insertModel.insertMap.put(column,val); + return this; + } + + public Builder addMap(Map insertMap){ + insertModel.insertMap.putAll(insertMap); + return this; + } + + public SqlInfoInsertModel build(){ + ISQLExpression expression = new BuildInsert(); + insertModel.setSqlExpression(expression); + return insertModel; + } + + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public Map getInsertMap() { + return insertMap; + } + + public void setInsertMap(Map insertMap) { + this.insertMap = insertMap; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoJoinModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoJoinModel.java new file mode 100644 index 0000000..eb5fd7c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoJoinModel.java @@ -0,0 +1,96 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildJoin; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +/** + * @author JX + * @create 2024-07-04 9:14 + * @dedescription: + */ +public class SqlInfoJoinModel extends SqlInfoBaseModel { + + private String tableName; + private JoinType joinType; + private String onStr; + + public static Builder builder(){ + return new Builder(); + } + + public static class Builder{ + private SqlInfoJoinModel joinModel = new SqlInfoJoinModel(); + + //构建having + public Builder joinTable(String tableName,String alias){ + joinModel.setTableName(tableName+" "+alias); + return this; + } + public Builder innerJoin(){ + joinModel.joinType= JoinType.INNER_JOIN; + return this; + } + public Builder leftJoin(){ + joinModel.joinType= JoinType.LEFT_JOIN; + return this; + } + public Builder rightJoin(){ + joinModel.joinType= JoinType.RIGHT_JOIN; + return this; + } + public Builder on(String leftStr,String rightStr){ + joinModel.onStr=leftStr+" = "+rightStr; + return this; + } + public SqlInfoJoinModel build(){ + ISQLExpression expression = new BuildJoin(); + joinModel.setSqlExpression(expression); + return joinModel; + } + } + + public enum JoinType{ + LEFT_JOIN, + RIGHT_JOIN, + INNER_JOIN + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public JoinType getJoinType() { + return joinType; + } + + public void setJoinType(JoinType joinType) { + this.joinType = joinType; + } + + public String getOnStr() { + return onStr; + } + + public void setOnStr(String onStr) { + this.onStr = onStr; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoOrderModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoOrderModel.java new file mode 100644 index 0000000..940e3ef --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoOrderModel.java @@ -0,0 +1,98 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildOrderBy; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author JX + * @create 2024-07-04 9:14 + * @dedescription: + */ + +public class SqlInfoOrderModel extends SqlInfoBaseModel { + + private List orderByList=new ArrayList<>(); + + public static Builder builder(){ + return new Builder(); + } + + public static class OrderByModel{ + + public String[] columns;//列 + + public boolean asc;//是否是asc 升序 + + public void setColumns(String ... columns){ + this.columns = columns; + } + + public boolean isAsc() { + return asc; + } + + public void setAsc(boolean asc) { + this.asc = asc; + } + + public String[] getColumns() { + return columns; + } + } + + + public static class Builder{ + private SqlInfoOrderModel infoOrderModel = new SqlInfoOrderModel(); + + //升序 + public Builder setOrderByAsc(String ... columns){ + OrderByModel model=new OrderByModel(); + model.setAsc(true); + model.setColumns(columns); + infoOrderModel.orderByList.add(model); + return this; + } + + //降序 + public Builder setOrderByDesc(String ... columns ){ + OrderByModel model=new OrderByModel(); + model.setAsc(false); + model.setColumns(columns); + infoOrderModel.orderByList.add(model); + return this; + } + + public SqlInfoOrderModel build(){ + ISQLExpression expression = new BuildOrderBy(); + infoOrderModel.setSqlExpression(expression); + return infoOrderModel; + } + } + + public List getOrderByList() { + return orderByList; + } + + public void setOrderByList(List orderByList) { + this.orderByList = orderByList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoPublicModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoPublicModel.java new file mode 100644 index 0000000..236d4eb --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoPublicModel.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildPublicSql; +import com.jeelowcode.framework.plus.build.build.dql.BuildSelect; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +/** + * 通用sql + */ +public class SqlInfoPublicModel extends SqlInfoBaseModel { + + private String sql; + + public static Builder builder(){ + return new Builder(); + } + + + public static class Builder { + private SqlInfoPublicModel selectModel = new SqlInfoPublicModel(); + + public Builder setSql(String sql) { + selectModel.sql = sql; + return this; + } + + public SqlInfoPublicModel build() { + ISQLExpression expression = new BuildPublicSql(); + selectModel.setSqlExpression(expression); + return selectModel; + } + } + + public String getSql() { + return sql; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoSelectModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoSelectModel.java new file mode 100644 index 0000000..f3301d0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoSelectModel.java @@ -0,0 +1,78 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildSelect; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +/** + * @author JX + * @create 2024-07-03 11:51 + * @dedescription: + */ +public class SqlInfoSelectModel extends SqlInfoBaseModel { + + private String tableName; + + private String[] columns; + + public static Builder builder(){ + return new Builder(); + } + + + public static class Builder { + private SqlInfoSelectModel selectModel = new SqlInfoSelectModel(); + + public Builder setTableName(String tableName) { + selectModel.tableName = tableName; + return this; + } + public Builder setTableName(String tableName,String alias) { + selectModel.tableName = tableName+" "+alias; + return this; + } + + public Builder setColumns(String ... columns){ + + selectModel.columns = columns; + return this; + } + + public SqlInfoSelectModel build() { + ISQLExpression expression = new BuildSelect(); + selectModel.setSqlExpression(expression); + return selectModel; + } + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String[] getColumns() { + return columns; + } + + public void setColumns(String[] columns) { + this.columns = columns; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoUpdateModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoUpdateModel.java new file mode 100644 index 0000000..94890f5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoUpdateModel.java @@ -0,0 +1,77 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildUpdate; +import com.jeelowcode.framework.plus.build.buildmodel.SqlInfoBaseModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class SqlInfoUpdateModel extends SqlInfoBaseModel { + private String tableName; + + private Map updateMap=new LinkedHashMap<>(); + + private SqlInfoUpdateModel(){} + + public static Builder builder(){ + return new Builder(); + } + public static class Builder { + SqlInfoUpdateModel updateModel = new SqlInfoUpdateModel(); + + public Builder setTableName(String tableName) { + updateModel.tableName = tableName; + return this; + } + + public Builder addColumn(String column, Object val){ + updateModel.updateMap.put(column,val); + return this; + } + + public Builder addMap(Map updateMap){ + updateModel.updateMap.putAll(updateMap); + return this; + } + + + public SqlInfoUpdateModel build() { + ISQLExpression expression = new BuildUpdate(); + updateModel.setSqlExpression(expression); + return updateModel; + } + + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public Map getUpdateMap() { + return updateMap; + } + + public void setUpdateMap(Map updateMap) { + this.updateMap = updateMap; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoWhereModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoWhereModel.java new file mode 100644 index 0000000..2f4af40 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/dql/SqlInfoWhereModel.java @@ -0,0 +1,22 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.dql; + +/** + * @author JX + * @create 2024-07-03 10:12 + * @dedescription: + */ +public class SqlInfoWhereModel extends SqlInfoConditionModel { +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/BaseWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/BaseWrapper.java new file mode 100644 index 0000000..4ab5cd8 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/BaseWrapper.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.wrapper; + +import java.util.HashSet; +import java.util.Set; + +/** + * 公共 + */ +public class BaseWrapper { + public String BUILDER_INSERT="builderInsert"; + public String BUILDER_UPDATE="builderUpdate"; + public String BUILDER_DELETE="builderDelete"; + public String BUILDER_SELECT="builderSelect"; + public String BUILDER_WHERE="builderWhere"; + public String BUILDER_ORDERBY="builderOrderBy"; + public String BUILDER_GROUPBY="builderGroupBy"; + public String BUILDER_HAVING="builderHaving"; + public String BUILDER_JOIN="builderJoin"; + + Set initSet=new HashSet<>(); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoDeleteWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoDeleteWrapper.java new file mode 100644 index 0000000..84c745e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoDeleteWrapper.java @@ -0,0 +1,93 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.wrapper; + +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.AndExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildDelete; +import com.jeelowcode.framework.plus.build.build.dql.BuildWhere; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoDeleteModel; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoWhereModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +/** + * 删除-封装器 + */ +public class SqlInfoDeleteWrapper { + + public static Wrapper wrapper(String dbSchemaName){ + return new Wrapper(dbSchemaName); + } + + public static class Wrapper extends BaseWrapper { + + private String dbSchemaName; + private SqlInfoDeleteModel.Builder builderDelete = SqlInfoDeleteModel.builder(); + private SqlInfoWhereModel.Builder builderWhere = SqlInfoWhereModel.builder(); + + public Wrapper(String dbSchemaName) { + this.dbSchemaName = dbSchemaName; + } + + //逻辑删除 + public Wrapper setTableName(String tableName) { + builderDelete.setTableName(tableName); + initSet.add(BUILDER_DELETE); + return this; + } + //true=真实删除,物理删除 false=逻辑删除 + public Wrapper setTableName(String tableName, boolean isReal) { + builderDelete.setTableName(tableName,isReal); + initSet.add(BUILDER_DELETE); + return this; + } + + public Wrapper setWhere(Consumer whereBuilderConsumer) { + whereBuilderConsumer.accept(builderWhere); + initSet.add(BUILDER_WHERE); + return this; + } + public Wrapper build() { + return this; + } + + public SqlFormatModel buildSql() { + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + SqlInfoDeleteModel buildDelete = builderDelete.build(); + SqlInfoWhereModel buildWhere = builderWhere.buildWhere(); + + List expressionList=new ArrayList<>(); + if(initSet.contains(BUILDER_DELETE)){ + context.setDeleteModel(buildDelete); + expressionList.add(new BuildDelete()); + } + if(initSet.contains(BUILDER_WHERE)){ + context.setWhereModel(buildWhere); + expressionList.add(new BuildWhere()); + } + + ISQLExpression expression = new AndExpression(expressionList); + List sqlFormatModelList = SqlHelper.sqlExpression(context, expression); + return sqlFormatModelList.get(0); + } + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoInsertWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoInsertWrapper.java new file mode 100644 index 0000000..83f280e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoInsertWrapper.java @@ -0,0 +1,80 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.wrapper; + +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.AndExpression; +import com.jeelowcode.framework.plus.build.build.dql.BuildInsert; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoInsertModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.*; + +/** + * 新增-封装器 + */ +public class SqlInfoInsertWrapper { + + public static Wrapper wrapper(String dbSchemaName){ + return new Wrapper(dbSchemaName); + } + public static class Wrapper extends BaseWrapper { + + private String dbSchemaName; + private SqlInfoInsertModel.Builder builderInsert= SqlInfoInsertModel.builder(); + + public Wrapper(String dbSchemaName) { + this.dbSchemaName = dbSchemaName; + } + + public Wrapper setTableName(String tableName){ + builderInsert.setTableName(tableName); + return this; + } + public Wrapper setColumn(String column, Object val){ + builderInsert.addColumn(column,val); + initSet.add(BUILDER_INSERT); + return this; + } + + public Wrapper setMap(Map insertMap){ + builderInsert.addMap(insertMap); + initSet.add(BUILDER_INSERT); + return this; + } + public Wrapper build() { + return this; + } + + + public SqlFormatModel buildSql() { + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + SqlInfoInsertModel buildInsert = builderInsert.build(); + + List expressionList=new ArrayList<>(); + if(initSet.contains(BUILDER_INSERT)){ + context.setInsertModel(buildInsert); + expressionList.add(new BuildInsert()); + } + + ISQLExpression expression = new AndExpression(expressionList); + List sqlFormatModelList = SqlHelper.sqlExpression(context, expression); + return sqlFormatModelList.get(0); + } + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoQueryWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoQueryWrapper.java new file mode 100644 index 0000000..229e965 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoQueryWrapper.java @@ -0,0 +1,209 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.wrapper; + +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.AndExpression; +import com.jeelowcode.framework.plus.build.build.dql.*; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.*; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; + +/** + * 查询-封装器 + */ +public class SqlInfoQueryWrapper { + + + public static Wrapper wrapper(String dbSchemaName) { + return new Wrapper(dbSchemaName); + } + + public static class Wrapper extends BaseWrapper { + + private String dbSchemaName; + private SqlInfoSelectModel.Builder builderSelect = SqlInfoSelectModel.builder(); + private SqlInfoWhereModel.Builder builderWhere = SqlInfoWhereModel.builder(); + private SqlInfoOrderModel.Builder builderOrderBy = SqlInfoOrderModel.builder(); + private SqlInfoGroupModel.Builder builderGroupBy = SqlInfoGroupModel.builder(); + private SqlInfoHavingModel.Builder builderHaving = SqlInfoHavingModel.builder(); + private SqlInfoJoinModel.Builder builderJoin = SqlInfoJoinModel.builder(); + + public Wrapper(String dbSchemaName) { + this.dbSchemaName = dbSchemaName; + } + + //select 相关 + public Wrapper select(String... columns) { + if (FuncBase.isNotEmpty(columns)) { + builderSelect.setColumns(columns); + initSet.add(BUILDER_SELECT); + } + return this; + } + + public Wrapper select(List columnsList, boolean aliasFlag) { + if (FuncBase.isNotEmpty(columnsList)) { + //处理别名 + if (aliasFlag) { + columnsList = FuncBase.fieldCodeAlias(columnsList); + } + + builderSelect.setColumns(columnsList.toArray(new String[0])); + initSet.add(BUILDER_SELECT); + } + return this; + } + + public Wrapper setTableName(String tableName) { + //处理别名 + builderSelect.setTableName(tableName, JeeLowCodeConstant.TABLE_ALIAS); + initSet.add(BUILDER_SELECT); + return this; + } + + public Wrapper setTableSql(String tableNameSql) { + //处理别名 + String sql = String.format("(%s)", tableNameSql); + builderSelect.setTableName(sql, JeeLowCodeConstant.TABLE_ALIAS); + initSet.add(BUILDER_SELECT); + return this; + } + + //where 相关 + public Wrapper setWhere(Consumer whereBuilderConsumer) { + whereBuilderConsumer.accept(builderWhere); + initSet.add(BUILDER_WHERE); + return this; + } + + //order by相关 + public Wrapper orderByAsc(String... columns) { + builderOrderBy.setOrderByAsc(columns); + initSet.add(BUILDER_ORDERBY); + return this; + } + + public Wrapper orderByDesc(String... columns) { + builderOrderBy.setOrderByDesc(columns); + initSet.add(BUILDER_ORDERBY); + return this; + } + + //group by 相关 + public Wrapper groupByColumns(String... columns) { + builderGroupBy.setColumns(columns); + initSet.add(BUILDER_GROUPBY); + return this; + } + + //join 相关 + public Wrapper joinByinnerJoinTable(String tableName, String alias) { + builderJoin.joinTable(tableName, alias); + builderJoin.innerJoin(); + initSet.add(BUILDER_JOIN); + return this; + } + + public Wrapper joinByleftJoinTable(String tableName, String alias) { + builderJoin.joinTable(tableName, alias); + builderJoin.leftJoin(); + initSet.add(BUILDER_JOIN); + return this; + } + + public Wrapper joinByrightJoinTable(String tableName, String alias) { + builderJoin.joinTable(tableName, alias); + builderJoin.rightJoin(); + initSet.add(BUILDER_JOIN); + return this; + } + + public Wrapper joinOn(String leftStr, String rightStr) { + builderJoin.on(leftStr, rightStr); + initSet.add(BUILDER_JOIN); + return this; + } + + //构建having + public Wrapper setHaving(Consumer havingBuilderConsumer) { + havingBuilderConsumer.accept(builderHaving); + initSet.add(BUILDER_HAVING); + return this; + } + + public Wrapper build() { + return this; + } + + public SqlFormatModel buildSql() { + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + SqlInfoSelectModel buildSelect = builderSelect.build(); + SqlInfoWhereModel buildWhere = builderWhere.buildWhere(); + SqlInfoOrderModel buildOrderBy = builderOrderBy.build(); + SqlInfoGroupModel buildGroupBy = builderGroupBy.build(); + SqlInfoJoinModel buildJoin = builderJoin.build(); + SqlInfoHavingModel buildHaving = builderHaving.buildHaving(); + + List expressionList = new ArrayList<>(); + if (initSet.contains(BUILDER_SELECT)) { + context.setSelectModel(buildSelect); + expressionList.add(new BuildSelect()); + } + if (initSet.contains(BUILDER_WHERE)) { + context.setWhereModel(buildWhere); + expressionList.add(new BuildWhere()); + } + if (initSet.contains(BUILDER_ORDERBY)) { + context.setOrderModel(buildOrderBy); + expressionList.add(new BuildOrderBy()); + } + if (initSet.contains(BUILDER_GROUPBY)) { + context.setGroupModel(buildGroupBy); + expressionList.add(new BuildGroupBy()); + } + if (initSet.contains(BUILDER_JOIN)) { + context.setJoinModel(buildJoin); + expressionList.add(new BuildJoin()); + } + if (initSet.contains(BUILDER_HAVING)) { + context.setHavingModel(buildHaving); + expressionList.add(new BuildHaving()); + } + + if(FuncBase.isEmpty(expressionList)){ + return new SqlFormatModel(); + } + List sqlFormatModelList = null; + + ISQLExpression expression = new AndExpression(expressionList); + if (initSet.contains(BUILDER_SELECT)) { + sqlFormatModelList = SqlHelper.sqlExpression(context, expression); + } else { + sqlFormatModelList = SqlHelper.parserExpression(context, expression); + } + + return sqlFormatModelList.get(0); + } + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoUpdateWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoUpdateWrapper.java new file mode 100644 index 0000000..f87f386 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/build/buildmodel/wrapper/SqlInfoUpdateWrapper.java @@ -0,0 +1,96 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.build.buildmodel.wrapper; + +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.build.AndExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoUpdateModel; +import com.jeelowcode.framework.plus.build.buildmodel.dql.SqlInfoWhereModel; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.plus.build.build.dql.BuildUpdate; +import com.jeelowcode.framework.plus.build.build.dql.BuildWhere; + +import java.util.*; +import java.util.function.Consumer; + +/** + * 更新-封装器 + */ +public class SqlInfoUpdateWrapper { + + public static Wrapper wrapper(String dbSchemaName){ + return new Wrapper(dbSchemaName); + } + public static class Wrapper extends BaseWrapper { + + private String dbSchemaName; + private SqlInfoUpdateModel.Builder builderUpdate=SqlInfoUpdateModel.builder();; + private SqlInfoWhereModel.Builder builderWhere = SqlInfoWhereModel.builder(); + + public Wrapper(String dbSchemaName) { + this.dbSchemaName = dbSchemaName; + } + + //update 相关 + public Wrapper setTableName(String tableName) { + builderUpdate.setTableName(tableName); + initSet.add(BUILDER_UPDATE); + return this; + } + + public Wrapper setColumn(String column, Object val){ + builderUpdate.addColumn(column,val); + initSet.add(BUILDER_UPDATE); + return this; + } + + public Wrapper setMap(Map updateMap){ + builderUpdate.addMap(updateMap); + initSet.add(BUILDER_UPDATE); + return this; + } + + public Wrapper setWhere(Consumer whereBuilderConsumer) { + whereBuilderConsumer.accept(builderWhere); + initSet.add(BUILDER_WHERE); + return this; + } + public Wrapper build() { + return this; + } + + public SqlFormatModel buildSql() { + SQLInterpretContext context = new SQLInterpretContext(dbSchemaName); + SqlInfoUpdateModel buildUpdate = builderUpdate.build(); + SqlInfoWhereModel buildWhere = builderWhere.buildWhere(); + + List expressionList=new ArrayList<>(); + if(initSet.contains(BUILDER_UPDATE)){ + context.setUpdateModel(buildUpdate); + expressionList.add(new BuildUpdate()); + } + if(initSet.contains(BUILDER_WHERE)){ + context.setWhereModel(buildWhere); + expressionList.add(new BuildWhere()); + } + ISQLExpression expression = new AndExpression(expressionList); + List sqlFormatModelList = SqlHelper.sqlExpression(context, expression); + return sqlFormatModelList.get(0); + } + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/AbstractSQLParser.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/AbstractSQLParser.java new file mode 100644 index 0000000..54ef052 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/AbstractSQLParser.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain; + + +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; + +/** + * 创建抽象的记录器类。 + */ +public abstract class AbstractSQLParser { + + public static int levelStandard = 3;//标准解析 + public static int levelDataPermissions = 2;//数据权限过滤 + public static int levelTenant = 1;//租户过滤 + + protected int level; + protected AbstractSQLParser nextSQLParse;//下一个节点解析 + + + public void setNextSQLParse(AbstractSQLParser nextSQLParse) { + this.nextSQLParse = nextSQLParse; + } + + public void processed(int level, SqlInfoEntity sqlInfoEntity) { + if (this.level <= level) { + sqlParse(sqlInfoEntity); + } + if (nextSQLParse != null) { + nextSQLParse.processed(level, sqlInfoEntity); + } + } + + + abstract protected void sqlParse(SqlInfoEntity sqlInfoEntity); + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChain.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChain.java new file mode 100644 index 0000000..944fcfe --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChain.java @@ -0,0 +1,38 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain; + + +public class SQLParserChain { + private AbstractSQLParser sqlParserChain; + + public AbstractSQLParser getSqlParserChain() { + return sqlParserChain; + } + + public void setSqlParserChain(AbstractSQLParser... sqlParserChains) { + sqlParserChain = sqlParserChains[0];//第一个 + + // 首先,检查是否有至少两个解析器,因为我们需要至少两个来设置链 + if (sqlParserChains == null || sqlParserChains.length < 2) { + return; + } + + // 遍历解析器数组,设置每个解析器的下一个解析器 + for (int i = 0; i < sqlParserChains.length - 1; i++) { + sqlParserChains[i].setNextSQLParse(sqlParserChains[i + 1]); + } + + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChainClient.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChainClient.java new file mode 100644 index 0000000..9a2256e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/SQLParserChainClient.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain; + + +import com.jeelowcode.framework.plus.chain.parser.DataPermissionsSQLParser; +import com.jeelowcode.framework.plus.chain.parser.StandardSQLParser; +import com.jeelowcode.framework.plus.chain.parser.TenantSQLParser; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.utils.utils.FuncBase; + +/** + * 使用责任链 + */ +public class SQLParserChainClient { + + + //处理sql + public static void sqlParser(SqlInfoEntity sqlInfoEntity){ + + //标准解析 -> 数据权限 -> 租户权限 + + //标准SQL + AbstractSQLParser standardSQLParser = new StandardSQLParser(AbstractSQLParser.levelStandard); + //数据权限 + AbstractSQLParser dataPermissionsSQLParser = new DataPermissionsSQLParser(AbstractSQLParser.levelDataPermissions); + //租户权限 + AbstractSQLParser tenantSQLParser = new TenantSQLParser(AbstractSQLParser.levelTenant); + + //单独要某一个 + Integer sqlParserLevel = sqlInfoEntity.getSqlParserLevel(); + if(FuncBase.isNotEmpty(sqlParserLevel)){ + switch (sqlParserLevel){ + case 3: + standardSQLParser.processed(AbstractSQLParser.levelStandard,sqlInfoEntity); + break; + case 2: + dataPermissionsSQLParser.processed(AbstractSQLParser.levelDataPermissions,sqlInfoEntity); + break; + case 1: + tenantSQLParser.processed(AbstractSQLParser.levelTenant,sqlInfoEntity); + break; + } + return; + } + + + SQLParserChain sqlParserChain=new SQLParserChain(); + sqlParserChain.setSqlParserChain(standardSQLParser,dataPermissionsSQLParser,tenantSQLParser); + AbstractSQLParser sqlParser = sqlParserChain.getSqlParserChain(); + + //先走标准sql解析 + sqlParser.processed(AbstractSQLParser.levelStandard, sqlInfoEntity); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/DataPermissionFilterEntity.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/DataPermissionFilterEntity.java new file mode 100644 index 0000000..2f40104 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/DataPermissionFilterEntity.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain.entity; + +/** + * 数据权限 + */ +public class DataPermissionFilterEntity { + private boolean enable;///是否启动 + + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/TenantIdFilterEntity.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/TenantIdFilterEntity.java new file mode 100644 index 0000000..5b47833 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/entity/TenantIdFilterEntity.java @@ -0,0 +1,74 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain.entity; + +import java.util.Set; + +/** + * 租户权限相关 + */ +public class TenantIdFilterEntity { + private boolean enable;///是否启动 + + private Long tenantId;//租户id + + private Set ignoreTables; //不过滤的表 + + private Set ignoreUrl;//不过滤的url + + private boolean ignore; + + + + public Long getTenantId() { + return tenantId; + } + + public void setTenantId(Long tenantId) { + this.tenantId = tenantId; + } + + + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } + + public Set getIgnoreTables() { + return ignoreTables; + } + + public void setIgnoreTables(Set ignoreTables) { + this.ignoreTables = ignoreTables; + } + + public boolean isIgnore() { + return ignore; + } + + public void setIgnore(boolean ignore) { + this.ignore = ignore; + } + + public Set getIgnoreUrl() { + return ignoreUrl; + } + + public void setIgnoreUrl(Set ignoreUrl) { + this.ignoreUrl = ignoreUrl; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/DataPermissionsSQLParser.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/DataPermissionsSQLParser.java new file mode 100644 index 0000000..32e3b2e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/DataPermissionsSQLParser.java @@ -0,0 +1,58 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain.parser; + + +import com.jeelowcode.framework.plus.chain.AbstractSQLParser; +import com.jeelowcode.framework.plus.chain.entity.DataPermissionFilterEntity; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +/** + * 数据权限 + */ +public class DataPermissionsSQLParser extends AbstractSQLParser { + + public DataPermissionsSQLParser(int level) { + this.level = level; + } + + @Override + protected void sqlParse(SqlInfoEntity sqlInfoEntity) { + try { + DataPermissionFilterEntity dataPermissionFilterEntity = sqlInfoEntity.getDataPermissionFilterEntity(); + SqlFormatModel sqlFormatModel = sqlInfoEntity.getSqlModelList().get(0); + if(FuncBase.isEmpty(sqlFormatModel)){ + return; + } + if (FuncBase.isEmpty(dataPermissionFilterEntity)) { + return; + } + boolean enable = dataPermissionFilterEntity.isEnable(); + if (!enable) {//没有启动 + return; + } + + String sql = sqlFormatModel.getSql(); + + String newSql = sql+" and deptId=1"; + + sqlFormatModel.setSql(newSql); + return; + } catch (Exception e) { + + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/StandardSQLParser.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/StandardSQLParser.java new file mode 100644 index 0000000..ec768da --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/StandardSQLParser.java @@ -0,0 +1,73 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain.parser; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.chain.AbstractSQLParser; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.List; + +/** + * 标准sql解析 + */ +public class StandardSQLParser extends AbstractSQLParser { + + public StandardSQLParser(int level) { + this.level = level; + } + + @Override + protected void sqlParse(SqlInfoEntity sqlInfoEntity) { + try { + ISQLExpression sqlExpression = sqlInfoEntity.getSqlExpression(); + if(FuncBase.isEmpty(sqlExpression)){ + return; + } + SQLInterpretContext context = sqlInfoEntity.getContext(); + if(FuncBase.isEmpty(context)){ + return; + } + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + + //处理数据库类型 + context.setDbColunmTypes(dbColunmTypes); + + Object obj =sqlExpression.interpret(context); + + List sqlFormatModelList=new ArrayList<>(); + if (FuncBase.isEmpty(obj)) { + return; + } + + if(obj instanceof SqlFormatModel){ + sqlFormatModelList.add((SqlFormatModel)obj); + }else if(obj instanceof List){ + sqlFormatModelList.addAll((List)obj); + } + sqlInfoEntity.setSqlModelList(sqlFormatModelList); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/TenantSQLParser.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/TenantSQLParser.java new file mode 100644 index 0000000..cd28cd4 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/chain/parser/TenantSQLParser.java @@ -0,0 +1,80 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.chain.parser; + + +import com.jeelowcode.framework.plus.chain.AbstractSQLParser; +import com.jeelowcode.framework.plus.chain.entity.TenantIdFilterEntity; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.tenant.utils.JeeLowCodeTenantUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Set; + +/** + * 多租户 + */ +public class TenantSQLParser extends AbstractSQLParser { + + public TenantSQLParser(int level) { + this.level=level; + } + + @Override + protected void sqlParse(SqlInfoEntity sqlInfoEntity) { + try{ + TenantIdFilterEntity tenantIdFilterEntity = sqlInfoEntity.getTenantIdFilterEntity(); + if(FuncBase.isEmpty(tenantIdFilterEntity)){ + return; + } + + SqlFormatModel sqlFormatModel = sqlInfoEntity.getSqlModelList().get(0); + if(FuncBase.isEmpty(sqlFormatModel)){ + return; + } + String sql = sqlFormatModel.getSql(); + + + Long tenantId = tenantIdFilterEntity.getTenantId(); + if(FuncBase.isEmpty(tenantId)){ + return; + } + boolean enable = tenantIdFilterEntity.isEnable(); + if(!enable){//没有启动 + return; + } + boolean ignore = tenantIdFilterEntity.isIgnore(); + + Set ignoreTables = tenantIdFilterEntity.getIgnoreTables(); + Set ignoreUrl = tenantIdFilterEntity.getIgnoreUrl(); + + JeeLowCodeTenantUtils.initIgnoreTables(ignoreTables);//初始化 + JeeLowCodeTenantUtils.initIgnoreUrl(ignoreUrl); + boolean threadIgnore = JeeLowCodeTenantUtils.isIgnore(); + if(!threadIgnore){ + JeeLowCodeTenantUtils.setIgnore(ignore);//本次 + } + + + JeeLowCodeTenantUtils.setTenantId(tenantId); + String newSql = JeeLowCodeTenantUtils.parseTenantSql(sql); + sqlFormatModel.setSql(newSql); + + }catch (Exception e){ + e.printStackTrace(); + } + + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/DbManager.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/DbManager.java new file mode 100644 index 0000000..0c457de --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/DbManager.java @@ -0,0 +1,305 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.component; + + +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.DependsOn; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; +import java.util.stream.Collectors; + +@Component +@Order(2) // 指定DbManager的初始化顺序,确保它在SqlSessionFactory之后初始化 +@DependsOn("sqlSessionFactory") // 指定DbManager依赖于SqlSessionFactory +public class DbManager { + + @Autowired + private SqlSessionFactory sqlSessionFactory; + + @Bean + public void initDbManager(){ + //初始化type + initDbType(); + //初始化schema + initDbSchema(); + } + + + /** + * 获取数据库的元数据 + * @param primaryKeyResultSet + * @param set + * @return + */ + public Map formatMetaData(ResultSet primaryKeyResultSet, ResultSet set,Map remarkMap) { + + Map resultMap=new LinkedHashMap<>(); + try{ + //获取主键 + Set primaryKeySet=new HashSet<>(); + while (primaryKeyResultSet.next()) { + String columnName = primaryKeyResultSet.getString("COLUMN_NAME"); + if(FuncBase.isEmpty(columnName)){ + continue; + } + primaryKeySet.add(columnName.toLowerCase()); + } + + DbColunmTypesEntity dbColunmTypesEntity = SqlHelper.getDbColunmTypesEntity(); + + while (set.next()) { + FieldModel fieldModel=new FieldModel(); + + String fieldCode = set.getString("COLUMN_NAME").toLowerCase(); + fieldModel.setFieldCode(fieldCode);//字段 + + if(FuncBase.isNotEmpty(remarkMap)){ + fieldModel.setFieldName(remarkMap.get(fieldCode));//字段名称 + }else{ + String fieldName = set.getString("REMARKS"); + fieldModel.setFieldName(fieldName);//字段名称 + } + + + Integer fieldLen = set.getInt("COLUMN_SIZE");//大小 + fieldModel.setFieldLen(fieldLen);//长度 + + Integer fieldPointLen = set.getInt("DECIMAL_DIGITS");//小数 + fieldModel.setFieldPointLen(FuncBase.isEmpty(fieldPointLen)?0:fieldPointLen); + + String fieldDefaultVal = set.getString("COLUMN_DEF"); + fieldModel.setFieldDefaultVal(fieldDefaultVal);//字段默认值 + + String dbType = set.getString("TYPE_NAME"); + List fieldTypeList = PlusUtils.dbType2JeelowCodeTypeList(dbType, dbColunmTypesEntity); + + List fieldTypeEnumList=new ArrayList<>(); + for(DbColunmTypesEntity.TypeEntity entityType:fieldTypeList){ + JeeLowCodeFieldTypeEnum fieldType = JeeLowCodeFieldTypeEnum.getByFieldType(entityType.getJeeLowCodeType()); + fieldTypeEnumList.add(fieldType); + } + + fieldModel.setJavaFieldTypeList(fieldTypeEnumList); + + fieldModel.setMaxFieldLen(fieldTypeList.get(0).getDbMaxLen());//数据库类型一样,长度也是一样 + fieldModel.setMaxPointLen(fieldTypeList.get(0).getDbMaxPointLen());//小数位 + + fieldModel.setIsPrimaryKey(primaryKeySet.contains(fieldCode)? YNEnum.Y.getCode():YNEnum.N.getCode());//是否是主键 + + String isNull = set.getInt("NULLABLE") == 1 ? YNEnum.Y.getCode() : YNEnum.N.getCode();//是 + fieldModel.setIsNull(isNull); + + resultMap.put(fieldCode,fieldModel); + } + }catch (Exception e){ + e.printStackTrace(); + } + return resultMap; + } + + /** + * 获取现有数据库的元数据 + * @param tableName + * @return + */ + public Map getDbColumnMetaMap(String tableName,Map remarkMap) { + DbColunmTypesEntity dbColunmTypesEntity = SqlHelper.getDbColunmTypesEntity(); + Boolean upperFlag = dbColunmTypesEntity.getUpperFlag(); + if(FuncBase.isNotEmpty(upperFlag) && upperFlag){ + tableName=tableName.toUpperCase(); + } + try (SqlSession sqlSession = sqlSessionFactory.openSession(); + Connection connection = sqlSession.getConnection()) { + DatabaseMetaData metaData = connection.getMetaData(); + //获取主键 + ResultSet primaryKeyResultSet = metaData.getPrimaryKeys(connection.getCatalog(), connection.getSchema(), tableName); + ResultSet set = metaData.getColumns(connection.getCatalog(), connection.getSchema(), tableName, "%"); + Map metaDataMap = formatMetaData(primaryKeyResultSet, set,remarkMap); + return metaDataMap; + } catch (SQLException e) { + throw new JeeLowCodeException(e.getMessage()); + } + } + + + /** + * 获取新增列 + * @param tableName + * @param fieldModelList + * @param columnMetaMap + * @return + */ + public List getAddColumnDdl(String tableName, List fieldModelList, Map columnMetaMap) { + List ddlList = new ArrayList<>(); + for (FieldModel fieldModel : fieldModelList) { + String fieldCode = fieldModel.getFieldCode(); + if (columnMetaMap.containsKey(fieldCode)) {//已存在,不走新增 + continue; + } + List tmpDdlList = SqlHelper.addColumn(tableName, fieldModel); + ddlList.addAll(tmpDdlList); + } + + return ddlList; + } + + + /** + * 获取修改ddl列表 + * @param tableName + * @param fieldModelList + * @param columnMetaMap + * @return + */ + public List getUpdateColumnDdl(String tableName, List fieldModelList, Map columnMetaMap) { + List ddlList = new ArrayList<>(); + for (FieldModel fieldModel : fieldModelList) { + String fieldCode = fieldModel.getFieldCode(); + Integer fieldLen = fieldModel.getFieldLen(); + Integer fieldPointLen = fieldModel.getFieldPointLen(); + if (!columnMetaMap.containsKey(fieldCode)) {//不存在 + continue; + } + //数据库的 + FieldModel dbFieldModel = columnMetaMap.get(fieldCode); + Integer maxFieldLen = dbFieldModel.getMaxFieldLen();//有最大长度 + Integer maxPointLen = dbFieldModel.getMaxPointLen();//小数位 + + boolean lenFlag=false;//整型位长度 + boolean pointLenFlag=false;//小数位长度 + if(FuncBase.isNotEmpty(maxFieldLen) && maxFieldLen>0){ + if(fieldLen>maxFieldLen){//保证和当前输入的一样长度 + dbFieldModel.setFieldLen(fieldLen); + } + if(FuncBase.equals(dbFieldModel.getFieldPointLen(), fieldLen)){ + lenFlag=true; + } + //校验小数位长度 + if(FuncBase.isNotEmpty(maxPointLen)){//需要对长度进行校验 + if(fieldPointLen>maxPointLen){//保证和当前输入的一样长度,下面则是true + dbFieldModel.setMaxPointLen(maxPointLen); + } + if(FuncBase.equals(dbFieldModel.getFieldPointLen(), fieldPointLen)){ + pointLenFlag=true; + } + }else{ + pointLenFlag=true; + } + }else{//0说明不要对长度进行校验,设置和输入的一样就可以了 + lenFlag=true;//不用对长度进行校验 + pointLenFlag=true; + } + + fieldModel.setDbNowIsNull(dbFieldModel.getIsNull());//当前状态的 + + boolean typeFlag=false; + List fieldTypeList = dbFieldModel.getJavaFieldTypeList(); + for(JeeLowCodeFieldTypeEnum fieldTypeEnum:fieldTypeList){ + if(FuncBase.equals(fieldTypeEnum, fieldModel.getFieldType())){ + typeFlag=true;//一样 + break; + } + } + + + //判断是否一致 + if (!FuncBase.equals(dbFieldModel.getFieldName(), fieldModel.getFieldName()) || + !lenFlag || + !pointLenFlag || + !FuncBase.equals(dbFieldModel.getFieldName(), fieldModel.getFieldName()) || + !typeFlag || + !FuncBase.equals(dbFieldModel.getIsPrimaryKey(), fieldModel.getIsPrimaryKey()) || + !FuncBase.equals(dbFieldModel.getIsNull(), fieldModel.getIsNull())) { + List tmpDdlList = SqlHelper.modifyColumnSql(tableName, fieldModel); + ddlList.addAll(tmpDdlList); + } + + } + + return ddlList; + } + + /** + * 获取删除ddl列表 + * @param tableName + * @param fieldModelList + * @param columnMetaMap + * @return + */ + public List getDropColumnDdl(String tableName, List fieldModelList, Map columnMetaMap) { + + + + Set fieldCodeSet = fieldModelList.stream() + .map(FieldModel::getFieldCode) + .collect(Collectors.toCollection(LinkedHashSet::new)); + + + List ddlList = columnMetaMap.entrySet().stream() + .filter(entry -> !fieldCodeSet.contains(entry.getKey())) + .map(entry ->SqlHelper.getDropColumnSql(tableName,entry.getKey())) + .collect(Collectors.toList()); + + return ddlList; + } + + + + private void initDbType(){ + String dbType="mysql"; + try (SqlSession sqlSession = sqlSessionFactory.openSession(); + Connection connection = sqlSession.getConnection()) { + DatabaseMetaData metaData = connection.getMetaData(); + String databaseProductName = metaData.getDatabaseProductName(); + dbType = databaseProductName.toLowerCase(); + }catch (Exception e){ + throw new JeeLowCodeException("获取数据库类型失败"); + } + SqlHelper.setDbType(dbType); + } + + private void initDbSchema(){ + try (SqlSession sqlSession = sqlSessionFactory.openSession(); + Connection connection = sqlSession.getConnection()) { + String dbSchemaName = connection.getCatalog(); + if(FuncBase.isEmpty(dbSchemaName)){ + dbSchemaName = connection.getSchema(); + } + if(FuncBase.isEmpty(dbSchemaName)){ + throw new JeeLowCodeException("获取数据库 schema 失败"); + } + SqlHelper.setDbSchemaName(dbSchemaName); + }catch (Exception e){ + throw new JeeLowCodeException("获取数据库 schema 失败"); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java new file mode 100644 index 0000000..d6ba716 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/component/JeelowCodePlusInterceptor.java @@ -0,0 +1,175 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.component; + + + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.apache.ibatis.builder.StaticSqlSource; +import org.apache.ibatis.cache.CacheKey; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.*; +import org.apache.ibatis.plugin.Interceptor; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Signature; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import static com.jeelowcode.framework.global.JeeLowCodeBaseConstant.BASE_PACKAGES_CODE; + + +@Component +@Intercepts({@Signature( + type = Executor.class, + method = "update", + args = {MappedStatement.class, Object.class} +), @Signature( + type = Executor.class, + method = "query", + args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class} +), @Signature( + type = Executor.class, + method = "query", + args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class} +)}) +public class JeelowCodePlusInterceptor implements Interceptor { + + private List getSkipMapperList(){//todo 后面需要优化 + String SKIP_MAPPER_CODE = BASE_PACKAGES_CODE+".framework.mapper";//不做租户拦截的mapper + + + List skipMapperList=new ArrayList<>(); + skipMapperList.add(SKIP_MAPPER_CODE); + return skipMapperList; + } + + @Override + public Object intercept(Invocation invocation) throws Throwable { + Object target = invocation.getTarget(); + Object[] args = invocation.getArgs(); + if (!(target instanceof Executor)) { + return invocation.proceed(); + } + + + Executor executor = (Executor) target; + Object parameter = args[1]; + boolean isUpdate = args.length == 2; + MappedStatement ms = (MappedStatement) args[0]; + String id = ms.getId(); + List skipMapperList = getSkipMapperList(); + for(String skipMapper:skipMapperList){ + if(id.startsWith(skipMapper)){ + return invocation.proceed(); + } + } + + if (!id.startsWith(BASE_PACKAGES_CODE)) {//直接跳过,如果不是低代码平台,则直接跳过 + return invocation.proceed(); + } + + if (!isUpdate && ms.getSqlCommandType() == SqlCommandType.SELECT) {//查询相关 + RowBounds rowBounds = (RowBounds) args[2]; + ResultHandler resultHandler = (ResultHandler) args[3]; + BoundSql boundSql; + if (args.length == 4) { + boundSql = ms.getBoundSql(parameter); + } else { + boundSql = (BoundSql) args[5]; + } + + String publicSql = SqlHelper.getPublicSql(boundSql.getSql()); + Object additionalParametersObj = boundSql.getAdditionalParameters(); + boundSql = new BoundSql(ms.getConfiguration(), publicSql, boundSql.getParameterMappings(), boundSql.getParameterObject()); + if (FuncBase.isNotEmpty(additionalParametersObj)) { + Map additionalParameters = (Map) additionalParametersObj; + + Iterator> iterator = additionalParameters.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry next = iterator.next(); + String key = next.getKey(); + Object value = next.getValue(); + boundSql.setAdditionalParameter(key, value); + } + } + + CacheKey cacheKey = executor.createCacheKey(ms, parameter, rowBounds, boundSql); + List query = null; + try { + query = executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql); + } catch (Exception e) { + e.printStackTrace(); + } + return query; + + } + if (isUpdate) { + SqlSource sqlSource = ms.getSqlSource(); + try { + BoundSql boundSql = sqlSource.getBoundSql(parameter); + String publicSql = SqlHelper.getPublicSql(boundSql.getSql()); + List parameterMappings = boundSql.getParameterMappings(); + SqlSource newSqlSource = new StaticSqlSource(ms.getConfiguration(), publicSql, parameterMappings); + MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), ms.getId(), newSqlSource, ms.getSqlCommandType()); + this.copyBuilder(builder, ms); + MappedStatement build = builder.build(); + + return executor.update(build, parameter); + } catch (Exception e) { + //e.printStackTrace(); + } + } + return invocation.proceed(); + + } + + //复制属性 + private void copyBuilder(MappedStatement.Builder builder, MappedStatement ms) { + builder.resource(ms.getResource()); + builder.fetchSize(ms.getFetchSize()); + builder.timeout(ms.getTimeout()); + builder.statementType(ms.getStatementType()); + builder.resultSetType(ms.getResultSetType()); + builder.cache(ms.getCache()); + builder.parameterMap(ms.getParameterMap()); + builder.resultMaps(ms.getResultMaps()); + builder.flushCacheRequired(ms.isFlushCacheRequired()); + builder.useCache(ms.isUseCache()); + builder.resultOrdered(ms.isResultOrdered()); + builder.keyGenerator(ms.getKeyGenerator()); + if (FuncBase.isNotEmpty(ms.getKeyProperties())) { + builder.keyProperty(ms.getKeyProperties()[0]); + } + if (FuncBase.isNotEmpty(ms.getKeyColumns())) { + builder.keyColumn(ms.getKeyColumns()[0]); + } + builder.databaseId(ms.getDatabaseId()); + builder.lang(ms.getLang()); + if (FuncBase.isNotEmpty(ms.getResultSets())) { + builder.resultSets(ms.getResultSets()[0]); + } + + builder.dirtySelect(ms.isDirtySelect()); + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/AbstractWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/AbstractWrapper.java new file mode 100644 index 0000000..975388c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/AbstractWrapper.java @@ -0,0 +1,765 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions; + + + +import com.jeelowcode.framework.plus.core.conditions.interfaces.Compare; +import com.jeelowcode.framework.plus.core.conditions.interfaces.Func; +import com.jeelowcode.framework.plus.core.conditions.interfaces.Join; +import com.jeelowcode.framework.plus.core.conditions.interfaces.Nested; +import com.jeelowcode.framework.plus.core.conditions.segments.ColumnSegment; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.enums.SqlLike; +import com.jeelowcode.framework.plus.core.enums.WrapperKeyword; +import com.jeelowcode.framework.plus.core.toolkit.*; +import com.jeelowcode.framework.plus.core.toolkit.sql.SqlScriptUtils; +import com.jeelowcode.framework.plus.core.toolkit.sql.SqlUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BiPredicate; +import java.util.function.Consumer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static java.util.stream.Collectors.joining; + +/** + * 查询条件封装 + * + * @author hubin miemie HCL + * @since 2017-05-26 + */ +@SuppressWarnings({"unchecked"}) +public abstract class AbstractWrapper> extends Wrapper + implements Compare, Nested, Join, Func { + + /** + * 占位符 + */ + protected final Children typedThis = (Children) this; + /** + * 必要度量 + */ + protected AtomicInteger paramNameSeq; + + protected Map paramNameValuePairs; + /** + * 其他 + */ + protected SharedString paramAlias; + protected SharedString lastSql; + /** + * SQL注释 + */ + protected SharedString sqlComment; + /** + * SQL起始语句 + */ + protected SharedString sqlFirst; + /** + * 数据库表映射实体类 + */ + private T entity; + protected MergeSegments expression; + /** + * 实体类型(主要用于确定泛型以及取TableInfo缓存) + */ + private Class entityClass; + + @Override + public T getEntity() { + return entity; + } + + public Children setEntity(T entity) { + this.entity = entity; + return typedThis; + } + + public Class getEntityClass() { + if (entityClass == null && entity != null) { + entityClass = (Class) entity.getClass(); + } + return entityClass; + } + + public Children setEntityClass(Class entityClass) { + if (entityClass != null) { + this.entityClass = entityClass; + } + return typedThis; + } + + @Override + public Children allEq(boolean condition, Map params, boolean null2IsNull) { + if (condition && CollectionUtils.isNotEmpty(params)) { + params.forEach((k, v) -> { + if (StringUtils.checkValNotNull(v)) { + eq(k, v); + } else { + if (null2IsNull) { + isNull(k); + } + } + }); + } + return typedThis; + } + + @Override + public Children allEq(boolean condition, BiPredicate filter, Map params, boolean null2IsNull) { + if (condition && CollectionUtils.isNotEmpty(params)) { + params.forEach((k, v) -> { + if (filter.test(k, v)) { + if (StringUtils.checkValNotNull(v)) { + eq(k, v); + } else { + if (null2IsNull) { + isNull(k); + } + } + } + }); + } + return typedThis; + } + + @Override + public Children eq(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.EQ, val); + } + + @Override + public Children ne(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.NE, val); + } + + @Override + public Children gt(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.GT, val); + } + + @Override + public Children ge(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.GE, val); + } + + @Override + public Children lt(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.LT, val); + } + + @Override + public Children le(boolean condition, R column, Object val) { + return addCondition(condition, column, SqlKeyword.LE, val); + } + + @Override + public Children like(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.DEFAULT); + } + + @Override + public Children notLike(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.NOT_LIKE, column, val, SqlLike.DEFAULT); + } + + @Override + public Children likeLeft(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.LEFT); + } + + @Override + public Children likeRight(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.LIKE, column, val, SqlLike.RIGHT); + } + + @Override + public Children notLikeLeft(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.NOT_LIKE, column, val, SqlLike.LEFT); + } + + @Override + public Children notLikeRight(boolean condition, R column, Object val) { + return likeValue(condition, SqlKeyword.NOT_LIKE, column, val, SqlLike.RIGHT); + } + + @Override + public Children between(boolean condition, R column, Object val1, Object val2) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.BETWEEN, + () -> formatParam(null, val1), SqlKeyword.AND, () -> formatParam(null, val2))); + } + + @Override + public Children notBetween(boolean condition, R column, Object val1, Object val2) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.NOT_BETWEEN, + () -> formatParam(null, val1), SqlKeyword.AND, () -> formatParam(null, val2))); + } + + @Override + public Children and(boolean condition, Consumer consumer) { + return and(condition).addNestedCondition(condition, consumer); + } + + @Override + public Children or(boolean condition, Consumer consumer) { + return or(condition).addNestedCondition(condition, consumer); + } + + @Override + public Children nested(boolean condition, Consumer consumer) { + return addNestedCondition(condition, consumer); + } + + @Override + public Children not(boolean condition, Consumer consumer) { + return not(condition).addNestedCondition(condition, consumer); + } + + @Override + public Children or(boolean condition) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.OR)); + } + + @Override + public Children apply(boolean condition, String applySql, Object... values) { + return maybeDo(condition, () -> appendSqlSegments(WrapperKeyword.APPLY, () -> formatSqlMaybeWithParam(applySql, values))); + } + + @Override + public Children last(boolean condition, String lastSql) { + if (condition) { + this.lastSql.setStringValue(StringPool.SPACE + lastSql); + } + return typedThis; + } + + @Override + public Children comment(boolean condition, String comment) { + if (condition) { + this.sqlComment.setStringValue(comment); + } + return typedThis; + } + + @Override + public Children first(boolean condition, String firstSql) { + if (condition) { + this.sqlFirst.setStringValue(firstSql); + } + return typedThis; + } + + @Override + public Children exists(boolean condition, String existsSql, Object... values) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.EXISTS, + () -> String.format("(%s)", formatSqlMaybeWithParam(existsSql, values)))); + } + + @Override + public Children notExists(boolean condition, String existsSql, Object... values) { + return not(condition).exists(condition, existsSql, values); + } + + @Override + public Children isNull(boolean condition, R column) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.IS_NULL)); + } + + @Override + public Children isNotNull(boolean condition, R column) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.IS_NOT_NULL)); + } + + @Override + public Children in(boolean condition, R column, Collection coll) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.IN, inExpression(coll))); + } + + @Override + public Children in(boolean condition, R column, Object... values) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.IN, inExpression(values))); + } + + @Override + public Children notIn(boolean condition, R column, Collection coll) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.NOT_IN, inExpression(coll))); + } + + @Override + public Children notIn(boolean condition, R column, Object... values) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.NOT_IN, inExpression(values))); + } + + @Override + public Children inSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.IN, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children gtSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.GT, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children geSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.GE, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children ltSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.LT, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children leSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.LE, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children notInSql(boolean condition, R column, String inValue) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), SqlKeyword.NOT_IN, + () -> String.format("(%s)", inValue))); + } + + @Override + public Children groupBy(boolean condition, R column, R... columns) { + return doGroupBy(condition, column, CollectionUtils.toList(columns)); + } + + @Override + public Children groupBy(boolean condition, R column, List columns) { + return doGroupBy(condition, column, columns); + } + + public Children doGroupBy(boolean condition, R column, List columns) { + return maybeDo(condition, () -> { + String one = StringPool.EMPTY; + if (column != null) { + one = columnToString(column); + } + if (CollectionUtils.isNotEmpty(columns)) { + one += column != null ? StringPool.COMMA + columnsToString(columns) : columnsToString(columns); + } + final String finalOne = one; + appendSqlSegments(SqlKeyword.GROUP_BY, () -> finalOne); + }); + } + + + public Children doOrderBy(boolean condition, boolean isAsc, R column, List columns) { + return maybeDo(condition, () -> { + final SqlKeyword mode = isAsc ? SqlKeyword.ASC : SqlKeyword.DESC; + if (column != null) { + appendSqlSegments(SqlKeyword.ORDER_BY, columnToSqlSegment(column), mode); + } + if (CollectionUtils.isNotEmpty(columns)) { + columns.forEach(c -> appendSqlSegments(SqlKeyword.ORDER_BY, + columnToSqlSegment(c), mode)); + } + }); + } + + @Override + public Children orderBy(boolean condition, boolean isAsc, R column, R... columns) { + return doOrderBy(condition, isAsc, column, CollectionUtils.toList(columns)); + } + + @Override + public Children orderBy(boolean condition, boolean isAsc, R column, List columns) { + return doOrderBy(condition, isAsc, column, columns); + } + + @Override + public Children groupBy(boolean condition, R column) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.GROUP_BY, () -> columnToString(column))); + } + + @Override + public Children groupBy(boolean condition, List columns) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.GROUP_BY, () -> columnsToString(columns))); + } + + @Override + public Children orderBy(boolean condition, boolean isAsc, R column) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.ORDER_BY, columnToSqlSegment(column), + isAsc ? SqlKeyword.ASC : SqlKeyword.DESC)); + } + + @Override + public Children orderBy(boolean condition, boolean isAsc, List columns) { + return maybeDo(condition, () -> columns.forEach(c -> appendSqlSegments(SqlKeyword.ORDER_BY, + columnToSqlSegment(c), isAsc ? SqlKeyword.ASC : SqlKeyword.DESC))); + } + + @Override + public Children having(boolean condition, String sqlHaving, Object... params) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.HAVING, () -> formatSqlMaybeWithParam(sqlHaving, params))); + } + + @Override + public Children func(boolean condition, Consumer consumer) { + return maybeDo(condition, () -> consumer.accept(typedThis)); + } + + /** + * 内部自用 + *

NOT 关键词

+ */ + protected Children not(boolean condition) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.NOT)); + } + + /** + * 内部自用 + *

拼接 AND

+ */ + protected Children and(boolean condition) { + return maybeDo(condition, () -> appendSqlSegments(SqlKeyword.AND)); + } + + /** + * 内部自用 + *

拼接 LIKE 以及 值

+ */ + protected Children likeValue(boolean condition, SqlKeyword keyword, R column, Object val, SqlLike sqlLike) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), keyword, + () -> formatParam(null, SqlUtils.concatLike(val, sqlLike)))); + } + + /** + * 普通查询条件 + * + * @param condition 是否执行 + * @param column 属性 + * @param sqlKeyword SQL 关键词 + * @param val 条件值 + */ + protected Children addCondition(boolean condition, R column, SqlKeyword sqlKeyword, Object val) { + return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), sqlKeyword, + () -> formatParam(null, val))); + } + + /** + * 多重嵌套查询条件 + * + * @param condition 查询条件值 + */ + protected Children addNestedCondition(boolean condition, Consumer consumer) { + return maybeDo(condition, () -> { + final Children instance = instance(); + consumer.accept(instance); + appendSqlSegments(WrapperKeyword.APPLY, instance); + }); + } + + /** + * 子类返回一个自己的新对象 + */ + protected abstract Children instance(); + + /** + * 格式化 sql + *

+ * 支持 "{0}" 这种,或者 "sql {0} sql" 这种 + * 也支持 "sql {0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler} sql" 这种 + * + * @param sqlStr 可能是sql片段 + * @param params 参数 + * @return sql片段 + */ + @SuppressWarnings("SameParameterValue") + protected final String formatSqlMaybeWithParam(String sqlStr, Object... params) { + if (StringUtils.isBlank(sqlStr)) { + return null; + } + + if (FuncBase.isNotEmpty(params)) { + for (int i = 0; i < params.length; ++i) { + String target = Constants.LEFT_BRACE + i + Constants.RIGHT_BRACE; + if (sqlStr.contains(target)) { + sqlStr = sqlStr.replace(target, formatParam(null, params[i])); + } else { + Matcher matcher = Pattern.compile("[{]" + i + ",[a-zA-Z0-9.,=]+}").matcher(sqlStr); + if (!matcher.find()) { + throw ExceptionUtils.mpe("Please check the syntax correctness! sql not contains: \"%s\"", target); + } + String group = matcher.group(); + sqlStr = sqlStr.replace(group, formatParam(group.substring(target.length(), group.length() - 1), params[i])); + } + } + } + return sqlStr; + } + + /** + * 处理入参 + * + * @param mapping 例如: "javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler" 这种 + * @param param 参数 + * @return value + */ + protected final String formatParam(String mapping, Object param) { + final String genParamName = Constants.WRAPPER_PARAM + paramNameSeq.incrementAndGet(); + final String paramStr = getParamAlias() + Constants.WRAPPER_PARAM_MIDDLE + genParamName; + paramNameValuePairs.put(genParamName, param); + return SqlScriptUtils.safeParam(paramStr, mapping); + } + + /** + * 函数化的做事 + * + * @param condition 做不做 + * @param something 做什么 + * @return Children + */ + protected final Children maybeDo(boolean condition, DoSomething something) { + if (condition) { + something.doIt(); + } + return typedThis; + } + + /** + * 获取in表达式 包含括号 + * + * @param value 集合 + */ + protected ISqlSegment inExpression(Collection value) { + if (CollectionUtils.isEmpty(value)) { + return () -> "()"; + } + return () -> value.stream().map(i -> formatParam(null, i)) + .collect(joining(StringPool.COMMA, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET)); + } + + /** + * 获取in表达式 包含括号 + * + * @param values 数组 + */ + protected ISqlSegment inExpression(Object[] values) { + if (FuncBase.isEmpty(values)) { + return () -> "()"; + } + return () -> Arrays.stream(values).map(i -> formatParam(null, i)) + .collect(joining(StringPool.COMMA, StringPool.LEFT_BRACKET, StringPool.RIGHT_BRACKET)); + } + + /** + * 必要的初始化 + */ + protected void initNeed() { + paramNameSeq = new AtomicInteger(0); + paramNameValuePairs = new HashMap<>(16); + expression = new MergeSegments(); + lastSql = SharedString.emptyString(); + sqlComment = SharedString.emptyString(); + sqlFirst = SharedString.emptyString(); + } + + @Override + public void clear() { + entity = null; + paramNameSeq.set(0); + paramNameValuePairs.clear(); + expression.clear(); + lastSql.toEmpty(); + sqlComment.toEmpty(); + sqlFirst.toEmpty(); + } + + /** + * 添加 where 片段 + * + * @param sqlSegments ISqlSegment 数组 + */ + protected void appendSqlSegments(ISqlSegment... sqlSegments) { + expression.add(sqlSegments); + } + + /** + * 是否使用默认注 排序 + * + * @return true 使用 false 不使用 + */ + public boolean isUseAnnotationOrderBy() { + final String _sqlSegment = this.getSqlSegment(); + if (StringUtils.isBlank(_sqlSegment)) { + return true; + } + final String _sqlSegmentUpper = _sqlSegment.toUpperCase(); + return !(_sqlSegmentUpper.contains(Constants.ORDER_BY) || _sqlSegmentUpper.contains(Constants.LIMIT)); + } + + @Override + public String getSqlSegment() { + return expression.getSqlSegment() + lastSql.getStringValue(); + } + + @Override + public String getSqlComment() { + if (StringUtils.isNotBlank(sqlComment.getStringValue())) { + return "/*" + sqlComment.getStringValue() + "*/"; + } + return null; + } + + @Override + public String getSqlFirst() { + if (StringUtils.isNotBlank(sqlFirst.getStringValue())) { + return sqlFirst.getStringValue(); + } + return null; + } + + @Override + public MergeSegments getExpression() { + return expression; + } + + public String getParamAlias() { + return paramAlias == null ? Constants.WRAPPER : paramAlias.getStringValue(); + } + + /** + * 参数别名设置,初始化时优先设置该值、重复设置异常 + * + * @param paramAlias 参数别名 + * @return Children + */ + @SuppressWarnings("unused") + public Children setParamAlias(String paramAlias) { + Assert.notEmpty(paramAlias, "paramAlias can not be empty!"); + Assert.isEmpty(paramNameValuePairs, "Please call this method before working!"); + Assert.isNull(this.paramAlias, "Please do not call the method repeatedly!"); + this.paramAlias = new SharedString(paramAlias); + return typedThis; + } + + /** + * 获取 columnName + */ + protected final ColumnSegment columnToSqlSegment(R column) { + return () -> columnToString(column); + } + + /** + * 获取 columnName + */ + protected String columnToString(R column) { + return (String) column; + } + + /** + * 获取 columnNames + */ + protected String columnsToString(R... columns) { + return Arrays.stream(columns).map(this::columnToString).collect(joining(StringPool.COMMA)); + } + + /** + * 多字段转换为逗号 "," 分割字符串 + * + * @param columns 多字段 + */ + protected String columnsToString(List columns) { + return columns.stream().map(this::columnToString).collect(joining(StringPool.COMMA)); + } + + @Override + @SuppressWarnings("all") + public Children clone() { + return SerializationUtils.clone(typedThis); + } + + /** + * 做事函数 + */ + @FunctionalInterface + public interface DoSomething { + + void doIt(); + } + + public Children getTypedThis() { + return typedThis; + } + + public AtomicInteger getParamNameSeq() { + return paramNameSeq; + } + + public void setParamNameSeq(AtomicInteger paramNameSeq) { + this.paramNameSeq = paramNameSeq; + } + + public Map getParamNameValuePairs() { + return paramNameValuePairs; + } + + public void setParamNameValuePairs(Map paramNameValuePairs) { + this.paramNameValuePairs = paramNameValuePairs; + } + + public void setParamAlias(SharedString paramAlias) { + this.paramAlias = paramAlias; + } + + public SharedString getLastSql() { + return lastSql; + } + + public void setLastSql(SharedString lastSql) { + this.lastSql = lastSql; + } + + public void setSqlComment(SharedString sqlComment) { + this.sqlComment = sqlComment; + } + + public void setSqlFirst(SharedString sqlFirst) { + this.sqlFirst = sqlFirst; + } + + public void setExpression(MergeSegments expression) { + this.expression = expression; + } + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/ISqlSegment.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/ISqlSegment.java new file mode 100644 index 0000000..fab6e72 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/ISqlSegment.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions; + +import java.io.Serializable; + +/** + * @author JX + * @create 2024-03-26 9:51 + * @dedescription: + */ +@FunctionalInterface +public interface ISqlSegment extends Serializable { + + /** + * SQL 片段 + */ + String getSqlSegment(); + +} + diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/SharedString.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/SharedString.java new file mode 100644 index 0000000..821d600 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/SharedString.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions; + + +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.io.Serializable; + +/** + * 共享查询字段 + * + * @author miemie + * @since 2018-11-20 + */ +public class SharedString implements Serializable { + private static final long serialVersionUID = -1536422416594422874L; + + /** + * 共享的 string 值 + */ + private String stringValue; + + /** + * SharedString 里是 "" + */ + public static SharedString emptyString() { + return new SharedString(StringPool.EMPTY); + } + + /** + * 置 empty + * + * @since 3.3.1 + */ + public void toEmpty() { + stringValue = StringPool.EMPTY; + } + + /** + * 置 null + * + * @since 3.3.1 + */ + public void toNull() { + stringValue = null; + } + + public SharedString() { + + } + + public SharedString(String stringValue) { + this.stringValue = stringValue; + } + + public String getStringValue() { + return stringValue; + } + + public void setStringValue(String stringValue) { + this.stringValue = stringValue; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/Wrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/Wrapper.java new file mode 100644 index 0000000..6b6a9e3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/Wrapper.java @@ -0,0 +1,173 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions; + + + +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.conditions.segments.NormalSegmentList; +import com.jeelowcode.framework.plus.core.toolkit.Constants; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; +import org.springframework.util.CollectionUtils; + +import java.util.Objects; + +/** + * @author JX + * @create 2024-03-26 9:53 + * @dedescription: + */ +public abstract class Wrapper implements ISqlSegment { + + /** + * 实体对象(子类实现) + * + * @return 泛型 T + */ + public abstract T getEntity(); + + public String getSqlSelect() { + return null; + } + + public String getSqlSet() { + return null; + } + + public String getSqlComment() { + return null; + } + + public String getSqlFirst() { + return null; + } + + /** + * 获取 MergeSegments + */ + public abstract MergeSegments getExpression(); + + /** + * 获取自定义SQL 简化自定义XML复杂情况 + *

+ * 使用方法: `select xxx from table` + ${ew.customSqlSegment} + *

+ * 注意事项: + * 1. 逻辑删除需要自己拼接条件 (之前自定义也同样) + * 2. 不支持wrapper中附带实体的情况 (wrapper自带实体会更麻烦) + * 3. 用法 ${ew.customSqlSegment} (不需要where标签包裹,切记!) + * 4. ew是wrapper定义别名,不能使用其他的替换 + */ + public String getCustomSqlSegment() { + MergeSegments expression = getExpression(); + if (Objects.nonNull(expression)) { + NormalSegmentList normal = expression.getNormal(); + String sqlSegment = getSqlSegment(); + if (StringUtils.isNotBlank(sqlSegment)) { + if (normal.isEmpty()) { + return sqlSegment; + } else { + return Constants.WHERE + StringPool.SPACE + sqlSegment; + } + } + } + return StringPool.EMPTY; + } + + public String getHavingCustomSqlSegment() { + MergeSegments expression = getExpression(); + if (Objects.nonNull(expression)) { + NormalSegmentList normal = expression.getNormal(); + String sqlSegment = getSqlSegment(); + if (StringUtils.isNotBlank(sqlSegment)) { + if (normal.isEmpty()) { + return sqlSegment; + } else { + return Constants.HAVING + StringPool.SPACE + sqlSegment; + } + } + } + return StringPool.EMPTY; + } + + //和上面一样,只是不返回where ,直接原样凭接 + public String appendCustomSqlSegment() { + MergeSegments expression = getExpression(); + if (Objects.nonNull(expression)) { + String sqlSegment = getSqlSegment(); + sqlSegment=sqlSegment.substring(1,sqlSegment.length()-1);//去掉左右括号() + if (StringUtils.isNotBlank(sqlSegment)) { + return sqlSegment; + } + } + return StringPool.EMPTY; + } + + /** + * 查询条件为空(包含entity) + */ + public boolean isEmptyOfWhere() { + return isEmptyOfNormal() ; + } + + /** + * 查询条件不为空(包含entity) + */ + public boolean isNonEmptyOfWhere() { + return !isEmptyOfWhere(); + } + + @Deprecated + public boolean nonEmptyOfWhere() { + return isNonEmptyOfWhere(); + } + + /** + * 查询条件为空(不包含entity) + */ + public boolean isEmptyOfNormal() { + return CollectionUtils.isEmpty(getExpression().getNormal()); + } + + /** + * 查询条件为空(不包含entity) + */ + public boolean isNonEmptyOfNormal() { + return !isEmptyOfNormal(); + } + + @Deprecated + public boolean nonEmptyOfNormal() { + return isNonEmptyOfNormal(); + } + + + /** + * 获取格式化后的执行sql + * + * @return sql + * @since 3.3.1 + */ + public String getTargetSql() { + return getSqlSegment().replaceAll("#\\{.+?}", "?"); + } + + /** + * 条件清空 + * + * @since 3.3.1 + */ + abstract public void clear(); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Compare.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Compare.java new file mode 100644 index 0000000..9118ed1 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Compare.java @@ -0,0 +1,406 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.interfaces; + +import java.io.Serializable; +import java.util.Map; +import java.util.function.BiPredicate; + +/** + * 查询条件封装 + *

比较值

+ * + * @author hubin miemie HCL + * @since 2017-05-26 + */ +public interface Compare extends Serializable { + + /** + * map 所有非空属性等于 = + * + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @return children + */ + default Children allEq(Map params) { + return allEq(params, true); + } + + /** + * map 所有非空属性等于 = + * + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段 + * @return children + */ + default Children allEq(Map params, boolean null2IsNull) { + return allEq(true, params, null2IsNull); + } + + /** + * map 所有非空属性等于 = + * + * @param condition 执行条件 + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段 + * @return children + */ + Children allEq(boolean condition, Map params, boolean null2IsNull); + + /** + * 字段过滤接口,传入多参数时允许对参数进行过滤 + * + * @param filter 返回 true 来允许字段传入比对条件中 + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @return children + */ + default Children allEq(BiPredicate filter, Map params) { + return allEq(filter, params, true); + } + + /** + * 字段过滤接口,传入多参数时允许对参数进行过滤 + * + * @param filter 返回 true 来允许字段传入比对条件中 + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段 + * @return children + */ + default Children allEq(BiPredicate filter, Map params, boolean null2IsNull) { + return allEq(true, filter, params, null2IsNull); + } + + /** + * 字段过滤接口,传入多参数时允许对参数进行过滤 + * + * @param condition 执行条件 + * @param filter 返回 true 来允许字段传入比对条件中 + * @param params map 类型的参数, key 是字段名, value 是字段值 + * @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段 + * @return children + */ + Children allEq(boolean condition, BiPredicate filter, Map params, boolean null2IsNull); + + /** + * 等于 = + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children eq(R column, Object val) { + return eq(true, column, val); + } + + /** + * 等于 = + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children eq(boolean condition, R column, Object val); + + /** + * 不等于 <> + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children ne(R column, Object val) { + return ne(true, column, val); + } + + /** + * 不等于 <> + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children ne(boolean condition, R column, Object val); + + /** + * 大于 > + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children gt(R column, Object val) { + return gt(true, column, val); + } + + /** + * 大于 > + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children gt(boolean condition, R column, Object val); + + /** + * 大于等于 >= + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children ge(R column, Object val) { + return ge(true, column, val); + } + + /** + * 大于等于 >= + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children ge(boolean condition, R column, Object val); + + /** + * 小于 < + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children lt(R column, Object val) { + return lt(true, column, val); + } + + /** + * 小于 < + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children lt(boolean condition, R column, Object val); + + /** + * 小于等于 <= + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children le(R column, Object val) { + return le(true, column, val); + } + + /** + * 小于等于 <= + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children le(boolean condition, R column, Object val); + + + /** + * BETWEEN 值1 AND 值2 + * + * @param column 字段 + * @param val1 值1 + * @param val2 值2 + * @return children + */ + default Children between(R column, Object val1, Object val2) { + return between(true, column, val1, val2); + } + + /** + * BETWEEN 值1 AND 值2 + * + * @param condition 执行条件 + * @param column 字段 + * @param val1 值1 + * @param val2 值2 + * @return children + */ + Children between(boolean condition, R column, Object val1, Object val2); + + /** + * NOT BETWEEN 值1 AND 值2 + * + * @param column 字段 + * @param val1 值1 + * @param val2 值2 + * @return children + */ + default Children notBetween(R column, Object val1, Object val2) { + return notBetween(true, column, val1, val2); + } + + /** + * NOT BETWEEN 值1 AND 值2 + * + * @param condition 执行条件 + * @param column 字段 + * @param val1 值1 + * @param val2 值2 + * @return children + */ + Children notBetween(boolean condition, R column, Object val1, Object val2); + + /** + * LIKE '%值%' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children like(R column, Object val) { + return like(true, column, val); + } + + /** + * LIKE '%值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children like(boolean condition, R column, Object val); + + /** + * NOT LIKE '%值%' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children notLike(R column, Object val) { + return notLike(true, column, val); + } + + /** + * NOT LIKE '%值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLike(boolean condition, R column, Object val); + + /** + * NOT LIKE '%值' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children notLikeLeft(R column, Object val) { + return notLikeLeft(true, column, val); + } + + /** + * NOT LIKE '%值' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeLeft(boolean condition, R column, Object val); + + /** + * NOT LIKE '值%' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children notLikeRight(R column, Object val) { + return notLikeRight(true, column, val); + } + + /** + * NOT LIKE '值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeRight(boolean condition, R column, Object val); + + /** + * LIKE '%值' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children likeLeft(R column, Object val) { + return likeLeft(true, column, val); + } + + /** + * LIKE '%值' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children likeLeft(boolean condition, R column, Object val); + + /** + * LIKE '值%' + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children likeRight(R column, Object val) { + return likeRight(true, column, val); + } + + /** + * LIKE '值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children likeRight(boolean condition, R column, Object val); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Func.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Func.java new file mode 100644 index 0000000..33a2a90 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Func.java @@ -0,0 +1,684 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.interfaces; + + + +import com.jeelowcode.framework.plus.core.toolkit.CollectionUtils; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.function.Consumer; + +/** + * 查询条件封装 + * + * @author hubin miemie HCL + * @since 2017-05-26 + */ +@SuppressWarnings("unchecked") +public interface Func extends Serializable { + + /** + * 字段 IS NULL + *

例: isNull("name")

+ * + * @param column 字段 + * @return children + */ + default Children isNull(R column) { + return isNull(true, column); + } + + /** + * 字段 IS NULL + *

例: isNull(true, "name")

+ * + * @param condition 执行条件 + * @param column 字段 + * @return children + */ + Children isNull(boolean condition, R column); + + /** + * 字段 IS NOT NULL + *

例: isNotNull("name")

+ * + * @param column 字段 + * @return children + */ + default Children isNotNull(R column) { + return isNotNull(true, column); + } + + /** + * 字段 IS NOT NULL + *

例: isNotNull(true, "name")

+ * + * @param condition 执行条件 + * @param column 字段 + * @return children + */ + Children isNotNull(boolean condition, R column); + + /** + * 字段 IN (value.get(0), value.get(1), ...) + *

例: in("id", Arrays.asList(1, 2, 3, 4, 5))

+ * + *
  • 注意!当集合为 空或null 时, sql会拼接为:WHERE (字段名 IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param column 字段 + * @param coll 数据集合 + * @return children + */ + default Children in(R column, Collection coll) { + return in(true, column, coll); + } + + /** + * 字段 IN (value.get(0), value.get(1), ...) + *

    例: in(true, "id", Arrays.asList(1, 2, 3, 4, 5))

    + * + *
  • 注意!当集合为 空或null 时, sql会拼接为:WHERE (字段名 IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param condition 执行条件 + * @param column 字段 + * @param coll 数据集合 + * @return children + */ + Children in(boolean condition, R column, Collection coll); + + /** + * 字段 IN (v0, v1, ...) + *

    例: in("id", 1, 2, 3, 4, 5)

    + * + *
  • 注意!当数组为 空或null 时, sql会拼接为:WHERE (字段名 IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param column 字段 + * @param values 数据数组 + * @return children + */ + default Children in(R column, Object... values) { + return in(true, column, values); + } + + /** + * 字段 IN (v0, v1, ...) + *

    例: in(true, "id", 1, 2, 3, 4, 5)

    + * + *
  • 注意!当数组为 空或null 时, sql会拼接为:WHERE (字段名 IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param condition 执行条件 + * @param column 字段 + * @param values 数据数组 + * @return children + */ + Children in(boolean condition, R column, Object... values); + + /** + * 字段 NOT IN (value.get(0), value.get(1), ...) + *

    例: notIn("id", Arrays.asList(1, 2, 3, 4, 5))

    + * + *
  • 注意!当集合为 空或null 时, sql会拼接为:WHERE (字段名 NOT IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param column 字段 + * @param coll 数据集合 + * @return children + */ + default Children notIn(R column, Collection coll) { + return notIn(true, column, coll); + } + + /** + * 字段 NOT IN (value.get(0), value.get(1), ...) + *

    例: notIn(true, "id", Arrays.asList(1, 2, 3, 4, 5))

    + * + *
  • 注意!当集合为 空或null 时, sql会拼接为:WHERE (字段名 NOT IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param condition 执行条件 + * @param column 字段 + * @param coll 数据集合 + * @return children + */ + Children notIn(boolean condition, R column, Collection coll); + + /** + * 字段 NOT IN (v0, v1, ...) + *

    例: notIn("id", 1, 2, 3, 4, 5)

    + * + *
  • 注意!当数组为 空或null 时, sql会拼接为:WHERE (字段名 NOT IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param column 字段 + * @param values 数据数组 + * @return children + */ + default Children notIn(R column, Object... values) { + return notIn(true, column, values); + } + + /** + * 字段 NOT IN (v0, v1, ...) + *

    例: notIn(true, "id", 1, 2, 3, 4, 5)

    + * + *
  • 注意!当数组为 空或null 时, sql会拼接为:WHERE (字段名 NOT IN ()), 执行时报错
  • + *
  • 若要在特定条件下不拼接, 可在 condition 条件中判断
  • + * + * @param condition 执行条件 + * @param column 字段 + * @param values 数据数组 + * @return children + */ + Children notIn(boolean condition, R column, Object... values); + + /** + * 字段 IN ( sql语句 ) + *

    !! sql 注入方式的 in 方法 !!

    + *

    例1: inSql("id", "1")

    + *

    例2: inSql("id", "select id from table where id < 3")

    + * + * @param column 字段 + * @param sql sql语句 + * @return children + */ + default Children inSql(R column, String sql) { + return inSql(true, column, sql); + } + + /** + * 字段 IN ( sql语句 ) + *

    !! sql 注入方式的 in 方法 !!

    + *

    例1: inSql(true, "id", "1")

    + *

    例2: inSql(true, "id", "select id from table where id < 3")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param sql sql语句 + * @return children + */ + Children inSql(boolean condition, R column, String sql); + + /** + * 字段 > ( sql语句 ) + *

    例1: gtSql(true, "id", "1")

    + *

    例1: gtSql(true, "id", "select id from table where name = 'JunJun'")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param sql sql语句 + * @return children + */ + Children gtSql(boolean condition, R column, String sql); + + /** + * 字段 > ( sql语句 ) + *

    例1: gtSql("id", "1")

    + *

    例1: gtSql("id", "select id from table where name = 'JunJun'")

    + * + * @param column 字段 + * @param sql sql语句 + * @return children + */ + default Children gtSql(R column, String sql) { + return gtSql(true, column, sql); + } + + /** + * 字段 >= ( sql语句 ) + *

    例1: geSql(true, "id", "1")

    + *

    例1: geSql(true, "id", "select id from table where name = 'JunJun'")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param sql sql语句 + * @return children + */ + Children geSql(boolean condition, R column, String sql); + + /** + * 字段 >= ( sql语句 ) + *

    例1: geSql("id", "1")

    + *

    例1: geSql("id", "select id from table where name = 'JunJun'")

    + * + * @param column 字段 + * @param sql sql语句 + * @return children + */ + default Children geSql(R column, String sql) { + return geSql(true, column, sql); + } + + /** + * 字段 < ( sql语句 ) + *

    例1: ltSql(true, "id", "1")

    + *

    例1: ltSql(true , "id", "select id from table where name = 'JunJun'")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param sql sql语句 + * @return children + */ + Children ltSql(boolean condition, R column, String sql); + + /** + * 字段 < ( sql语句 ) + *

    例1: ltSql("id", "1")

    + *

    例1: ltSql("id", "select id from table where name = 'JunJun'")

    + * + * @param column 字段 + * @param sql sql语句 + * @return children + */ + default Children ltSql(R column, String sql) { + return ltSql(true, column, sql); + } + + /** + * 字段 <= ( sql语句 ) + *

    例1: leSql(true, "id", "1")

    + *

    例1: leSql(true ,"id", "select id from table where name = 'JunJun'")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param sql sql语句 + * @return children + */ + Children leSql(boolean condition, R column, String sql); + + /** + * 字段 <= ( sql语句 ) + *

    例1: leSql("id", "1")

    + *

    例1: leSql("id", "select id from table where name = 'JunJun'")

    + * + * @param column 字段 + * @param inValue sql语句 + * @return children + */ + default Children leSql(R column, String inValue) { + return leSql(true, column, inValue); + } + + /** + * 字段 NOT IN ( sql语句 ) + *

    !! sql 注入方式的 not in 方法 !!

    + *

    例1: notInSql("id", "1, 2, 3, 4, 5, 6")

    + *

    例2: notInSql("id", "select id from table where id < 3")

    + * + * @param column 字段 + * @param inValue sql语句 ---> 1,2,3,4,5,6 或者 select id from table where id < 3 + * @return children + */ + default Children notInSql(R column, String inValue) { + return notInSql(true, column, inValue); + } + + /** + * 字段 NOT IN ( sql语句 ) + *

    !! sql 注入方式的 not in 方法 !!

    + *

    例1: notInSql(true, "id", "1, 2, 3, 4, 5, 6")

    + *

    例2: notInSql(true, "id", "select id from table where id < 3")

    + * + * @param condition 执行条件 + * @param column 字段 + * @param inValue sql语句 ---> 1,2,3,4,5,6 或者 select id from table where id < 3 + * @return children + */ + Children notInSql(boolean condition, R column, String inValue); + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy(true, "id")

    + * + * @param condition 执行条件 + * @param column 单个字段 + * @return children + */ + Children groupBy(boolean condition, R column); + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy("id")

    + * + * @param column 单个字段 + * @return children + */ + default Children groupBy(R column) { + return groupBy(true, column); + } + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy(true, Arrays.asList("id", "name"))

    + * + * @param condition 执行条件 + * @param columns 字段数组 + * @return children + */ + Children groupBy(boolean condition, List columns); + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy(Arrays.asList("id", "name"))

    + * + * @param columns 字段数组 + * @return children + */ + default Children groupBy(List columns) { + return groupBy(true, columns); + } + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy("id", "name")

    + * + * @param column 单个字段 + * @param columns 字段数组 + * @return children + */ + default Children groupBy(R column, R... columns) { + return groupBy(true, column, columns); + } + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy(true, "id", "name")

    + * + * @param condition 执行条件 + * @param column 单个字段 + * @param columns 字段数组 + * @return children + */ + Children groupBy(boolean condition, R column, R... columns); + + /** + * 分组:GROUP BY 字段, ... + *

    例: groupBy(true, "id", Arrays.asList("name"))

    + * + * @param condition 执行条件 + * @param column 单个字段 + * @param columns 字段数组 + * @return children + * @since 3.5.4 + */ + Children groupBy(boolean condition, R column, List columns); + + /** + * 排序:ORDER BY 字段, ... ASC + *

    例: orderByAsc(true, "id")

    + * + * @param condition 执行条件 + * @param column 单个字段 + * @return children + */ + default Children orderByAsc(boolean condition, R column) { + return orderBy(condition, true, column); + } + + /** + * 排序:ORDER BY 字段, ... ASC + *

    例: orderByAsc("id")

    + * + * @param column 单个字段 + * @return children + */ + default Children orderByAsc(R column) { + return orderByAsc(true, column); + } + + /** + * 排序:ORDER BY 字段, ... ASC + *

    例: orderByAsc(true, Arrays.asList("id", "name"))

    + * + * @param condition 执行条件 + * @param columns 字段数组 + * @return children + */ + default Children orderByAsc(boolean condition, List columns) { + return orderBy(condition, true, columns); + } + + /** + * 排序:ORDER BY 字段, ... ASC + *

    例: orderByAsc(Arrays.asList("id", "name"))

    + * + * @param columns 字段数组 + * @return children + */ + default Children orderByAsc(List columns) { + return orderByAsc(true, columns); + } + + /** + * 排序:ORDER BY 字段, ... ASC + * + * @param column 字段 + * @param columns 字段数组 + * @return children + */ + default Children orderByAsc(R column, R... columns) { + return orderByAsc(true, column, columns); + } + + /** + * 排序:ORDER BY 字段, ... ASC + * + * @param condition 执行条件 + * @param column 字段 + * @param columns 字段数组 + */ + default Children orderByAsc(boolean condition, R column, R... columns) { + return orderBy(condition, true, column, columns); + } + + /** + * 排序:ORDER BY 字段, ... ASC + *

    例: orderByAsc(true, Arrays.asList("id", "name"))

    + * + * @param condition 执行条件 + * @param columns 字段数组 + * @return children + * @since 3.5.4 + */ + default Children orderByAsc(boolean condition, R column, List columns) { + return orderBy(condition, true, column, columns); + } + + /** + * 排序:ORDER BY 字段, ... DESC + *

    例: orderByDesc(true, "id")

    + * + * @param condition 执行条件 + * @param column 字段 + * @return children + */ + default Children orderByDesc(boolean condition, R column) { + return orderBy(condition, false, column); + } + + /** + * 排序:ORDER BY 字段, ... DESC + *

    例: orderByDesc("id")

    + * + * @param column 字段 + * @return children + */ + default Children orderByDesc(R column) { + return orderByDesc(true, column); + } + + /** + * 排序:ORDER BY 字段, ... DESC + *

    例: orderByDesc(true, Arrays.asList("id", "name"))

    + * + * @param condition 执行条件 + * @param columns 字段列表 + * @return children + */ + default Children orderByDesc(boolean condition, List columns) { + return orderBy(condition, false, columns); + } + + /** + * 排序:ORDER BY 字段, ... DESC + * + * @param columns 字段列表 + */ + default Children orderByDesc(List columns) { + return orderByDesc(true, columns); + } + + /** + * 排序:ORDER BY 字段, ... DESC + * + * @param column 单个字段 + * @param columns 字段列表 + */ + default Children orderByDesc(R column, R... columns) { + return orderByDesc(true, column, columns); + } + + /** + * 排序:ORDER BY 字段, ... DESC + * + * @param condition 执行条件 + * @param column 单个字段 + * @param columns 字段列表 + */ + default Children orderByDesc(boolean condition, R column, R... columns) { + return orderBy(condition, false, column, CollectionUtils.toList(columns)); + } + + /** + * 排序:ORDER BY 字段, ... DESC + * + * @param condition 执行条件 + * @param column 单个字段 + * @param columns 字段列表 + * @since 3.5.4 + */ + default Children orderByDesc(boolean condition, R column, List columns) { + return orderBy(condition, false, column, columns); + } + + + /** + * 排序:ORDER BY 字段, ... + *

    例: orderBy(true, "id")

    + * + * @param condition 执行条件 + * @param isAsc 是否是 ASC 排序 + * @param column 单个字段 + * @return children + */ + Children orderBy(boolean condition, boolean isAsc, R column); + + /** + * 排序:ORDER BY 字段, ... + *

    例: orderBy(true, Arrays.asList("id", "name"))

    + * + * @param condition 执行条件 + * @param isAsc 是否是 ASC 排序 + * @param columns 字段列表 + * @return children + */ + Children orderBy(boolean condition, boolean isAsc, List columns); + + /** + * 排序:ORDER BY 字段, ... + * + * @param condition 执行条件 + * @param isAsc 是否是 ASC 排序 + * @param columns 字段列表 + * @return children + */ + Children orderBy(boolean condition, boolean isAsc, R column, R... columns); + + /** + * 排序:ORDER BY 字段, ... + * + * @param condition 执行条件 + * @param isAsc 是否是 ASC 排序 + * @param columns 字段列表 + * @return children + * @since 3.5.4 + */ + Children orderBy(boolean condition, boolean isAsc, R column, List columns); + + + /** + * HAVING ( sql语句 ) + *

    例1: having("sum(age) > 10")

    + *

    例2: having("sum(age) > {0}", 10)

    + * + * @param sqlHaving sql 语句 + * @param params 参数数组 + * @return children + */ + default Children having(String sqlHaving, Object... params) { + return having(true, sqlHaving, params); + } + + /** + * HAVING ( sql语句 ) + *

    例1: having(true, "sum(age) > 10")

    + *

    例2: having(true, "sum(age) > {0}", 10)

    + * + * @param condition 执行条件 + * @param sqlHaving sql 语句 + * @param params 参数数组 + * @return children + */ + Children having(boolean condition, String sqlHaving, Object... params); + + /** + * 消费函数 + * + * @param consumer 消费函数 + * @return children + */ + default Children func(Consumer consumer) { + return func(true, consumer); + } + + /** + * 消费函数 + * + * @param condition 执行条件 + * @param consumer 消费函数 + * @return children + * @since 3.3.1 + */ + Children func(boolean condition, Consumer consumer); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Join.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Join.java new file mode 100644 index 0000000..0f84236 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Join.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.interfaces; + +import java.io.Serializable; + +/** + * 查询条件封装 + *

    拼接

    + * + * @author hubin miemie HCL + * @since 2017-05-26 + */ +public interface Join extends Serializable { + + /** + * 拼接 OR + * + * @return children + */ + default Children or() { + return or(true); + } + + /** + * 拼接 OR + * + * @param condition 执行条件 + * @return children + */ + Children or(boolean condition); + + /** + * 拼接 sql + *

    !! 会有 sql 注入风险 !!

    + *

    例1: apply("id = 1")

    + *

    例2: apply("date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")

    + *

    例3: apply("date_format(dateColumn,'%Y-%m-%d') = {0}", LocalDate.now())

    + *

    例4: apply("name={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}", "老王")

    + * + * @param values 数据数组 + * @return children + */ + default Children apply(String applySql, Object... values) { + return apply(true, applySql, values); + } + + /** + * 拼接 sql + *

    !! 会有 sql 注入风险 !!

    + *

    例1: apply("id = 1")

    + *

    例2: apply("date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")

    + *

    例3: apply("date_format(dateColumn,'%Y-%m-%d') = {0}", LocalDate.now())

    + *

    例4: apply("name={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}", "老王")

    + * + * @param condition 执行条件 + * @param values 数据数组 + * @return children + */ + Children apply(boolean condition, String applySql, Object... values); + + /** + * 无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用) + *

    例: last("limit 1")

    + *

    注意只能调用一次,多次调用以最后一次为准

    + * + * @param lastSql sql语句 + * @return children + */ + default Children last(String lastSql) { + return last(true, lastSql); + } + + /** + * 无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用) + *

    例: last("limit 1")

    + *

    注意只能调用一次,多次调用以最后一次为准

    + * + * @param condition 执行条件 + * @param lastSql sql语句 + * @return children + */ + Children last(boolean condition, String lastSql); + + /** + * sql 注释(会拼接在 sql 的最后面) + *

    + * 自3.5.6开始,默认不处理转义字符,如有需要,调用{@link com.baomidou.mybatisplus.core.toolkit.sql.StringEscape#escapeRawString(String)} + *

    + * + * @param comment sql注释 + * @return children + */ + default Children comment(String comment) { + return comment(true, comment); + } + + /** + * sql 注释(会拼接在 sql 的最后面) + *

    + * 自3.5.6开始,默认不处理转义字符,如有需要,调用{@link com.baomidou.mybatisplus.core.toolkit.sql.StringEscape#escapeRawString(String)} + *

    + * + * @param condition 执行条件 + * @param comment sql注释 + * @return children + */ + Children comment(boolean condition, String comment); + + /** + * sql 起始句(会拼接在SQL语句的起始处) + *

    + * 自3.5.6开始,默认不处理转义字符,如有需要,调用{@link com.baomidou.mybatisplus.core.toolkit.sql.StringEscape#escapeRawString(String)} + *

    + * + * @param firstSql 起始语句 + * @return children + */ + default Children first(String firstSql) { + return first(true, firstSql); + } + + /** + * sql 起始句(会拼接在SQL语句的起始处) + *

    + * 自3.5.6开始,默认不处理转义字符,如有需要,调用{@link com.baomidou.mybatisplus.core.toolkit.sql.StringEscape#escapeRawString(String)} + *

    + * + * @param condition 执行条件 + * @param firstSql 起始语句 + * @return children + * @since 3.3.1 + */ + Children first(boolean condition, String firstSql); + + /** + * 拼接 EXISTS ( sql语句 ) + *

    !! sql 注入方法 !!

    + *

    例: exists("select id from table where age = 1")

    + * + * @param existsSql sql语句 + * @param values 数据数组 + * @return children + */ + default Children exists(String existsSql, Object... values) { + return exists(true, existsSql, values); + } + + /** + * 拼接 EXISTS ( sql语句 ) + *

    !! sql 注入方法 !!

    + *

    例: exists("select id from table where age = 1")

    + * + * @param condition 执行条件 + * @param existsSql sql语句 + * @param values 数据数组 + * @return children + */ + Children exists(boolean condition, String existsSql, Object... values); + + /** + * 拼接 NOT EXISTS ( sql语句 ) + *

    !! sql 注入方法 !!

    + *

    例: notExists("select id from table where age = 1")

    + * + * @param existsSql sql语句 + * @param values 数据数组 + * @return children + */ + default Children notExists(String existsSql, Object... values) { + return notExists(true, existsSql, values); + } + + /** + * 拼接 NOT EXISTS ( sql语句 ) + *

    !! sql 注入方法 !!

    + *

    例: notExists("select id from table where age = 1")

    + * + * @param condition 执行条件 + * @param existsSql sql语句 + * @param values 数据数组 + * @return children + */ + Children notExists(boolean condition, String existsSql, Object... values); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Nested.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Nested.java new file mode 100644 index 0000000..293290b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/interfaces/Nested.java @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.interfaces; + +import java.io.Serializable; +import java.util.function.Consumer; + +/** + * 查询条件封装 + *

    嵌套

    + *
  • 泛型 Param 是具体需要运行函数的类(也是 wrapper 的子类)
  • + * + * @author hubin miemie HCL + * @since 2017-05-26 + */ +public interface Nested extends Serializable { + + /** + * AND 嵌套 + *

    + * 例: and(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param consumer 消费函数 + * @return children + */ + default Children and(Consumer consumer) { + return and(true, consumer); + } + + /** + * AND 嵌套 + *

    + * 例: and(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param condition 执行条件 + * @param consumer 消费函数 + * @return children + */ + Children and(boolean condition, Consumer consumer); + + /** + * OR 嵌套 + *

    + * 例: or(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param consumer 消费函数 + * @return children + */ + default Children or(Consumer consumer) { + return or(true, consumer); + } + + /** + * OR 嵌套 + *

    + * 例: or(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param condition 执行条件 + * @param consumer 消费函数 + * @return children + */ + Children or(boolean condition, Consumer consumer); + + /** + * 正常嵌套 不带 AND 或者 OR + *

    + * 例: nested(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param consumer 消费函数 + * @return children + */ + default Children nested(Consumer consumer) { + return nested(true, consumer); + } + + /** + * 正常嵌套 不带 AND 或者 OR + *

    + * 例: nested(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param condition 执行条件 + * @param consumer 消费函数 + * @return children + */ + Children nested(boolean condition, Consumer consumer); + + /** + * not嵌套 + *

    + * 例: not(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param consumer 消费函数 + * @return children + */ + default Children not(Consumer consumer) { + return not(true, consumer); + } + + /** + * not嵌套 + *

    + * 例: not(i -> i.eq("name", "李白").ne("status", "活着")) + *

    + * + * @param condition 执行条件 + * @param consumer 消费函数 + * @return children + */ + Children not(boolean condition, Consumer consumer); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/AbstractISegmentList.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/AbstractISegmentList.java new file mode 100644 index 0000000..477f789 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/AbstractISegmentList.java @@ -0,0 +1,121 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author JX + * @create 2024-03-26 10:02 + * @dedescription: + */ +public abstract class AbstractISegmentList extends ArrayList implements ISqlSegment, StringPool { + + /** + * 最后一个值 + */ + ISqlSegment lastValue = null; + /** + * 刷新 lastValue + */ + boolean flushLastValue = false; + /** + * 结果集缓存 + */ + private String sqlSegment = EMPTY; + /** + * 是否缓存过结果集 + */ + private boolean cacheSqlSegment = true; + + /** + * 重写方法,做个性化适配 + * + * @param c 元素集合 + * @return 是否添加成功 + */ + @Override + public boolean addAll(Collection c) { + List list = new ArrayList<>(c); + boolean goon = transformList(list, list.get(0), list.get(list.size() - 1)); + if (goon) { + cacheSqlSegment = false; + if (flushLastValue) { + this.flushLastValue(list); + } + return super.addAll(list); + } + return false; + } + + /** + * 在其中对值进行判断以及更改 list 的内部元素 + * + * @param list 传入进来的 ISqlSegment 集合 + * @param firstSegment ISqlSegment 集合里第一个值 + * @param lastSegment ISqlSegment 集合里最后一个值 + * @return true 是否继续向下执行; false 不再向下执行 + */ + protected abstract boolean transformList(List list, ISqlSegment firstSegment, ISqlSegment lastSegment); + + /** + * 刷新属性 lastValue + */ + private void flushLastValue(List list) { + lastValue = list.get(list.size() - 1); + } + + /** + * 删除元素里最后一个值
    + * 并刷新属性 lastValue + */ + void removeAndFlushLast() { + remove(size() - 1); + flushLastValue(this); + } + + @Override + public String getSqlSegment() { + if (cacheSqlSegment) { + return sqlSegment; + } + cacheSqlSegment = true; + sqlSegment = childrenSqlSegment(); + return sqlSegment; + } + + /** + * 只有该类进行过 addAll 操作,才会触发这个方法 + *

    + * 方法内可以放心进行操作 + * + * @return sqlSegment + */ + protected abstract String childrenSqlSegment(); + + @Override + public void clear() { + super.clear(); + lastValue = null; + sqlSegment = EMPTY; + cacheSqlSegment = true; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/ColumnSegment.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/ColumnSegment.java new file mode 100644 index 0000000..8cce130 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/ColumnSegment.java @@ -0,0 +1,26 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; + +/** + * @author JX + * @create 2024-03-26 10:03 + * @dedescription: + */ +@FunctionalInterface +public interface ColumnSegment extends ISqlSegment { +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/GroupBySegmentList.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/GroupBySegmentList.java new file mode 100644 index 0000000..33d7a5a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/GroupBySegmentList.java @@ -0,0 +1,46 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.List; + +import static java.util.stream.Collectors.joining; + +/** + * @author JX + * @create 2024-03-26 10:10 + * @dedescription: + */ +public class GroupBySegmentList extends AbstractISegmentList { + + @Override + protected boolean transformList(List list, ISqlSegment firstSegment, ISqlSegment lastSegment) { + list.remove(0); + return true; + } + + @Override + protected String childrenSqlSegment() { + if (isEmpty()) { + return StringPool.EMPTY; + } + return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.COMMA, StringPool.SPACE + SqlKeyword.GROUP_BY.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY)); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/HavingSegmentList.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/HavingSegmentList.java new file mode 100644 index 0000000..8a2947d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/HavingSegmentList.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.List; + +import static java.util.stream.Collectors.joining; + +/** + * @author JX + * @create 2024-03-26 10:13 + * @dedescription: + */ +public class HavingSegmentList extends AbstractISegmentList { + + @Override + protected boolean transformList(List list, ISqlSegment firstSegment, ISqlSegment lastSegment) { + if (!isEmpty()) { + this.add(SqlKeyword.AND); + } + list.remove(0); + return true; + } + + @Override + protected String childrenSqlSegment() { + if (isEmpty()) { + return StringPool.EMPTY; + } + return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.SPACE, StringPool.SPACE + SqlKeyword.HAVING.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY)); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MatchSegment.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MatchSegment.java new file mode 100644 index 0000000..ba1d101 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MatchSegment.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.enums.WrapperKeyword; + + +import java.util.function.Predicate; + +/** + * @author JX + * @create 2024-03-26 10:07 + * @dedescription: + */ +public enum MatchSegment { + GROUP_BY(i -> i == SqlKeyword.GROUP_BY), + ORDER_BY(i -> i == SqlKeyword.ORDER_BY), + NOT(i -> i == SqlKeyword.NOT), + AND(i -> i == SqlKeyword.AND), + OR(i -> i == SqlKeyword.OR), + AND_OR(i -> i == SqlKeyword.AND || i == SqlKeyword.OR), + EXISTS(i -> i == SqlKeyword.EXISTS), + HAVING(i -> i == SqlKeyword.HAVING), + APPLY(i -> i == WrapperKeyword.APPLY); + + private final Predicate predicate; + + public boolean match(ISqlSegment segment) { + return getPredicate().test(segment); + } + + MatchSegment(Predicate predicate) { + this.predicate = predicate; + } + + public Predicate getPredicate() { + return predicate; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MergeSegments.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MergeSegments.java new file mode 100644 index 0000000..1ceb907 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/MergeSegments.java @@ -0,0 +1,112 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.Arrays; +import java.util.List; + +/** + * @author JX + * @create 2024-03-26 10:09 + * @dedescription: + */ +public class MergeSegments implements ISqlSegment { + + private final NormalSegmentList normal = new NormalSegmentList(); + private final GroupBySegmentList groupBy = new GroupBySegmentList(); + private final HavingSegmentList having = new HavingSegmentList(); + private final OrderBySegmentList orderBy = new OrderBySegmentList(); + + + private String sqlSegment = StringPool.EMPTY; + + private boolean cacheSqlSegment = true; + + public void add(ISqlSegment... iSqlSegments) { + List list = Arrays.asList(iSqlSegments); + ISqlSegment firstSqlSegment = list.get(0); + if (MatchSegment.ORDER_BY.match(firstSqlSegment)) { + orderBy.addAll(list); + } else if (MatchSegment.GROUP_BY.match(firstSqlSegment)) { + groupBy.addAll(list); + } else if (MatchSegment.HAVING.match(firstSqlSegment)) { + having.addAll(list); + } else { + normal.addAll(list); + } + cacheSqlSegment = false; + } + + @Override + public String getSqlSegment() { + if (cacheSqlSegment) { + return sqlSegment; + } + cacheSqlSegment = true; + if (normal.isEmpty()) { + if (!groupBy.isEmpty() || !orderBy.isEmpty()) { + sqlSegment = groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment(); + } + } else { + sqlSegment = normal.getSqlSegment() + groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment(); + } + return sqlSegment; + } + + /** + * 清理 + * + * @since 3.3.1 + */ + public void clear() { + sqlSegment = StringPool.EMPTY; + cacheSqlSegment = true; + normal.clear(); + groupBy.clear(); + having.clear(); + orderBy.clear(); + } + + public NormalSegmentList getNormal() { + return normal; + } + + public GroupBySegmentList getGroupBy() { + return groupBy; + } + + public HavingSegmentList getHaving() { + return having; + } + + public OrderBySegmentList getOrderBy() { + return orderBy; + } + + public void setSqlSegment(String sqlSegment) { + this.sqlSegment = sqlSegment; + } + + public boolean isCacheSqlSegment() { + return cacheSqlSegment; + } + + public void setCacheSqlSegment(boolean cacheSqlSegment) { + this.cacheSqlSegment = cacheSqlSegment; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/NormalSegmentList.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/NormalSegmentList.java new file mode 100644 index 0000000..139ff73 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/NormalSegmentList.java @@ -0,0 +1,98 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author JX + * @create 2024-03-26 10:06 + * @dedescription: + */ +public class NormalSegmentList extends AbstractISegmentList { + + /** + * 是否处理了的上个 not + */ + private boolean executeNot = true; + + public NormalSegmentList() { + this.flushLastValue = true; + } + + @Override + protected boolean transformList(List list, ISqlSegment firstSegment, ISqlSegment lastSegment) { + if (list.size() == 1) { + /* 只有 and() 以及 or() 以及 not() 会进入 */ + if (!MatchSegment.NOT.match(firstSegment)) { + //不是 not + if (isEmpty()) { + //sqlSegment是 and 或者 or 并且在第一位,不继续执行 + return false; + } + boolean matchLastAnd = MatchSegment.AND.match(lastValue); + boolean matchLastOr = MatchSegment.OR.match(lastValue); + if (matchLastAnd || matchLastOr) { + //上次最后一个值是 and 或者 or + if (matchLastAnd && MatchSegment.AND.match(firstSegment)) { + return false; + } else if (matchLastOr && MatchSegment.OR.match(firstSegment)) { + return false; + } else { + //和上次的不一样 + removeAndFlushLast(); + } + } + } else { + executeNot = false; + return false; + } + } else { + if (MatchSegment.APPLY.match(firstSegment)) { + list.remove(0); + } + if (!MatchSegment.AND_OR.match(lastValue) && !isEmpty()) { + add(SqlKeyword.AND); + } + if (!executeNot) { + list.add(0, SqlKeyword.NOT); + executeNot = true; + } + } + return true; + } + + @Override + protected String childrenSqlSegment() { + if (MatchSegment.AND_OR.match(lastValue)) { + removeAndFlushLast(); + } + final String str = this.stream().map(ISqlSegment::getSqlSegment).collect(Collectors.joining(StringPool.SPACE)); + return (StringPool.LEFT_BRACKET + str + StringPool.RIGHT_BRACKET); + } + + @Override + public void clear() { + super.clear(); + flushLastValue = true; + executeNot = true; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/OrderBySegmentList.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/OrderBySegmentList.java new file mode 100644 index 0000000..5fee996 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/conditions/segments/OrderBySegmentList.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.conditions.segments; + + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.enums.SqlKeyword; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +import java.util.ArrayList; +import java.util.List; + +import static java.util.stream.Collectors.joining; + +/** + * @author JX + * @create 2024-03-26 10:14 + * @dedescription: + */ +public class OrderBySegmentList extends AbstractISegmentList { + + @Override + protected boolean transformList(List list, ISqlSegment firstSegment, ISqlSegment lastSegment) { + list.remove(0); + final List sqlSegmentList = new ArrayList<>(list); + list.clear(); + list.add(() -> sqlSegmentList.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.SPACE))); + return true; + } + + @Override + protected String childrenSqlSegment() { + if (isEmpty()) { + return StringPool.EMPTY; + } + return this.stream().map(ISqlSegment::getSqlSegment).collect(joining(StringPool.COMMA, StringPool.SPACE + SqlKeyword.ORDER_BY.getSqlSegment() + StringPool.SPACE, StringPool.EMPTY)); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/alter/JeeLowCodeAlterTable.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/alter/JeeLowCodeAlterTable.java new file mode 100644 index 0000000..9a0a117 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/alter/JeeLowCodeAlterTable.java @@ -0,0 +1,192 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.ddl.alter; + +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.alter.Alter; +import net.sf.jsqlparser.statement.alter.AlterExpression; +import net.sf.jsqlparser.statement.alter.AlterOperation; +import net.sf.jsqlparser.statement.create.table.ColDataType; +import net.sf.jsqlparser.statement.create.table.ColumnDefinition; +import net.sf.jsqlparser.statement.create.table.Index; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author JX + * @create 2024-03-27 13:38 + * @dedescription: + */ +public class JeeLowCodeAlterTable { + + private String tableName; + + private AlterOperation alterOperation; + + private List indices = new ArrayList<>(); + + private List columnDefinitions = new ArrayList<>(); + + private List expressions = new ArrayList<>(); + + private Alter alter ; + + + public void setTableName(String tableName){ + this.tableName = tableName; + alter = new Alter(); + alter.setTable(new Table(tableName)); + } + + public void setAlterOperation(AlterOperation alterOperation){ + this.alterOperation = alterOperation; + } + + /** + * 新增字段 + * @param columnName + * @param dataType + * @param specs + */ + public void addCoulumn(String columnName, String dataType,String... specs){ + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setOperation(AlterOperation.ADD); + AlterExpression.ColumnDataType columnDataType = new AlterExpression.ColumnDataType(columnName,false,new ColDataType(dataType),Arrays.asList(specs)); + alterExpression.addColDataType(columnDataType); + expressions.add(alterExpression); + } + + public void addIndex(String indexName, String... columns){ + Index index = new Index(); + index.setName(indexName); + index.setColumnsNames(Arrays.asList(columns)); + index.setType("index"); + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setOperation(AlterOperation.ADD); + alterExpression.setIndex(index); + expressions.add(alterExpression); + } + + public void dropColumn(String columnName){ + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setOperation(AlterOperation.DROP); + alterExpression.setColumnName(columnName); + expressions.add(alterExpression); + } + + public void dropIndex(String indexName){ + Index index = new Index(); + index.setName(indexName); + index.setType("index"); + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setIndex(index); + alterExpression.setOperation(AlterOperation.DROP); + expressions.add(alterExpression); + } + + public void alterColumn(String columnName, String dataType, AlterOperation alterOperation,String... specs){ + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setColumnName(columnName); + AlterExpression.ColumnDataType columnDataType = new AlterExpression.ColumnDataType(false); + columnDataType.setColumnName(columnName); + columnDataType.setColDataType(new ColDataType(dataType)); + columnDataType.setColumnSpecs(Arrays.asList(specs)); + alterExpression.addColDataType(columnDataType); + alterExpression.setOperation(alterOperation); + expressions.add(alterExpression); + } + + + //字段属性 + public void modifyColumn(String columnName, String dateType , String... specs){ + AlterExpression.ColumnDataType columnDataType = new AlterExpression.ColumnDataType(false); + columnDataType.setColumnName(columnName); + columnDataType.setColDataType(new ColDataType(dateType)); + columnDataType.setColumnSpecs(Arrays.asList(specs)); + AlterExpression alterExpression = new AlterExpression(); + alterExpression.addColDataType(columnDataType); + alterExpression.setOperation(AlterOperation.MODIFY); + expressions.add(alterExpression); + } + + //字段改变 + public void change(String oldName, String newName, String dataType, String... specs){ + AlterExpression.ColumnDataType columnDataType = new AlterExpression.ColumnDataType(false); + columnDataType.setColumnName(newName); + columnDataType.setColumnSpecs(Arrays.asList(specs)); + columnDataType.setColDataType(new ColDataType(dataType)); + AlterExpression alterExpression = new AlterExpression(); + alterExpression.setColumnOldName(oldName); + alterExpression.setOperation(AlterOperation.CHANGE); + alterExpression.addColDataType(columnDataType); + expressions.add(alterExpression); + } + + + public String getFullSQL(){ + alter.setAlterExpressions(expressions); + return alter.toString(); + } + + @Test + public void dropTable(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.setAlterOperation(AlterOperation.DROP); + System.out.println(alterTable.getFullSQL()); + } + + @Test + public void addCoulumn(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.setAlterOperation(AlterOperation.ALTER); + alterTable.addCoulumn("name","varchar(20)","not null","COMMENT '姓名'"); + System.out.println(alterTable.getFullSQL()); + } + @Test + public void test_modifyCoulumn(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.modifyColumn("name","varchar(20)","not null","COMMENT '姓名'"); + System.out.println(alterTable.getFullSQL()); + } + + @Test + public void test_dropColumn(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.dropColumn("name"); + System.out.println(alterTable.getFullSQL()); + } + + @Test + public void test_addIndex(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.addIndex("ind_name1","id","name"); + System.out.println(alterTable.getFullSQL()); + } + + @Test + public void test_dropIndex(){ + JeeLowCodeAlterTable alterTable=new JeeLowCodeAlterTable(); + alterTable.setTableName("tbl_lin2"); + alterTable.dropIndex("ind_name1"); + System.out.println(alterTable.getFullSQL()); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/create/JeeLowCodeCreateTable.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/create/JeeLowCodeCreateTable.java new file mode 100644 index 0000000..c7f380f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/create/JeeLowCodeCreateTable.java @@ -0,0 +1,85 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.ddl.create; + + +import com.jeelowcode.framework.utils.utils.FuncBase; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.create.table.ColDataType; +import net.sf.jsqlparser.statement.create.table.ColumnDefinition; +import net.sf.jsqlparser.statement.create.table.CreateTable; +import net.sf.jsqlparser.statement.create.table.Index; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author JX + * @create 2024-03-27 10:40 + * @dedescription: + */ +public class JeeLowCodeCreateTable { + + //表名 + private String tableName; + + //别名 + private List tableOptions; + + //字段 + private List columnDefinitions=new ArrayList<>(); + + //索引 + private List indices = new ArrayList<>(); + + public void setTableName(String tableName){ + this.tableName = tableName; + } + + public void setTableOptions(List tableOptions) { + this.tableOptions = tableOptions; + } + + + + public void addCoulumn(String columnName, String dataType, String... specs){ + ColumnDefinition columnDefinition = new ColumnDefinition(columnName,new ColDataType(dataType)); + if (!FuncBase.isEmpty(specs)){ + columnDefinition.addColumnSpecs(specs); + } + this.columnDefinitions.add(columnDefinition); + } + + + public String getDDL(){ + CreateTable createTable = new CreateTable(); + createTable.setTable(new Table(tableName)); + createTable.setTableOptionsStrings(tableOptions); + createTable.setColumnDefinitions(columnDefinitions); + createTable.setIndexes(indices); + return createTable.toString(); + } + + + + @Test + public void testCreate(){ + JeeLowCodeCreateTable createTable=new JeeLowCodeCreateTable(); + createTable.setTableName("tbl_lin2"); + createTable.addCoulumn("id","varchar(12)","PRIMARY KEY","COMMENT 'id'","not null"); + createTable.addCoulumn("name","varchar(20)","not null","COMMENT '姓名'"); + System.out.println(createTable.getDDL()); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/drop/JeeLowCodeDropTable.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/drop/JeeLowCodeDropTable.java new file mode 100644 index 0000000..37d4aa0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/ddl/drop/JeeLowCodeDropTable.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.ddl.drop; + +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.drop.Drop; +import org.junit.Test; + +/** + * 删除表 + * @author JX + * @create 2024-03-27 13:38 + * @dedescription: + */ +public class JeeLowCodeDropTable { + + private String tableName; + + private Drop drop ; + + public void setTableName(String tableName){ + this.tableName = tableName; + drop = new Drop(); + drop.setName(new Table(tableName)); + drop.setType("TABLE"); + } + + + public String getFullSQL(){ + return drop.toString(); + } + + @Test + public void dropTable(){ + JeeLowCodeDropTable dropTable=new JeeLowCodeDropTable(); + dropTable.setTableName("tbl_lin2"); + // alterTable.setAlterOperation(AlterOperation.); + System.out.println(dropTable.getFullSQL()); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/delete/JeeLowCodeDeleteWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/delete/JeeLowCodeDeleteWrapper.java new file mode 100644 index 0000000..23d50f1 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/delete/JeeLowCodeDeleteWrapper.java @@ -0,0 +1,68 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.delete; + + +import com.jeelowcode.framework.plus.core.conditions.AbstractWrapper; +import com.jeelowcode.framework.plus.core.conditions.SharedString; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; + +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author JX + * @create 2024-03-27 17:46 + * @dedescription: + */ +public class JeeLowCodeDeleteWrapper extends AbstractWrapper> { + + + + public JeeLowCodeDeleteWrapper() { + this((T) null); + } + + public JeeLowCodeDeleteWrapper(T entity) { + super.setEntity(entity); + super.initNeed(); + } + + + public JeeLowCodeDeleteWrapper(AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, + SharedString lastSql, SharedString sqlComment){ + this.paramNameSeq = paramNameSeq; + this.paramNameValuePairs = paramNameValuePairs; + this.paramAlias = paramAlias; + this.lastSql = lastSql; + this.sqlComment = sqlComment; + this.expression = new MergeSegments(); + } + + + + @Override + protected JeeLowCodeDeleteWrapper instance() { + return new JeeLowCodeDeleteWrapper( paramNameSeq , paramNameValuePairs , expression , paramAlias , SharedString.emptyString() , SharedString.emptyString()); + } + + + public void orderby(){ + return; + } + + public void groupBy(){ + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/insert/JeeLowCodeInsertWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/insert/JeeLowCodeInsertWrapper.java new file mode 100644 index 0000000..71a408e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/insert/JeeLowCodeInsertWrapper.java @@ -0,0 +1,107 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.insert; + + + +import com.jeelowcode.framework.plus.core.conditions.AbstractWrapper; +import com.jeelowcode.framework.plus.core.conditions.SharedString; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.dql.update.Update; +import com.jeelowcode.framework.plus.core.toolkit.CollectionUtils; +import com.jeelowcode.framework.plus.core.toolkit.Constants; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; + + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author JX + * @create 2024-03-27 17:47 + * @dedescription: + */ +public class JeeLowCodeInsertWrapper extends AbstractWrapper> + implements Update, String> { + private final List sqlSet; + + + public JeeLowCodeInsertWrapper() { + // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常 + this(null); + } + + public JeeLowCodeInsertWrapper(T entity) { + super.setEntity(entity); + super.initNeed(); + this.sqlSet = new ArrayList<>(); + } + + private JeeLowCodeInsertWrapper(T entity, List sqlSet, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + super.setEntity(entity); + this.sqlSet = sqlSet; + this.paramNameSeq = paramNameSeq; + this.paramNameValuePairs = paramNameValuePairs; + this.expression = mergeSegments; + this.paramAlias = paramAlias; + this.lastSql = lastSql; + this.sqlComment = sqlComment; + this.sqlFirst = sqlFirst; + } + + + + @Override + public String getSqlSet() { + if (CollectionUtils.isEmpty(sqlSet)) { + return null; + } + return String.join(Constants.COMMA, sqlSet); + } + + @Override + public JeeLowCodeInsertWrapper set(boolean condition, String column, Object val, String mapping) { + return maybeDo(condition, () -> { + String sql = formatParam(mapping, val); + sqlSet.add(column + Constants.EQUALS + sql); + }); + } + + @Override + public JeeLowCodeInsertWrapper setSql(boolean condition, String setSql, Object... params) { + if (condition && StringUtils.isNotBlank(setSql)) { + sqlSet.add(formatSqlMaybeWithParam(setSql, params)); + } + return typedThis; + } + + + @Override + protected JeeLowCodeInsertWrapper instance() { + return new JeeLowCodeInsertWrapper<>(getEntity(), null, paramNameSeq, paramNameValuePairs, new MergeSegments(), + paramAlias, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); + } + + @Override + public void clear() { + super.clear(); + sqlSet.clear(); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/JeeLowCodeQueryWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/JeeLowCodeQueryWrapper.java new file mode 100644 index 0000000..b36b2f6 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/JeeLowCodeQueryWrapper.java @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.select; + + + +import com.jeelowcode.framework.plus.core.conditions.AbstractWrapper; +import com.jeelowcode.framework.plus.core.conditions.SharedString; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.exceptions.JeelowcodeSqlException; +import com.jeelowcode.framework.plus.core.toolkit.CollectionUtils; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; +import com.jeelowcode.framework.plus.core.toolkit.sql.SqlInjectionUtils; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Entity 对象封装操作类 + * + * @author hubin miemie HCL + * @since 2018-05-25 + */ +public class JeeLowCodeQueryWrapper extends AbstractWrapper> + implements Query, T, String> { + + /** + * 查询字段 + */ + protected final SharedString sqlSelect = new SharedString(); + + + + public JeeLowCodeQueryWrapper() { + this((T) null); + } + + public JeeLowCodeQueryWrapper(T entity) { + super.setEntity(entity); + super.initNeed(); + } + + public JeeLowCodeQueryWrapper(Class entityClass) { + super.setEntityClass(entityClass); + super.initNeed(); + } + + public JeeLowCodeQueryWrapper(T entity, String... columns) { + super.setEntity(entity); + super.initNeed(); + this.select(Arrays.asList(columns)); + } + + /** + * 非对外公开的构造方法,只用于生产嵌套 sql + * + * @param entityClass 本不应该需要的 + */ + private JeeLowCodeQueryWrapper(T entity, Class entityClass, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + super.setEntity(entity); + super.setEntityClass(entityClass); + this.paramNameSeq = paramNameSeq; + this.paramNameValuePairs = paramNameValuePairs; + this.expression = mergeSegments; + this.paramAlias = paramAlias; + this.lastSql = lastSql; + this.sqlComment = sqlComment; + this.sqlFirst = sqlFirst; + } + + private JeeLowCodeQueryWrapper(T entity, Class entityClass, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst, String tableName) { + super.setEntity(entity); + super.setEntityClass(entityClass); + this.paramNameSeq = paramNameSeq; + this.paramNameValuePairs = paramNameValuePairs; + this.expression = mergeSegments; + this.paramAlias = paramAlias; + this.lastSql = lastSql; + this.sqlComment = sqlComment; + this.sqlFirst = sqlFirst; + } + + /** + * 检查 SQL 注入过滤 + */ + private boolean checkSqlInjection; + + /** + * 开启检查 SQL 注入 + */ + public JeeLowCodeQueryWrapper checkSqlInjection() { + this.checkSqlInjection = true; + return this; + } + + @Override + protected String columnToString(String column) { + if (checkSqlInjection && SqlInjectionUtils.check(column)) { + throw new JeelowcodeSqlException("Discovering SQL injection column: " + column); + } + return column; + } + + @Override + public JeeLowCodeQueryWrapper select(boolean condition, List columns) { + if (condition && CollectionUtils.isNotEmpty(columns)) { + this.sqlSelect.setStringValue(String.join(StringPool.COMMA, columns)); + } + return typedThis; + } + + + + @Override + public String getSqlSelect() { + return sqlSelect.getStringValue(); + } + + + /** + * 用于生成嵌套 sql + *

    + * 故 sqlSelect 不向下传递 + *

    + */ + @Override + protected JeeLowCodeQueryWrapper instance() { + return new JeeLowCodeQueryWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs, new MergeSegments(), + paramAlias, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); + } + + @Override + public void clear() { + super.clear(); + sqlSelect.toNull(); + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/Query.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/Query.java new file mode 100644 index 0000000..f7cd5dc --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/select/Query.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.select; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +/** + * @author miemie + * @since 2018-12-12 + */ +public interface Query extends Serializable { + + /** + * 指定查询字段 + * + * @param columns 字段列表 + * @return children + */ + @SuppressWarnings("unchecked") + default Children select(R... columns) { + return select(true, columns); + } + + /** + * 指定查询字段 + * + * @param condition 执行条件 + * @param columns 字段列表 + * @return children + */ + @SuppressWarnings("unchecked") + default Children select(boolean condition, R... columns) { + return select(condition, Arrays.asList(columns)); + } + + /** + * 指定查询字段 + * + * @param columns 字段列表 + * @return children + */ + default Children select(List columns) { + return select(true, columns); + } + + /** + * 指定查询字段 + * + * @param condition 执行条件 + * @param columns 字段列表 + * @return children + */ + Children select(boolean condition, List columns); + + /** + * 过滤查询的字段信息(主键除外!) + *

    注意只有内部有 entity 才能使用该方法

    + */ +// default Children select(Predicate predicate) { +// return select(null, predicate); +// } + + /** + * 过滤查询的字段信息(主键除外!) + *

    例1: 只要 java 字段名以 "test" 开头的 -> select(i -> i.getProperty().startsWith("test"))

    + *

    例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence)

    + *

    例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT)

    + *

    例4: 要全部字段 -> select(i -> true)

    + *

    例5: 只要主键字段 -> select(i -> false)

    + * + * @param predicate 过滤方式 + * @return children + */ +// Children select(Class entityClass, Predicate predicate); + + /** + * 查询条件 SQL 片段 + */ + String getSqlSelect(); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/JeeLowCodeUpdateWrapper.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/JeeLowCodeUpdateWrapper.java new file mode 100644 index 0000000..0da3b03 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/JeeLowCodeUpdateWrapper.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.update; + + + +import com.jeelowcode.framework.plus.core.conditions.AbstractWrapper; +import com.jeelowcode.framework.plus.core.conditions.SharedString; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.toolkit.CollectionUtils; +import com.jeelowcode.framework.plus.core.toolkit.Constants; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Update 条件封装 + * + * @author hubin miemie HCL + * @since 2018-05-30 + */ +public class JeeLowCodeUpdateWrapper extends AbstractWrapper> + implements Update, String> { + + /** + * SQL 更新字段内容,例如:name='1', age=2 + */ + private final List sqlSet; + + + public JeeLowCodeUpdateWrapper() { + // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常 + this(null); + } + + public JeeLowCodeUpdateWrapper(T entity) { + super.setEntity(entity); + super.initNeed(); + this.sqlSet = new ArrayList<>(); + } + + private JeeLowCodeUpdateWrapper(T entity, List sqlSet, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + super.setEntity(entity); + this.sqlSet = sqlSet; + this.paramNameSeq = paramNameSeq; + this.paramNameValuePairs = paramNameValuePairs; + this.expression = mergeSegments; + this.paramAlias = paramAlias; + this.lastSql = lastSql; + this.sqlComment = sqlComment; + this.sqlFirst = sqlFirst; + } + + + + @Override + public String getSqlSet() { + if (CollectionUtils.isEmpty(sqlSet)) { + return null; + } + return String.join(Constants.COMMA, sqlSet); + } + + @Override + public JeeLowCodeUpdateWrapper set(boolean condition, String column, Object val, String mapping) { + return maybeDo(condition, () -> { + String sql = formatParam(mapping, val); + sqlSet.add(column + Constants.EQUALS + sql); + }); + } + + @Override + public JeeLowCodeUpdateWrapper setSql(boolean condition, String setSql, Object... params) { + if (condition && StringUtils.isNotBlank(setSql)) { + sqlSet.add(formatSqlMaybeWithParam(setSql, params)); + } + return typedThis; + } + + + @Override + protected JeeLowCodeUpdateWrapper instance() { + return new JeeLowCodeUpdateWrapper<>(getEntity(), null, paramNameSeq, paramNameValuePairs, new MergeSegments(), + paramAlias, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); + } + + @Override + public void clear() { + super.clear(); + sqlSet.clear(); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/Update.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/Update.java new file mode 100644 index 0000000..d3f280d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/dql/update/Update.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.dql.update; + +import java.io.Serializable; + +/** + * @author miemie + * @since 2018-12-12 + */ +public interface Update extends Serializable { + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param column 字段 + * @param val 值 + * @return children + */ + default Children set(R column, Object val) { + return set(true, column, val); + } + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param condition 是否加入 set + * @param column 字段 + * @param val 值 + * @return children + */ + default Children set(boolean condition, R column, Object val) { + return set(condition, column, val, null); + } + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param column 字段 + * @param val 值 + * @param mapping 例: javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler + * @return children + */ + default Children set(R column, Object val, String mapping) { + return set(true, column, val, mapping); + } + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param condition 是否加入 set + * @param column 字段 + * @param val 值 + * @param mapping 例: javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler + * @return children + */ + Children set(boolean condition, R column, Object val, String mapping); + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param setSql set sql + * 例1: setSql("id=1") + * 例2: apply("dateColumn={0}", LocalDate.now()) + * 例3: apply("dateColumn={0}", LocalDate.now()) + * 例4: apply("name={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}", "老王") + * @return children + */ + default Children setSql(String setSql, Object... params) { + return setSql(true, setSql, params); + } + + /** + * 设置 更新 SQL 的 SET 片段 + * + * @param condition 执行条件 + * @param setSql set sql + * 例1: setSql("id=1") + * 例2: apply("dateColumn={0}", LocalDate.now()) + * 例3: apply("dateColumn={0}", LocalDate.now()) + * 例4: apply("name={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}", "老王") + * @return children + */ + Children setSql(boolean condition, String setSql, Object... params); + + /** + * 获取 更新 SQL 的 SET 片段 + */ + String getSqlSet(); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlKeyword.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlKeyword.java new file mode 100644 index 0000000..3d3a376 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlKeyword.java @@ -0,0 +1,66 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.enums; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; + +/** + * @author JX + * @create 2024-03-26 10:01 + * @dedescription: + */ +public enum SqlKeyword implements ISqlSegment { + AND("AND"), + OR("OR"), + NOT("NOT"), + IN("IN"), + NOT_IN("NOT IN"), + LIKE("LIKE"), + NOT_LIKE("NOT LIKE"), + EQ(StringPool.EQUALS), + NE("<>"), + GT(StringPool.RIGHT_CHEV), + GE(">="), + LT(StringPool.LEFT_CHEV), + LE("<="), + IS_NULL("IS NULL"), + IS_NOT_NULL("IS NOT NULL"), + GROUP_BY("GROUP BY"), + HAVING("HAVING"), + ORDER_BY("ORDER BY"), + EXISTS("EXISTS"), + NOT_EXISTS("NOT EXISTS"), + BETWEEN("BETWEEN"), + NOT_BETWEEN("NOT BETWEEN"), + ASC("ASC"), + DESC("DESC"); + + private final String keyword; + + @Override + public String getSqlSegment() { + return this.keyword; + } + + SqlKeyword(String keyword) { + this.keyword = keyword; + } + + public String getKeyword() { + return keyword; + } +} + diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlLike.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlLike.java new file mode 100644 index 0000000..d70f614 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/SqlLike.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.enums; + +/** + * SQL like 枚举 + * + * @author Caratacus + * @since 2016-12-4 + */ +public enum SqlLike { + /** + * %值 + */ + LEFT, + /** + * 值% + */ + RIGHT, + /** + * %值% + */ + DEFAULT +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/WrapperKeyword.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/WrapperKeyword.java new file mode 100644 index 0000000..9af67f5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/enums/WrapperKeyword.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.enums; + + +import com.jeelowcode.framework.plus.core.conditions.ISqlSegment; + +/** + * @author JX + * @create 2024-03-26 10:08 + * @dedescription: + */ +public enum WrapperKeyword implements ISqlSegment { + /** + * 只用作于辨识,不用于其他 + */ + APPLY(null); + + private final String keyword; + + @Override + public String getSqlSegment() { + return keyword; + } + + public String getKeyword() { + return keyword; + } + + WrapperKeyword(String keyword) { + this.keyword = keyword; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/exceptions/JeelowcodeSqlException.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/exceptions/JeelowcodeSqlException.java new file mode 100644 index 0000000..fdf7228 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/exceptions/JeelowcodeSqlException.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.exceptions; + +/** + * MybatisPlus 异常类 + * + * @author hubin + * @since 2016-01-23 + */ +public class JeelowcodeSqlException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public JeelowcodeSqlException(String message) { + super(message); + } + + public JeelowcodeSqlException(Throwable throwable) { + super(throwable); + } + + public JeelowcodeSqlException(String message, Throwable throwable) { + super(message, throwable); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/OrderByModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/OrderByModel.java new file mode 100644 index 0000000..7c26ae5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/OrderByModel.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.model; + +public class OrderByModel { + /** + * 默认排序字段 + */ + private String column; + + /** + * 默认排序类型 + */ + private String order; + + public String getColumn() { + return column; + } + + public void setColumn(String column) { + this.column = column; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/SqlFormatModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/SqlFormatModel.java new file mode 100644 index 0000000..8a32d82 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/SqlFormatModel.java @@ -0,0 +1,51 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.model; + +import java.util.Map; + +public class SqlFormatModel { + private String sql; + private Map dataMap; + + public SqlFormatModel() { + } + + public SqlFormatModel(String sql, Map dataMap) { + this.sql = sql; + this.dataMap = dataMap; + } + + public SqlFormatModel(String sql) { + this.sql = sql; + } + + + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public Map getDataMap() { + return dataMap; + } + + public void setDataMap(Map dataMap) { + this.dataMap = dataMap; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/TableFieldModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/TableFieldModel.java new file mode 100644 index 0000000..d314848 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/TableFieldModel.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.model; + +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; + +/** + * 创建表-字段 + */ +public class TableFieldModel { + String fieldCode; + JeeLowCodeFieldTypeEnum fieldType;//字段类型 + String defaultValSql; + + public String getFieldCode() { + return fieldCode; + } + + public void setFieldCode(String fieldCode) { + this.fieldCode = fieldCode; + } + + public JeeLowCodeFieldTypeEnum getFieldType() { + return fieldType; + } + + public void setFieldType(JeeLowCodeFieldTypeEnum fieldType) { + this.fieldType = fieldType; + } + + public String getDefaultValSql() { + return defaultValSql; + } + + public void setDefaultValSql(String defaultValSql) { + this.defaultValSql = defaultValSql; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/WhereModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/WhereModel.java new file mode 100644 index 0000000..68c8ae7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/model/WhereModel.java @@ -0,0 +1,29 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.model; + +import java.util.List; + +public class WhereModel { + + private List whereList; + + public List getWhereList() { + return whereList; + } + + public void setWhereList(List whereList) { + this.whereList = whereList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Assert.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Assert.java new file mode 100644 index 0000000..ec7aab5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Assert.java @@ -0,0 +1,128 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Collection; +import java.util.Map; + +/** + * @author JX + * @create 2024-03-26 10:26 + * @dedescription: + */ +public final class Assert { + + /** + * 断言这个 boolean 为 true + *

    为 false 则抛出异常

    + * + * @param expression boolean 值 + * @param message 消息 + */ + public static void isTrue(boolean expression, String message, Object... params) { + if (!expression) { + throw ExceptionUtils.mpe(message, params); + } + } + + /** + * 断言这个 boolean 为 false + *

    为 true 则抛出异常

    + * + * @param expression boolean 值 + * @param message 消息 + */ + public static void isFalse(boolean expression, String message, Object... params) { + isTrue(!expression, message, params); + } + + /** + * 断言这个 object 为 null + *

    不为 null 则抛异常

    + * + * @param object 对象 + * @param message 消息 + */ + public static void isNull(Object object, String message, Object... params) { + isTrue(object == null, message, params); + } + + /** + * 断言这个 object 不为 null + *

    为 null 则抛异常

    + * + * @param object 对象 + * @param message 消息 + */ + public static void notNull(Object object, String message, Object... params) { + isTrue(object != null, message, params); + } + + /** + * 断言这个 value 不为 empty + *

    为 empty 则抛异常

    + * + * @param value 字符串 + * @param message 消息 + */ + public static void notEmpty(String value, String message, Object... params) { + isTrue(StringUtils.isNotBlank(value), message, params); + } + + /** + * 断言这个 collection 不为 empty + *

    为 empty 则抛异常

    + * + * @param collection 集合 + * @param message 消息 + */ + public static void notEmpty(Collection collection, String message, Object... params) { + isTrue(CollectionUtils.isNotEmpty(collection), message, params); + } + + /** + * 断言这个 map 不为 empty + *

    为 empty 则抛异常

    + * + * @param map 集合 + * @param message 消息 + */ + public static void notEmpty(Map map, String message, Object... params) { + isTrue(CollectionUtils.isNotEmpty(map), message, params); + } + + /** + * 断言这个 map 为 empty + *

    为 empty 则抛异常

    + * + * @param map 集合 + * @param message 消息 + */ + public static void isEmpty(Map map, String message, Object... params) { + isTrue(CollectionUtils.isEmpty(map), message, params); + } + + /** + * 断言这个 数组 不为 empty + *

    为 empty 则抛异常

    + * + * @param array 数组 + * @param message 消息 + */ + public static void notEmpty(Object[] array, String message, Object... params) { + isTrue(FuncBase.isNotEmpty(array), message, params); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/CollectionUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/CollectionUtils.java new file mode 100644 index 0000000..4034a87 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/CollectionUtils.java @@ -0,0 +1,238 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + +import java.util.*; +import java.util.function.Function; + +/** + * Collection工具类 + * + * @author Caratacus + * @since 2016-09-19 + */ +public class CollectionUtils { + + private static final int MAX_POWER_OF_TWO = 1 << (Integer.SIZE - 2); + + private static boolean isJdk8; + + static { + // Java 8 + // Java 9+: 9,11,17 + try { + isJdk8 = System.getProperty("java.version").startsWith("1.8."); + } catch (Exception ignore) { + isJdk8 = true; + } + } + + /** + * 校验集合是否为空 + * + * @param coll 入参 + * @return boolean + */ + public static boolean isEmpty(Collection coll) { + return (coll == null || coll.isEmpty()); + } + + /** + * 校验集合是否不为空 + * + * @param coll 入参 + * @return boolean + */ + public static boolean isNotEmpty(Collection coll) { + return !isEmpty(coll); + } + + /** + * 判断Map是否为空 + * + * @param map 入参 + * @return boolean + */ + public static boolean isEmpty(Map map) { + return (map == null || map.isEmpty()); + } + + /** + * 判断Map是否不为空 + * + * @param map 入参 + * @return boolean + */ + public static boolean isNotEmpty(Map map) { + return !isEmpty(map); + } + + /** + * 创建默认HashMap + * + * @param K + * @param V + * @return HashMap + * @see com.google.common.collect.Maps#newHashMap() + * @since 3.4.0 + */ + public static HashMap newHashMap() { + return new HashMap<>(); + } + + /** + * 根据预期大小创建HashMap. + * + * @param expectedSize 预期大小 + * @param K + * @param V + * @return HashMap + * @see com.google.common.collect.Maps#newHashMapWithExpectedSize + * @since 3.4.0 + */ + public static HashMap newHashMapWithExpectedSize(int expectedSize) { + return new HashMap<>(capacity(expectedSize)); + } + + /** + * 用来过渡下Jdk1.8下ConcurrentHashMap的性能bug + * https://bugs.openjdk.java.net/browse/JDK-8161372 + * + * A temporary workaround for Java 8 ConcurrentHashMap#computeIfAbsent specific performance issue: JDK-8161372.
    + * @see https://bugs.openjdk.java.net/browse/JDK-8161372 + * + * @param concurrentHashMap ConcurrentHashMap 没限制类型了,非ConcurrentHashMap就别调用这方法了 + * @param key key + * @param mappingFunction function + * @param k + * @param v + * @return V + * @since 3.4.0 + */ + public static V computeIfAbsent(Map concurrentHashMap, K key, Function mappingFunction) { + Objects.requireNonNull(mappingFunction); + if (isJdk8) { + V v = concurrentHashMap.get(key); + if (null == v) { + // issue#11986 lock bug + // v = map.computeIfAbsent(key, func); + + // this bug fix methods maybe cause `func.apply` multiple calls. + v = mappingFunction.apply(key); + if (null == v) { + return null; + } + final V res = concurrentHashMap.putIfAbsent(key, v); + if (null != res) { + // if pre value present, means other thread put value already, and putIfAbsent not effect + // return exist value + return res; + } + // if pre value is null, means putIfAbsent effected, return current value + } + return v; + } else { + return concurrentHashMap.computeIfAbsent(key, mappingFunction); + } + + } + + /** + * Returns a capacity that is sufficient to keep the map from being resized as + * long as it grows no larger than expectedSize and the load factor is >= its + * default (0.75). + * + * @see com.google.common.collect.Maps#capacity(int) + * @since 3.4.0 + */ + private static int capacity(int expectedSize) { + if (expectedSize < 3) { + if (expectedSize < 0) { + throw new IllegalArgumentException("expectedSize cannot be negative but was: " + expectedSize); + } + return expectedSize + 1; + } + if (expectedSize < MAX_POWER_OF_TWO) { + // This is the calculation used in JDK8 to resize when a putAll + // happens; it seems to be the most conservative calculation we + // can make. 0.75 is the default load factor. + return (int) ((float) expectedSize / 0.75F + 1.0F); + } + return Integer.MAX_VALUE; // any large value + } + + // 提供处理Map多key取值工具方法 + + /** + * 批量取出Map中的值 + * + * @param map map + * @param keys 键的集合 + * @param key的泛型 + * @param value的泛型 + * @return value的泛型的集合 + */ + public static List getCollection(Map map, Iterable keys) { + List result = new ArrayList<>(); + if (map != null && !map.isEmpty() && keys != null) { + keys.forEach(key -> Optional.ofNullable(map.get(key)).ifPresent(result::add)); + } + return result; + } + + /** + * 批量取出Map中的值 + * + * @param map map + * @param keys 键的集合 + * @param comparator 排序器 + * @param key的泛型 + * @param value的泛型 + * @return value的泛型的集合 + */ + public static List getCollection(Map map, Iterable keys, Comparator comparator) { + Objects.requireNonNull(comparator); + List result = getCollection(map, keys); + Collections.sort(result, comparator); + return result; + } + + /** + * 构建List + * + * @since 3.5.4 + */ + @SafeVarargs + public static List toList(T... t) { + if (t != null) { + return Arrays.asList(t); + } + return Collections.emptyList(); + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Constants.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Constants.java new file mode 100644 index 0000000..05d9466 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Constants.java @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + +import java.io.Serializable; + +/** + * mybatis_plus 自用常量集中管理 + * + * @author miemie + * @since 2018-07-22 + */ +public interface Constants extends StringPool, Serializable { + + /** + * project name + */ + String MYBATIS_PLUS = "mybatis-plus"; + + /** + * MD5 + */ + String MD5 = "MD5"; + /** + * AES + */ + String AES = "AES"; + /** + * AES 算法 + */ + String AES_CBC_CIPHER = "AES/CBC/PKCS5Padding"; + /** + * as + */ + String AS = " AS "; + + + /** + * 实体类 + */ + String ENTITY = "et"; + /** + * 实体类 带后缀 ==> . + */ + String ENTITY_DOT = ENTITY + DOT; + /** + * wrapper 类 + */ + String WRAPPER = "ew"; + /** + * wrapper 类 带后缀 ==> . + */ + String WRAPPER_DOT = WRAPPER + DOT; + /** + * wrapper 类的属性 entity + */ + String WRAPPER_ENTITY = WRAPPER_DOT + "entity"; + /** + * wrapper 类的属性 sqlSegment + */ + String WRAPPER_SQLSEGMENT = WRAPPER_DOT + "sqlSegment"; + /** + * wrapper 类的属性 emptyOfNormal + */ + String WRAPPER_EMPTYOFNORMAL = WRAPPER_DOT + "emptyOfNormal"; + /** + * wrapper 类的属性 nonEmptyOfNormal + */ + String WRAPPER_NONEMPTYOFNORMAL = WRAPPER_DOT + "nonEmptyOfNormal"; + /** + * wrapper 类的属性 nonEmptyOfEntity + */ + String WRAPPER_NONEMPTYOFENTITY = WRAPPER_DOT + "nonEmptyOfEntity"; + /** + * wrapper 类的属性 emptyOfWhere + */ + String WRAPPER_EMPTYOFWHERE = WRAPPER_DOT + "emptyOfWhere"; + /** + * wrapper 类的判断属性 nonEmptyOfWhere + */ + String WRAPPER_NONEMPTYOFWHERE = WRAPPER_DOT + "nonEmptyOfWhere"; + /** + * wrapper 类的属性 entity 带后缀 ==> . + */ + String WRAPPER_ENTITY_DOT = WRAPPER_DOT + "entity" + DOT; + /** + * wrapper 类的属性 expression 下级属性 order + */ + String WRAPPER_EXPRESSION_ORDER = WRAPPER_DOT + "useAnnotationOrderBy"; + /** + * UpdateWrapper 类的属性 sqlSet + */ + String U_WRAPPER_SQL_SET = WRAPPER_DOT + "sqlSet"; + /** + * QueryWrapper 类的属性 sqlSelect + */ + String Q_WRAPPER_SQL_SELECT = WRAPPER_DOT + "sqlSelect"; + /** + * wrapper 类的属性 sqlComment + */ + String Q_WRAPPER_SQL_COMMENT = WRAPPER_DOT + "sqlComment"; + /** + * wrapper 类的属性 sqlFirst + */ + String Q_WRAPPER_SQL_FIRST = WRAPPER_DOT + "sqlFirst"; + /** + * columnMap + */ + @Deprecated + String COLUMN_MAP = "cm"; + /** + * columnMap.isEmpty + */ + String COLUMN_MAP_IS_EMPTY = COLUMN_MAP + DOT + "isEmpty"; + /** + * collection + * + * @see #COLL + * @deprecated 3.5.2 后面修改成collection + */ + @Deprecated + String COLLECTION = "coll"; + + /** + * @since 3.5.2 + */ + String COLL = "coll"; + /** + * list + * + * @since 3.5.0 + */ + String LIST = "list"; + /** + * where + */ + String WHERE = "WHERE"; + + /* + * having + */ + String HAVING = "HAVING"; + /** + * limit + */ + String LIMIT = "LIMIT"; + + /** + * @since 3.5.2 + */ + String ARRAY = "array"; + /** + * order by + */ + String ORDER_BY = "ORDER BY"; + /** + * asc + */ + String ASC = "ASC"; + /** + * desc + */ + String DESC = "DESC"; + /** + * 乐观锁字段 + */ + String MP_OPTLOCK_VERSION_ORIGINAL = "MP_OPTLOCK_VERSION_ORIGINAL"; + + /** + * wrapper 内部参数相关 + */ + String WRAPPER_PARAM = "MPGENVAL"; + String WRAPPER_PARAM_MIDDLE = ".paramNameValuePairs" + DOT; +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/ExceptionUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/ExceptionUtils.java new file mode 100644 index 0000000..ff9635e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/ExceptionUtils.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + + +import com.jeelowcode.framework.plus.core.exceptions.JeelowcodeSqlException; + +/** + * 异常辅助工具类 + * + * @author HCL + * @since 2018-07-24 + */ +public final class ExceptionUtils { + + private ExceptionUtils() { + } + + /** + * 返回一个新的异常,统一构建,方便统一处理 + * + * @param msg 消息 + * @param t 异常信息 + * @return 返回异常 + */ + public static JeelowcodeSqlException mpe(String msg, Throwable t, Object... params) { + return new JeelowcodeSqlException(String.format(msg, params), t); + } + + /** + * 重载的方法 + * + * @param msg 消息 + * @return 返回异常 + */ + public static JeelowcodeSqlException mpe(String msg, Object... params) { + return new JeelowcodeSqlException(String.format(msg, params)); + } + + /** + * 重载的方法 + * + * @param t 异常 + * @return 返回异常 + */ + public static JeelowcodeSqlException mpe(Throwable t) { + return new JeelowcodeSqlException(t); + } + + public static void throwMpe(boolean condition, String msg, Object... params) { + if (condition) { + throw mpe(msg, params); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/SerializationUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/SerializationUtils.java new file mode 100644 index 0000000..b72479f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/SerializationUtils.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + +import java.io.*; + + +/** + *

    copy from spring-core#org.springframework.util.SerializationUtils version 5.2.8

    + * + * @since 1.0 + */ +public class SerializationUtils { + + /** + * Deep clone an {@code Object} using serialization. + *

    This is many times slower than writing clone methods by hand + * on all objects in your object graph. However, for complex object + * graphs, or for those that don't support deep cloning this can + * be a simple alternative implementation. Of course all the objects + * must be {@code Serializable}.

    + * + * @param the type of the object involved + * @param object the {@code Serializable} object to clone + * @return the cloned object + */ + @SuppressWarnings("unchecked") + public static T clone(final T object) { + if (object == null) { + return null; + } + final byte[] objectData = serialize(object); + return (T) deserialize(objectData); + } + + /** + * Serialize the given object to a byte array. + * + * @param object the object to serialize + * @return an array of bytes representing the object in a portable fashion + */ + public static byte[] serialize(Object object) { + if (object == null) { + return null; + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); + try (ObjectOutputStream oos = new ObjectOutputStream(baos)) { + oos.writeObject(object); + oos.flush(); + } catch (IOException ex) { + throw new IllegalArgumentException("Failed to serialize object of type: " + object.getClass(), ex); + } + return baos.toByteArray(); + } + + /** + * Deserialize the byte array into an object. + * + * @param bytes a serialized object + * @return the result of deserializing the bytes + */ + public static Object deserialize(byte[] bytes) { + if (bytes == null) { + return null; + } + try (ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(bytes))) { + return ois.readObject(); + } catch (IOException ex) { + throw new IllegalArgumentException("Failed to deserialize object", ex); + } catch (ClassNotFoundException ex) { + throw new IllegalStateException("Failed to deserialize object type", ex); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringPool.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringPool.java new file mode 100644 index 0000000..7cc807b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringPool.java @@ -0,0 +1,98 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + +/** + * @author JX + * @create 2024-03-26 9:55 + * @dedescription: + */ +public interface StringPool { + + String AMPERSAND = "&"; + String AND = "and"; + String AT = "@"; + String ASTERISK = "*"; + String STAR = ASTERISK; + String BACK_SLASH = "\\"; + String COLON = ":"; + String COMMA = ","; + String DASH = "-"; + String DOLLAR = "$"; + String DOT = "."; + String DOTDOT = ".."; + String DOT_CLASS = ".class"; + String DOT_JAVA = ".java"; + String DOT_XML = ".xml"; + String EMPTY = ""; + String EQUALS = "="; + String FALSE = "false"; + String SLASH = "/"; + String HASH = "#"; + String HAT = "^"; + String LEFT_BRACE = "{"; + String LEFT_BRACKET = "("; + String LEFT_CHEV = "<"; + String DOT_NEWLINE = ",\n"; + String NEWLINE = "\n"; + String N = "n"; + String NO = "no"; + String NULL = "null"; + String NUM = "NUM"; + String OFF = "off"; + String ON = "on"; + String PERCENT = "%"; + String PIPE = "|"; + String PLUS = "+"; + String QUESTION_MARK = "?"; + String EXCLAMATION_MARK = "!"; + String QUOTE = "\""; + String RETURN = "\r"; + String TAB = "\t"; + String RIGHT_BRACE = "}"; + String RIGHT_BRACKET = ")"; + String RIGHT_CHEV = ">"; + String SEMICOLON = ";"; + String SINGLE_QUOTE = "'"; + String BACKTICK = "`"; + String SPACE = " "; + String SQL = "sql"; + String TILDA = "~"; + String LEFT_SQ_BRACKET = "["; + String RIGHT_SQ_BRACKET = "]"; + String TRUE = "true"; + String UNDERSCORE = "_"; + String UTF_8 = "UTF-8"; + String US_ASCII = "US-ASCII"; + String ISO_8859_1 = "ISO-8859-1"; + String Y = "y"; + String YES = "yes"; + String ONE = "1"; + String ZERO = "0"; + String DOLLAR_LEFT_BRACE = "${"; + String HASH_LEFT_BRACE = "#{"; + String CRLF = "\r\n"; + + String HTML_NBSP = " "; + String HTML_AMP = "&"; + String HTML_QUOTE = """; + String HTML_LT = "<"; + String HTML_GT = ">"; + + // ---------------------------------------------------------------- array + + String[] EMPTY_ARRAY = new String[0]; + + byte[] BYTES_NEW_LINE = StringPool.NEWLINE.getBytes(); +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringUtils.java new file mode 100644 index 0000000..a3b88d7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/StringUtils.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + + +import java.util.regex.Pattern; + +/** + * String 工具类 + * + * @author D.Yang, hcl + * @author hcl + * @since 2016-08-18 + */ +public final class StringUtils { + + /** + * 字符串 is + */ + public static final String IS = "is"; + + /** + * 验证字符串是否是数据库字段 + */ + private static final Pattern P_IS_COLUMN = Pattern.compile("^\\w\\S*[\\w\\d]*$"); + + /** + * 判断字符串中是否全是空白字符 + * + * @param cs 需要判断的字符串 + * @return 如果字符串序列是 null 或者全是空白,返回 true + */ + public static boolean isBlank(CharSequence cs) { + if (cs != null) { + int length = cs.length(); + for (int i = 0; i < length; i++) { + if (!Character.isWhitespace(cs.charAt(i))) { + return false; + } + } + } + return true; + } + + + /** + * @see #isBlank(CharSequence) + */ + public static boolean isNotBlank(CharSequence cs) { + return !isBlank(cs); + } + + public static boolean isEmpty(CharSequence cs) { + return cs == null || cs.length() == 0; + } + + public static boolean isNotEmpty(CharSequence cs) { + return !isEmpty(cs); + } + + /** + * 判断字符串是否符合数据库字段的命名 + * + * @param str 字符串 + * @return 判断结果 + */ + public static boolean isNotColumnName(String str) { + return !P_IS_COLUMN.matcher(str).matches(); + } + + /** + * 获取真正的字段名 + * + * @param column 字段名 + * @return 字段名 + */ + public static String getTargetColumn(String column) { + if (isNotColumnName(column)) { + return column.substring(1, column.length() - 1); + } + return column; + } + + /** + * 判断对象是否不为空 + * + * @param object ignore + * @return ignore + */ + public static boolean checkValNotNull(Object object) { + if (object instanceof CharSequence) { + return isNotEmpty((CharSequence) object); + } + return object != null; + } + + + + + + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Wrappers.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Wrappers.java new file mode 100644 index 0000000..de2d251 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/Wrappers.java @@ -0,0 +1,213 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit; + + +import com.jeelowcode.framework.plus.core.dql.select.JeeLowCodeQueryWrapper; +import com.jeelowcode.framework.plus.core.conditions.segments.MergeSegments; +import com.jeelowcode.framework.plus.core.dql.update.JeeLowCodeUpdateWrapper; + +/** + * Wrapper 条件构造 + * + * @author Caratacus + */ +public final class Wrappers { + + /** + * 空的 EmptyWrapper + */ + private static final JeeLowCodeQueryWrapper emptyWrapper = new EmptyWrapper<>(); + + private Wrappers() { + // ignore + } + + /** + * 获取 QueryWrapper<T> + * + * @param 实体类泛型 + * @return QueryWrapper<T> + */ + public static JeeLowCodeQueryWrapper query() { + return new JeeLowCodeQueryWrapper<>(); + } + + /** + * 获取 QueryWrapper<T> + * + * @param entity 实体类 + * @param 实体类泛型 + * @return QueryWrapper<T> + */ + public static JeeLowCodeQueryWrapper query(T entity) { + return new JeeLowCodeQueryWrapper<>(entity); + } + + /** + * 获取 QueryWrapper<T> + * + * @param entityClass 实体类class + * @param 实体类泛型 + * @return QueryWrapper<T> + */ + public static JeeLowCodeQueryWrapper query(Class entityClass) { + return new JeeLowCodeQueryWrapper<>(entityClass); + } + + + + /** + * 获取 UpdateWrapper<T> + * + * @param 实体类泛型 + * @return UpdateWrapper<T> + */ + public static JeeLowCodeUpdateWrapper update() { + return new JeeLowCodeUpdateWrapper<>(); + } + + /** + * 获取 UpdateWrapper<T> + * + * @param entity 实体类 + * @param 实体类泛型 + * @return UpdateWrapper<T> + */ + public static JeeLowCodeUpdateWrapper update(T entity) { + return new JeeLowCodeUpdateWrapper<>(entity); + } + + + /** + * 获取 EmptyWrapper<T> + * + * @param 任意泛型 + * @return EmptyWrapper<T> + * @see EmptyWrapper + */ + @SuppressWarnings("unchecked") + public static JeeLowCodeQueryWrapper emptyWrapper() { + return (JeeLowCodeQueryWrapper) emptyWrapper; + } + + /** + * 一个空的QueryWrapper子类该类不包含任何条件 + * + * @param + * @see JeeLowCodeQueryWrapper + */ + private static class EmptyWrapper extends JeeLowCodeQueryWrapper { + + private static final long serialVersionUID = -2515957613998092272L; + + @Override + public T getEntity() { + return null; + } + + @Override + public EmptyWrapper setEntity(T entity) { + throw new UnsupportedOperationException(); + } + + @Override + public JeeLowCodeQueryWrapper setEntityClass(Class entityClass) { + throw new UnsupportedOperationException(); + } + + @Override + public Class getEntityClass() { + return null; + } + + @Override + public String getSqlSelect() { + return null; + } + + @Override + public MergeSegments getExpression() { + return null; + } + + @Override + public boolean isEmptyOfWhere() { + return true; + } + + @Override + public boolean isEmptyOfNormal() { + return true; + } + + + public boolean isNonEmptyOfEntity() { + return !isEmptyOfEntity(); + } + + + public boolean isEmptyOfEntity() { + return true; + } + + @Override + protected void initNeed() { + } + + @Override + public EmptyWrapper last(boolean condition, String lastSql) { + throw new UnsupportedOperationException(); + } + + @Override + public String getSqlSegment() { + return null; + } + + @Override + protected String columnsToString(String... columns) { + return null; + } + + @Override + protected String columnToString(String column) { + return null; + } + + @Override + protected EmptyWrapper instance() { + throw new UnsupportedOperationException(); + } + + @Override + public void clear() { + throw new UnsupportedOperationException(); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlInjectionUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlInjectionUtils.java new file mode 100644 index 0000000..cbf6506 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlInjectionUtils.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit.sql; + +import java.util.Objects; +import java.util.regex.Pattern; + +/** + * SQL 注入验证工具类 + * + * @author hubin + * @since 2021-08-15 + */ +public class SqlInjectionUtils { + /** + * SQL语法检查正则:符合两个关键字(有先后顺序)才算匹配 + */ + private static final Pattern SQL_SYNTAX_PATTERN = Pattern.compile("(insert|delete|update|select|create|drop|truncate|grant|alter|deny|revoke|call|execute|exec|declare|show|rename|set)" + + "\\s+.*(into|from|set|where|table|database|view|index|on|cursor|procedure|trigger|for|password|union|and|or)|(select\\s*\\*\\s*from\\s+)|(and|or)\\s+.*(like|=|>|<|in|between|is|not|exists)", Pattern.CASE_INSENSITIVE); + /** + * 使用'、;或注释截断SQL检查正则 + */ + private static final Pattern SQL_COMMENT_PATTERN = Pattern.compile("'.*(or|union|--|#|/\\*|;)", Pattern.CASE_INSENSITIVE); + + + /** + * 检查参数是否存在 SQL 注入 + * + * @param value 检查参数 + * @return true 非法 false 合法 + */ + public static boolean check(String value) { + Objects.requireNonNull(value); + // 处理是否包含SQL注释字符 || 检查是否包含SQL注入敏感字符 + return SQL_COMMENT_PATTERN.matcher(value).find() || SQL_SYNTAX_PATTERN.matcher(value).find(); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlScriptUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlScriptUtils.java new file mode 100644 index 0000000..1285d7a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlScriptUtils.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit.sql; + + +import com.jeelowcode.framework.plus.core.toolkit.Constants; +import com.jeelowcode.framework.plus.core.toolkit.StringPool; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; + +/** + *

    + * sql 脚本工具类 + *

    + * + * @author miemie + * @since 2018-08-15 + */ +public abstract class SqlScriptUtils implements Constants { + + + /** + *

    + * 安全入参: #{入参,mapping} + *

    + * + * @param param 入参 + * @param mapping 映射 + * @return 脚本 + */ + public static String safeParam(final String param, final String mapping) { + String target = StringPool.HASH_LEFT_BRACE + param; + if (StringUtils.isBlank(mapping)) { + return target + StringPool.RIGHT_BRACE; + } + return target + StringPool.COMMA + mapping + StringPool.RIGHT_BRACE; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlUtils.java new file mode 100644 index 0000000..807875d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/core/toolkit/sql/SqlUtils.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2011-2023, baomidou (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *//* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.core.toolkit.sql; + + + +import com.jeelowcode.framework.plus.core.enums.SqlLike; +import com.jeelowcode.framework.plus.core.toolkit.Constants; +import com.jeelowcode.framework.plus.core.toolkit.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * SqlUtils工具类 + * !!! 本工具不适用于本框架外的类使用 !!! + * + * @author Caratacus + * @since 2016-11-13 + */ +public abstract class SqlUtils implements Constants { + + private static final Pattern pattern = Pattern.compile("\\{@((\\w+?)|(\\w+?:\\w+?)|(\\w+?:\\w+?:\\w+?))}"); + + /** + * 用%连接like + * + * @param str 原字符串 + * @return like 的值 + */ + public static String concatLike(Object str, SqlLike type) { + switch (type) { + case LEFT: + return PERCENT + str; + case RIGHT: + return str + PERCENT; + default: + return PERCENT + str + PERCENT; + } + } + + public static List findPlaceholder(String sql) { + Matcher matcher = pattern.matcher(sql); + List list = new ArrayList<>(); + while (matcher.find()) { + list.add(matcher.group()); + } + return list; + } + + + public static String getNewSelectBody(String selectBody, String alisa, String asAlisa, String escapeSymbol) { + String[] split = selectBody.split(COMMA); + StringBuilder sb = new StringBuilder(); + boolean asA = asAlisa != null; + for (String body : split) { + final String sa = alisa.concat(DOT); + if (asA) { + int as = body.indexOf(AS); + if (as < 0) { + sb.append(sa).append(body).append(AS).append(escapeColumn(asAlisa.concat(DOT).concat(body), escapeSymbol)); + } else { + String column = body.substring(0, as); + String property = body.substring(as + 4); + property = StringUtils.getTargetColumn(property); + sb.append(sa).append(column).append(AS).append(escapeColumn(asAlisa.concat(DOT).concat(property), escapeSymbol)); + } + } else { + sb.append(sa).append(body); + } + sb.append(COMMA); + } + return sb.deleteCharAt(sb.length() - 1).toString(); + } + + private static String escapeColumn(String column, String escapeSymbol) { + return escapeSymbol.concat(column).concat(escapeSymbol); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/DbColunmTypesEntity.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/DbColunmTypesEntity.java new file mode 100644 index 0000000..517dc61 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/DbColunmTypesEntity.java @@ -0,0 +1,176 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.entity; + + +public class DbColunmTypesEntity { + + private Boolean upperFlag;//是否转大写 + private String symbol;//标识符 例如mysql->` oracle ->" + private TypeEntity jeeLowCodeString;//字符串 + private TypeEntity jeeLowCodeInteger;//整数 + private TypeEntity jeeLowCodeDate;//日期 + private TypeEntity jeeLowCodeDateTime;//日期时间 + private TypeEntity jeeLowCodeTime;//时间 + private TypeEntity jeeLowCodeBigInt;//大整数 + private TypeEntity jeeLowCodeBigDecimal;//小数 + private TypeEntity jeeLowCodeText;//文本 + private TypeEntity jeeLowCodeLongText;//大文本 + private TypeEntity jeeLowCodeBlob;//二进制 + + + + public static class TypeEntity { + private String jeeLowCodeType; + private String dbType;//类型 + private Integer dbMaxLen;//整数位数 + private Integer dbMaxPointLen;//小数位 + + public TypeEntity(String jeeLowCodeType, String dbType, Integer dbMaxLen) { + this.jeeLowCodeType = jeeLowCodeType; + this.dbType = dbType; + this.dbMaxLen = dbMaxLen; + } + public TypeEntity(String jeeLowCodeType, String dbType, Integer dbMaxLen,Integer dbMaxPointLen) { + this.jeeLowCodeType = jeeLowCodeType; + this.dbType = dbType; + this.dbMaxLen = dbMaxLen; + this.dbMaxPointLen = dbMaxPointLen; + } + + public String getJeeLowCodeType() { + return jeeLowCodeType; + } + + public String getDbType() { + return dbType; + } + + public Integer getDbMaxLen() { + return dbMaxLen; + } + + public Integer getDbMaxPointLen() { + return dbMaxPointLen; + } + } + + public TypeEntity getJeeLowCodeString() { + return jeeLowCodeString; + } + + public TypeEntity getJeeLowCodeInteger() { + return jeeLowCodeInteger; + } + + public TypeEntity getJeeLowCodeDate() { + return jeeLowCodeDate; + } + + public TypeEntity getJeeLowCodeDateTime() { + return jeeLowCodeDateTime; + } + + public TypeEntity getJeeLowCodeTime() { + return jeeLowCodeTime; + } + + public TypeEntity getJeeLowCodeBigInt() { + return jeeLowCodeBigInt; + } + + public TypeEntity getJeeLowCodeBigDecimal() { + return jeeLowCodeBigDecimal; + } + + public TypeEntity getJeeLowCodeText() { + return jeeLowCodeText; + } + + public TypeEntity getJeeLowCodeLongText() { + return jeeLowCodeLongText; + } + + public TypeEntity getJeeLowCodeBlob() { + return jeeLowCodeBlob; + } + + + public void setJeeLowCodeString(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("String", dbType, maxLen); + this.jeeLowCodeString = typeEntity; + } + + public void setJeeLowCodeInteger(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("Integer", dbType, maxLen); + this.jeeLowCodeInteger = typeEntity; + } + + public void setJeeLowCodeDate(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("Date", dbType, maxLen); + this.jeeLowCodeDate = typeEntity; + } + + public void setJeeLowCodeDateTime(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("DateTime", dbType, maxLen); + this.jeeLowCodeDateTime = typeEntity; + } + + public void setJeeLowCodeTime(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("Time", dbType, maxLen); + this.jeeLowCodeTime = typeEntity; + } + + public void setJeeLowCodeBigInt(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("BigInt", dbType, maxLen); + this.jeeLowCodeBigInt = typeEntity; + } + + public void setJeeLowCodeBigDecimal(String dbType, Integer maxLen,Integer maxPointLen) { + TypeEntity typeEntity = new TypeEntity("BigDecimal", dbType, maxLen,maxPointLen); + this.jeeLowCodeBigDecimal = typeEntity; + } + + public void setJeeLowCodeText(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("Text", dbType, maxLen); + this.jeeLowCodeText = typeEntity; + } + + public void setJeeLowCodeLongText(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("LongText", dbType, maxLen); + this.jeeLowCodeLongText = typeEntity; + } + + public void setJeeLowCodeBlob(String dbType, Integer maxLen) { + TypeEntity typeEntity = new TypeEntity("Blob", dbType, maxLen); + this.jeeLowCodeBlob = typeEntity; + } + + + public Boolean getUpperFlag() { + return upperFlag; + } + + public void setUpperFlag(Boolean upperFlag) { + this.upperFlag = upperFlag; + } + + public String getSymbol() { + return symbol; + } + + public void setSymbol(String symbol) { + this.symbol = symbol; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/FieldModel.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/FieldModel.java new file mode 100644 index 0000000..d09098b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/FieldModel.java @@ -0,0 +1,146 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.entity; + + +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; + +import java.util.List; +import java.util.Map; + +/** + * 数据库字段列表 + */ +public class FieldModel { + private String fieldCode;//字段 + private String fieldName;//字段名称 + private Integer fieldLen;//长度 + private Integer fieldPointLen;//小数位 + private String fieldDefaultVal;//字段默认值 + private JeeLowCodeFieldTypeEnum fieldType;//字段类型 + private List javaFieldTypeList;//字段类型 + private String isPrimaryKey;//是否是主键 Y=是 N=不是 + private String isNull;//是否允许为空 Y=允许 N=不允许 + + private Map otherMap;//其他值 + + private String dbNowIsNull;//当前数据库是否为空状态 + + private Integer maxFieldLen;//最大长度 + private Integer maxPointLen;//最大小数位长度 + + public String getFieldCode() { + return fieldCode; + } + + public void setFieldCode(String fieldCode) { + this.fieldCode = fieldCode; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public Integer getFieldLen() { + return fieldLen; + } + + public void setFieldLen(Integer fieldLen) { + this.fieldLen = fieldLen; + } + + public Integer getFieldPointLen() { + return fieldPointLen; + } + + public void setFieldPointLen(Integer fieldPointLen) { + this.fieldPointLen = fieldPointLen; + } + + public String getFieldDefaultVal() { + return fieldDefaultVal; + } + + public void setFieldDefaultVal(String fieldDefaultVal) { + this.fieldDefaultVal = fieldDefaultVal; + } + + public JeeLowCodeFieldTypeEnum getFieldType() { + return fieldType; + } + + public void setFieldType(JeeLowCodeFieldTypeEnum fieldType) { + this.fieldType = fieldType; + } + + public List getJavaFieldTypeList() { + return javaFieldTypeList; + } + + public void setJavaFieldTypeList(List javaFieldTypeList) { + this.javaFieldTypeList = javaFieldTypeList; + } + + public String getIsPrimaryKey() { + return isPrimaryKey; + } + + public void setIsPrimaryKey(String isPrimaryKey) { + this.isPrimaryKey = isPrimaryKey; + } + + public String getIsNull() { + return isNull; + } + + public void setIsNull(String isNull) { + this.isNull = isNull; + } + + public Map getOtherMap() { + return otherMap; + } + + public void setOtherMap(Map otherMap) { + this.otherMap = otherMap; + } + + public Integer getMaxFieldLen() { + return maxFieldLen; + } + + public void setMaxFieldLen(Integer maxFieldLen) { + this.maxFieldLen = maxFieldLen; + } + + public Integer getMaxPointLen() { + return maxPointLen; + } + + public void setMaxPointLen(Integer maxPointLen) { + this.maxPointLen = maxPointLen; + } + + public String getDbNowIsNull() { + return dbNowIsNull; + } + + public void setDbNowIsNull(String dbNowIsNull) { + this.dbNowIsNull = dbNowIsNull; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlInfoEntity.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlInfoEntity.java new file mode 100644 index 0000000..3e26b35 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlInfoEntity.java @@ -0,0 +1,89 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.entity; + + +import com.jeelowcode.framework.plus.build.ISQLExpression; +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.chain.entity.DataPermissionFilterEntity; +import com.jeelowcode.framework.plus.chain.entity.TenantIdFilterEntity; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + + +public class SqlInfoEntity extends SqlResultEntity { + + //表达式 + private ISQLExpression sqlExpression; + //sql参数上下文 + private SQLInterpretContext context; + + //责任链模式参数 + private String sql; + //sql解析等级 设置了的话,就单独使用某一个等级 + private Integer sqlParserLevel; + + //租户相关条件过滤 + private TenantIdFilterEntity tenantIdFilterEntity; + //数据权限相关 + private DataPermissionFilterEntity dataPermissionFilterEntity; + + + public ISQLExpression getSqlExpression() { + return sqlExpression; + } + + public void setSqlExpression(ISQLExpression sqlExpression) { + this.sqlExpression = sqlExpression; + } + + public SQLInterpretContext getContext() { + return context; + } + + public void setContext(SQLInterpretContext context) { + this.context = context; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public TenantIdFilterEntity getTenantIdFilterEntity() { + return tenantIdFilterEntity; + } + + public void setTenantIdFilterEntity(TenantIdFilterEntity tenantIdFilterEntity) { + this.tenantIdFilterEntity = tenantIdFilterEntity; + } + + public DataPermissionFilterEntity getDataPermissionFilterEntity() { + return dataPermissionFilterEntity; + } + + public void setDataPermissionFilterEntity(DataPermissionFilterEntity dataPermissionFilterEntity) { + this.dataPermissionFilterEntity = dataPermissionFilterEntity; + } + + public Integer getSqlParserLevel() { + return sqlParserLevel; + } + + public void setSqlParserLevel(Integer sqlParserLevel) { + this.sqlParserLevel = sqlParserLevel; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlResultEntity.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlResultEntity.java new file mode 100644 index 0000000..ac5266c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/entity/SqlResultEntity.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.entity; + + +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; + +import java.util.List; + + +/** + * 结果 + */ +public class SqlResultEntity { + + private List sqlModelList; + + public List getSqlModelList() { + return sqlModelList; + } + + public void setSqlModelList(List sqlModelList) { + this.sqlModelList = sqlModelList; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/enums/DbTypeEnum.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/enums/DbTypeEnum.java new file mode 100644 index 0000000..732cfc7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/enums/DbTypeEnum.java @@ -0,0 +1,80 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.enums; + + +import com.jeelowcode.framework.plus.template.*; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.plus.template.*; + +import java.util.Arrays; +import java.util.Optional; + + +/** + * 数据库类型 + */ +public enum DbTypeEnum { + + MYSQL("mysql", "Mysql数据库", DbMysql.class), + ORACLE("oracle", "oracle数据库", DbOracle.class), + POSTGRESQL("postgresql", "Postgresql数据库", DbPostgresql.class), + DM("dm dbms", "达梦数据库", DbDm.class); + + /** + * 数据库类型 + */ + private final String dbCode; + /** + * 数据名称 + */ + private final String name; + + /** + * 实现类 + */ + private final Class dbTemplate; + + public static DbTypeEnum getByDbCode(String dbCode) { + + // 使用流来查找匹配的DbProductEnum + Optional matchingEnum = Arrays.stream(DbTypeEnum.values()) + .filter(dbTypeEnum -> FuncBase.equals(dbTypeEnum.getDbCode(), dbCode)) + .findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional + // 检查是否找到了匹配的枚举项 + if (matchingEnum.isPresent()) { + return matchingEnum.get(); + } + return null; + + } + + public String getDbCode() { + return dbCode; + } + + public String getName() { + return name; + } + + public Class getDbTemplate() { + return dbTemplate; + } + + DbTypeEnum(String dbCode, String name, Class dbTemplate) { + this.dbCode = dbCode; + this.name = name; + this.dbTemplate = dbTemplate; + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/flyweight/FlyweightDBFactory.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/flyweight/FlyweightDBFactory.java new file mode 100644 index 0000000..21a4356 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/flyweight/FlyweightDBFactory.java @@ -0,0 +1,59 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.flyweight; + +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.enums.DbTypeEnum; +import com.jeelowcode.framework.plus.template.AbstractDbTemplate; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * 数据库享元工厂 + */ +public class FlyweightDBFactory { + + /** + * Db缓存池 + */ + private static final Map DB_POOL = new HashMap<>(); + + static { + Arrays.stream(DbTypeEnum.values()) + .forEach(dbTypeEnum -> { + try { + Class clazz = dbTypeEnum.getDbTemplate(); + AbstractDbTemplate dbTemplate = clazz.newInstance();//初始化 + DB_POOL.put(dbTypeEnum, dbTemplate); + } catch (Exception e) { + + } + }); + } + + /** + * 获取数据库产品类型 + */ + public static AbstractDbTemplate getDbType(DbTypeEnum dbTypeEnum) { + AbstractDbTemplate dbTemplate = DB_POOL.get(dbTypeEnum); + if (dbTemplate == null) { + throw new JeeLowCodeException("获取不到该数据类型,需要先添加到DB_POOL"); + } else { + return dbTemplate; + } + } + +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/AbstractDbTemplate.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/AbstractDbTemplate.java new file mode 100644 index 0000000..bc91ae7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/AbstractDbTemplate.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.template; + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.chain.SQLParserChainClient; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; + +/** + * 数据库模板 + */ +public abstract class AbstractDbTemplate { + + //初始化数据库类型 + protected abstract void initDbColunmTypes(SqlInfoEntity sqlInfoEntity); + + //格式化sql上下文 + protected abstract void formatSQLInterpretContext(SQLInterpretContext context); + + //TODO 不一样的类型在之类处理 + public final void operation(SqlInfoEntity sqlInfoEntity){ + //初始化数据库特有类型 + initDbColunmTypes(sqlInfoEntity); + //处理上下文 + formatSQLInterpretContext(sqlInfoEntity.getContext()); + //处理sql/ddl + SQLParserChainClient.sqlParser(sqlInfoEntity); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbDm.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbDm.java new file mode 100644 index 0000000..bc08f29 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbDm.java @@ -0,0 +1,146 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.template; + + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDdlModel; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDropModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 达梦 数据库 + */ +public class DbDm extends AbstractDbTemplate { + + /** + * 初始化数据库类型 + * + * @return + */ + @Override + public void initDbColunmTypes(SqlInfoEntity sqlInfoEntity) { + SQLInterpretContext context = sqlInfoEntity.getContext(); + DbColunmTypesEntity oracleEntity = new DbColunmTypesEntity(); + oracleEntity.setSymbol("\"%s\""); + oracleEntity.setUpperFlag(true);//转大写 + oracleEntity.setJeeLowCodeString("varchar", 32767); + oracleEntity.setJeeLowCodeInteger("int", 0); + oracleEntity.setJeeLowCodeBigInt("bigint", 0); + oracleEntity.setJeeLowCodeDate("date", 0); + oracleEntity.setJeeLowCodeDateTime("timestamp", 0); + oracleEntity.setJeeLowCodeTime("time", 0); + oracleEntity.setJeeLowCodeBigDecimal("decimal", 22,null); + oracleEntity.setJeeLowCodeText("text", 0); + oracleEntity.setJeeLowCodeLongText("text", 0); + oracleEntity.setJeeLowCodeBlob("blob", 0); + context.setDbColunmTypes(oracleEntity); + } + + @Override + protected void formatSQLInterpretContext(SQLInterpretContext context) { + //处理删除 + this.handleDroptModel(context); + //处理自定义ddl + this.handleDdlModel(context); + } + + + private void handleDroptModel(SQLInterpretContext context) { + SqlInfoDropModel dropModel = context.getDropModel(); + if (FuncBase.isEmpty(dropModel)) { + return; + } + dropModel.setCloumnFormat("(%s)"); + + } + + + private void handleDdlModel(SQLInterpretContext context) { + SqlInfoDdlModel ddlModel = context.getDdlModel(); + if (FuncBase.isEmpty(ddlModel)) { + return; + } + String ddl = ""; + switch (ddlModel.getType()) { + case INDEX_EXIST://索引是否存在 + ddl = this.formatIndexExistSql(ddlModel.getMap()); + break; + case INDEX_ALL://全部索引 + ddl = this.formatIndexAllSql(ddlModel.getMap()); + break; + case TABLE_EXIST://表是否存在 + ddl = this.formatTableExistSql(context.getSchemaName(), ddlModel.getMap()); + break; + case TABLE_FIELD_COMMENT://表字段备注 + ddl = this.formatTableFieldCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + case ALL_TABLE_NAME://所有表名 + ddl = this.formatGetTableNameSql(context.getSchemaName()); + break; + case TABLE_COMMENT://表备注 + ddl = this.formatGetTableCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + } + List ddlList = Collections.singletonList(ddl); + ddlModel.setExecuteDdlList(ddlList); + } + + //索引是否存在 + private String formatIndexExistSql(Map map) { + String indexName = FuncBase.getMap2Str(map, "indexName"); + String oracleFormatStr = "select count(*) as \"cou\" from USER_IND_COLUMNS where INDEX_NAME=upper('%s')"; + return String.format(oracleFormatStr, indexName); + } + + //获取所有索引 + private String formatIndexAllSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "select INDEX_NAME AS \"index_name\" from USER_IND_COLUMNS where \"TABLE_NAME\" =upper('%s') and COLUMN_NAME !='ID'"; + return String.format(oracleFormatStr,tableName); + } + + //表名是否存在 + private String formatTableExistSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "SELECT COUNT(*) as \"cou\" FROM ALL_TABLES WHERE upper(OWNER) = '%s' AND TABLE_NAME = upper('%s');"; + return String.format(oracleFormatStr, schemaName.toUpperCase(), tableName); + + } + //表字段备注 + private String formatTableFieldCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "SELECT COLUMN_NAME as \"fieldCode\",COMMENTS as \"fieldName\" FROM ALL_COL_COMMENTS WHERE SCHEMA_NAME = '%s' AND TABLE_NAME = upper('%s');"; + return String.format(oracleFormatStr, schemaName, tableName); + } + + //表名是否存在 + private String formatGetTableNameSql(String schemaName) { + String oracleFormatStr = "SELECT TABLE_NAME as \"table_name\" FROM ALL_COL_COMMENTS WHERE SCHEMA_NAME = '%s';"; + return String.format(oracleFormatStr, schemaName); + } + + //获取表备注 + private String formatGetTableCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr="select COMMENTS AS \"table_comment\" from ALL_TAB_COMMENTS WHERE OWNER ='%s' AND TABLE_NAME= upper('%s');"; + return String.format(mysqlFormatStr, schemaName, tableName); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbMysql.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbMysql.java new file mode 100644 index 0000000..f43e86e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbMysql.java @@ -0,0 +1,226 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.template; + + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoAlterModel; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoCommentModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.plus.core.ddl.alter.JeeLowCodeAlterTable; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.tool.StringPool; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDdlModel; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDropModel; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * mysql数据库 + */ +public class DbMysql extends AbstractDbTemplate { + + /** + * 初始化数据库类型 + * + * @return + */ + @Override + public void initDbColunmTypes(SqlInfoEntity sqlInfoEntity) { + SQLInterpretContext context = sqlInfoEntity.getContext(); + + DbColunmTypesEntity mysqlEntity = new DbColunmTypesEntity(); + mysqlEntity.setSymbol("`%s`"); + mysqlEntity.setUpperFlag(false);//不用转大写 + mysqlEntity.setJeeLowCodeString("varchar", 65535); + mysqlEntity.setJeeLowCodeInteger("int", 0); + mysqlEntity.setJeeLowCodeBigInt("bigint", 0); + mysqlEntity.setJeeLowCodeDate("date", 0); + mysqlEntity.setJeeLowCodeDateTime("datetime", 0); + mysqlEntity.setJeeLowCodeTime("time", 0); + mysqlEntity.setJeeLowCodeBigDecimal("decimal", 65,30); + mysqlEntity.setJeeLowCodeText("text", 0); + mysqlEntity.setJeeLowCodeLongText("longtext", 0); + mysqlEntity.setJeeLowCodeBlob("blob", 0); + context.setDbColunmTypes(mysqlEntity); + } + + @Override + protected void formatSQLInterpretContext(SQLInterpretContext context) { + //处理是否为空问题 + this.handleAlterModel(context); + //处理备注 + this.handleCommentModel(context); + //处理删除 + this.handleDroptModel(context); + //处理自定义ddl + this.handleDdlModel(context); + } + + private void handleAlterModel(SQLInterpretContext context) { + SqlInfoAlterModel alterModel = context.getAlterModel(); + if(FuncBase.isEmpty(alterModel)){ + return; + } + FieldModel fieldModel = alterModel.getFieldModel(); + fieldModel.setDbNowIsNull(null);//不做处理 + } + + private void handleCommentModel(SQLInterpretContext context) { + SqlInfoCommentModel commentModel = context.getCommentModel(); + if (FuncBase.isEmpty(commentModel)) { + return; + } + String schemaName = context.getSchemaName(); + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + String tableName = commentModel.getTableName(); + String tableAlias = commentModel.getTableAlias(); + List fieldModelList = commentModel.getFieldModelList(); + + List ddlList = new ArrayList<>(); + //处理表备注 + if (FuncBase.isNotEmpty(tableAlias)) { + String tableCommentFormat = "ALTER TABLE %s.%s COMMENT '%s';"; + String ddl = String.format(tableCommentFormat, schemaName, tableName, tableAlias); + ddlList.add(ddl); + } + + //处理字段备注 + if (FuncBase.isNotEmpty(fieldModelList)) { + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + for (FieldModel fieldModel : fieldModelList) { + String fieldCode = FuncBase.concatSymbol(fieldModel.getFieldCode(), symbol, upperFlag); + String fieldName = fieldModel.getFieldName(); + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldModel.getFieldType(); + //类型 + DbColunmTypesEntity.TypeEntity typeEntity = PlusUtils.jeelowCodeType2DbType(fieldTypeEnum, dbColunmTypes); + String fieldType = PlusUtils.getDbType(fieldTypeEnum, typeEntity.getDbType(), fieldModel.getFieldLen(), fieldModel.getFieldPointLen(),typeEntity.getDbMaxLen()); + String defaultValSql = PlusUtils.getDefaultValSql(fieldModel.getFieldDefaultVal(), fieldModel.getIsNull(),null); + String mySqlstr = "ALTER TABLE %s.%s MODIFY COLUMN %s %s %s COMMENT '%s';"; + String ddl = String.format(mySqlstr, schemaName, tableName, fieldCode, fieldType, defaultValSql, fieldName); + ddlList.add(ddl); + } + } + //设置自定义ddl + commentModel.setExecuteDdlList(ddlList); + + } + + private void handleDroptModel(SQLInterpretContext context) { + SqlInfoDropModel dropModel = context.getDropModel(); + if (FuncBase.isEmpty(dropModel)) { + return; + } + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + String symbol = dbColunmTypes.getSymbol(); + Boolean upperFlag = dbColunmTypes.getUpperFlag(); + + SqlInfoDropModel.DropType dropType = dropModel.getDropType(); + String tableName = FuncBase.concatSymbol(dropModel.getTableName(), symbol, upperFlag); + String indexName = FuncBase.concatSymbol(dropModel.getIndexName(), symbol, upperFlag); + String schemaName = FuncBase.concatSymbol(context.getSchemaName(), symbol); + + //删除索引存在差异 + if (FuncBase.equals(dropType, SqlInfoDropModel.DropType.DROP_INDEX)) { + JeeLowCodeAlterTable dropIndex = new JeeLowCodeAlterTable(); + dropIndex.setTableName(schemaName + StringPool.DOT + tableName); + dropIndex.dropIndex(indexName); + List ddlList = Collections.singletonList(dropIndex.getFullSQL()); + dropModel.setExecuteDdlList(ddlList); + } + } + + private void handleDdlModel(SQLInterpretContext context) { + SqlInfoDdlModel ddlModel = context.getDdlModel(); + if (FuncBase.isEmpty(ddlModel)) { + return; + } + String ddl = ""; + String schemaName = context.getSchemaName(); + switch (ddlModel.getType()) { + case INDEX_EXIST://索引是否存在 + ddl = this.formatIndexExistSql(schemaName, ddlModel.getMap()); + break; + case INDEX_ALL://全部索引 + ddl = this.formatIndexAllSql(schemaName, ddlModel.getMap()); + break; + case TABLE_EXIST://表是否存在 + ddl = this.formatTableExistSql(schemaName, ddlModel.getMap()); + break; + case TABLE_FIELD_COMMENT://表字段备注 + ddl = this.formatTableFieldCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + case ALL_TABLE_NAME://所有表名 + ddl = this.formatGetTableNameSql(schemaName); + break; + case TABLE_COMMENT://表备注 + ddl = this.formatGetTableCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + } + List ddlList = Collections.singletonList(ddl); + ddlModel.setExecuteDdlList(ddlList); + } + + //索引是否存在 + private String formatIndexExistSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String indexName = FuncBase.getMap2Str(map, "indexName"); + String mysqlFormatStr = "select count(*) as \"cou\" from `information_schema`.`statistics` where `non_unique` =1 and `table_schema`='%s' and `table_name` ='%s' and `index_name` ='%s' "; + return String.format(mysqlFormatStr, schemaName, tableName, indexName); + } + + //获取所有索引 + private String formatIndexAllSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr = "select index_name as \"index_name\" from `information_schema`.`statistics` where `non_unique` =1 and `table_schema`='%s' and `table_name` ='%s'"; + return String.format(mysqlFormatStr, schemaName, tableName); + + } + + //表名是否存在 + private String formatTableExistSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr = "SELECT COUNT(*) AS \"cou\" FROM `information_schema`.`TABLES` WHERE `table_schema`='%s' AND `table_name`='%s'"; + return String.format(mysqlFormatStr, schemaName, tableName); + } + + //表字段备注 + private String formatTableFieldCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr="SELECT COLUMN_NAME AS \"fieldCode\", COLUMN_COMMENT AS \"fieldName\" FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s';"; + return String.format(oracleFormatStr, schemaName, tableName); + } + + //表名是否存在 + private String formatGetTableNameSql(String schemaName) { + String mysqlFormatStr = "SELECT table_name AS \"table_name\" FROM `information_schema`.`TABLES` WHERE `table_schema`='%s' "; + return String.format(mysqlFormatStr, schemaName); + } + + //获取表备注 + private String formatGetTableCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr="SELECT TABLE_COMMENT AS \"table_comment\" FROM information_schema.TABLES WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s';"; + return String.format(mysqlFormatStr, schemaName, tableName); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbOracle.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbOracle.java new file mode 100644 index 0000000..cc9c616 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbOracle.java @@ -0,0 +1,146 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.template; + + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDdlModel; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDropModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Oracle 数据库 + */ +public class DbOracle extends AbstractDbTemplate { + + /** + * 初始化数据库类型 + * + * @return + */ + @Override + public void initDbColunmTypes(SqlInfoEntity sqlInfoEntity) { + SQLInterpretContext context = sqlInfoEntity.getContext(); + DbColunmTypesEntity oracleEntity = new DbColunmTypesEntity(); + oracleEntity.setSymbol("\"%s\""); + oracleEntity.setUpperFlag(true);//转大写 + oracleEntity.setJeeLowCodeString("varchar2", 4000); + oracleEntity.setJeeLowCodeInteger("number", 38); + oracleEntity.setJeeLowCodeBigInt("number", 38); + oracleEntity.setJeeLowCodeDate("date", 0); + oracleEntity.setJeeLowCodeDateTime("timestamp", 0); + oracleEntity.setJeeLowCodeTime("timestamp", 0); + oracleEntity.setJeeLowCodeBigDecimal("number", 38,null); + oracleEntity.setJeeLowCodeText("nclob", 0); + oracleEntity.setJeeLowCodeLongText("nclob", 0); + oracleEntity.setJeeLowCodeBlob("blob", 0); + context.setDbColunmTypes(oracleEntity); + } + + @Override + protected void formatSQLInterpretContext(SQLInterpretContext context) { + //处理删除 + this.handleDroptModel(context); + //处理自定义ddl + this.handleDdlModel(context); + } + + + private void handleDroptModel(SQLInterpretContext context) { + SqlInfoDropModel dropModel = context.getDropModel(); + if (FuncBase.isEmpty(dropModel)) { + return; + } + dropModel.setCloumnFormat("(%s)"); + + } + + + private void handleDdlModel(SQLInterpretContext context) { + SqlInfoDdlModel ddlModel = context.getDdlModel(); + if (FuncBase.isEmpty(ddlModel)) { + return; + } + String ddl = ""; + switch (ddlModel.getType()) { + case INDEX_EXIST://索引是否存在 + ddl = this.formatIndexExistSql(ddlModel.getMap()); + break; + case INDEX_ALL://全部索引 + ddl = this.formatIndexAllSql(ddlModel.getMap()); + break; + case TABLE_EXIST://表是否存在 + ddl = this.formatTableExistSql(context.getSchemaName(), ddlModel.getMap()); + break; + case TABLE_FIELD_COMMENT://表字段备注 + ddl = this.formatTableFieldCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + case ALL_TABLE_NAME://所有表名 + ddl = this.formatGetTableNameSql(context.getSchemaName()); + break; + case TABLE_COMMENT://表备注 + ddl = this.formatGetTableCommentSql(context.getSchemaName(), ddlModel.getMap()); + break; + } + List ddlList = Collections.singletonList(ddl); + ddlModel.setExecuteDdlList(ddlList); + } + + //索引是否存在 + private String formatIndexExistSql(Map map) { + String indexName = FuncBase.getMap2Str(map, "indexName"); + String oracleFormatStr = "select count(*) as \"cou\" from USER_IND_COLUMNS where INDEX_NAME=upper('%s')"; + return String.format(oracleFormatStr, indexName); + } + + //获取所有索引 + private String formatIndexAllSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "select INDEX_NAME AS \"index_name\" from ALL_INDEXES where TABLE_NAME =upper('%s') and INDEX_NAME NOT LIKE 'SYS_%%'"; + return String.format(oracleFormatStr, tableName); + } + + //表名是否存在 + private String formatTableExistSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "SELECT COUNT(*) as \"cou\" FROM ALL_TABLES WHERE OWNER = '%s' AND TABLE_NAME = upper('%s');"; + return String.format(oracleFormatStr, schemaName, tableName); + + } + //表字段备注 + private String formatTableFieldCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr = "SELECT COLUMN_NAME as \"fieldCode\",COMMENTS as \"fieldName\" FROM ALL_COL_COMMENTS WHERE OWNER = '%s' AND TABLE_NAME = upper('%s');"; + return String.format(oracleFormatStr, schemaName, tableName); + } + + //表名是否存在 + private String formatGetTableNameSql(String schemaName) { + String oracleFormatStr = "SELECT TABLE_NAME as \"table_name\" FROM ALL_COL_COMMENTS WHERE OWNER = '%s';"; + return String.format(oracleFormatStr, schemaName); + } + + //获取表备注 + private String formatGetTableCommentSql(String schemaName, Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr="select COMMENTS AS \"table_comment\" from ALL_TAB_COMMENTS WHERE OWNER ='%s' AND TABLE_NAME= upper('%s');"; + return String.format(mysqlFormatStr, schemaName, tableName); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbPostgresql.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbPostgresql.java new file mode 100644 index 0000000..03b1eb7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/template/DbPostgresql.java @@ -0,0 +1,170 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.template; + +import com.jeelowcode.framework.plus.build.buildmodel.SQLInterpretContext; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoAlterModel; +import com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoDdlModel; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.entity.FieldModel; +import com.jeelowcode.framework.plus.entity.SqlInfoEntity; +import com.jeelowcode.framework.plus.utils.PlusUtils; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.constant.JeeLowCodeConstant; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static com.jeelowcode.framework.plus.build.buildmodel.ddl.SqlInfoAlterModel.AlterType.UPDATE_COLUMN; + +/** + * @author JX + * @create 2024-07-31 11:08 + * @dedescription: + */ +public class DbPostgresql extends AbstractDbTemplate { + @Override + protected void initDbColunmTypes(SqlInfoEntity sqlInfoEntity) { + SQLInterpretContext context = sqlInfoEntity.getContext(); + + DbColunmTypesEntity postgreEntity = new DbColunmTypesEntity(); + postgreEntity.setSymbol(""); + postgreEntity.setUpperFlag(false);//不用转大写 + postgreEntity.setJeeLowCodeString("varchar", 65535); + postgreEntity.setJeeLowCodeInteger("int4", 0); + postgreEntity.setJeeLowCodeBigInt("int8", 0); + postgreEntity.setJeeLowCodeDate("date", 0); + postgreEntity.setJeeLowCodeDateTime("timestamp", 0); + postgreEntity.setJeeLowCodeTime("time", 0); + postgreEntity.setJeeLowCodeBigDecimal("numeric", 1000,null); + postgreEntity.setJeeLowCodeText("text", 0); + postgreEntity.setJeeLowCodeLongText("text", 0); + postgreEntity.setJeeLowCodeBlob("bytea", 0); + context.setDbColunmTypes(postgreEntity); + } + + @Override + protected void formatSQLInterpretContext(SQLInterpretContext context) { + //处理 schemaName + this.handleSchemaName(context); + //处理修改表 + this.handleAlterModel(context); + //处理自定义ddl + this.handleDdlModel(context); + } + + private void handleSchemaName(SQLInterpretContext context) { + String schemaName = context.getSchemaName(); + if (FuncBase.isEmpty(schemaName)) { + return; + } + context.setSchemaName(schemaName + JeeLowCodeConstant.POSTGRESQL_SCHEMA); + } + + private void handleAlterModel(SQLInterpretContext context) { + SqlInfoAlterModel alterModel = context.getAlterModel(); + if (FuncBase.isEmpty(alterModel)) { + return; + } + DbColunmTypesEntity dbColunmTypes = context.getDbColunmTypes(); + String schemaName = context.getSchemaName(); + String tableName = alterModel.getTableName(); + FieldModel fieldModel = alterModel.getFieldModel(); + + JeeLowCodeFieldTypeEnum fieldTypeEnum = fieldModel.getFieldType(); + DbColunmTypesEntity.TypeEntity typeEntity = PlusUtils.jeelowCodeType2DbType(fieldTypeEnum, dbColunmTypes); + String fieldType = PlusUtils.getDbType(fieldTypeEnum, typeEntity.getDbType(), fieldModel.getFieldLen(), fieldModel.getFieldPointLen(),typeEntity.getDbMaxLen()); + String fieldCode = fieldModel.getFieldCode(); + + SqlInfoAlterModel.AlterType alterType = alterModel.getAlterType(); + if (FuncBase.equals(alterType, UPDATE_COLUMN)) {//修改列 存在差异 + String ddl = "ALTER TABLE %s.%s ALTER COLUMN %s TYPE %s USING %s::%s"; + //设置自定义ddl + alterModel.setExecuteDdlList(Collections.singletonList(String.format(ddl, schemaName, tableName, fieldCode, fieldType, fieldCode, fieldType))); + } + } + + private void handleDdlModel(SQLInterpretContext context) { + SqlInfoDdlModel ddlModel = context.getDdlModel(); + if (FuncBase.isEmpty(ddlModel)) { + return; + } + String ddl = ""; + switch (ddlModel.getType()) { + case INDEX_EXIST://索引是否存在 + ddl = this.formatIndexExistSql(ddlModel.getMap()); + break; + case INDEX_ALL://全部索引 + ddl = this.formatIndexAllSql(ddlModel.getMap()); + break; + case TABLE_EXIST://表是否存在 + ddl = this.formatTableExistSql(ddlModel.getMap()); + break; + case TABLE_FIELD_COMMENT://表字段备注 + ddl = this.formatTableFieldCommentSql(ddlModel.getMap()); + break; + case ALL_TABLE_NAME://所有表名 + ddl = this.formatGetTableNameSql(); + break; + case TABLE_COMMENT://表备注 + ddl = this.formatGetTableCommentSql(ddlModel.getMap()); + break; + } + List ddlList = Collections.singletonList(ddl); + ddlModel.setExecuteDdlList(ddlList); + } + + //索引是否存在 + private String formatIndexExistSql(Map map) { + String indexName = FuncBase.getMap2Str(map, "indexName"); + String postgreStr = "SELECT count(*) as \"cou\" FROM pg_indexes WHERE indexname = '%s'"; + return String.format(postgreStr, indexName); + } + + //获取所有索引 + private String formatIndexAllSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String postgreFormatStr = "SELECT indexname AS \"index_name\" FROM pg_indexes WHERE tablename = '%s' and indexname not like '%s_pkey';"; + return String.format(postgreFormatStr, tableName, tableName); + } + + //表名是否存在 + private String formatTableExistSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String postgreFormatStr = "SELECT count(*) as \"cou\" FROM pg_tables WHERE schemaname = 'public' AND tablename = '%s';"; + return String.format(postgreFormatStr, tableName); + } + + //表名是否存在 + private String formatGetTableNameSql() { + String postgreFormatStr = "SELECT tablename as \"table_name\" FROM pg_tables WHERE schemaname = 'public';"; + return String.format(postgreFormatStr); + } + + //表字段备注 + private String formatTableFieldCommentSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String oracleFormatStr="SELECT A.attname AS \"fieldCode\",col_description (A.attrelid,A.attnum) AS \"fieldName\" FROM pg_attribute A WHERE A.attrelid='%s' :: REGCLASS AND A.attnum> 0 AND NOT A.attisdropped ORDER BY A.attnum;"; + return String.format(oracleFormatStr, tableName); + } + + //获取表备注 + private String formatGetTableCommentSql(Map map) { + String tableName = FuncBase.getMap2Str(map, "tableName"); + String mysqlFormatStr="SELECT d.description AS \"table_comment\" FROM pg_catalog.pg_class pc JOIN pg_catalog.pg_description d ON pc.OID=d.objoid WHERE pc.relname='%s' AND pc.relkind='r' AND d.objsubid=0;"; + return String.format(mysqlFormatStr, tableName); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/utils/PlusUtils.java b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/utils/PlusUtils.java new file mode 100644 index 0000000..ac13711 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/java/com/jeelowcode/framework/plus/utils/PlusUtils.java @@ -0,0 +1,170 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.plus.utils; + +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.plus.entity.DbColunmTypesEntity; +import com.jeelowcode.framework.plus.core.model.SqlFormatModel; +import com.jeelowcode.framework.utils.enums.JeeLowCodeFieldTypeEnum; +import com.jeelowcode.framework.utils.enums.YNEnum; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.*; +import java.util.stream.Collectors; + +public class PlusUtils { + + private static String NOT_NULL = "NOT NULL";//不允许为空 + private static String NULL = "NULL";//允许为空 + private static String DEFAULT = "DEFAULT";//默认值 + + + /** + * 通过jeelowcode 类型来获取数据库类型 + * @param fieldTypeEnum + * @param dbColunmTypes + * @return + */ + public static DbColunmTypesEntity.TypeEntity jeelowCodeType2DbType(JeeLowCodeFieldTypeEnum fieldTypeEnum, DbColunmTypesEntity dbColunmTypes){ + Map typeMap = new HashMap<>(); + typeMap.put(JeeLowCodeFieldTypeEnum.STRING, dbColunmTypes.getJeeLowCodeString()); + typeMap.put(JeeLowCodeFieldTypeEnum.INTEGER, dbColunmTypes.getJeeLowCodeInteger()); + typeMap.put(JeeLowCodeFieldTypeEnum.DATE, dbColunmTypes.getJeeLowCodeDate()); + typeMap.put(JeeLowCodeFieldTypeEnum.DATETIME, dbColunmTypes.getJeeLowCodeDateTime()); + typeMap.put(JeeLowCodeFieldTypeEnum.TIME, dbColunmTypes.getJeeLowCodeTime()); + typeMap.put(JeeLowCodeFieldTypeEnum.BIGINT, dbColunmTypes.getJeeLowCodeBigInt()); + typeMap.put(JeeLowCodeFieldTypeEnum.BIGDECIMAL, dbColunmTypes.getJeeLowCodeBigDecimal()); + typeMap.put(JeeLowCodeFieldTypeEnum.TEXT, dbColunmTypes.getJeeLowCodeText()); + typeMap.put(JeeLowCodeFieldTypeEnum.LONGTEXT, dbColunmTypes.getJeeLowCodeLongText()); + typeMap.put(JeeLowCodeFieldTypeEnum.BLOB, dbColunmTypes.getJeeLowCodeBlob()); + DbColunmTypesEntity.TypeEntity dbType = typeMap.get(fieldTypeEnum); + if(FuncBase.isEmpty(dbType)){ + throw new JeeLowCodeException("类型有误"); + } + return dbType; + } + + /** + * 通过数据库 类型来获取 jeelowcode 类型 + * @param dbType 数据库类型 例如oracle对应的是number + * @param dbColunmTypes + * @return + */ + public static List dbType2JeelowCodeTypeList(String dbType, DbColunmTypesEntity dbColunmTypes){ + dbType=dbType.toLowerCase(); + if(dbType.contains("(")){ + dbType =dbType.split("\\(")[0]; + } + + List resultList=new ArrayList<>(); + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeString().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeString()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeInteger().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeInteger()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeDate().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeDate()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeDateTime().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeDateTime()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeTime().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeTime()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeBigInt().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeBigInt()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeBigDecimal().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeBigDecimal()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeText().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeText()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeLongText().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeLongText()); + } + if(FuncBase.equals(dbType,dbColunmTypes.getJeeLowCodeBlob().getDbType())){ + resultList.add(dbColunmTypes.getJeeLowCodeBlob()); + } + //默认字符串 + if(FuncBase.isEmpty(resultList)){ + resultList.add(dbColunmTypes.getJeeLowCodeString()); + } + + return resultList; + } + + + //获取类型 + public static String getDbType(JeeLowCodeFieldTypeEnum jeeLowCodeFieldTypeEnum, String dbType, Integer len, Integer pointLen,Integer fieldMaxLen) { + + len = FuncBase.isEmpty(len) ? 0 : len;//长度 + pointLen = FuncBase.isEmpty(pointLen) ? 0 : pointLen;//小数 + + if(FuncBase.isNotEmpty(fieldMaxLen) && fieldMaxLen>0){ + if(len>fieldMaxLen){ + len=fieldMaxLen; + } + } + + if (FuncBase.equals(JeeLowCodeFieldTypeEnum.STRING, jeeLowCodeFieldTypeEnum)) { + return String.format(" %s (%s)", dbType, len); + } else if (FuncBase.equals(JeeLowCodeFieldTypeEnum.INTEGER, jeeLowCodeFieldTypeEnum)) { + return len == 0 ? String.format(" %s ", dbType) : String.format(" %s (%s)", dbType, len); + } else if (FuncBase.equals(JeeLowCodeFieldTypeEnum.BIGINT, jeeLowCodeFieldTypeEnum)) { + return len == 0 ? String.format(" %s ", dbType) : String.format(" %s (%s)", dbType, len); + } else if (FuncBase.equals(JeeLowCodeFieldTypeEnum.BIGDECIMAL, jeeLowCodeFieldTypeEnum)) { + return String.format(" %s (%s, %s)", dbType, len, pointLen); + } else{ + return String.format(" %s ", dbType); + } + + } + + public static String getDefaultValSql(String defaultVal, String isNull,String nowIsNull) { + String nullStr=NULL; + String notNullStr=NOT_NULL; + if(FuncBase.isNotEmpty(nowIsNull) && FuncBase.equals(isNull,nowIsNull)){//如果一样,则不用操作,oracle特殊 + nullStr=""; + notNullStr=""; + } + if (FuncBase.equals(isNull, YNEnum.Y.getCode())) {//允许为空 + if (FuncBase.isNotEmpty(defaultVal)) { + String formatStr = DEFAULT + " '%s' "; + return String.format(formatStr, defaultVal); + } else { + return nullStr; + } + } else {//不为空 + if (FuncBase.isNotEmpty(defaultVal)) { + String formatStr = DEFAULT + " '%s'"; + return NOT_NULL + " " + String.format(formatStr, defaultVal); + } else { + return notNullStr; + } + } + + } + + public static List ddl2SqlFormatModel(List ddlList){ + return ddlList.stream() + .map(ddl -> new SqlFormatModel(ddl)) + .collect(Collectors.toList()); + } + + public static List ddl2SqlFormatModel(String ddl){ + return Collections.singletonList(new SqlFormatModel(ddl)); + } +} diff --git a/jeelowcode-framework/jeelowcode-plus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/jeelowcode-framework/jeelowcode-plus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8458d05 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-plus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.jeelowcode.framework.plus.component.JeelowCodePlusInterceptor +com.jeelowcode.framework.plus.component.DbManager \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-tenant/pom.xml b/jeelowcode-framework/jeelowcode-tenant/pom.xml new file mode 100644 index 0000000..b4b7a0e --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/pom.xml @@ -0,0 +1,37 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + 4.0.0 + + jeelowcode-tenant + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - 租户 + + + + + com.jeelowcode + jeelowcode-utils + + + + com.github.jsqlparser + jsqlparser + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + + + diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/annotation/JeeLowCodeTenantIgnore.java b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/annotation/JeeLowCodeTenantIgnore.java new file mode 100644 index 0000000..3370933 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/annotation/JeeLowCodeTenantIgnore.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.tenant.annotation; + +import java.lang.annotation.*; + +/** + * 自定义租户过滤 + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.TYPE,ElementType.METHOD}) +public @interface JeeLowCodeTenantIgnore { + + +} diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/aspect/JeeLowCodeTenantAspect.java b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/aspect/JeeLowCodeTenantAspect.java new file mode 100644 index 0000000..adf706d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/aspect/JeeLowCodeTenantAspect.java @@ -0,0 +1,68 @@ +/* Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + 本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + + 开源协议中文释意如下: + 1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 + 2.允许基于本平台软件开展业务系统开发。 + 3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + + 最终解释权归:http://www.jeelowcode.com*/ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.tenant.aspect; + + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import com.jeelowcode.framework.tenant.utils.JeeLowCodeTenantUtils; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; + + +@Aspect +public class JeeLowCodeTenantAspect { + + public JeeLowCodeTenantAspect() { + } + + + // 定义一个切点,用于匹配带有Administrator注解的类 + @Pointcut("@within(com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore)") + private void pointcutClass() {} + + // 定义一个切点,用于匹配带有Administrator注解的方法 + @Pointcut("@annotation(com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore)") + private void pointcutMethod() {} + + @Around("pointcutClass() || pointcutMethod()") + public Object around(ProceedingJoinPoint point) throws Throwable { + Object obj; + boolean oldjeelowcodeIgnore = JeeLowCodeTenantUtils.isIgnore(); + boolean oldIgnore = TenantContextHolder.isIgnore(); + try { + JeeLowCodeTenantUtils.setIgnore(Boolean.TRUE); + TenantContextHolder.setIgnore(true);//芋道 + obj = point.proceed(); + } finally { + JeeLowCodeTenantUtils.setIgnore(oldjeelowcodeIgnore); + TenantContextHolder.setIgnore(oldIgnore); + } + + return obj; + } + +} diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/auto/JeeLowCodeTenantAutoConfiguration.java b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/auto/JeeLowCodeTenantAutoConfiguration.java new file mode 100644 index 0000000..2c874fc --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/auto/JeeLowCodeTenantAutoConfiguration.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.tenant.auto; + +import com.jeelowcode.framework.tenant.aspect.JeeLowCodeTenantAspect; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +@Component +public class JeeLowCodeTenantAutoConfiguration { + + // ========== AOP ========== + + @Bean + public JeeLowCodeTenantAspect jeeLowCodeTenantAspect() { + return new JeeLowCodeTenantAspect(); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/parse/JeeLowCodeTenantParse.java b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/parse/JeeLowCodeTenantParse.java new file mode 100644 index 0000000..9f53882 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/parse/JeeLowCodeTenantParse.java @@ -0,0 +1,656 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.tenant.parse; + +import cn.hutool.core.collection.CollUtil; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.tenant.utils.JeeLowCodeTenantUtils; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.jeelowcode.framework.utils.utils.FuncWebBase; +import net.sf.jsqlparser.expression.*; +import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.conditional.OrExpression; +import net.sf.jsqlparser.expression.operators.relational.*; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.insert.Insert; +import net.sf.jsqlparser.statement.select.*; +import net.sf.jsqlparser.statement.update.Update; +import net.sf.jsqlparser.statement.update.UpdateSet; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 租户工具类 + */ +public class JeeLowCodeTenantParse { + private final AntPathMatcher pathMatcher; + + public JeeLowCodeTenantParse() { + this.pathMatcher = new AntPathMatcher(); + } + + /** + * select 处理查询语句 + * @param select + */ + public static void processSelect(Select select) { + JeeLowCodeTenantParse parse=new JeeLowCodeTenantParse(); + + final String whereSegment = ""; + parse.processSelectBody(select.getSelectBody(), whereSegment); + List withItemsList = select.getWithItemsList(); + if (!FuncBase.isEmpty(withItemsList)) { + withItemsList.forEach(withItem -> parse.processSelectBody(withItem, whereSegment)); + } + } + + /** + * update 语句处理 + */ + public static void processUpdate(Update update) { + JeeLowCodeTenantParse parse=new JeeLowCodeTenantParse(); + final Table table = update.getTable(); + final Object obj=null; + ArrayList sets = update.getUpdateSets(); + if (!FuncBase.isEmpty(sets)) { + sets.forEach(us -> us.getExpressions().forEach(ex -> { + if (ex instanceof SubSelect) { + parse.processSelectBody(((SubSelect) ex).getSelectBody(), (String) obj); + } + })); + } + update.setWhere(parse.andExpression(table, update.getWhere(), (String) obj)); + } + + /** + * delete 语句处理 + */ + public static void processDelete(Delete delete) { + JeeLowCodeTenantParse parse=new JeeLowCodeTenantParse(); + final Object obj=null; + delete.setWhere(parse.andExpression(delete.getTable(), delete.getWhere(), (String) obj)); + } + + /** + * 新增 + * @param insert + */ + public static void processInsert(Insert insert) { + JeeLowCodeTenantParse parse=new JeeLowCodeTenantParse(); + + Object obj=null; + if (parse.ignoreTable(insert.getTable().getName())) { + // 过滤退出执行 + return; + } + List columns = insert.getColumns(); + if (FuncBase.isEmpty(columns)) { + // 针对不给列名的insert 不处理 + return; + } + String tenantIdColumn = JeeLowCodeTenantUtils.TENANT_ID_COLUMN; + if (parse.ignoreInsert(columns, tenantIdColumn)) { + // 针对已给出租户列的insert 不处理 + return; + } + columns.add(new Column(tenantIdColumn)); + + // fixed gitee pulls/141 duplicate update + List duplicateUpdateColumns = insert.getDuplicateUpdateExpressionList(); + if (FuncBase.isNotEmpty(duplicateUpdateColumns)) { + EqualsTo equalsTo = new EqualsTo(); + equalsTo.setLeftExpression(new StringValue(tenantIdColumn)); + equalsTo.setRightExpression(parse.getTenantId()); + duplicateUpdateColumns.add(equalsTo); + } + + Select select = insert.getSelect(); + if (select != null && (select.getSelectBody() instanceof PlainSelect)) { //fix github issue 4998 修复升级到4.5版本的问题 + parse.processInsertSelect(select.getSelectBody(), (String) obj); + } else if (insert.getItemsList() != null) { + // fixed github pull/295 + ItemsList itemsList = insert.getItemsList(); + Expression tenantId = parse.getTenantId(); + if (itemsList instanceof MultiExpressionList) { + ((MultiExpressionList) itemsList).getExpressionLists().forEach(el -> el.getExpressions().add(tenantId)); + } else { + List expressions = ((ExpressionList) itemsList).getExpressions(); + if (FuncBase.isNotEmpty(expressions)) {//fix github issue 4998 jsqlparse 4.5 批量insert ItemsList不是MultiExpressionList 了,需要特殊处理 + int len = expressions.size(); + for (int i = 0; i < len; i++) { + Expression expression = expressions.get(i); + if (expression instanceof RowConstructor) { + ((RowConstructor) expression).getExprList().getExpressions().add(tenantId); + } else if (expression instanceof Parenthesis) { + RowConstructor rowConstructor = new RowConstructor() + .withExprList(new ExpressionList(((Parenthesis) expression).getExpression(), tenantId)); + expressions.set(i, rowConstructor); + } else { + if (len - 1 == i) { // (?,?) 只有最后一个expre的时候才拼接tenantId + expressions.add(tenantId); + } + } + } + } else { + expressions.add(tenantId); + } + } + } else { + throw new JeeLowCodeException("Failed to process multiple-table update, please exclude the tableName or statementId"); + } + } + + /** + * 追加 SelectItem ok + * + * @param selectItems SelectItem + */ + private void appendSelectItem(List selectItems) { + if (FuncBase.isEmpty(selectItems)) { + return; + } + if (selectItems.size() == 1) { + SelectItem item = selectItems.get(0); + if (item instanceof AllColumns || item instanceof AllTableColumns) { + return; + } + } + selectItems.add(new SelectExpressionItem(new Column("tenant_id"))); + } + + /** + * ok + * 处理 insert into select + *

    + * 进入这里表示需要 insert 的表启用了多租户,则 select 的表都启动了 + * + * @param selectBody SelectBody + */ + private void processInsertSelect(SelectBody selectBody, final String whereSegment) { + PlainSelect plainSelect = (PlainSelect) selectBody; + FromItem fromItem = plainSelect.getFromItem(); + if (fromItem instanceof Table) { + // fixed gitee pulls/141 duplicate update + processPlainSelect(plainSelect, whereSegment); + appendSelectItem(plainSelect.getSelectItems()); + } else if (fromItem instanceof SubSelect) { + SubSelect subSelect = (SubSelect) fromItem; + appendSelectItem(plainSelect.getSelectItems()); + processInsertSelect(subSelect.getSelectBody(), whereSegment); + } + } + /** + * ok + * delete update 语句 where 处理 + */ + private Expression andExpression(Table table, Expression where, final String whereSegment) { + //获得where条件表达式 + final Expression expression = buildTableExpression(table, where, whereSegment); + if (expression == null) { + return where; + } + if (where != null) { + if (where instanceof OrExpression) { + return new AndExpression(new Parenthesis(where), expression); + } else { + return new AndExpression(where, expression); + } + } + return expression; + } + + //ok + private void processSelectBody(SelectBody selectBody, final String whereSegment) { + if (selectBody == null) { + return; + } + if (selectBody instanceof PlainSelect) { + processPlainSelect((PlainSelect) selectBody, whereSegment); + } else if (selectBody instanceof WithItem) { + WithItem withItem = (WithItem) selectBody; + processSelectBody(withItem.getSubSelect().getSelectBody(), whereSegment); + } else { + SetOperationList operationList = (SetOperationList) selectBody; + List selectBodyList = operationList.getSelects(); + if (FuncBase.isNotEmpty(selectBodyList)) { + selectBodyList.forEach(body -> processSelectBody(body, whereSegment)); + } + } + } + /** + * ok + * 处理 PlainSelect + */ + private void processPlainSelect(final PlainSelect plainSelect, final String whereSegment) { + //#3087 github + List selectItems = plainSelect.getSelectItems(); + if (FuncBase.isNotEmpty(selectItems)) { + selectItems.forEach(selectItem -> processSelectItem(selectItem, whereSegment)); + } + + // 处理 where 中的子查询 + Expression where = plainSelect.getWhere(); + processWhereSubSelect(where, whereSegment); + + // 处理 fromItem + FromItem fromItem = plainSelect.getFromItem(); + List list = processFromItem(fromItem, whereSegment); + List
    mainTables = new ArrayList<>(list); + + // 处理 join + List joins = plainSelect.getJoins(); + if (FuncBase.isNotEmpty(joins)) { + mainTables = processJoins(mainTables, joins, whereSegment); + } + + // 当有 mainTable 时,进行 where 条件追加 + if (FuncBase.isNotEmpty(mainTables)) { + plainSelect.setWhere(builderExpression(where, mainTables, whereSegment)); + } + //System.out.println("plainSelect======"+JSONUtil.toJsonStr(plainSelect)); + } + + //ok + private void processSelectItem(SelectItem selectItem, final String whereSegment) { + if (selectItem instanceof SelectExpressionItem) { + SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem; + final Expression expression = selectExpressionItem.getExpression(); + if (expression instanceof SubSelect) { + processSelectBody(((SubSelect) expression).getSelectBody(), whereSegment); + } else if (expression instanceof Function) { + processFunction((Function) expression, whereSegment); + } + } + } + + /** + * ok + * 处理函数 + *

    支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)

    + *

    fixed gitee pulls/141

    + * + * @param function + */ + private void processFunction(Function function, final String whereSegment) { + ExpressionList parameters = function.getParameters(); + if (parameters != null) { + parameters.getExpressions().forEach(expression -> { + if (expression instanceof SubSelect) { + processSelectBody(((SubSelect) expression).getSelectBody(), whereSegment); + } else if (expression instanceof Function) { + processFunction((Function) expression, whereSegment); + } + }); + } + } + + //ok + private void processWhereSubSelect(Expression where, final String whereSegment) { + if (where == null) { + return; + } + if (where instanceof FromItem) { + processOtherFromItem((FromItem) where, whereSegment); + return; + } + if (where.toString().indexOf("SELECT") > 0) { + // 有子查询 + if (where instanceof BinaryExpression) { + // 比较符号 , and , or , 等等 + BinaryExpression expression = (BinaryExpression) where; + processWhereSubSelect(expression.getLeftExpression(), whereSegment); + processWhereSubSelect(expression.getRightExpression(), whereSegment); + } else if (where instanceof InExpression) { + // in + InExpression expression = (InExpression) where; + Expression inExpression = expression.getRightExpression(); + if (inExpression instanceof SubSelect) { + processSelectBody(((SubSelect) inExpression).getSelectBody(), whereSegment); + } + } else if (where instanceof ExistsExpression) { + // exists + ExistsExpression expression = (ExistsExpression) where; + processWhereSubSelect(expression.getRightExpression(), whereSegment); + } else if (where instanceof NotExpression) { + // not exists + NotExpression expression = (NotExpression) where; + processWhereSubSelect(expression.getExpression(), whereSegment); + } else if (where instanceof Parenthesis) { + Parenthesis expression = (Parenthesis) where; + processWhereSubSelect(expression.getExpression(), whereSegment); + } + } + } + + + + /** + * ok + * 处理子查询等 + */ + private void processOtherFromItem(FromItem fromItem, final String whereSegment) { + // 去除括号 + while (fromItem instanceof ParenthesisFromItem) { + fromItem = ((ParenthesisFromItem) fromItem).getFromItem(); + } + + if (fromItem instanceof SubSelect) { + SubSelect subSelect = (SubSelect) fromItem; + if (subSelect.getSelectBody() != null) { + processSelectBody(subSelect.getSelectBody(), whereSegment); + } + } else if (fromItem instanceof ValuesList) { + //logger.debug("Perform a subQuery, if you do not give us feedback"); + } else if (fromItem instanceof LateralSubSelect) { + LateralSubSelect lateralSubSelect = (LateralSubSelect) fromItem; + if (lateralSubSelect.getSubSelect() != null) { + SubSelect subSelect = lateralSubSelect.getSubSelect(); + if (subSelect.getSelectBody() != null) { + processSelectBody(subSelect.getSelectBody(), whereSegment); + } + } + } + } + + //ok + private List
    processFromItem(FromItem fromItem, final String whereSegment) { + // 处理括号括起来的表达式 + while (fromItem instanceof ParenthesisFromItem) { + fromItem = ((ParenthesisFromItem) fromItem).getFromItem(); + } + + List
    mainTables = new ArrayList<>(); + // 无 join 时的处理逻辑 + if (fromItem instanceof Table) { + Table fromTable = (Table) fromItem; + mainTables.add(fromTable); + } else if (fromItem instanceof SubJoin) { + // SubJoin 类型则还需要添加上 where 条件 + List
    tables = processSubJoin((SubJoin) fromItem, whereSegment); + mainTables.addAll(tables); + } else { + // 处理下 fromItem + processOtherFromItem(fromItem, whereSegment); + } + return mainTables; + } + + + /** + * ok + * 处理 sub join + * + * @param subJoin subJoin + * @return Table subJoin 中的主表 + */ + private List
    processSubJoin(SubJoin subJoin, final String whereSegment) { + List
    mainTables = new ArrayList<>(); + if (subJoin.getJoinList() != null) { + List
    list = processFromItem(subJoin.getLeft(), whereSegment); + mainTables.addAll(list); + mainTables = processJoins(mainTables, subJoin.getJoinList(), whereSegment); + } + return mainTables; + } + + /** + * 处理 joins + *ok + * @param mainTables 可以为 null + * @param joins join 集合 + * @return List
    右连接查询的 Table 列表 + */ + private List
    processJoins(List
    mainTables, List joins, final String whereSegment) { + // join 表达式中最终的主表 + Table mainTable = null; + // 当前 join 的左表 + Table leftTable = null; + + if (mainTables.size() == 1) { + mainTable = mainTables.get(0); + leftTable = mainTable; + } + + //对于 on 表达式写在最后的 join,需要记录下前面多个 on 的表名 + Deque> onTableDeque = new LinkedList<>(); + for (Join join : joins) { + // 处理 on 表达式 + FromItem joinItem = join.getRightItem(); + + // 获取当前 join 的表,subJoint 可以看作是一张表 + List
    joinTables = null; + if (joinItem instanceof Table) { + joinTables = new ArrayList<>(); + joinTables.add((Table) joinItem); + } else if (joinItem instanceof SubJoin) { + joinTables = processSubJoin((SubJoin) joinItem, whereSegment); + } + + if (joinTables != null) { + + // 如果是隐式内连接 + if (join.isSimple()) { + mainTables.addAll(joinTables); + continue; + } + + // 当前表是否忽略 + Table joinTable = joinTables.get(0); + + List
    onTables = null; + // 如果不要忽略,且是右连接,则记录下当前表 + if (join.isRight()) { + mainTable = joinTable; + mainTables.clear(); + if (leftTable != null) { + onTables = Collections.singletonList(leftTable); + } + } else if (join.isInner()) { + if (mainTable == null) { + onTables = Collections.singletonList(joinTable); + } else { + onTables = Arrays.asList(mainTable, joinTable); + } + mainTable = null; + mainTables.clear(); + } else { + onTables = Collections.singletonList(joinTable); + } + + if (mainTable != null && !mainTables.contains(mainTable)) { + mainTables.add(mainTable); + } + + // 获取 join 尾缀的 on 表达式列表 + Collection originOnExpressions = join.getOnExpressions(); + // 正常 join on 表达式只有一个,立刻处理 + if (originOnExpressions.size() == 1 && onTables != null) { + List onExpressions = new LinkedList<>(); + onExpressions.add(builderExpression(originOnExpressions.iterator().next(), onTables, whereSegment)); + join.setOnExpressions(onExpressions); + leftTable = mainTable == null ? joinTable : mainTable; + continue; + } + // 表名压栈,忽略的表压入 null,以便后续不处理 + onTableDeque.push(onTables); + // 尾缀多个 on 表达式的时候统一处理 + if (originOnExpressions.size() > 1) { + Collection onExpressions = new LinkedList<>(); + for (Expression originOnExpression : originOnExpressions) { + List
    currentTableList = onTableDeque.poll(); + if (FuncBase.isEmpty(currentTableList)) { + onExpressions.add(originOnExpression); + } else { + onExpressions.add(builderExpression(originOnExpression, currentTableList, whereSegment)); + } + } + join.setOnExpressions(onExpressions); + } + leftTable = joinTable; + } else { + processOtherFromItem(joinItem, whereSegment); + leftTable = null; + } + } + + return mainTables; + } + + /** + * ok + * 处理条件 + */ + private Expression builderExpression(Expression currentExpression, List
    tables, final String whereSegment) { + // 没有表需要处理直接返回 + if (FuncBase.isEmpty(tables)) { + return currentExpression; + } + // 构造每张表的条件 + List expressions = tables.stream() + .map(item -> buildTableExpression(item, currentExpression, whereSegment)) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + // 没有表需要处理直接返回 + if (FuncBase.isEmpty(expressions)) { + return currentExpression; + } + + // 注入的表达式 + Expression injectExpression = expressions.get(0); + // 如果有多表,则用 and 连接 + if (expressions.size() > 1) { + for (int i = 1; i < expressions.size(); i++) { + injectExpression = new AndExpression(injectExpression, expressions.get(i)); + } + } + + if (currentExpression == null) { + return injectExpression; + } + if (currentExpression instanceof OrExpression) { + return new AndExpression(new Parenthesis(currentExpression), injectExpression); + } else { + return new AndExpression(currentExpression, injectExpression); + } + } + + + /** + * 构建租户条件表达式 + * + * @param table 表对象 + * @param where 当前where条件 + * @param whereSegment 所属Mapper对象全路径(在原租户拦截器功能中,这个参数并不需要参与相关判断) + * @return 租户条件表达式 + * + */ + private Expression buildTableExpression(final Table table, final Expression where, final String whereSegment) { + if (ignoreTable(table.getName())) { + return null; + } + return new EqualsTo(getAliasColumn(table), getTenantId()); + } + + + /** + * 租户字段别名设置 + *

    tenantId 或 tableAlias.tenantId

    + * + * @param table 表对象 + * @return 字段 + */ + private Column getAliasColumn(Table table) { + StringBuilder column = new StringBuilder(); + // todo 该起别名就要起别名,禁止修改此处逻辑 + if (table.getAlias() != null) { + column.append(table.getAlias().getName()).append("."); + } + column.append(JeeLowCodeTenantUtils.TENANT_ID_COLUMN); + return new Column(column.toString()); + } + + //判断是否忽略租户 + private boolean ignoreTable(String tableName) { + Set ignoreLikeTables = JeeLowCodeTenantUtils.getIgnoreLikeTables(); + for(String table:ignoreLikeTables){ + if(table.endsWith("*")){// *结尾 -> tbl_* + table = table.substring(0, table.length() - 1); + if(tableName.startsWith(table)){//前缀开头 + return true;//不需要进行租户过滤 + } + }else if(table.startsWith("*")){// *开头 -> *_seq + table = table.substring(1); + if(tableName.endsWith(table)){//前缀开头 + return true;//不需要进行租户过滤 + } + } + + + } + HttpServletRequest request = FuncWebBase.getRequest(); + return JeeLowCodeTenantUtils.isIgnore() // 情况一,全局忽略多租户 + || JeeLowCodeTenantUtils.getIgnoreTables().contains(tableName) // 情况二,忽略多租户的表 + || isIgnoreUrl(request);// 情况二,忽略url + + } + + private boolean isIgnoreUrl(HttpServletRequest request) { + if(FuncBase.isEmpty(request)){ + return false; + } + String requestURI = request.getRequestURI(); + if(FuncBase.isEmpty(requestURI)){ + return false; + } + // 快速匹配,保证性能 + if (CollUtil.contains(JeeLowCodeTenantUtils.getIGNORE_URLS(),requestURI)) { + return true; + } + // 逐个 Ant 路径匹配 + for (String url : JeeLowCodeTenantUtils.getIGNORE_URLS()) { + if (pathMatcher.match(url, request.getRequestURI())) { + return true; + } + } + return false; + } + + + //获取租户id + private Expression getTenantId() { + Long tenantId = JeeLowCodeTenantUtils.getTenantId(); + if(FuncBase.isEmpty(tenantId)){ + tenantId=-1L; + } + //拿到当前租户 + return new LongValue(tenantId); + } + + /** + * 忽略插入租户字段逻辑 + * + * @param columns 插入字段 + * @param tenantIdColumn 租户 ID 字段 + * @return + */ + private boolean ignoreInsert(List columns, String tenantIdColumn) { + return columns.stream().map(Column::getColumnName).anyMatch(i -> i.equalsIgnoreCase(tenantIdColumn)); + } +} diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/utils/JeeLowCodeTenantUtils.java b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/utils/JeeLowCodeTenantUtils.java new file mode 100644 index 0000000..2bc9c9c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/java/com/jeelowcode/framework/tenant/utils/JeeLowCodeTenantUtils.java @@ -0,0 +1,211 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.tenant.utils; + + +import com.jeelowcode.framework.tenant.parse.JeeLowCodeTenantParse; +import com.jeelowcode.framework.tenant.parse.JeeLowCodeTenantParse; +import com.jeelowcode.framework.utils.utils.FuncBase; +import com.alibaba.ttl.TransmittableThreadLocal; +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.insert.Insert; +import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.statement.update.Update; + +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 租户工具类 + */ +public class JeeLowCodeTenantUtils { + + //租户列 + public static final String TENANT_ID_COLUMN = "tenant_id"; + + //获取当前线程租户编号 + private static final ThreadLocal TENANT_ID = new TransmittableThreadLocal<>(); + //当前线程是否忽略多租户 true=忽略 false=不忽略 + private static final ThreadLocal IGNORE = new TransmittableThreadLocal<>(); + //不进行多租户处理的表列表 + private static Set IGNORE_TABLES = new HashSet<>(); + //不进行多租户的url + private static Set IGNORE_URLS = Collections.emptySet(); + //不进行多租户处理的表列表-以*结尾 + private static Set IGNORE_LIKE_TABLES = new HashSet<>(); + + private static String TMP_PARAM="jeelowcode_param_mjkj_tmp_"; + + + private static String fomatSql(String sql) { + try{ + sql=sql.replaceAll(",jdbcType=","_jeelowcode_jdbcType_"); + String patternString = "#\\{([^}]+)\\}"; // 正则表达式字符串 + Pattern pattern = Pattern.compile(patternString); + Matcher matcher = pattern.matcher(sql); + + StringBuffer sb = new StringBuffer(); + while (matcher.find()) { + String variableName = matcher.group(1); // 获取#{}内的变量名 + matcher.appendReplacement(sb, TMP_PARAM + variableName); + } + matcher.appendTail(sb); + + sql = sb.toString(); + }catch (Exception e){ + e.printStackTrace(); + } + return sql; + } + + private static String resetSql(String sql){ + try{ + sql=sql.replaceAll("_jeelowcode_jdbcType_",",jdbcType="); + String patternString = TMP_PARAM+"([a-zA-Z0-9_.]+)(?:,(\\s*jdbcType\\s*=\\s*[a-zA-Z]+))?"; // 正则表达式字符串 + Pattern pattern = Pattern.compile(patternString); + Matcher matcher = pattern.matcher(sql); + + StringBuffer sb = new StringBuffer(); + while (matcher.find()) { + String variableName = matcher.group(1); // 获取括号内的变量名 + String jdbcType = matcher.group(2); // 获取括号内的变量名 + if(FuncBase.isEmpty(jdbcType)){ + matcher.appendReplacement(sb, "#{" + variableName + "}"); + }else{ + matcher.appendReplacement(sb, "#{" + variableName+","+jdbcType + "}"); + } + } + matcher.appendTail(sb); + + return sb.toString(); + }catch (Exception e){ + e.printStackTrace(); + } + return sql; + } + + /** + * 解析多租户sql + * + * @param sql + * @return + */ + public static String parseTenantSql(String sql) throws JSQLParserException { + Statement statement = CCJSqlParserUtil.parse(fomatSql(sql)); + if (statement instanceof Select) {//查询 + Select select = (Select) statement; + JeeLowCodeTenantParse.processSelect(select); + } else if (statement instanceof Update) {//修改 + Update update = (Update) statement; + JeeLowCodeTenantParse.processUpdate(update); + } else if (statement instanceof Delete) {//删除 + Delete delete = (Delete) statement; + JeeLowCodeTenantParse.processDelete(delete); + } else if (statement instanceof Insert) {//新增 + Insert insert = (Insert) statement; + JeeLowCodeTenantParse.processInsert(insert); + } + String new_sql = statement.toString(); + return resetSql(new_sql); + } + + //获得租户编号 + public static Long getTenantId() { + return TENANT_ID.get(); + } + + //设置租户 + public static void setTenantId(Long tenantId) { + TENANT_ID.set(tenantId); + } + + //设置当前线程是否忽略多租户 + public static void setIgnore(Boolean ignore) { + IGNORE.set(ignore); + } + + //当前是否忽略租户 + public static boolean isIgnore() { + return Boolean.TRUE.equals(IGNORE.get()); + } + + //忽略列表 + public static Set getIgnoreTables() { + return IGNORE_TABLES; + } + + //忽略列表 + public static Set getIgnoreLikeTables() { + return IGNORE_LIKE_TABLES; + } + + + public static Set getIGNORE_URLS() { + return IGNORE_URLS; + } + + public void setIGNORE_URLS(Set IGNORE_URLS) { + this.IGNORE_URLS = IGNORE_URLS; + } + + /** + * 初始化-排除表 + * + * @param tables + */ + public static void initIgnoreTables(Set tables) { + if (IGNORE_TABLES != null && IGNORE_TABLES.size() > 0) {//只需要初始化一次 + return; + } + for (String table : tables) { + if (table.contains("*")) { + IGNORE_LIKE_TABLES.add(table); + }else { + IGNORE_TABLES.add(table); + } + } + } + + + /** + * 初始化-排除url + * + * @param urls + */ + public static void initIgnoreUrl(Set urls) { + if (IGNORE_URLS != null && IGNORE_URLS.size() > 0) {//只需要初始化一次 + return; + } + IGNORE_URLS=urls; + } + + //清空当前线程 + public static void clearIgnore() { + IGNORE.remove(); + } + + + //清空当前线程 + public static void clear() { + TENANT_ID.remove(); + IGNORE.remove(); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/jeelowcode-framework/jeelowcode-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..0ee79d0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.jeelowcode.framework.tenant.auto.JeeLowCodeTenantAutoConfiguration \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/pom.xml b/jeelowcode-framework/jeelowcode-utils/pom.xml new file mode 100644 index 0000000..e2f1003 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/pom.xml @@ -0,0 +1,73 @@ + + + + jeelowcode-framework + com.jeelowcode + ${revision} + + + 4.0.0 + jeelowcode-utils + ${project.artifactId} + ${jeelowcode.version} + jar + JeeLowCode低代码平台 - 工具类 + + + + com.jeelowcode + jeelowcode-exception + + + + com.jeelowcode + jeelowcode-global + + + + junit + junit + + + + com.alibaba + transmittable-thread-local + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-aop + + + + cn.hutool + hutool-all + + + + org.projectlombok + lombok + + + + org.redisson + redisson-spring-boot-starter + + + + com.baomidou + mybatis-plus-boot-starter + + + + + diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeeLowCodeAdapter.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeeLowCodeAdapter.java new file mode 100644 index 0000000..e6dbbc8 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeeLowCodeAdapter.java @@ -0,0 +1,99 @@ +/* Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + 本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + + 开源协议中文释意如下: + 1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 + 2.允许基于本平台软件开展业务系统开发。 + 3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + + 最终解释权归:http://www.jeelowcode.com*/ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,允许商用使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与本软件竞争的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.adapter; + +import com.jeelowcode.framework.utils.model.JeeLowCodeDept; +import com.jeelowcode.framework.utils.model.JeeLowCodeDict; +import com.jeelowcode.framework.utils.model.JeeLowCodeRole; +import com.jeelowcode.framework.utils.model.JeeLowTenant; +import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeDictParam; +import com.jeelowcode.framework.utils.params.JeeLowCodeUserParam; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 适配器 相关接口 + */ +public interface IJeeLowCodeAdapter { + + //获取当前在线人id + String getOnlineUserId(); + + //获取当前在线人账号 + String getOnlineUserName(); + + //获取当前在线人名称 + String getOnlineUserNickName(); + + //获取当前在线人部门id + String getOnlineUserDeptId(); + + //获取当前在线人id + String getTenantId(); + + //获取部门id + Long getDeptId(Long userId); + + //是否不用租户 + boolean getTenantIsIgnore(); + + //获取所有租户列表 + List getTenantList(); + + //获取字典列表 + List getDictList(JeeLowCodeDictParam param); + + //获取部门列表 + List getDeptList(JeeLowCodeDeptParam param); + + //获取所有角色列表 + List getRoleList(); + + //回显用户 + List> getUserViewList(List userIdList); + //回显部门 + List> getDeptViewList(List deptIdList); + + + //获取用户分页列表 + Object getUserPage(Integer pageNo, Integer pageSize, JeeLowCodeUserParam param); + + //初始化-新增数据默认项 + void initSaveDefaultData(Map map); + + //初始化-修改数据默认项 + void initUpdateDefaultData(Map map); + + //获取不用租户的表 + Set getTenantIgnoreTable(); + //不用租户的url + Set getTenantIgnoreUrl(); + + //获取是否开启租户 + boolean getTenantEnable(); +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeelowCodeValidate.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeelowCodeValidate.java new file mode 100644 index 0000000..2b422a7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/adapter/IJeelowCodeValidate.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.adapter; + +import com.jeelowcode.framework.exception.JeeLowCodeException; + +import javax.servlet.http.HttpServletRequest; + +/* +自定义校验 + */ +public interface IJeelowCodeValidate { + + /** + * 自定义校验 + * @param req + * @throws JeeLowCodeException + */ + void validate(HttpServletRequest req) throws JeeLowCodeException; +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiDecryptAes.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiDecryptAes.java new file mode 100644 index 0000000..b865832 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiDecryptAes.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.annotation; + +import java.lang.annotation.*; + +/** + * Api + * Aes参数解密 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ApiDecryptAes { + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiEncryptAes.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiEncryptAes.java new file mode 100644 index 0000000..25ae5f2 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/ApiEncryptAes.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.annotation; + +import java.lang.annotation.*; + +/** + * Api + * Aes 返回body 加密 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ApiEncryptAes { + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeeLowCodeNoLoginViewDbForm.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeeLowCodeNoLoginViewDbForm.java new file mode 100644 index 0000000..b1640ec --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeeLowCodeNoLoginViewDbForm.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.annotation; + +import java.lang.annotation.*; + +/** + * 不登录可以查看dbform配置 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface JeeLowCodeNoLoginViewDbForm { + + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeCache.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeCache.java new file mode 100644 index 0000000..18f9ed7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeCache.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.annotation; + +import java.lang.annotation.*; +import java.util.concurrent.TimeUnit; + +/** + * 接口缓存 + */ +@Target({ ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface JeelowCodeCache { + + String cacheNames() default ""; + + long expire() default 1800L; + + boolean nullIsSave() default false;//空值是否存储 + + TimeUnit timeUnit() default TimeUnit.SECONDS; + + Class reflexClass(); +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeValidate.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeValidate.java new file mode 100644 index 0000000..85ada57 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/annotation/JeelowCodeValidate.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.annotation; + +import com.jeelowcode.framework.utils.adapter.IJeelowCodeValidate; + +import java.lang.annotation.*; + +/** + * 自定义校验 + */ +@Target({ ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface JeelowCodeValidate { + + String title() default ""; + /** + * 校验类 + * @return + */ + Class[] validateClass() default {}; + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/JeeLowCodeAutoConfiguration.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/JeeLowCodeAutoConfiguration.java new file mode 100644 index 0000000..55e35e5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/JeeLowCodeAutoConfiguration.java @@ -0,0 +1,69 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component; + +import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.component.cache.JeelowCodeCacheAspect; +import com.jeelowcode.framework.utils.component.crypto.ApiDecryptRequestBodyAdvice; +import com.jeelowcode.framework.utils.component.crypto.ApiDecryptResponseBodyAdvice; +import com.jeelowcode.framework.utils.component.defaultval.DefaultValAspect; +import com.jeelowcode.framework.utils.component.mybatis.MapWrapperFactory; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.component.validate.JeelowCodeValidateAspect; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +@EnableConfigurationProperties(JeeLowCodeProperties.class) +@Component +public class JeeLowCodeAutoConfiguration { + + // ========== AOP ========== + + @Bean + public ApiDecryptRequestBodyAdvice apiDecryptRequestBodyAdvice() { + return new ApiDecryptRequestBodyAdvice(); + } + + @Bean + public ApiDecryptResponseBodyAdvice apiDecryptResponseBodyAdvice() { + return new ApiDecryptResponseBodyAdvice(); + } + + @Bean + public JeelowCodeValidateAspect jeelowCodeValidateAspect() { + return new JeelowCodeValidateAspect(); + } + + //缓存相关 + @Bean + public JeelowCodeCacheAspect jeelowCodeCacheAspect(JeeLowCodeRedisUtils jeeLowCodeRedisUtils) { + return new JeelowCodeCacheAspect(jeeLowCodeRedisUtils); + } + + //默认值处理相关 + @Bean + public DefaultValAspect defaultValAspect(IJeeLowCodeAdapter proxyAdapter) { + return new DefaultValAspect(proxyAdapter); + } + + //mybatis 返回值大写转小写 + @Bean + public ConfigurationCustomizer configurationCustomizer() { + return configuration -> configuration.setObjectWrapperFactory(new MapWrapperFactory()); + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/cache/JeelowCodeCacheAspect.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/cache/JeelowCodeCacheAspect.java new file mode 100644 index 0000000..781bf59 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/cache/JeelowCodeCacheAspect.java @@ -0,0 +1,135 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.cache; + + +import com.jeelowcode.framework.utils.annotation.JeelowCodeCache; +import com.jeelowcode.framework.utils.component.properties.JeeLowCodeProperties; +import com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils; +import com.jeelowcode.framework.utils.constant.JeeRedisConstants; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; + +import java.util.ArrayList; +import java.util.List; + +/** + * JeeLowCode低代码 + * 缓存相关 + */ +@Aspect +public class JeelowCodeCacheAspect { + + private ExpressionParser parser = new SpelExpressionParser(); + + private final JeeLowCodeRedisUtils jeeLowCodeRedisUtils; + + + public JeelowCodeCacheAspect(JeeLowCodeRedisUtils jeeLowCodeRedisUtils) { + this.jeeLowCodeRedisUtils=jeeLowCodeRedisUtils; + } + + @Around("@annotation(jeelowCodeCache)") + public Object aroundMethod(ProceedingJoinPoint joinPoint,JeelowCodeCache jeelowCodeCache) throws Throwable { + if (JeeLowCodeProperties.getDebug()) {//开发环境,直接跳过 + return joinPoint.proceed(); + } + + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + + boolean nullIsSave = jeelowCodeCache.nullIsSave(); + + StandardEvaluationContext context = new StandardEvaluationContext(); + // 获取缓存key + Object[] args = joinPoint.getArgs(); + + String[] parameterNames = signature.getParameterNames(); + + for (int i = 0; i < parameterNames.length; i++) { + context.setVariable(parameterNames[i], args[i]); + } + + String redisKey = JeeRedisConstants.JEELOWCODE_PREFIX + "cache:" + parser.parseExpression(jeelowCodeCache.cacheNames()).getValue(context, String.class); + + if (jeeLowCodeRedisUtils.hasKey(redisKey)) { + + Object cachedResultObj = jeeLowCodeRedisUtils.get(redisKey); + Class reflexClass = jeelowCodeCache.reflexClass(); + try { + String cachedResultStr = String.valueOf(cachedResultObj); + if(cachedResultStr==null){ + return null; + }else if(FuncBase.equals(cachedResultStr,"")){ + return ""; + }else if(FuncBase.equals(cachedResultStr,"[]")){ + return new ArrayList<>(); + } + + if (FuncBase.jsonIsArray(cachedResultStr)) {//当前是jsonarray,则需要转换 + List list = FuncBase.json2List(cachedResultStr, reflexClass); + return list; + } else if (FuncBase.jsonIsObject(cachedResultStr)) {//当前是json,则需要转换 + Object obj = FuncBase.json2Bean(cachedResultStr, reflexClass); + return obj; + } else {//基本数据类型 + Class longClass = Long.class; + if (longClass.isAssignableFrom(reflexClass)) {//因为redis存把long存进去识别为int + return FuncBase.toLong(FuncBase.toStr(cachedResultObj)); + } else { + return cachedResultObj; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + + } + + // 如果缓存中没有数据,则继续执行目标方法 + Object result = joinPoint.proceed(); + if (!nullIsSave && FuncBase.isEmpty(result)) {//只存有值部分 + return result; + } + + if (FuncBase.isNotEmpty(result) && (result instanceof BaseWebResult)) {//这个类型,需要成功才做缓存 + BaseWebResult baseWebResult = (BaseWebResult) result; + if (baseWebResult.isSuccess()) { + // 将结果缓存 + jeeLowCodeRedisUtils.set(redisKey, FuncBase.json2Str(result), jeelowCodeCache.expire(), jeelowCodeCache.timeUnit()); + } + } else if (FuncBase.isNotEmpty(result) && (result instanceof Throwable)) {//异常类不做 + + } else { + String resultStr = FuncBase.json2Str(result); + if (FuncBase.jsonIsJson(resultStr)) {//当前是json,则需要转换 + jeeLowCodeRedisUtils.set(redisKey, resultStr, jeelowCodeCache.expire(), jeelowCodeCache.timeUnit()); + } else {//不是json,则是基本数据类型,转为字符串存储 + jeeLowCodeRedisUtils.set(redisKey, result, jeelowCodeCache.expire(), jeelowCodeCache.timeUnit()); + } + } + + return result; + } + + + +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptRequestBodyAdvice.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptRequestBodyAdvice.java new file mode 100644 index 0000000..bf5e2e3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptRequestBodyAdvice.java @@ -0,0 +1,97 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.crypto; + +import com.jeelowcode.framework.utils.annotation.ApiDecryptAes; +import com.jeelowcode.framework.utils.tool.AesUtil; +import org.springframework.core.MethodParameter; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpInputMessage; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.lang.NonNull; +import org.springframework.util.StreamUtils; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdvice; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Type; +import java.nio.charset.Charset; + +/** + * 参数加密 + */ +@ControllerAdvice +public class ApiDecryptRequestBodyAdvice implements RequestBodyAdvice { + @Override + public boolean supports(MethodParameter methodParameter, @NonNull Type targetType, @NonNull Class> converterType) { + return methodParameter.hasMethodAnnotation(ApiDecryptAes.class); + } + + @Override + public Object handleEmptyBody(Object body, @NonNull HttpInputMessage inputMessage, @NonNull MethodParameter parameter, + @NonNull Type targetType, @NonNull Class> converterType) { + return body; + } + + @NonNull + @Override + public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, @NonNull MethodParameter parameter, + @NonNull Type targetType, @NonNull Class> converterType) throws IOException { + + ApiDecryptAes apiDecryptAes = parameter.getMethodAnnotation(ApiDecryptAes.class); + if (apiDecryptAes == null) { + return inputMessage; + } + //key + String aesKey = AesUtil.secretKey; + + // 判断 body 是否为空 + InputStream messageBody = inputMessage.getBody(); + if (messageBody.available() <= 0) { + return inputMessage; + } + //加密字符 + String bodyStr = StreamUtils.copyToString(messageBody, Charset.defaultCharset()); + bodyStr=bodyStr.replaceAll("\"",""); + + //解密字符 + byte[] decrypt = AesUtil.decryptFormBase64(bodyStr, aesKey); + + InputStream inputStream = new ByteArrayInputStream(decrypt); + + return new HttpInputMessage() { + @Override + public InputStream getBody() throws IOException { + return inputStream; // 再将输入流返回 + } + @Override + public HttpHeaders getHeaders() { + return inputMessage.getHeaders(); + } + }; + + } + + + + + @NonNull + @Override + public Object afterBodyRead(@NonNull Object body, @NonNull HttpInputMessage inputMessage, @NonNull MethodParameter parameter, @NonNull Type targetType, @NonNull Class> converterType) { + return body; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptResponseBodyAdvice.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptResponseBodyAdvice.java new file mode 100644 index 0000000..7658c2f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/crypto/ApiDecryptResponseBodyAdvice.java @@ -0,0 +1,95 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.crypto; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.jeelowcode.framework.utils.annotation.ApiEncryptAes; +import com.jeelowcode.framework.utils.tool.AesUtil; +import org.springframework.core.MethodParameter; +import org.springframework.core.annotation.Order; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import java.util.Iterator; +import java.util.Map; + +/** + * 返回结果解密 + */ +@Order +@ControllerAdvice +public class ApiDecryptResponseBodyAdvice implements ResponseBodyAdvice { + + @Override + public boolean supports(MethodParameter methodParameter, @NonNull Class converterType) { + return methodParameter.hasMethodAnnotation(ApiEncryptAes.class) ; + + } + + @Nullable + @Override + public Object beforeBodyWrite(Object body, @NonNull MethodParameter parameter, @NonNull MediaType selectedContentType, + @NonNull Class selectedConverterType, @NonNull ServerHttpRequest request, @NonNull ServerHttpResponse response) { + if (body == null) { + return null; + } + ApiEncryptAes apiEncryptAes = parameter.getMethodAnnotation(ApiEncryptAes.class); + if (apiEncryptAes == null) { + return body; + } + String secretKey = AesUtil.secretKey; + JSONObject jsonObject = JSONUtil.parseObj(body); + jsonObject =long2String(jsonObject); + + // String bodyStr = JSONUtil.toJsonStr(body); + + response.getHeaders().setContentType(MediaType.TEXT_PLAIN); + String result = AesUtil.encryptToBase64(jsonObject.toString(), secretKey); + return result; + + } + + /** + * 将JSON的long,转成String,以防止精度丢失 + */ + public JSONObject long2String(JSONObject jsonObject){ + + Iterator iter = jsonObject.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = (Map.Entry) iter.next(); + + if(entry.getValue() instanceof JSONObject){ + long2String(jsonObject.getJSONObject(entry.getKey().toString())); + } + if(entry.getValue() instanceof JSONArray){ + for (int i = 0; i < ((JSONArray) entry.getValue()).size(); i++) { + long2String(((JSONArray) entry.getValue()).getJSONObject(i)); + } + } + if(entry.getValue() instanceof Long){ + jsonObject.set(entry.getKey().toString(),String.valueOf(entry.getValue())); + } + + } + return jsonObject; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/defaultval/DefaultValAspect.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/defaultval/DefaultValAspect.java new file mode 100644 index 0000000..0d3ec69 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/defaultval/DefaultValAspect.java @@ -0,0 +1,214 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.defaultval; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.adapter.IJeeLowCodeAdapter; +import com.jeelowcode.framework.utils.model.global.BaseEntity; +import com.jeelowcode.framework.utils.model.global.BaseTenantEntity; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; + +/** + * 默认值切面 + */ +@Order(value = 0) +@Component +@Aspect +public class DefaultValAspect { + + private final IJeeLowCodeAdapter proxyAdapter; + + public final static String JEELOWCODE_EXPRESSION = "execution(* "+ JeeLowCodeBaseConstant.BASE_PACKAGES_CODE+".framework.service.impl.FrameServiceImpl.*(..))";//jeelowcode + public final static String MYBATIS_EXPRESSION = "execution(* "+JeeLowCodeBaseConstant.BASE_PACKAGES_CODE+".*.mapper.*.*(..))";//mybatis + + + //需要拦截的方法名称 + private static Map aspectMethodNameMapp = new HashMap<>(); + + private static String savePublicData="savePublicData"; + private static String editPublicData="editPublicData"; + private static String baseUpdateDataById="baseUpdateDataById"; + private static String baseUpdateDataByField="baseUpdateDataByField"; + private static String saveImportData="saveImportData"; + private static String insert="insert"; + private static String updateById="updateById"; + + static { + aspectMethodNameMapp.put(savePublicData, "新增"); + aspectMethodNameMapp.put(editPublicData, "编辑数据"); + aspectMethodNameMapp.put(baseUpdateDataById, "根据id编辑"); + aspectMethodNameMapp.put(baseUpdateDataByField, "根据字段编辑"); + + aspectMethodNameMapp.put(insert, "mybatis-plus 自带新增"); + aspectMethodNameMapp.put(updateById, "mybatis-plus 自带编辑"); + } + + public DefaultValAspect(IJeeLowCodeAdapter proxyAdapter) { + this.proxyAdapter = proxyAdapter; + } + + @Pointcut(value = JEELOWCODE_EXPRESSION) + private void aspectJeeLowCode() { + } + + @Pointcut(value = MYBATIS_EXPRESSION) + private void aspectPlus() { + } + + + @Around("aspectJeeLowCode() || aspectPlus()") + public Object all(ProceedingJoinPoint joinPoint) throws Throwable { + // 获取方法签名 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + // 获取方法名称 + String methodName = methodSignature.getName(); + + if (!aspectMethodNameMapp.containsKey(methodName)) {//不在拦截范围内 + return joinPoint.proceed(); + } + Object[] args = joinPoint.getArgs(); + if(FuncBase.equals(methodName,savePublicData)){ + this.savePublicData(args); + }else if(FuncBase.equals(methodName,editPublicData)){ + this.editPublicData(args); + }else if(FuncBase.equals(methodName,baseUpdateDataById)){ + this.baseUpdateDataById(args); + }else if(FuncBase.equals(methodName,baseUpdateDataByField)){ + this.baseUpdateDataByField(args); + }else if(FuncBase.equals(methodName,insert)){ + this.insertPlus(args); + }else if(FuncBase.equals(methodName,updateById)){ + this.updateByIdPlus(args); + } + return joinPoint.proceed(); + + } + + + //新增 + private void savePublicData(Object[] args) throws Throwable { + Map addDataMap = (Map) args[1]; + //处理默认值 + this.initAddMap(addDataMap); + } + + //plus新增 + private void insertPlus(Object[] args) throws Throwable { + Object obj = (Object) args[0]; + if (!(obj instanceof BaseEntity || obj instanceof BaseTenantEntity)) {//不属于我们的类型 + return; + } + + LocalDateTime current = LocalDateTime.now(); + String userId = proxyAdapter.getOnlineUserId(); + String tenantId = proxyAdapter.getTenantId(); + String deptId = proxyAdapter.getOnlineUserDeptId(); + + //基本类 + if (obj instanceof BaseEntity) {//我们自定义的实体 + BaseEntity baseEntity = (BaseEntity) obj; + Long createUser = baseEntity.getCreateUser(); + Long createDept = baseEntity.getCreateDept(); + + if (FuncBase.isNotEmpty(current)) { + baseEntity.setCreateTime(current); + } + if (FuncBase.isNotEmpty(userId) && FuncBase.isEmpty(createUser)) { + baseEntity.setCreateUser(FuncBase.toLong(userId)); + } + if (FuncBase.isNotEmpty(deptId) && FuncBase.isEmpty(createDept)) { + baseEntity.setCreateDept(FuncBase.toLong(deptId)); + } + } + + if (obj instanceof BaseTenantEntity) {//我们自定义的实体 + BaseTenantEntity baseEntity = (BaseTenantEntity) obj; + String selectTenantId = baseEntity.getTenantId(); + + if (FuncBase.isEmpty(selectTenantId) && FuncBase.isNotEmpty(tenantId)) { + baseEntity.setTenantId(tenantId); + } + } + + + } + + //编辑 + private void editPublicData(Object[] args) throws Throwable { + Map updateDataMap = (Map) args[2]; + this.initUpdateMap(updateDataMap);//初始化默认值 + } + + //编辑 + private void baseUpdateDataById(Object[] args) throws Throwable { + Map updateDataMap = (Map) args[1]; + this.initUpdateMap(updateDataMap);//初始化默认值 + } + + //编辑 + private void baseUpdateDataByField(Object[] args) throws Throwable { + Map updateDataMap = (Map) args[1]; + this.initUpdateMap(updateDataMap);//初始化默认值 + } + + + private void initAddMap(Map updateDataMap) { + if (FuncBase.isEmpty(updateDataMap)) { + updateDataMap = new HashMap<>(); + } + proxyAdapter.initSaveDefaultData(updateDataMap); + } + + private void initUpdateMap(Map updateDataMap) { + if (FuncBase.isEmpty(updateDataMap)) { + updateDataMap = new HashMap<>(); + } + proxyAdapter.initUpdateDefaultData(updateDataMap); + } + + //plus 根据id来修改 + private void updateByIdPlus(Object[] args) throws Throwable { + LocalDateTime current = LocalDateTime.now(); + + + Object obj = (Object) args[0]; + + if (!(obj instanceof BaseEntity)) {//不属于我们的 + return; + } + + String userId = proxyAdapter.getOnlineUserId(); + BaseEntity baseEntity = (BaseEntity) obj; + Long updateUser = baseEntity.getUpdateUser(); + + baseEntity.setUpdateTime(current); + if (FuncBase.isEmpty(updateUser) && FuncBase.isNotEmpty(userId)) { + baseEntity.setUpdateUser(FuncBase.toLong(userId)); + } + + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/CustomWrapper.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/CustomWrapper.java new file mode 100644 index 0000000..7d8220f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/CustomWrapper.java @@ -0,0 +1,40 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.mybatis; + +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.reflection.wrapper.MapWrapper; + +import java.util.Map; + +public class CustomWrapper extends MapWrapper { + + public CustomWrapper(MetaObject metaObject, Map map) { + super(metaObject, map); + } + + @Override + public String findProperty(String name, boolean useCamelCaseMapping) { + if(FuncBase.isEmpty(name)){ + return name; + } + String nameUpper = name.toUpperCase(); + if(FuncBase.equals(name,nameUpper)){//将全大写转为小写 + return name.toLowerCase(); + } + return name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/MapWrapperFactory.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/MapWrapperFactory.java new file mode 100644 index 0000000..0cc5063 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/mybatis/MapWrapperFactory.java @@ -0,0 +1,35 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.mybatis; + +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.reflection.wrapper.ObjectWrapper; +import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory; + +import java.util.Map; + +public class MapWrapperFactory implements ObjectWrapperFactory { + + @Override + public boolean hasWrapperFor(Object object) { + return object instanceof Map; + } + + @Override + public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) { + return new CustomWrapper(metaObject, (Map) object); + } +} + diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/pool/SyncPoolConfiguration.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/pool/SyncPoolConfiguration.java new file mode 100644 index 0000000..12dbfdf --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/pool/SyncPoolConfiguration.java @@ -0,0 +1,48 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.pool; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.ThreadPoolExecutor; + +@Configuration +@EnableAsync +public class SyncPoolConfiguration { + + @Bean(name = "asyncPoolTaskExecutor") + public ThreadPoolTaskExecutor executor() { + ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); + //核心线程数 + taskExecutor.setCorePoolSize(5); + //异步方法内部线程名称 + taskExecutor.setThreadNamePrefix("jeelowcode-async-"); + /** + * 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略 + * 通常有以下四种策略: + * ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。 + * ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。 + * ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程) + * ThreadPoolExecutor.CallerRunsPolicy:重试添加当前的任务,自动重复调用 execute() 方法,直到成功 + */ + taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + taskExecutor.initialize(); + return taskExecutor; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/properties/JeeLowCodeProperties.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/properties/JeeLowCodeProperties.java new file mode 100644 index 0000000..445f79a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/properties/JeeLowCodeProperties.java @@ -0,0 +1,75 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.properties; + +import com.jeelowcode.framework.utils.tool.AesUtil; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 低代码参数 + */ +@ConfigurationProperties(prefix = "jeelowcode") +public class JeeLowCodeProperties { + + //排除表名 + private static List excludeTableNames; + + + private static boolean debug; + + //aes加解密key + private static String aesKey; + + //JAVA增强生成文件地址 + private static String enhancePath; + + //--------------------------------------------------------------------------- + + + public static List getExcludeTableNames() { + return excludeTableNames; + } + + public void setExcludeTableNames(List excludeTableNames) { + JeeLowCodeProperties.excludeTableNames = excludeTableNames; + } + + public static boolean getDebug() { + return debug; + } + + public void setDebug(boolean debug) { + JeeLowCodeProperties.debug = debug; + } + + public static String getAesKey() { + return aesKey; + } + + public void setAesKey(String aesKey) { + AesUtil.secretKey=aesKey;//赋值 + JeeLowCodeProperties.aesKey = aesKey; + } + + public static String getEnhancePath() { + return enhancePath; + } + + public void setEnhancePath(String enhancePath) { + JeeLowCodeProperties.enhancePath = enhancePath; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisConfiguration.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisConfiguration.java new file mode 100644 index 0000000..5e8c722 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisConfiguration.java @@ -0,0 +1,86 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.redis; + +/** + * @author JX + * @create 2024-03-05 11:29 + * @dedescription: + */ + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.text.SimpleDateFormat; + +/** + * @author vinjcent + * 配置redis序列化json + */ +@Configuration +public class JeeLowCodeRedisConfiguration { + + + @Bean + /** + * 若有相同类型的Bean时,优先使用此注解标注的Bean + */ + @Primary + public RedisTemplate jeeLowCodeRedisTemplatessss(RedisConnectionFactory redisConnectionFactory) { + // 为了开发方便,一般直接使用 + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(redisConnectionFactory); + + // 配置具体的序列化方式 + // JSON解析任意对象 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper om = new ObjectMapper(); + // 指定要序列化的域field,get和set,以及修饰符范围,ANY是都有包括private和public + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会抛出异常 + om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); + // 设置日期格式 + om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + jackson2JsonRedisSerializer.setObjectMapper(om); + // String的序列化 + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + + + // key采用String的序列化 + template.setKeySerializer(stringRedisSerializer); + // hash的key也采用String的序列化 + template.setHashKeySerializer(stringRedisSerializer); + // value的序列化方式采用jackson + template.setValueSerializer(jackson2JsonRedisSerializer); + // hash的value序列化方式采用jackson + template.setHashValueSerializer(jackson2JsonRedisSerializer); + // 设置所有配置 + template.afterPropertiesSet(); + + return template; + } +} + + + + diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisJsonUtils.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisJsonUtils.java new file mode 100644 index 0000000..f8edbc6 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisJsonUtils.java @@ -0,0 +1,168 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.redis; + +/** + * @author JX + * @create 2024-03-05 11:42 + * @dedescription: + */ +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.List; +import java.util.Map; + + +public class JeeLowCodeRedisJsonUtils { + public static final ObjectMapper OBJ_MAPPER = new ObjectMapper(); + + + /** + * 普通对象之间类型的转化 + * + * @param source 原对象 + * @param target 目标类型 + * @param 目标参数类型 + * @return object after transformation + */ + public static T objParse(Object source, Class target) { + try { + if (source.getClass().equals(target)) { + return OBJ_MAPPER.convertValue(source, target); + } + } catch (Exception ignored) { + } + return null; + } + + /** + * 普通列表之间类型的转化 + * + * @param source 原列表 + * @param target 目标列表类型 + * @param 目标列表参数类型 + * @return list after transformation + */ + public static List listParse(List source, Class target) { + try { + return OBJ_MAPPER.convertValue(source, OBJ_MAPPER.getTypeFactory().constructCollectionType(List.class, target)); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 普通哈希列表之间类型的转化 + * + * @param source 原哈希列表 + * @param keyType 键类型 + * @param valueType 值类型 + * @param 原键类型 + * @param 原值类型 + * @param 目标键类型 + * @param 目标值类型 + * @return map after transformation + */ + public static Map mapParse(Map source, Class keyType, Class valueType) { + try { + return OBJ_MAPPER.convertValue(source, OBJ_MAPPER.getTypeFactory().constructMapType(Map.class, keyType, valueType)); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 将对象转换成json字符串(序列化) + * + * @param obj 原对象 + * @return string after serialized object + */ + public static String objToJson(Object obj) { + if (obj == null) { + return null; + } + try { + return OBJ_MAPPER.writeValueAsString(obj); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return ""; + } + + + /** + * 将json转化为对象(反序列化) + * + * @param source 原对象json + * @param target 目标类型 + * @param 目标类参数类型 + * @return deserialized object + */ + public static T jsonToObj(String source, Class target) { + OBJ_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + try { + return OBJ_MAPPER.readValue(source, target); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 将列表json转化为对象集合 + * + * @param source 原对象json + * @param target 目标类型 + * @param 目标类参数类型 + * @return deserialized object collection + */ + public static List jsonToList(String source, Class target) { + try { + return OBJ_MAPPER.readValue(source, OBJ_MAPPER.getTypeFactory().constructCollectionType(List.class, target)); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 将哈希表json转化为对象集合 + * + * @param source 原对象json + * @param keyType 键类型 + * @param valueType 值类型 + * @param 键参数类型 + * @param 值参数类型 + * @return deserialized map collection + */ + public static Map jsonToMap(String source, Class keyType, Class valueType) { + try { + return OBJ_MAPPER.readValue(source, OBJ_MAPPER.getTypeFactory().constructMapType(Map.class, keyType, valueType)); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + +} + + + diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisUtils.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisUtils.java new file mode 100644 index 0000000..5a8746c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/redis/JeeLowCodeRedisUtils.java @@ -0,0 +1,818 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.redis; + +/** + * @author JX + * @create 2024-03-05 11:38 + * @dedescription: + */ + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@Component +public final class JeeLowCodeRedisUtils { + + private final RedisTemplate jeeLowCodeRedisTemplate; + + /** + * 可按自己需求生成"起始时间戳" + */ + private static final long BEGIN_TIMESTAMP = 1640995200L; + + /** + * 用于时间戳左移32位 + */ + public static final int MOVE_BITS = 32; + + @Autowired + public JeeLowCodeRedisUtils(RedisTemplate jeeLowCodeRedisTemplate) { + this.jeeLowCodeRedisTemplate = jeeLowCodeRedisTemplate; + } + + //=============================common=================================== + + /** + * 指定缓存失效时间 + * @param key 键 + * @param time 时间(秒) + * @return whether the key has expired + */ + public boolean expire(String key, long time){ + try { + if(time > 0){ + jeeLowCodeRedisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 指定缓存失效时间(自定义时间单位) + * @param key 键 + * @param time 时间(秒) + * @return whether the key has expired + */ + public boolean expire(String key, long time, TimeUnit unit){ + try { + if(time > 0){ + jeeLowCodeRedisTemplate.expire(key, time, unit); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key获取过期时间(默认获取的是秒单位) + * @param key 键(不能为null) + * @return the remaining time, "0" means never expire + */ + public long getExpire(String key){ + Long time = jeeLowCodeRedisTemplate.getExpire(key, TimeUnit.SECONDS); + if (time != null) { + return time; + } + return -1L; + } + + /** + * 根据key获取过期时间(自定义时间单位) + * @param key 键(不能为null) + * @return the remaining time, "0" means never expire + */ + public long getExpire(String key, TimeUnit unit){ + Long time = jeeLowCodeRedisTemplate.getExpire(key, unit); + if (time != null) { + return time; + } + return -1L; + } + + /** + * 判断key是否存在 + * @param key 键 + * @return whether the key exist + */ + public boolean hasKey(String key) { + Boolean flag = jeeLowCodeRedisTemplate.hasKey(key); + try { + return Boolean.TRUE.equals(flag); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * @param key 键,可以传递一个值或多个 + */ + public void del(String... key) { + if(key != null && key.length > 0){ + if (key.length == 1){ + jeeLowCodeRedisTemplate.delete(key[0]); + }else { + jeeLowCodeRedisTemplate.delete(Arrays.asList(key)); + } + } + } + + /** + * 删除缓存 + * @param keyList 键,可以传递一个值或多个 + */ + public void delList(Set keyList) { + jeeLowCodeRedisTemplate.delete(keyList); + } + + + //=============================String=================================== + + /** + * 普通缓存获取(泛型) + * @param key key键 + * @return the value corresponding the key + */ + public Object get(String key){ return key == null ? null : jeeLowCodeRedisTemplate.opsForValue().get(key);} + + + /** + * 普通缓存获取(泛型) + * @param key key键 + * @return the value corresponding the key + * @param targetType 目标类型 + * @param 目标类型参数 + * @return the generic value corresponding the key + */ + public T get(String key, Class targetType){ return key == null ? null : JeeLowCodeRedisJsonUtils.objParse(jeeLowCodeRedisTemplate.opsForValue().get(key), targetType);} + + /** + * 普通缓存放入 + * @param key 键 + * @param value 值 + * @return whether true or false + */ + public boolean set(String key, Object value){ + try { + jeeLowCodeRedisTemplate.opsForValue().set(key,value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间(秒) --- time要大于0,如果time小于0,将设置为无期限 + * @return whether true or false + */ + public boolean set(String key, Object value, long time){ + try { + if(time > 0){ + TimeUnit seconds = TimeUnit.SECONDS; + jeeLowCodeRedisTemplate.opsForValue().set(key,value,time,TimeUnit.SECONDS); + }else { + set(key,value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间和时间单位 + * @param key 键 + * @param value 值 + * @param time 时间(秒) --- time要大于0,如果time小于0,将设置为无期限 + * @param timeUnit 时间单位 + * @return whether true or false + */ + public boolean set(String key, Object value, long time, TimeUnit timeUnit){ + try { + if(time > 0){ + jeeLowCodeRedisTemplate.opsForValue().set(key, value, time, timeUnit); + }else { + set(key,value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 递增 + * @param key 键 + * @param delta 要增加几(大于0) + * @return the value after increment + */ + public long incr(String key, long delta){ + if(delta < 0){ + throw new RuntimeException("递增因子必须大于0"); + } + Long increment = jeeLowCodeRedisTemplate.opsForValue().increment(key, delta); + return increment != null ? increment : 0L; + } + + /** + * 递减 + * @param key 键 + * @param delta 要增加几(小于0) + * @return the value after decrement + */ + public long decr(String key, long delta){ + if(delta < 0){ + throw new RuntimeException("递减因子必须大于0"); + } + Long increment = jeeLowCodeRedisTemplate.opsForValue().increment(key, delta); + return increment != null ? increment : 0L; } + + //=============================Map=================================== + + /** + * 根据hashKey获取hash列表有多少元素 + * @param key 键(hashKey) + * @return the size of map + */ + public long hsize(String key) { + try { + return jeeLowCodeRedisTemplate.opsForHash().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + /** + * HashGet 根据"项 中的 键 获取列表" + * @param key 键(hashKey)能为null + * @param item 项不能为null + * @return the value of the corresponding key + */ + public Object hget(String key, String item){ return jeeLowCodeRedisTemplate.opsForHash().get(key, item);} + + /** + * 获取HashKey对应的所有键值 + * @param key 键(hashKey) + * @return 对应的多个键值 + */ + public Map hmget(String key) { return jeeLowCodeRedisTemplate.opsForHash().entries(key);} + + /** + * 获取HashKey对应的所有键值 + * @param key 键(hashKey) + * @param keyType 键类型 + * @param valueType 值类型 + * @param 键类型参数 + * @param 值类型参数 + * @return a map + */ + public Map hmget(String key, Class keyType, Class valueType) { + return JeeLowCodeRedisJsonUtils.mapParse(jeeLowCodeRedisTemplate.opsForHash().entries(key), keyType, valueType);} + + /** + * HashSet 存入多个键值对 + * @param key 键(hashKey) + * @param map map 对应多个键值对 + */ + public void hmset(String key, Map map) { + try { + jeeLowCodeRedisTemplate.opsForHash().putAll(key,map); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + /** + * HashSet存入并设置时间 + * @param key 键(hashKey) + * @param map 对应多个键值 + * @param time 时间(秒) + * @return whether true or false + */ + public boolean hmset(String key, Map map, long time){ + try { + jeeLowCodeRedisTemplate.opsForHash().putAll(key,map); + if (time > 0){ + expire(key,time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * @param key 键(hashKey) + * @param item 项 + * @param value 值 + * @return whether true or false + */ + public boolean hset(String key, String item, Object value){ + try { + jeeLowCodeRedisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建,并设置有效时间 + * @param key 键(hashKey) + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意: 如果已经在hash表有时间,这里将会替换所有的时间 + * @return whether true or false + */ + public boolean hset(String key, String item, Object value, long time){ + try { + jeeLowCodeRedisTemplate.opsForHash().put(key, item, value); + if (time > 0){ + expire(key,time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 放入map集合数据,如果不存在将创建 + * @param key 键(hashKey) + * @param value map集合 + * @param map集合键参数类型 + * @param map集合值参数类型 + * @return whether true or false + */ + public boolean hsetMap(String key, Map value) { + try { + jeeLowCodeRedisTemplate.opsForHash().putAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 获取key对应的所有map键值对 + * @param key 键(hashKey) + * @return the Map + */ + public Map hgetMap(String key) { + try { + return jeeLowCodeRedisTemplate.opsForHash().entries(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 获取key对应的所有map键值对(泛型) + * @param key 键(hashKey) + * @param keyType 键类型 + * @param valueType 值类型 + * @param 键类型参数 + * @param 值类型参数 + * @return the Map + */ + public Map hgetMap(String key, Class keyType, Class valueType) { + try { + return JeeLowCodeRedisJsonUtils.mapParse(jeeLowCodeRedisTemplate.opsForHash().entries(key), keyType, valueType); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 删除hash表中的值 + * @param key 键(hashKey) 不能为null + * @param item 项可以是多个 不能为null + */ + public void hdel(String key, Object... item){ + jeeLowCodeRedisTemplate.opsForHash().delete(key,item); + } + + /** + * 判断hash表是否有该项的值 + * @param key 键(hashKey)不能为null + * @param item 项不能为null + * @return whether true or false + */ + public boolean hHasKey(String key, String item){ + return jeeLowCodeRedisTemplate.opsForHash().hasKey(key, item); + } + + /** + * hash递增,如果不存在,就会创建一个,并把新增后的值返回 + * @param key 键(hashKey) + * @param item 项 + * @param by 要增加几(大于0) + * @return the value of the corresponding key after increment in one Map + */ + public double hincr(String key, String item, double by){ + return jeeLowCodeRedisTemplate.opsForHash().increment(key, item, by); + } + + /** + * hash递减 + * @param key 键(hashKey) + * @param item 项 + * @param by 要减少几(小于0) + * @return the value of the corresponding key after decrement in one Map + */ + public double hdecr(String key, String item, double by){ + return jeeLowCodeRedisTemplate.opsForHash().increment(key, item, -by); + } + + //=============================Set=================================== + + /** + * 根据key获取Set中的所有值 + * @param key 键 + * @return all values in one Set + */ + public Set sGet(String key){ + try { + return jeeLowCodeRedisTemplate.opsForSet().members(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 根据value从一个Set集合中查询一个值,是否存在 + * @param key 键 + * @param value 值 + * @return whether true or false + */ + public boolean sHasKey(String key, Object value){ + try { + Boolean flag = jeeLowCodeRedisTemplate.opsForSet().isMember(key, value); + return Boolean.TRUE.equals(flag); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将数据放入set缓存 + * @param key 键 + * @param values 值 + * @return the number of adding successfully + */ + public long sSet(String key, Object... values){ + try { + Long nums = jeeLowCodeRedisTemplate.opsForSet().add(key, values); + return nums != null ? nums : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + /** + * 将set数据放入缓存,并设置有效时间 + * @param key 键 + * @param time 时间(秒) + * @param values 值,可以是多个 + * @return the number of adding successfully + */ + public long sSetAndTime(String key, long time, Object... values){ + try { + Long count = jeeLowCodeRedisTemplate.opsForSet().add(key, values); + if(time > 0){ + expire(key, time); + } + return count != null ? count : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + /** + * 获取set缓存的长度 + * @param key 键 + * @return the size of the Set + */ + public long sGetSetSize(String key){ + try { + Long size = jeeLowCodeRedisTemplate.opsForSet().size(key); + return size != null ? size : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + /** + * 移除值为values的 + * @param key 键 + * @param values 值(可以是多个) + * @return the number of removal + */ + public long setRemove(String key, Object... values){ + try { + Long nums = jeeLowCodeRedisTemplate.opsForSet().remove(key, values); + return nums != null ? nums : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + //=============================List=================================== + + /** + * 获取list列表数据 + * @param key 键 + * @return all values of one List + */ + public List lget(String key) { + try { + return jeeLowCodeRedisTemplate.opsForList().range(key, 0, -1); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + /** + * 获取list列表数据(泛型) + * @param key 键 + * @param targetType 目标类型 + * @param 目标类型参数 + * @return all values of one List + */ + public List lget(String key, Class targetType) { + try { + return JeeLowCodeRedisJsonUtils.listParse(jeeLowCodeRedisTemplate.opsForList().range(key, 0, -1), targetType); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 获取list缓存的长度 + * @param key 键 + * @return the length of the List + */ + public long lGetListSize(String key){ + try { + Long size = jeeLowCodeRedisTemplate.opsForList().size(key); + return size != null ? size : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + /** + * 通过索引获取list中的值 + * @param key 键 + * @param index 索引 index >= 0 时, 0:表头, 1:第二个元素,以此类推... index < 0 时, -1:表尾, -2:倒数第二个元素,以此类推 + * @return the value of the specified index in one List + */ + public Object lgetIndex(String key, long index){ + try { + return jeeLowCodeRedisTemplate.opsForList().index(key, index); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 通过索引获取list中的值(泛型) + * @param key 键 + * @param index 索引 index >= 0 时, 0:表头, 1:第二个元素,以此类推... index < 0 时, -1:表尾, -2:倒数第二个元素,以此类推 + * @return the value of the specified index in one List + * @param targetType 目标类型 + * @param 目标类型参数 + * @return the generic value of the specified index in one List + */ + public T lgetIndex(String key, long index, Class targetType) { + try { + return JeeLowCodeRedisJsonUtils.objParse(jeeLowCodeRedisTemplate.opsForList().index(key, index), targetType); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @return whether true or false + */ + public boolean lSet(String key, Object value){ + try { + jeeLowCodeRedisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return whether true or false + */ + public boolean lSet(String key, Object value, long time){ + try { + jeeLowCodeRedisTemplate.opsForList().rightPush(key, value); + if (time > 0){ + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list集合放入缓存 + * @param key 键 + * @param values 值 + * @return whether true or false + */ + public boolean lSet(String key, List values){ + try { + Long nums = jeeLowCodeRedisTemplate.opsForList().rightPushAll(key, values); + return nums != null; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list集合放入缓存,并设置有效时间 + * @param key 键 + * @param values 值 + * @param time 时间(秒) + * @return whether true or false + */ + public boolean lSet(String key, List values, long time){ + try { + jeeLowCodeRedisTemplate.opsForList().rightPushAll(key, values); + if (time > 0){ + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * @param key 键 + * @param value 值 + * @param index 索引 + * @return whether true or false + */ + public boolean lUpdateIndex(String key, Object value, long index){ + try { + jeeLowCodeRedisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 移除N个值为value + * @param key 键 + * @param value 值 + * @param number 移除多少个 + * @return 返回移除的个数 + */ + public long lRemove(String key, Object value, long number){ + try { + Long count = jeeLowCodeRedisTemplate.opsForList().remove(key, number, value); + return count != null ? count : 0L; + } catch (Exception e) { + e.printStackTrace(); + return 0L; + } + } + + //=============================Lock=================================== + + /** + * 解决缓存加锁问题 + * @param key 锁名称 + * @param value 锁值 + * @param timeout 超时时间 + * @param unit 时间单位 + * @param 锁值的数据类型 + * @return 返回加锁成功状态 + */ + public boolean tryLock(String key, T value, long timeout, TimeUnit unit) { + Boolean flag = jeeLowCodeRedisTemplate.opsForValue().setIfAbsent(key, value, timeout, unit); + return Boolean.TRUE.equals(flag); + } + + /** + * 解决缓存解锁操作 + * @param key 锁名称 + * @return 返回解锁成功状态 + */ + public boolean unLock(String key) { + Boolean flag = jeeLowCodeRedisTemplate.delete(key); + return Boolean.TRUE.equals(flag); + } + + /** + * 全局生成唯一ID策略 + * 设计: 符号位(1位) - 时间戳(32位) - 序列号(31位) + * @param keyPrefix key的前缀 + * @return 返回唯一ID + */ + public long globalUniqueKey(String keyPrefix) { + + // 1. 生成时间戳 + LocalDateTime now = LocalDateTime.now(); + + // 东八区时间 + long nowSecond = now.toEpochSecond(ZoneOffset.UTC); + // 相减获取时间戳 + long timestamp = nowSecond - BEGIN_TIMESTAMP; + + // 2. 生成序列号(使用日期作为redis自增长超2^64限制,灵活使用年、月、日来存储) + // 获取当天日期 + String date = now.format(DateTimeFormatter.ofPattern("yyyy:MM:dd")); + // 自增长 + Long increment = jeeLowCodeRedisTemplate.opsForValue().increment("icr:" + keyPrefix + ":" + date); + long count = increment != null ? increment : 0L; + + // 3. 拼接并返回(使用二进制或运算) + return timestamp << MOVE_BITS | count; + } + + + public Set keys(String prefix){ + return jeeLowCodeRedisTemplate.opsForValue().getOperations().keys(prefix + "*"); + } +} + + + + diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/validate/JeelowCodeValidateAspect.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/validate/JeelowCodeValidateAspect.java new file mode 100644 index 0000000..ae36801 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/component/validate/JeelowCodeValidateAspect.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.component.validate; + +import com.jeelowcode.framework.utils.adapter.IJeelowCodeValidate; +import com.jeelowcode.framework.utils.annotation.JeelowCodeValidate; +import com.jeelowcode.framework.utils.tool.spring.SpringUtils; +import com.jeelowcode.framework.utils.utils.FuncWebBase; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import javax.servlet.http.HttpServletRequest; + +/** + * 自定义校验 + */ +@Aspect +@Component +public class JeelowCodeValidateAspect { + + @Around("@annotation(jeelowCodeValidate)") + public Object aroundMethod(ProceedingJoinPoint joinPoint,JeelowCodeValidate jeelowCodeValidate) throws Throwable { + HttpServletRequest request = FuncWebBase.getRequest(); + ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request); + Class[] validateClassList = jeelowCodeValidate.validateClass(); + + for (Class myclass : validateClassList) { + IJeelowCodeValidate bean = SpringUtils.getBean(myclass); + bean.validate(requestWrapper); + } + return joinPoint.proceed(); + } + + +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/EnhanceConstant.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/EnhanceConstant.java new file mode 100644 index 0000000..773299c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/EnhanceConstant.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.constant; + +/** + * 增强相关 + */ +public interface EnhanceConstant { + + String ENHANCE_ADD = "add";//新增 + String ENHANCE_EDIT = "edit";//修改 + String ENHANCE_DELETE = "delete";//删除 + String ENHANCE_IMPORT = "import";//导入 + String ENHANCE_EXPORT = "export";//导出 + String ENHANCE_LIST = "list";//查询 + String ENHANCE_DETAIL = "detail";//详情 + String ENHANCE_SUMMARY = "summary";//统计 + String ENHANCE_PAGE = "page"; //分页 + + String ENHANCE_TYPE_SPRING = "spring"; + String ENHANCE_TYPE_CLASS = "class"; + String ENHANCE_TYPE_HTTP = "http"; + String ENHANCE_TYPE_ONLINE_EDIT = "online_edit"; + + + String ENHANCE_EVENT_START = "start";//开始 + String ENHANCE_EVENT_END = "end";//结束 +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeLowCodeConstant.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeLowCodeConstant.java new file mode 100644 index 0000000..7c35e91 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeLowCodeConstant.java @@ -0,0 +1,66 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.constant; + +/** + * 系统常量 + */ +public interface JeeLowCodeConstant { + + String JEELOWCODE_SUMMARY_TABLE="#{jeelowcode_summary_table}"; + + //强制同步数据库 + String SYNC_DB_FORCE = "force"; + + //历史数据类型 + String HISTORY_DESFORM="desform"; + String HISTORY_JS="js"; + String HISTORY_SQL="sql"; + String HISTORY_JAVA="java"; + + //Postgresql数据库 模式 + String POSTGRESQL_SCHEMA=".public"; + + //默认别名 + String TABLE_ALIAS="tbl"; + + //Excel导入序号 + String EXCEL_IMPORT_STEP="jeelowcode_excel_import_step"; + String EXCEL_IMPORT_ID="jeelowcode_excel_import_id"; + + String BACK_SLASH = "\\"; + + String DOT = "."; + + String SPACE = " "; + + String EMPTY = ""; + + // \src\main\java\ + String PROGRAM_DIR = "\\src\\main\\java\\"; + + // \target\classes + String CLASSES_DIR = "\\target\\classes"; + + // .java + String JAVA_SUFFIX = ".java"; + + String USER_DIR = System.getProperty("user.dir"); + + //不分页 + Integer NOT_PAGE=-999; + + // 本地开发环境 + String APPLICATION_LOCAL = "local"; +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeRedisConstants.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeRedisConstants.java new file mode 100644 index 0000000..a2e09e6 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/constant/JeeRedisConstants.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.constant; + +/** + * @author JX + * @create 2024-03-06 10:20 + * @dedescription: + */ +public interface JeeRedisConstants { + + //低代码 + String JEELOWCODE_PREFIX = "JEE_LOW_CODE:"; + + String JEELOWCODE_DBFORM=JEELOWCODE_PREFIX+":DBFORM"; + + //js增强加锁 + String ENHANCE_JS_LOCK = "LOCK_JS:%s"; + + //表单设计加锁 + String ENHANCE_DESFORM_LOCK = "LOCK_DESSORM:%s"; +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/AuthTypeEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/AuthTypeEnum.java new file mode 100644 index 0000000..25868da --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/AuthTypeEnum.java @@ -0,0 +1,60 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Arrays; +import java.util.Optional; + +/** + * 表单开发-认证类型 + */ +public enum AuthTypeEnum { + + authOpen("authOpen", "不登录可查询"), + authFalse("authFalse", "需要登录"), + authTrue("authTrue", "需要登录和鉴权") + ; + + private final String type; + private final String name; + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + AuthTypeEnum(String type, String name) { + this.type = type; + this.name = name; + } + + public static AuthTypeEnum getByType(String type) { + // 使用流来查找匹配的 + Optional matchingEnum = Arrays.stream(AuthTypeEnum.values()) + .filter(dbFormTypeEnum -> FuncBase.equals(dbFormTypeEnum.getType(), type)) + .findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional + // 检查是否找到了匹配的枚举项 + if (matchingEnum.isPresent()) { + return matchingEnum.get(); + } + return null; + + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DbFormTypeEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DbFormTypeEnum.java new file mode 100644 index 0000000..e2b9160 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DbFormTypeEnum.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Arrays; +import java.util.Optional; + +/** + * 表单开发-属性类型 + */ +public enum DbFormTypeEnum { + + ALL("all", "所有"), + DICT("dict", "字典"), + EXPORT("export", "导出"), + FOREIGNKEY("foreignkey", "外键"), + WEB("web", "页面"), + QUERY("query", "查询"), + SUMMARY("summary", "统计配置"), + INDEX("index", "索引"); + + private final String type; + private final String name; + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + DbFormTypeEnum(String type, String name) { + this.type = type; + this.name = name; + } + + public static DbFormTypeEnum getByType(String type) { + // 使用流来查找匹配的 + Optional matchingEnum = Arrays.stream(DbFormTypeEnum.values()) + .filter(dbFormTypeEnum -> FuncBase.equals(dbFormTypeEnum.getType(), type)) + .findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional + // 检查是否找到了匹配的枚举项 + if (matchingEnum.isPresent()) { + return matchingEnum.get(); + } + return null; + + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DefaultDbFieldEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DefaultDbFieldEnum.java new file mode 100644 index 0000000..0bb5de3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DefaultDbFieldEnum.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 数据库默认字段 + */ +public enum DefaultDbFieldEnum { + + ID("id", "id"), + P_ID("pid", "pid"), + CREATE_USER("create_user", "创建人"), + CREATE_TIME("create_time", "创建时间"), + CREATE_DEPT("create_dept", "创建部门"), + IS_DELETED("is_deleted", "是否删除"), + TENANT_ID("tenant_id", "租户id"), + UPDATE_USER("update_user", "更新人"), + UPDATE_TIME("update_time", "更新时间"), + ; + + + private final String fieldCode; + private final String fieldName; + + + public String getFieldCode() { + return fieldCode; + } + + public String getFieldName() { + return fieldName; + } + + DefaultDbFieldEnum(String fieldCode, String fieldName) { + this.fieldCode = fieldCode; + this.fieldName = fieldName; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DictTypeEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DictTypeEnum.java new file mode 100644 index 0000000..c3b47a0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/DictTypeEnum.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 字典类型类型 + */ +public enum DictTypeEnum { + + + DICT("dict", "字典"), + TABLE("table", "表格"); + + private final String type; + private final String name; + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + DictTypeEnum(String type, String name) { + this.type = type; + this.name = name; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/JeeLowCodeFieldTypeEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/JeeLowCodeFieldTypeEnum.java new file mode 100644 index 0000000..9cc426a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/JeeLowCodeFieldTypeEnum.java @@ -0,0 +1,75 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Arrays; +import java.util.Optional; + +/** + * 数据库类型-和前端对应 + */ +public enum JeeLowCodeFieldTypeEnum { + + STRING("String", "字符串"), + INTEGER("Integer", "整数"), + DATE("Date", "日期"), + DATETIME("DateTime", "日期时间"), + TIME("Time", "时间"), + BIGINT("BigInt", "大整数"), + BIGDECIMAL("BigDecimal", "小数"), + TEXT("Text", "文本"), + LONGTEXT("LongText", "大文本"), + BLOB("Blob", "二进制"); + + + /** + * Field类型 + */ + private final String fieldType; + /** + * 数据名称 + */ + private final String name; + + + + public String getFieldType() { + return fieldType; + } + + public String getName() { + return name; + } + + JeeLowCodeFieldTypeEnum(String fieldType, String name) { + this.fieldType = fieldType; + this.name = name; + } + + public static JeeLowCodeFieldTypeEnum getByFieldType(String fieldType) { + // 使用流来查找匹配的DbProductEnum + Optional matchingEnum = Arrays.stream(JeeLowCodeFieldTypeEnum.values()) + .filter(fieldTypeEnum -> FuncBase.equals(fieldTypeEnum.getFieldType(), fieldType)) + .findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional + // 检查是否找到了匹配的枚举项 + if (matchingEnum.isPresent()) { + return matchingEnum.get(); + } + return null; + + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ParamEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ParamEnum.java new file mode 100644 index 0000000..6b57194 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ParamEnum.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 请求参数-特定参数名 + */ +public enum ParamEnum { + //分页相关 + PAGE_NO("pageNo", "当前页面"), + PAGE_SIZE("pageSize", "页面条数"), + COLUMN("column", "字典"), + ORDER("order", "排序类 desc asc"), + DICT_TABLE_FIELD("jeeLowCode_dictTableField", "字典表自定义列"), + DICT_LABEL("jeeLowCode_dictLabel", "字典表回显列"), + TREE_PARENT("jeeLowCode_treeParent", "获取指定列的所有上级"), + REQUEST_PARAM_BODY("requestParamBody", "body参数"), + MORE_SELECT_FIELD("more_select_field", "body参数"), + REQUEST_REPORT_CODES("jeeLowCode_report_codes", "报表code 多个通过,隔开") + ; + + /** + * code类型 + */ + private final String code; + /** + * 数据名称 + */ + private final String name; + + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + ParamEnum(String code, String name) { + this.code = code; + this.name = name; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/QueryModelEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/QueryModelEnum.java new file mode 100644 index 0000000..c000a27 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/QueryModelEnum.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 查询模式 + */ +public enum QueryModelEnum { + + EQ("EQ", "精确查询"), + LIKE("LIKE", "模糊查询"), + RANGE("RANGE", "范围查询"); + + private final String code; + private final String name; + + QueryModelEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/SqlParamEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/SqlParamEnum.java new file mode 100644 index 0000000..1e28306 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/SqlParamEnum.java @@ -0,0 +1,73 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.Arrays; +import java.util.Optional; + +/** + * sql默认参数 + */ +public enum SqlParamEnum { + + + JEELOWCODE_ID("jeelowcode_id", "id"), + JEELOWCODE_DATE_TIME("jeelowcode_date_time", "日期时间"), + JEELOWCODE_DATE("jeelowcode_date", "日期"), + JEELOWCODE_TIME("jeelowcode_time", "时间"), + JEELOWCODE_IS_DELETED("jeelowcode_is_deleted", "是否删除"), + JEELOWCODE_TENANT_ID("jeelowcode_tenant_id", "当前登录人租户"), + JEELOWCODE_USER_ID("jeelowcode_user_id", "当前登录人id"), + JEELOWCODE_USER_NAME("jeelowcode_user_name", "当前登录人账号"), + JEELOWCODE_USER_NICKNAME("jeelowcode_user_nickname", "当前登录人名称"), + JEELOWCODE_USER_DEPT("jeelowcode_user_dept", "当前登录人部门"), + JEELOWCODE_USER_ALL_DEPT("jeelowcode_user_all_dept", "当前登录人所有部门(包括本部门)"), + JEELOWCODE_MAIN_ID("jeelowcode_main_id", "主数据id"), + JEELOWCODE_AUTO_WHERE("jeelowcode_auto_where", "自定义随机where"); + + /** + */ + private final String code; + /** + */ + private final String title; + + + public String getCode() { + return code; + } + + public String getTitle() { + return title; + } + + SqlParamEnum(String code, String title) { + this.code = code; + this.title = title; + } + public static SqlParamEnum getByCode(String code) { + Optional matchingEnum = Arrays.stream(SqlParamEnum.values()) + .filter(sqlParamEnum -> FuncBase.equals(sqlParamEnum.getCode(), code)) + .findFirst(); // findFirst()会返回第一个匹配的元素,或者如果找不到则返回一个空的Optional + // 检查是否找到了匹配的枚举项 + if (matchingEnum.isPresent()) { + return matchingEnum.get(); + } + return null; + + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableClassifyEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableClassifyEnum.java new file mode 100644 index 0000000..24e024c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableClassifyEnum.java @@ -0,0 +1,40 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 表分类 + */ +public enum TableClassifyEnum { + + SERVICE(1, "业务表"), + VIEW(2, "表视图"); + + private final Integer type; + private final String name; + + public Integer getType() { + return type; + } + + public String getName() { + return name; + } + + TableClassifyEnum(Integer type, String name) { + this.type = type; + this.name = name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableType2Enum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableType2Enum.java new file mode 100644 index 0000000..5a9acf8 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableType2Enum.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 表类型
    + * report 报表
    + * dbform 表单 + */ +public enum TableType2Enum { + + REPORT("report", "报表"), + DBFORM("dbform", "表单"); + + private final String type; + private final String name; + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + TableType2Enum(String type, String name) { + this.type = type; + this.name = name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableTypeEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableTypeEnum.java new file mode 100644 index 0000000..e613493 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/TableTypeEnum.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 表类型 表类型;1单表、2树表、3主表、4附表 + */ +public enum TableTypeEnum { + + SINGLE(1, "单表"), + TREE(2, "树表"), + MAIN(3, "主表"), + SUB(4, "附表"); + + private final Integer type; + private final String name; + + public Integer getType() { + return type; + } + + public String getName() { + return name; + } + + TableTypeEnum(Integer type, String name) { + this.type = type; + this.name = name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ThemeTemplateEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ThemeTemplateEnum.java new file mode 100644 index 0000000..844153c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/ThemeTemplateEnum.java @@ -0,0 +1,43 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 表主题模版 + */ +public enum ThemeTemplateEnum { + + NORMAL("normal", "默认主题"), + ERP("erp", "ERP主题(一对多)"), + INNERTABLE("innerTable", "内嵌子表主题(一对多)"); + + + private final String type; + private final String name; + + + public String getType() { + return type; + } + + public String getName() { + return name; + } + + ThemeTemplateEnum(String type, String name) { + this.type = type; + this.name = name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/YNEnum.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/YNEnum.java new file mode 100644 index 0000000..26bce43 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/enums/YNEnum.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.enums; + + +/** + * 是否 + */ +public enum YNEnum { + + Y("Y", "是"), + N("N", "否"); + + + private final String code; + private final String name; + + public String getCode() { + return code; + } + + public String getName() { + return name; + } + + YNEnum(String code, String name) { + this.code = code; + this.name = name; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/GlobalJeeLowCodeResponseBodyHandler.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/GlobalJeeLowCodeResponseBodyHandler.java new file mode 100644 index 0000000..fb9a9c0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/GlobalJeeLowCodeResponseBodyHandler.java @@ -0,0 +1,93 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.body; + + +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import org.springframework.core.MethodParameter; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; + +/** + * 返回拦截 + */ +@ControllerAdvice +public class GlobalJeeLowCodeResponseBodyHandler implements ResponseBodyAdvice { + + private static ObjectMapper objectMapper = new ObjectMapper(); + + static { + SimpleModule simpleModule = new SimpleModule(); + simpleModule + // 新增 Long 类型序列化规则,数值超过 2^53-1,在 JS 会出现精度丢失问题,因此 Long 自动序列化为字符串类型 + .addSerializer(Long.class, NumberSerializer.INSTANCE) + .addSerializer(Long.TYPE, NumberSerializer.INSTANCE) + .addSerializer(LocalDate.class, LocalDateSerializer.INSTANCE) + .addDeserializer(LocalDate.class, LocalDateDeserializer.INSTANCE) + .addSerializer(LocalTime.class, LocalTimeSerializer.INSTANCE) + .addDeserializer(LocalTime.class, LocalTimeDeserializer.INSTANCE) + // 新增 LocalDateTime 序列化、反序列化规则 + .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE) + .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE); + + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 忽略 null 值 + objectMapper.registerModules(simpleModule); // 序列化 + } + + @Override + @SuppressWarnings("NullableProblems") // 避免 IDEA 警告 + public boolean supports(MethodParameter returnType, Class converterType) { + if (returnType.getMethod() == null) { + return false; + } + // 只拦截返回结果为 BaseWebResult 类型 + return returnType.getMethod().getReturnType() == BaseWebResult.class; + } + + @Override + @SuppressWarnings("NullableProblems") // 避免 IDEA 警告 + public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, + ServerHttpRequest request, ServerHttpResponse response) { + if(body instanceof BaseWebResult){ + try { + String jsonStr = objectMapper.writeValueAsString(body); + BaseWebResult baseWebResult = JSONUtil.toBean(jsonStr, BaseWebResult.class); + return baseWebResult; + } catch (Exception e) { + e.printStackTrace(); + } + } + return body; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeDeserializer.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeDeserializer.java new file mode 100644 index 0000000..887422d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeDeserializer.java @@ -0,0 +1,38 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.body; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * LocalDateTime反序列化规则 + *

    + * 会将毫秒级时间戳反序列化为LocalDateTime + */ +public class LocalDateTimeDeserializer extends JsonDeserializer { + + public static final LocalDateTimeDeserializer INSTANCE = new LocalDateTimeDeserializer(); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeSerializer.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeSerializer.java new file mode 100644 index 0000000..b3d220a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/LocalDateTimeSerializer.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.body; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * LocalDateTime序列化规则 + *

    + * 会将LocalDateTime序列化为毫秒级时间戳 + */ +public class LocalDateTimeSerializer extends JsonSerializer { + + public static final LocalDateTimeSerializer INSTANCE = new LocalDateTimeSerializer(); + + @Override + public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/NumberSerializer.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/NumberSerializer.java new file mode 100644 index 0000000..8a9b1b0 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/body/NumberSerializer.java @@ -0,0 +1,50 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.body; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; + +import java.io.IOException; + +/** + * Long 序列化规则 + * + * 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题 + * + * @author 星语 + */ +@JacksonStdImpl +public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer { + + private static final long MAX_SAFE_INTEGER = 9007199254740991L; + private static final long MIN_SAFE_INTEGER = -9007199254740991L; + + public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class); + + public NumberSerializer(Class rawType) { + super(rawType); + } + + @Override + public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + // 超出范围 序列化位字符串 + if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) { + super.serialize(value, gen, serializers); + } else { + gen.writeString(value.toString()); + } + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalException.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalException.java new file mode 100644 index 0000000..4e222fb --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalException.java @@ -0,0 +1,70 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.exeption; + +/** + * 全局异常 + * + */ +public class JeeLowCodeGlobalException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + /** + * 错误提示 + */ + private String message; + + /** + * 错误明细,内部调试错误 + * + * 和 {@link CommonResult#getDetailMessage()} 一致的设计 + */ + private String detailMessage; + + /** + * 空构造方法,避免反序列化问题 + */ + public JeeLowCodeGlobalException() + { + } + + public JeeLowCodeGlobalException(String message) + { + this.message = message; + } + + public String getDetailMessage() + { + return detailMessage; + } + + public JeeLowCodeGlobalException setDetailMessage(String detailMessage) + { + this.detailMessage = detailMessage; + return this; + } + + @Override + public String getMessage() + { + return message; + } + + public JeeLowCodeGlobalException setMessage(String message) + { + this.message = message; + return this; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalExceptionHandler.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalExceptionHandler.java new file mode 100644 index 0000000..371e88c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/global/exeption/JeeLowCodeGlobalExceptionHandler.java @@ -0,0 +1,114 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.global.exeption; + + +import com.jeelowcode.framework.code.JeeLowCodeErrorCode; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.exception.JeeLowCodeMoreException; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; + +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + + +/** + * 全局异常处理器 + */ +@Order(Ordered.HIGHEST_PRECEDENCE) +@RestControllerAdvice(basePackages = JeeLowCodeBaseConstant.BASE_PACKAGES)//扫码我们的包 +public class JeeLowCodeGlobalExceptionHandler { + private static final Logger log = LoggerFactory.getLogger(JeeLowCodeGlobalExceptionHandler.class); + + + /** + * 拦截未知的运行时异常 + */ + @ExceptionHandler(RuntimeException.class) + public BaseWebResult handleRuntimeException(RuntimeException e, HttpServletRequest request) { + e.printStackTrace(); + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_ERROR); + } + + /** + * 系统异常 + */ + @ExceptionHandler(Exception.class) + public BaseWebResult handleException(Exception e) { + e.printStackTrace(); + return BaseWebResult.error(FrameErrorCodeConstants.FRAME_PARAM_ERROR); + } + + + /** + * 自定义异常 + * + * @param e + * @return + */ + @ExceptionHandler(JeeLowCodeException.class) + public BaseWebResult handleJeeLowCodeExceptionException(RuntimeException e) { + String message = e.getMessage(); + if(FuncBase.isNotEmpty(message) && FuncBase.jsonIsJson(message)){ + //判断是否是 BaseWebResult,如果是BaseWebResult 则直接弹出 + if(message.contains("code") && message.contains("msg")){ + try{ + BaseWebResult baseWebResult = FuncBase.json2Bean(message, BaseWebResult.class); + if(FuncBase.isNotEmpty(baseWebResult)){ + return baseWebResult; + } + }catch (Exception e1){ + + } + } + } + + return BaseWebResult.error(FrameErrorCodeConstants.FRAM_SELF_ERROR.getCode(), e.getMessage()); + } + + + /** + * 自定义异常-更多详情 + * @param e + * @return + */ + @ExceptionHandler(JeeLowCodeMoreException.class) + public BaseWebResult handleJeeLowCodeMoreExceptionException(RuntimeException e) { + + String messageJsonStr = e.getMessage(); + Map map = FuncBase.json2Bean(messageJsonStr, Map.class); + String title = map.get("title"); + String e1 = map.get("e"); + + //封装map + JeeLowCodeErrorCode jeeLowCodeErrorCode = new JeeLowCodeErrorCode(FrameErrorCodeConstants.FRAME_OP_ERROR.getCode(), title); + + return BaseWebResult.error(jeeLowCodeErrorCode, e1); + + } + + + + +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormReqBody.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormReqBody.java new file mode 100644 index 0000000..3b00037 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormReqBody.java @@ -0,0 +1,52 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +/** + * @author JX + * @create 2024-06-20 15:06 + * @dedescription: + */ +public class ExecFormReqBody { + + private Long dbFormId; + + private T data; + + private String tableName; + + public Long getDbFormId() { + return dbFormId; + } + + public void setDbFormId(Long dbFormId) { + this.dbFormId = dbFormId; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormRespBody.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormRespBody.java new file mode 100644 index 0000000..64cdb29 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecFormRespBody.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +/** + * @author JX + * @create 2024-06-20 9:03 + * @dedescription: + */ +public class ExecFormRespBody { + + private int status; + + private ExecuteEnhanceModel data; + + private String message; + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public ExecuteEnhanceModel getData() { + return data; + } + + public void setData(ExecuteEnhanceModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean checkStatus(){ + + return this.status == 200; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListReqBody.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListReqBody.java new file mode 100644 index 0000000..6170955 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListReqBody.java @@ -0,0 +1,65 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-06-20 15:20 + * @dedescription: + */ +public class ExecListReqBody { + + private Long dbFormId; + + private Map params; + + private List> dataList; + + private String tableName; + + public Long getDbFormId() { + return dbFormId; + } + + public void setDbFormId(Long dbFormId) { + this.dbFormId = dbFormId; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public Map getParams() { + return params; + } + + public void setParams(Map params) { + this.params = params; + } + + public List> getDataList() { + return dataList; + } + + public void setDataList(List> dataList) { + this.dataList = dataList; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListRespBody.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListRespBody.java new file mode 100644 index 0000000..2fefc6a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecListRespBody.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +/** + * @author JX + * @create 2024-06-20 9:22 + * @dedescription: + */ +public class ExecListRespBody { + + private int status; + + private ResultDataModel data; + + private String message; + + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public ResultDataModel getData() { + return data; + } + + public void setData(ResultDataModel data) { + this.data = data; + } + + public boolean checkStatus(){ + return this.status == 200; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecuteEnhanceModel.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecuteEnhanceModel.java new file mode 100644 index 0000000..c05e592 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ExecuteEnhanceModel.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +import com.jeelowcode.framework.utils.utils.FuncBase; + +public class ExecuteEnhanceModel { + private boolean exitFlag=false;//是否退出 + private String id;//id + + public boolean isExitFlag() { + return exitFlag; + } + + public void setExitFlag(boolean exitFlag) { + this.exitFlag = exitFlag; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ExecuteEnhanceModel fomat(Object id, boolean exitFlag){ + ExecuteEnhanceModel model=new ExecuteEnhanceModel(); + model.setId(FuncBase.toStr(id)); + model.setExitFlag(exitFlag); + return model; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDept.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDept.java new file mode 100644 index 0000000..9a61dbc --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDept.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +public class JeeLowCodeDept { + private String deptId; + private String deptPid; + private String deptName; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptPid() { + return deptPid; + } + + public void setDeptPid(String deptPid) { + this.deptPid = deptPid; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDict.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDict.java new file mode 100644 index 0000000..f202baa --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDict.java @@ -0,0 +1,64 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +import java.util.List; + +/** + * 字典 + */ +public class JeeLowCodeDict { + + private String dictCode; + + private List dataList; + + public static class DictData{ + private String val; + private String label; + + public String getVal() { + return val; + } + + public void setVal(String val) { + this.val = val; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + + public String getDictCode() { + return dictCode; + } + + public void setDictCode(String dictCode) { + this.dictCode = dictCode; + } + + public List getDataList() { + return dataList; + } + + public void setDataList(List dataList) { + this.dataList = dataList; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDictTable.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDictTable.java new file mode 100644 index 0000000..422ae47 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeDictTable.java @@ -0,0 +1,63 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +import java.util.List; + +/** + * 字典-表 + */ +public class JeeLowCodeDictTable { + + private String tableCode; + + private List dataTableList; + + public static class DictTableData{ + private String val; + private String key; + + public String getVal() { + return val; + } + + public void setVal(String val) { + this.val = val; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + } + + public String getTableCode() { + return tableCode; + } + + public void setTableCode(String tableCode) { + this.tableCode = tableCode; + } + + public List getDataTableList() { + return dataTableList; + } + + public void setDataTableList(List dataTableList) { + this.dataTableList = dataTableList; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeRole.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeRole.java new file mode 100644 index 0000000..d30f809 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeRole.java @@ -0,0 +1,35 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +public class JeeLowCodeRole { + private String roleId; + private String roleName; + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeUser.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeUser.java new file mode 100644 index 0000000..0ca8915 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowCodeUser.java @@ -0,0 +1,89 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +public class JeeLowCodeUser { + private String userId;//用户id + private String nickName;//用户昵称 + private String mobile;//手机号 + private String email;//邮箱 + private String sex;//性别 + private String post;//职位 + private String avatar;//头像 + private String deptName;//部门名称 + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getPost() { + return post; + } + + public void setPost(String post) { + this.post = post; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowTenant.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowTenant.java new file mode 100644 index 0000000..d22d8b2 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/JeeLowTenant.java @@ -0,0 +1,41 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +/** + * 租户 + */ +public class JeeLowTenant { + + private String tenantId; + + private String tenantName; + + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getTenantName() { + return tenantName; + } + + public void setTenantName(String tenantName) { + this.tenantName = tenantName; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ResultDataModel.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ResultDataModel.java new file mode 100644 index 0000000..5465531 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/ResultDataModel.java @@ -0,0 +1,124 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model; + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public class ResultDataModel { + private boolean exitFlag=false;//是否退出 + private Long total; + private List> records;//列表 + + + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } + + public List> getRecords() { + return records; + } + + public void setRecords(List> records) { + this.records = records; + } + + public boolean isExitFlag() { + return exitFlag; + } + + public void setExitFlag(boolean exitFlag) { + this.exitFlag = exitFlag; + } + + + public ResultDataModel(){ + this.total=0L; + this.setRecords(new ArrayList<>()); + } + + /** + * 取一条 + * @param list + * @return + */ + public static ResultDataModel fomatOne(List> list){ + if(FuncBase.isEmpty(list)){ + ResultDataModel resultDataModel = new ResultDataModel(); + resultDataModel.setTotal(0L); + resultDataModel.setRecords(new ArrayList<>()); + return resultDataModel; + } + Map tmpMap = list.get(0); + list.clear(); + list.add(tmpMap); + ResultDataModel model=new ResultDataModel(); + model.setTotal(FuncBase.toLong(list.size())); + model.setRecords(list); + return model; + } + + /** + * 只处理数据,不改变总数的情况下 + * @param list + * @return + */ + public static ResultDataModel fomatList(List> list){ + if(FuncBase.isEmpty(list)){ + ResultDataModel resultDataModel = new ResultDataModel(); + resultDataModel.setTotal(0L); + resultDataModel.setRecords(new ArrayList<>()); + return resultDataModel; + } + ResultDataModel model=new ResultDataModel(); + model.setRecords(list); + return model; + } + + /** + * 只处理数据,不改变总数的情况下 + * @param dataMap + * @return + */ + public static ResultDataModel fomatMap(Map dataMap){ + List> list = Collections.singletonList(dataMap); + ResultDataModel model=new ResultDataModel(); + model.setRecords(list); + return model; + } + + /** + * 处理数据和改变总数的情况下 + * @param total + * @param list + * @return + */ + public static ResultDataModel fomat(long total,List> list){ + ResultDataModel model=new ResultDataModel(); + model.setTotal(total); + model.setRecords(list); + return model; + } + + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseEntity.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseEntity.java new file mode 100644 index 0000000..cb6f4e7 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseEntity.java @@ -0,0 +1,84 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model.global; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; + +import java.io.Serializable; +import java.sql.Date; +import java.time.LocalDateTime; + +/** + * 公共实体对象 + */ +@Data +@EqualsAndHashCode +public class BaseEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT,jdbcType = JdbcType.DATE) + private LocalDateTime createTime; + + /** + * 创建者 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createUser; + + /** + * 创建部门 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createDept; + + + /** + * 更新者 + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.BIGINT) + private Long updateUser; + + /** + * 最后更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE,jdbcType = JdbcType.DATE) + private LocalDateTime updateTime; + + /** + * 是否删除 + */ + @TableLogic + private Integer isDeleted; + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseTenantEntity.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseTenantEntity.java new file mode 100644 index 0000000..49b3b5f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseTenantEntity.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model.global; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 公共实体对象-租户 + */ +@Data +@EqualsAndHashCode +public abstract class BaseTenantEntity extends BaseEntity { + + /** + * 租户id + */ + private String tenantId; + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseWebResult.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseWebResult.java new file mode 100644 index 0000000..f88091a --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/model/global/BaseWebResult.java @@ -0,0 +1,137 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.model.global; + + +import com.jeelowcode.framework.code.JeeLowCodeErrorCode; +import com.jeelowcode.framework.constants.FrameErrorCodeConstants; +import com.fasterxml.jackson.annotation.JsonIgnore; +import org.springframework.util.Assert; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + + +/** + * 通用返回 + * + */ +public class BaseWebResult implements Serializable { + + /** + * 错误码 + */ + private Integer code; + /** + * 返回数据 + */ + private T data; + /** + * 错误提示,用户可阅读 + */ + private String msg; + + /** + * 将传入的 result 对象,转换成另外一个泛型结果的对象 + * + * 因为 A 方法返回的 CommonResult 对象,不满足调用其的 B 方法的返回,所以需要进行转换。 + * + * @param result 传入的 result 对象 + * @param 返回的泛型 + * @return 新的 CommonResult 对象 + */ + public static BaseWebResult error(BaseWebResult result) { + return error(result.getCode(), result.getMsg()); + } + + public static BaseWebResult error(Integer code, String message) { + Assert.isTrue(!FrameErrorCodeConstants.SUCCESS.getCode().equals(code), "code 必须是错误的!"); + BaseWebResult result = new BaseWebResult(); + result.code = code; + result.msg = message; + return result; + } + + + public static BaseWebResult error(JeeLowCodeErrorCode errorCode) { + return error(errorCode.getCode(), errorCode.getMsg()); + } + + public static BaseWebResult error(JeeLowCodeErrorCode errorCode,T data) { + BaseWebResult result = new BaseWebResult(); + result.code = errorCode.getCode(); + result.msg = errorCode.getMsg(); + result.data=data; + return result; + } + + public static BaseWebResult successNull() { + Map dataMap = new HashMap<>(); + + BaseWebResult result = new BaseWebResult(); + result.code = FrameErrorCodeConstants.SUCCESS.getCode(); + result.data = dataMap; + result.msg = ""; + return result; + } + + public static BaseWebResult success(T data) { + BaseWebResult result = new BaseWebResult(); + result.code = FrameErrorCodeConstants.SUCCESS.getCode(); + result.data = data; + result.msg = ""; + return result; + } + + public static boolean isSuccess(Integer code) { + return Objects.equals(code, FrameErrorCodeConstants.SUCCESS.getCode()); + } + + @JsonIgnore // 避免 jackson 序列化 + public boolean isSuccess() { + return isSuccess(code); + } + + @JsonIgnore // 避免 jackson 序列化 + public boolean isError() { + return !isSuccess(); + } + + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDeptParam.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDeptParam.java new file mode 100644 index 0000000..1fa17d3 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDeptParam.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.params; + +public class JeeLowCodeDeptParam { + String deptName;//部门名称搜索 + String type;//all=所有 now=当前级 sub=本级及下级 + + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictParam.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictParam.java new file mode 100644 index 0000000..4079c2c --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictParam.java @@ -0,0 +1,67 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.params; + +import java.util.List; +import java.util.Map; + +public class JeeLowCodeDictParam { + + //字典编码 + List dictCodeList; + + private Map paramMap; + + public static class DictCodeDataParam{ + + //字段数据key + List dictDataLabelList; + + //字段数据value + List dictDataValueList; + + + public List getDictDataLabelList() { + return dictDataLabelList; + } + + public void setDictDataLabelList(List dictDataLabelList) { + this.dictDataLabelList = dictDataLabelList; + } + + public List getDictDataValueList() { + return dictDataValueList; + } + + public void setDictDataValueList(List dictDataValueList) { + this.dictDataValueList = dictDataValueList; + } + } + + public List getDictCodeList() { + return dictCodeList; + } + + public void setDictCodeList(List dictCodeList) { + this.dictCodeList = dictCodeList; + } + + public Map getParamMap() { + return paramMap; + } + + public void setParamMap(Map paramMap) { + this.paramMap = paramMap; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictTableParam.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictTableParam.java new file mode 100644 index 0000000..d9d15d5 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeDictTableParam.java @@ -0,0 +1,83 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.params; + +import java.util.List; +import java.util.Map; + +public class JeeLowCodeDictTableParam { + + //字典编码 + List paramList; + + + public static class DictCodeDataParam{ + + private String tableName;//表名称 + private String fieldKey;//字段键 + private String fieldValue;//字段值 + + private String whereField;//id + private String whereValue;//1 + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + + public String getFieldKey() { + return fieldKey; + } + + public void setFieldKey(String fieldKey) { + this.fieldKey = fieldKey; + } + + public String getFieldValue() { + return fieldValue; + } + + public void setFieldValue(String fieldValue) { + this.fieldValue = fieldValue; + } + + public String getWhereField() { + return whereField; + } + + public void setWhereField(String whereField) { + this.whereField = whereField; + } + + public String getWhereValue() { + return whereValue; + } + + public void setWhereValue(String whereValue) { + this.whereValue = whereValue; + } + } + + public List getParamList() { + return paramList; + } + + public void setParamList(List paramList) { + this.paramList = paramList; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeUserParam.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeUserParam.java new file mode 100644 index 0000000..a195d72 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/params/JeeLowCodeUserParam.java @@ -0,0 +1,106 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.params; + +import java.util.List; + +/*** + * 用户查询参数 + */ +public class JeeLowCodeUserParam { + + Integer pageNo; + Integer pageSize; + + //角色id + private Long roleId; + + //部门id + private Long deptId; + + //用户昵称 + private String nickName; + + //手机号 + private String mobile; + + private String type;//all now sub + + //自定义列 userId,nickName,mobile,email,sex,post,deptName + private List fieldList; + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public List getFieldList() { + return fieldList; + } + + public void setFieldList(List fieldList) { + this.fieldList = fieldList; + } + + public Integer getPageNo() { + return pageNo; + } + + public void setPageNo(Integer pageNo) { + this.pageNo = pageNo; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/AesUtil.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/AesUtil.java new file mode 100644 index 0000000..d8b6f17 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/AesUtil.java @@ -0,0 +1,250 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import cn.hutool.core.util.CharsetUtil; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.Objects; + +/** + * 完全兼容微信所使用的AES加密工具类 + * aes的key必须是256byte长(比如32个字符),可以使用AesKit.genAesKey()来生成一组key + * + */ +public class AesUtil { + + public static final Charset DEFAULT_CHARSET = CharsetUtil.CHARSET_UTF_8; + + //密钥 + public static String secretKey=""; + + /** + * 获取密钥 + * + * @return {String} + */ + public static String genAesKey() { + return StringUtil.random(32); + } + + /** + * 加密 + * + * @param content 文本内容 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + public static byte[] encrypt(String content, String aesTextKey) { + return encrypt(content.getBytes(DEFAULT_CHARSET), aesTextKey); + } + + /** + * 加密 + * + * @param content 文本内容 + * @param charset 编码 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + public static byte[] encrypt(String content, Charset charset, String aesTextKey) { + return encrypt(content.getBytes(charset), aesTextKey); + } + + /** + * 加密 + * + * @param content 内容 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + public static byte[] encrypt(byte[] content, String aesTextKey) { + return encrypt(content, Objects.requireNonNull(aesTextKey).getBytes(DEFAULT_CHARSET)); + } + + + + /** + * Base64加密 + * + * @param content 文本内容 + * @param aesTextKey 文本密钥 + * @return {String} + */ + public static String encryptToBase64(String content, String aesTextKey) { + return Base64Util.encodeToString(encrypt(content, aesTextKey)); + } + + /** + * Base64加密 + * + * @param content 内容 + * @param aesTextKey 文本密钥 + * @return {String} + */ + public static String encryptToBase64(byte[] content, String aesTextKey) { + return Base64Util.encodeToString(encrypt(content, aesTextKey)); + } + + + + /** + * Base64解密 + * + * @param content 文本内容 + * @param aesTextKey 文本密钥 + * @return {String} + */ + @Nullable + public static String decryptFormBase64ToString(@Nullable String content, String aesTextKey) { + byte[] hexBytes = decryptFormBase64(content, aesTextKey); + if (hexBytes == null) { + return null; + } + return new String(hexBytes, DEFAULT_CHARSET); + } + + /** + * Base64解密 + * + * @param content 文本内容 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + @Nullable + public static byte[] decryptFormBase64(@Nullable String content, String aesTextKey) { + if (StringUtil.isBlank(content)) { + return null; + } + return decryptFormBase64(content.getBytes(DEFAULT_CHARSET), aesTextKey); + } + + /** + * Base64解密 + * + * @param content 内容 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + public static byte[] decryptFormBase64(byte[] content, String aesTextKey) { + return decrypt(Base64Util.decode(content), aesTextKey); + } + + /** + * 解密 + * + * @param content 内容 + * @param aesTextKey 文本密钥 + * @return {String} + */ + public static String decryptToString(byte[] content, String aesTextKey) { + return new String(decrypt(content, aesTextKey), DEFAULT_CHARSET); + } + + /** + * 解密 + * + * @param content 内容 + * @param aesTextKey 文本密钥 + * @return byte[] + */ + public static byte[] decrypt(byte[] content, String aesTextKey) { + return decrypt(content, Objects.requireNonNull(aesTextKey).getBytes(DEFAULT_CHARSET)); + } + + /** + * 解密 + * + * @param content 内容 + * @param aesKey 密钥 + * @return byte[] + */ + public static byte[] encrypt(byte[] content, byte[] aesKey) { + return aes(Pkcs7Encoder.encode(content), aesKey, Cipher.ENCRYPT_MODE); + } + + /** + * 加密 + * + * @param encrypted 内容 + * @param aesKey 密钥 + * @return byte[] + */ + public static byte[] decrypt(byte[] encrypted, byte[] aesKey) { + return Pkcs7Encoder.decode(aes(encrypted, aesKey, Cipher.DECRYPT_MODE)); + } + + /** + * ase加密 + * + * @param encrypted 内容 + * @param aesKey 密钥 + * @param mode 模式 + * @return byte[] + */ + private static byte[] aes(byte[] encrypted, byte[] aesKey, int mode) { + Assert.isTrue(aesKey.length == 32, "IllegalAesKey, aesKey's length must be 32"); + try { + Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); + SecretKeySpec keySpec = new SecretKeySpec(aesKey, "AES"); + IvParameterSpec iv = new IvParameterSpec(Arrays.copyOfRange(aesKey, 0, 16)); + cipher.init(mode, keySpec, iv); + return cipher.doFinal(encrypted); + } catch (Exception e) { + throw new JeeLowCodeException(e.getMessage()); + } + } + + /** + * 提供基于PKCS7算法的加解密接口. + */ + private static class Pkcs7Encoder { + private static final int BLOCK_SIZE = 32; + + private static byte[] encode(byte[] src) { + int count = src.length; + // 计算需要填充的位数 + int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE); + // 获得补位所用的字符 + byte pad = (byte) (amountToPad & 0xFF); + byte[] pads = new byte[amountToPad]; + for (int index = 0; index < amountToPad; index++) { + pads[index] = pad; + } + int length = count + amountToPad; + byte[] dest = new byte[length]; + System.arraycopy(src, 0, dest, 0, count); + System.arraycopy(pads, 0, dest, count, amountToPad); + return dest; + } + + private static byte[] decode(byte[] decrypted) { + int pad = decrypted[decrypted.length - 1]; + if (pad < 1 || pad > BLOCK_SIZE) { + pad = 0; + } + if (pad > 0) { + return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad); + } + return decrypted; + } + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Base64Util.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Base64Util.java new file mode 100644 index 0000000..4ca3e59 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Base64Util.java @@ -0,0 +1,112 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import cn.hutool.core.util.CharsetUtil; + +/** + * Base64工具 + */ +public class Base64Util extends org.springframework.util.Base64Utils { + + /** + * 编码 + * + * @param value 字符串 + * @return {String} + */ + public static String encode(String value) { + return Base64Util.encode(value, CharsetUtil.CHARSET_UTF_8); + } + + /** + * 编码 + * + * @param value 字符串 + * @param charset 字符集 + * @return {String} + */ + public static String encode(String value, java.nio.charset.Charset charset) { + byte[] val = value.getBytes(charset); + return new String(Base64Util.encode(val), charset); + } + + /** + * 编码URL安全 + * + * @param value 字符串 + * @return {String} + */ + public static String encodeUrlSafe(String value) { + return Base64Util.encodeUrlSafe(value, CharsetUtil.CHARSET_UTF_8); + } + + /** + * 编码URL安全 + * + * @param value 字符串 + * @param charset 字符集 + * @return {String} + */ + public static String encodeUrlSafe(String value, java.nio.charset.Charset charset) { + byte[] val = value.getBytes(charset); + return new String(Base64Util.encodeUrlSafe(val), charset); + } + + /** + * 解码 + * + * @param value 字符串 + * @return {String} + */ + public static String decode(String value) { + return Base64Util.decode(value, CharsetUtil.CHARSET_UTF_8); + } + + /** + * 解码 + * + * @param value 字符串 + * @param charset 字符集 + * @return {String} + */ + public static String decode(String value, java.nio.charset.Charset charset) { + byte[] val = value.getBytes(charset); + byte[] decodedValue = Base64Util.decode(val); + return new String(decodedValue, charset); + } + + /** + * 解码URL安全 + * + * @param value 字符串 + * @return {String} + */ + public static String decodeUrlSafe(String value) { + return Base64Util.decodeUrlSafe(value, CharsetUtil.CHARSET_UTF_8); + } + + /** + * 解码URL安全 + * + * @param value 字符串 + * @param charset 字符集 + * @return {String} + */ + public static String decodeUrlSafe(String value, java.nio.charset.Charset charset) { + byte[] val = value.getBytes(charset); + byte[] decodedValue = Base64Util.decodeUrlSafe(val); + return new String(decodedValue, charset); + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CharPool.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CharPool.java new file mode 100644 index 0000000..4ab6842 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CharPool.java @@ -0,0 +1,69 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +/** + * char 常量池 + */ +public interface CharPool { + + // @formatter:off + char UPPER_A = 'A'; + char LOWER_A = 'a'; + char UPPER_Z = 'Z'; + char LOWER_Z = 'z'; + char DOT = '.'; + char AT = '@'; + char LEFT_BRACE = '{'; + char RIGHT_BRACE = '}'; + char LEFT_BRACKET = '('; + char RIGHT_BRACKET = ')'; + char DASH = '-'; + char PERCENT = '%'; + char PIPE = '|'; + char PLUS = '+'; + char QUESTION_MARK = '?'; + char EXCLAMATION_MARK = '!'; + char EQUALS = '='; + char AMPERSAND = '&'; + char ASTERISK = '*'; + char STAR = ASTERISK; + char BACK_SLASH = '\\'; + char COLON = ':'; + char COMMA = ','; + char DOLLAR = '$'; + char SLASH = '/'; + char HASH = '#'; + char HAT = '^'; + char LEFT_CHEV = '<'; + char NEWLINE = '\n'; + char N = 'n'; + char Y = 'y'; + char QUOTE = '\"'; + char RETURN = '\r'; + char TAB = '\t'; + char RIGHT_CHEV = '>'; + char SEMICOLON = ';'; + char SINGLE_QUOTE = '\''; + char BACKTICK = '`'; + char SPACE = ' '; + char TILDA = '~'; + char LEFT_SQ_BRACKET = '['; + char RIGHT_SQ_BRACKET = ']'; + char UNDERSCORE = '_'; + char ONE = '1'; + char ZERO = '0'; + // @formatter:on + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CollectionUtil.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CollectionUtil.java new file mode 100644 index 0000000..e27ad66 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/CollectionUtil.java @@ -0,0 +1,174 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import org.springframework.lang.Nullable; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; + +import java.lang.reflect.Array; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 集合工具类 + */ +public class CollectionUtil extends CollectionUtils { + + /** + * Return {@code true} if the supplied Collection is not {@code null} or empty. + * Otherwise, return {@code false}. + * + * @param collection the Collection to check + * @return whether the given Collection is not empty + */ + public static boolean isNotEmpty(@Nullable Collection collection) { + return !CollectionUtil.isEmpty(collection); + } + + /** + * Return {@code true} if the supplied Map is not {@code null} or empty. + * Otherwise, return {@code false}. + * + * @param map the Map to check + * @return whether the given Map is not empty + */ + public static boolean isNotEmpty(@Nullable Map map) { + return !CollectionUtil.isEmpty(map); + } + + /** + * Check whether the given Array contains the given element. + * + * @param array the Array to check + * @param element the element to look for + * @param The generic tag + * @return {@code true} if found, {@code false} else + */ + public static boolean contains(@Nullable T[] array, final T element) { + if (array == null) { + return false; + } + + return Arrays.stream(array).anyMatch(x -> ObjectUtils.nullSafeEquals(x, element)); + } + + /** + * Concatenates 2 arrays + * + * @param one 数组1 + * @param other 数组2 + * @return 新数组 + */ + public static String[] concat(String[] one, String[] other) { + return concat(one, other, String.class); + } + + /** + * Concatenates 2 arrays + * + * @param one 数组1 + * @param other 数组2 + * @param clazz 数组类 + * @return 新数组 + */ + public static T[] concat(T[] one, T[] other, Class clazz) { + T[] target = (T[]) Array.newInstance(clazz, one.length + other.length); + System.arraycopy(one, 0, target, 0, one.length); + System.arraycopy(other, 0, target, one.length, other.length); + return target; + } + + /** + * 对象是否为数组对象 + * + * @param obj 对象 + * @return 是否为数组对象,如果为{@code null} 返回false + */ + public static boolean isArray(Object obj) { + if (null == obj) { + return false; + } + return obj.getClass().isArray(); + } + + /** + * 不可变 Set + * + * @param es 对象 + * @param 泛型 + * @return 集合 + */ + @SafeVarargs + public static Set ofImmutableSet(E... es) { + Objects.requireNonNull(es, "args es is null."); + return Arrays.stream(es).collect(Collectors.toSet()); + } + + /** + * 不可变 List + * + * @param es 对象 + * @param 泛型 + * @return 集合 + */ + @SafeVarargs + public static List ofImmutableList(E... es) { + Objects.requireNonNull(es, "args es is null."); + return Arrays.stream(es).collect(Collectors.toList()); + } + + /** + * Iterable 转换为List集合 + * + * @param elements Iterable + * @param 泛型 + * @return 集合 + */ + public static List toList(Iterable elements) { + Objects.requireNonNull(elements, "elements es is null."); + if (elements instanceof Collection) { + return new ArrayList((Collection) elements); + } + Iterator iterator = elements.iterator(); + List list = new ArrayList<>(); + while (iterator.hasNext()) { + list.add(iterator.next()); + } + return list; + } + + /** + * 将key value 数组转为 map + * + * @param keysValues key value 数组 + * @param key + * @param value + * @return map 集合 + */ + public static Map toMap(Object... keysValues) { + int kvLength = keysValues.length; + if (kvLength % 2 != 0) { + throw new IllegalArgumentException("wrong number of arguments for met, keysValues length can not be odd"); + } + Map keyValueMap = new HashMap<>(kvLength); + for (int i = kvLength - 2; i >= 0; i -= 2) { + Object key = keysValues[i]; + Object value = keysValues[i + 1]; + keyValueMap.put((K) key, (V) value); + } + return keyValueMap; + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Holder.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Holder.java new file mode 100644 index 0000000..deb2f16 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/Holder.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import java.security.SecureRandom; +import java.util.Random; + +/** + * 一些常用的单利对象 + * + */ +public class Holder { + + /** + * RANDOM + */ + public final static Random RANDOM = new Random(); + + /** + * SECURE_RANDOM + */ + public final static SecureRandom SECURE_RANDOM = new SecureRandom(); +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/IpUtils.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/IpUtils.java new file mode 100644 index 0000000..daa03bb --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/IpUtils.java @@ -0,0 +1,392 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * 获取IP方法 + * + * @author ruoyi + */ +public class IpUtils +{ + public final static String REGX_0_255 = "(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)"; + // 匹配 ip + public final static String REGX_IP = "((" + REGX_0_255 + "\\.){3}" + REGX_0_255 + ")"; + public final static String REGX_IP_WILDCARD = "(((\\*\\.){3}\\*)|(" + REGX_0_255 + "(\\.\\*){3})|(" + REGX_0_255 + "\\." + REGX_0_255 + ")(\\.\\*){2}" + "|((" + REGX_0_255 + "\\.){3}\\*))"; + // 匹配网段 + public final static String REGX_IP_SEG = "(" + REGX_IP + "\\-" + REGX_IP + ")"; + + /** + * 获取客户端IP + * + * @param request 请求对象 + * @return IP地址 + */ + public static String getIpAddr(HttpServletRequest request) + { + if (request == null) + { + return "unknown"; + } + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("X-Forwarded-For"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("X-Real-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) + { + ip = request.getRemoteAddr(); + } + + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); + } + /** + * 检查是否为内部IP地址 + * + * @param ip IP地址 + * @return 结果 + */ + public static boolean internalIp(String ip) + { + byte[] addr = textToNumericFormatV4(ip); + return internalIp(addr) || "127.0.0.1".equals(ip); + } + + /** + * 检查是否为内部IP地址 + * + * @param addr byte地址 + * @return 结果 + */ + private static boolean internalIp(byte[] addr) + { + if (FuncBase.isEmpty(addr) || addr.length < 2) + { + return true; + } + final byte b0 = addr[0]; + final byte b1 = addr[1]; + // 10.x.x.x/8 + final byte SECTION_1 = 0x0A; + // 172.16.x.x/12 + final byte SECTION_2 = (byte) 0xAC; + final byte SECTION_3 = (byte) 0x10; + final byte SECTION_4 = (byte) 0x1F; + // 192.168.x.x/16 + final byte SECTION_5 = (byte) 0xC0; + final byte SECTION_6 = (byte) 0xA8; + switch (b0) + { + case SECTION_1: + return true; + case SECTION_2: + if (b1 >= SECTION_3 && b1 <= SECTION_4) + { + return true; + } + case SECTION_5: + switch (b1) + { + case SECTION_6: + return true; + } + default: + return false; + } + } + + /** + * 将IPv4地址转换成字节 + * + * @param text IPv4地址 + * @return byte 字节 + */ + public static byte[] textToNumericFormatV4(String text) + { + if (text.length() == 0) + { + return null; + } + + byte[] bytes = new byte[4]; + String[] elements = text.split("\\.", -1); + try + { + long l; + int i; + switch (elements.length) + { + case 1: + l = Long.parseLong(elements[0]); + if ((l < 0L) || (l > 4294967295L)) + { + return null; + } + bytes[0] = (byte) (int) (l >> 24 & 0xFF); + bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 2: + l = Integer.parseInt(elements[0]); + if ((l < 0L) || (l > 255L)) + { + return null; + } + bytes[0] = (byte) (int) (l & 0xFF); + l = Integer.parseInt(elements[1]); + if ((l < 0L) || (l > 16777215L)) + { + return null; + } + bytes[1] = (byte) (int) (l >> 16 & 0xFF); + bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 3: + for (i = 0; i < 2; ++i) + { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) + { + return null; + } + bytes[i] = (byte) (int) (l & 0xFF); + } + l = Integer.parseInt(elements[2]); + if ((l < 0L) || (l > 65535L)) + { + return null; + } + bytes[2] = (byte) (int) (l >> 8 & 0xFF); + bytes[3] = (byte) (int) (l & 0xFF); + break; + case 4: + for (i = 0; i < 4; ++i) + { + l = Integer.parseInt(elements[i]); + if ((l < 0L) || (l > 255L)) + { + return null; + } + bytes[i] = (byte) (int) (l & 0xFF); + } + break; + default: + return null; + } + } + catch (NumberFormatException e) + { + return null; + } + return bytes; + } + + /** + * 获取IP地址 + * + * @return 本地IP地址 + */ + public static String getHostIp() + { + try + { + return InetAddress.getLocalHost().getHostAddress(); + } + catch (UnknownHostException e) + { + } + return "127.0.0.1"; + } + + /** + * 获取主机名 + * + * @return 本地主机名 + */ + public static String getHostName() + { + try + { + return InetAddress.getLocalHost().getHostName(); + } + catch (UnknownHostException e) + { + } + return "未知"; + } + + /** + * 从多级反向代理中获得第一个非unknown IP地址 + * + * @param ip 获得的IP地址 + * @return 第一个非unknown IP地址 + */ + public static String getMultistageReverseProxyIp(String ip) + { + // 多级反向代理检测 + if (ip != null && ip.indexOf(",") > 0) + { + final String[] ips = ip.trim().split(","); + for (String subIp : ips) + { + if (false == isUnknown(subIp)) + { + ip = subIp; + break; + } + } + } + return ip.substring(0, 255); + } + + /** + * 检测给定字符串是否为未知,多用于检测HTTP请求相关 + * + * @param checkString 被检测的字符串 + * @return 是否未知 + */ + public static boolean isUnknown(String checkString) + { + return FuncBase.isEmpty(checkString) || "unknown".equalsIgnoreCase(checkString); + } + + /** + * 是否为IP + */ + public static boolean isIP(String ip) + { + return FuncBase.isNotBlank(ip) && ip.matches(REGX_IP); + } + + /** + * 是否为IP,或 *为间隔的通配符地址 + */ + public static boolean isIpWildCard(String ip) + { + return FuncBase.isNotBlank(ip) && ip.matches(REGX_IP_WILDCARD); + } + + /** + * 检测参数是否在ip通配符里 + */ + public static boolean ipIsInWildCardNoCheck(String ipWildCard, String ip) + { + String[] s1 = ipWildCard.split("\\."); + String[] s2 = ip.split("\\."); + boolean isMatchedSeg = true; + for (int i = 0; i < s1.length && !s1[i].equals("*"); i++) + { + if (!s1[i].equals(s2[i])) + { + isMatchedSeg = false; + break; + } + } + return isMatchedSeg; + } + + /** + * 是否为特定格式如:“10.10.10.1-10.10.10.99”的ip段字符串 + */ + public static boolean isIPSegment(String ipSeg) + { + return FuncBase.isNotBlank(ipSeg) && ipSeg.matches(REGX_IP_SEG); + } + + /** + * 判断ip是否在指定网段中 + */ + public static boolean ipIsInNetNoCheck(String iparea, String ip) + { + int idx = iparea.indexOf('-'); + String[] sips = iparea.substring(0, idx).split("\\."); + String[] sipe = iparea.substring(idx + 1).split("\\."); + String[] sipt = ip.split("\\."); + long ips = 0L, ipe = 0L, ipt = 0L; + for (int i = 0; i < 4; ++i) + { + ips = ips << 8 | Integer.parseInt(sips[i]); + ipe = ipe << 8 | Integer.parseInt(sipe[i]); + ipt = ipt << 8 | Integer.parseInt(sipt[i]); + } + if (ips > ipe) + { + long t = ips; + ips = ipe; + ipe = t; + } + return ips <= ipt && ipt <= ipe; + } + + /** + * 校验ip是否符合过滤串规则 + * + * @param filter 过滤IP列表,支持后缀'*'通配,支持网段如:`10.10.10.1-10.10.10.99` + * @param ip 校验IP地址 + * @return boolean 结果 + */ + public static boolean isMatchedIp(String filter, String ip) + { + if (FuncBase.isEmpty(filter) || FuncBase.isEmpty(ip)) + { + return false; + } + String[] ips = filter.split(";"); + for (String iStr : ips) + { + if (isIP(iStr) && iStr.equals(ip)) + { + return true; + } + else if (isIpWildCard(iStr) && ipIsInWildCardNoCheck(iStr, ip)) + { + return true; + } + else if (isIPSegment(iStr) && ipIsInNetNoCheck(iStr, ip)) + { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/NumberUtil.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/NumberUtil.java new file mode 100644 index 0000000..5e0380f --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/NumberUtil.java @@ -0,0 +1,206 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + + +import org.springframework.lang.Nullable; +import org.springframework.util.NumberUtils; + +/** + * 数字类型工具类 + */ +public class NumberUtil extends NumberUtils { + + //----------------------------------------------------------------------- + + /** + *

    Convert a String to an int, returning + * zero if the conversion fails.

    + * + *

    If the string is null, zero is returned.

    + * + *
    +	 *   NumberUtil.toInt(null) = 0
    +	 *   NumberUtil.toInt("")   = 0
    +	 *   NumberUtil.toInt("1")  = 1
    +	 * 
    + * + * @param str the string to convert, may be null + * @return the int represented by the string, or zero if + * conversion fails + */ + public static int toInt(final String str) { + return toInt(str, -1); + } + + /** + *

    Convert a String to an int, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +	 *   NumberUtil.toInt(null, 1) = 1
    +	 *   NumberUtil.toInt("", 1)   = 1
    +	 *   NumberUtil.toInt("1", 0)  = 1
    +	 * 
    + * + * @param str the string to convert, may be null + * @param defaultValue the default value + * @return the int represented by the string, or the default if conversion fails + */ + public static int toInt(@Nullable final String str, final int defaultValue) { + if (str == null) { + return defaultValue; + } + try { + return Integer.valueOf(str); + } catch (final NumberFormatException nfe) { + return defaultValue; + } + } + + /** + *

    Convert a String to a long, returning + * zero if the conversion fails.

    + * + *

    If the string is null, zero is returned.

    + * + *
    +	 *   NumberUtil.toLong(null) = 0L
    +	 *   NumberUtil.toLong("")   = 0L
    +	 *   NumberUtil.toLong("1")  = 1L
    +	 * 
    + * + * @param str the string to convert, may be null + * @return the long represented by the string, or 0 if + * conversion fails + */ + public static long toLong(final String str) { + return toLong(str, 0L); + } + + /** + *

    Convert a String to a long, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +	 *   NumberUtil.toLong(null, 1L) = 1L
    +	 *   NumberUtil.toLong("", 1L)   = 1L
    +	 *   NumberUtil.toLong("1", 0L)  = 1L
    +	 * 
    + * + * @param str the string to convert, may be null + * @param defaultValue the default value + * @return the long represented by the string, or the default if conversion fails + */ + public static long toLong(@Nullable final String str, final long defaultValue) { + if (str == null) { + return defaultValue; + } + try { + return Long.valueOf(str); + } catch (final NumberFormatException nfe) { + return defaultValue; + } + } + + /** + *

    Convert a String to a Double + * + * @param value value + * @return double value + */ + public static Double toDouble(String value) { + return toDouble(value, null); + } + + /** + *

    Convert a String to a Double + * + * @param value value + * @param defaultValue 默认值 + * @return double value + */ + public static Double toDouble(@Nullable String value, Double defaultValue) { + if (value != null) { + return Double.valueOf(value.trim()); + } + return defaultValue; + } + + /** + *

    Convert a String to a Double + * + * @param value value + * @return double value + */ + public static Float toFloat(String value) { + return toFloat(value, null); + } + + /** + *

    Convert a String to a Double + * + * @param value value + * @param defaultValue 默认值 + * @return double value + */ + public static Float toFloat(@Nullable String value, Float defaultValue) { + if (value != null) { + return Float.valueOf(value.trim()); + } + return defaultValue; + } + + /** + * All possible chars for representing a number as a String + */ + private final static char[] DIGITS = { + '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', 'a', 'b', + 'c', 'd', 'e', 'f', 'g', 'h', + 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', + 'A', 'B', 'C', 'D', 'E', 'F', + 'G', 'H', 'I', 'J', 'K', 'L', + 'M', 'N', 'O', 'P', 'Q', 'R', + 'S', 'T', 'U', 'V', 'W', 'X', + 'Y', 'Z' + }; + + /** + * 将 long 转短字符串 为 62 进制 + * + * @param i 数字 + * @return 短字符串 + */ + public static String to62String(long i) { + int radix = DIGITS.length; + char[] buf = new char[65]; + int charPos = 64; + i = -i; + while (i <= -radix) { + buf[charPos--] = DIGITS[(int) (-(i % radix))]; + i = i / radix; + } + buf[charPos] = DIGITS[(int) (-i)]; + + return new String(buf, charPos, (65 - charPos)); + } + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/RandomType.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/RandomType.java new file mode 100644 index 0000000..0829228 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/RandomType.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +/** + * 生成的随机数类型 + * + */ +public enum RandomType { + /** + * INT STRING ALL + */ + INT(RandomType.INT_STR), + STRING(RandomType.STR_STR), + ALL(RandomType.ALL_STR); + + private final String factor; + + /** + * 随机字符串因子 + */ + private static final String INT_STR = "0123456789"; + private static final String STR_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private static final String ALL_STR = INT_STR + STR_STR; + + public String getFactor() { + return factor; + } + + RandomType(String factor) { + this.factor = factor; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StrSpliter.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StrSpliter.java new file mode 100644 index 0000000..2de5256 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StrSpliter.java @@ -0,0 +1,510 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 字符串切分器 + */ +public class StrSpliter { + + //---------------------------------------------------------------------------------------------- Split by char + + /** + * 切分字符串路径,仅支持Unix分界符:/ + * + * @param str 被切分的字符串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List splitPath(String str) { + return splitPath(str, 0); + } + + /** + * 切分字符串路径,仅支持Unix分界符:/ + * + * @param str 被切分的字符串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitPathToArray(String str) { + return toArray(splitPath(str)); + } + + /** + * 切分字符串路径,仅支持Unix分界符:/ + * + * @param str 被切分的字符串 + * @param limit 限制分片数 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List splitPath(String str, int limit) { + return split(str, StringPool.SLASH, limit, true, true); + } + + /** + * 切分字符串路径,仅支持Unix分界符:/ + * + * @param str 被切分的字符串 + * @param limit 限制分片数 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitPathToArray(String str, int limit) { + return toArray(splitPath(str, limit)); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitTrim(String str, char separator, boolean ignoreEmpty) { + return split(str, separator, 0, true, ignoreEmpty); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, char separator, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, 0, isTrim, ignoreEmpty); + } + + /** + * 切分字符串,大小写敏感,去除每个元素两边空白符 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List splitTrim(String str, char separator, int limit, boolean ignoreEmpty) { + return split(str, separator, limit, true, ignoreEmpty, false); + } + + /** + * 切分字符串,大小写敏感 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, char separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, limit, isTrim, ignoreEmpty, false); + } + + /** + * 切分字符串,忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitIgnoreCase(String str, char separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, limit, isTrim, ignoreEmpty, true); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @param ignoreCase 是否忽略大小写 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List split(String str, char separator, int limit, boolean isTrim, boolean ignoreEmpty, boolean ignoreCase) { + if (StringUtil.isEmpty(str)) { + return new ArrayList(0); + } + if (limit == 1) { + return addToList(new ArrayList(1), str, isTrim, ignoreEmpty); + } + + final ArrayList list = new ArrayList<>(limit > 0 ? limit : 16); + int len = str.length(); + int start = 0; + for (int i = 0; i < len; i++) { + if (FuncBase.equals(separator, str.charAt(i))) { + addToList(list, str.substring(start, i), isTrim, ignoreEmpty); + start = i + 1; + + //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串) + if (limit > 0 && list.size() > limit - 2) { + break; + } + } + } + return addToList(list, str.substring(start, len), isTrim, ignoreEmpty); + } + + /** + * 切分字符串为字符串数组 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitToArray(String str, char separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return toArray(split(str, separator, limit, isTrim, ignoreEmpty)); + } + + //---------------------------------------------------------------------------------------------- Split by String + + /** + * 切分字符串,不忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, String separator, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, -1, isTrim, ignoreEmpty, false); + } + + /** + * 切分字符串,去除每个元素两边空格,忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitTrim(String str, String separator, boolean ignoreEmpty) { + return split(str, separator, true, ignoreEmpty); + } + + /** + * 切分字符串,不忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, String separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, limit, isTrim, ignoreEmpty, false); + } + + /** + * 切分字符串,去除每个元素两边空格,忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param limit 限制分片数 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitTrim(String str, String separator, int limit, boolean ignoreEmpty) { + return split(str, separator, limit, true, ignoreEmpty); + } + + /** + * 切分字符串,忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitIgnoreCase(String str, String separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, limit, isTrim, ignoreEmpty, true); + } + + /** + * 切分字符串,去除每个元素两边空格,忽略大小写 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param limit 限制分片数 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List splitTrimIgnoreCase(String str, String separator, int limit, boolean ignoreEmpty) { + return split(str, separator, limit, true, ignoreEmpty, true); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符串 + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @param ignoreCase 是否忽略大小写 + * @return 切分后的集合 + * @since 3.2.1 + */ + public static List split(String str, String separator, int limit, boolean isTrim, boolean ignoreEmpty, boolean ignoreCase) { + if (StringUtil.isEmpty(str)) { + return new ArrayList(0); + } + if (limit == 1) { + return addToList(new ArrayList(1), str, isTrim, ignoreEmpty); + } + + if (StringUtil.isEmpty(separator)) { + return split(str, limit); + } else if (separator.length() == 1) { + return split(str, separator.charAt(0), limit, isTrim, ignoreEmpty, ignoreCase); + } + + final ArrayList list = new ArrayList<>(); + int len = str.length(); + int separatorLen = separator.length(); + int start = 0; + int i = 0; + while (i < len) { + i = StringUtil.indexOf(str, separator, start, ignoreCase); + if (i > -1) { + addToList(list, str.substring(start, i), isTrim, ignoreEmpty); + start = i + separatorLen; + + //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串) + if (limit > 0 && list.size() > limit - 2) { + break; + } + } else { + break; + } + } + return addToList(list, str.substring(start, len), isTrim, ignoreEmpty); + } + + /** + * 切分字符串为字符串数组 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitToArray(String str, String separator, int limit, boolean isTrim, boolean ignoreEmpty) { + return toArray(split(str, separator, limit, isTrim, ignoreEmpty)); + } + + //---------------------------------------------------------------------------------------------- Split by Whitespace + + /** + * 使用空白符切分字符串
    + * 切分后的字符串两边不包含空白符,空串或空白符串并不做为元素之一 + * + * @param str 被切分的字符串 + * @param limit 限制分片数 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, int limit) { + if (StringUtil.isEmpty(str)) { + return new ArrayList(0); + } + if (limit == 1) { + return addToList(new ArrayList(1), str, true, true); + } + + final ArrayList list = new ArrayList<>(); + int len = str.length(); + int start = 0; + for (int i = 0; i < len; i++) { + if (FuncBase.isEmpty(str.charAt(i))) { + addToList(list, str.substring(start, i), true, true); + start = i + 1; + if (limit > 0 && list.size() > limit - 2) { + break; + } + } + } + return addToList(list, str.substring(start, len), true, true); + } + + /** + * 切分字符串为字符串数组 + * + * @param str 被切分的字符串 + * @param limit 限制分片数 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitToArray(String str, int limit) { + return toArray(split(str, limit)); + } + + //---------------------------------------------------------------------------------------------- Split by regex + + /** + * 通过正则切分字符串 + * + * @param str 字符串 + * @param separatorPattern 分隔符正则{@link Pattern} + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(String str, Pattern separatorPattern, int limit, boolean isTrim, boolean ignoreEmpty) { + if (StringUtil.isEmpty(str)) { + return new ArrayList(0); + } + if (limit == 1) { + return addToList(new ArrayList(1), str, isTrim, ignoreEmpty); + } + + if (null == separatorPattern) { + return split(str, limit); + } + + final Matcher matcher = separatorPattern.matcher(str); + final ArrayList list = new ArrayList<>(); + int len = str.length(); + int start = 0; + while (matcher.find()) { + addToList(list, str.substring(start, matcher.start()), isTrim, ignoreEmpty); + start = matcher.end(); + + if (limit > 0 && list.size() > limit - 2) { + break; + } + } + return addToList(list, str.substring(start, len), isTrim, ignoreEmpty); + } + + /** + * 通过正则切分字符串为字符串数组 + * + * @param str 被切分的字符串 + * @param separatorPattern 分隔符正则{@link Pattern} + * @param limit 限制分片数 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static String[] splitToArray(String str, Pattern separatorPattern, int limit, boolean isTrim, boolean ignoreEmpty) { + return toArray(split(str, separatorPattern, limit, isTrim, ignoreEmpty)); + } + + //---------------------------------------------------------------------------------------------- Split by length + + /** + * 根据给定长度,将给定字符串截取为多个部分 + * + * @param str 字符串 + * @param len 每一个小节的长度 + * @return 截取后的字符串数组 + */ + public static String[] splitByLength(String str, int len) { + int partCount = str.length() / len; + int lastPartCount = str.length() % len; + int fixPart = 0; + if (lastPartCount != 0) { + fixPart = 1; + } + + final String[] strs = new String[partCount + fixPart]; + for (int i = 0; i < partCount + fixPart; i++) { + if (i == partCount + fixPart - 1 && lastPartCount != 0) { + strs[i] = str.substring(i * len, i * len + lastPartCount); + } else { + strs[i] = str.substring(i * len, i * len + len); + } + } + return strs; + } + + //---------------------------------------------------------------------------------------------------------- Private method start + + /** + * 将字符串加入List中 + * + * @param list 列表 + * @param part 被加入的部分 + * @param isTrim 是否去除两端空白符 + * @param ignoreEmpty 是否略过空字符串(空字符串不做为一个元素) + * @return 列表 + */ + private static List addToList(List list, String part, boolean isTrim, boolean ignoreEmpty) { + part = part.toString(); + if (isTrim) { + part = part.trim(); + } + if (false == ignoreEmpty || false == part.isEmpty()) { + list.add(part); + } + return list; + } + + /** + * List转Array + * + * @param list List + * @return Array + */ + private static String[] toArray(List list) { + return list.toArray(new String[list.size()]); + } + //---------------------------------------------------------------------------------------------------------- Private method end +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringPool.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringPool.java new file mode 100644 index 0000000..6ddb41b --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringPool.java @@ -0,0 +1,82 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + +/** + * 静态 String 池 + */ +public interface StringPool { + + String AMPERSAND = "&"; + String AND = "and"; + String AT = "@"; + String ASTERISK = "*"; + String STAR = ASTERISK; + String SLASH = "/"; + String BACK_SLASH = "\\"; + String DOUBLE_SLASH = "#//"; + String COLON = ":"; + String COMMA = ","; + String DASH = "-"; + String DOLLAR = "$"; + String DOT = "."; + String EMPTY = ""; + String EMPTY_JSON = "{}"; + String EQUALS = "="; + String FALSE = "false"; + String HASH = "#"; + String HAT = "^"; + String LEFT_BRACE = "{"; + String LEFT_BRACKET = "("; + String LEFT_CHEV = "<"; + String NEWLINE = "\n"; + String N = "n"; + String NO = "no"; + String NULL = "null"; + String OFF = "off"; + String ON = "on"; + String PERCENT = "%"; + String PIPE = "|"; + String PLUS = "+"; + String QUESTION_MARK = "?"; + String EXCLAMATION_MARK = "!"; + String QUOTE = "\""; + String RETURN = "\r"; + String TAB = "\t"; + String RIGHT_BRACE = "}"; + String RIGHT_BRACKET = ")"; + String RIGHT_CHEV = ">"; + String SEMICOLON = ";"; + String SINGLE_QUOTE = "'"; + String BACKTICK = "`"; + String SPACE = " "; + String TILDA = "~"; + String LEFT_SQ_BRACKET = "["; + String RIGHT_SQ_BRACKET = "]"; + String TRUE = "true"; + String UNDERSCORE = "_"; + String UTF_8 = "UTF-8"; + String GBK = "GBK"; + String ISO_8859_1 = "ISO-8859-1"; + String Y = "y"; + String YES = "yes"; + String ONE = "1"; + String ZERO = "0"; + String MINUS_ONE = "-1"; + String DOLLAR_LEFT_BRACE= "${"; + String UNKNOWN = "unknown"; + String GET = "GET"; + String POST = "POST"; + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringUtil.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringUtil.java new file mode 100644 index 0000000..a0ffb09 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/StringUtil.java @@ -0,0 +1,1519 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool; + + +import cn.hutool.core.util.ObjectUtil; +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; +import org.springframework.util.PatternMatchUtils; +import org.springframework.util.StringUtils; + +import java.io.StringReader; +import java.io.StringWriter; +import java.text.MessageFormat; +import java.util.*; +import java.util.concurrent.ThreadLocalRandom; +import java.util.regex.Pattern; +import java.util.stream.Stream; +/** + * 继承自Spring util的工具类,减少jar依赖 + */ +public class StringUtil extends StringUtils { + + + + public static final int INDEX_NOT_FOUND = -1; + + /** + * Check whether the given {@code CharSequence} contains actual text. + *

    More specifically, this method returns {@code true} if the + * {@code CharSequence} is not {@code null}, its length is greater than + * 0, and it contains at least one non-whitespace character. + *

    +     * StringUtil.isBlank(null) = true
    +     * StringUtil.isBlank("") = true
    +     * StringUtil.isBlank(" ") = true
    +     * StringUtil.isBlank("12345") = false
    +     * StringUtil.isBlank(" 12345 ") = false
    +     * 
    + * + * @param cs the {@code CharSequence} to check (may be {@code null}) + * @return {@code true} if the {@code CharSequence} is not {@code null}, + * its length is greater than 0, and it does not contain whitespace only + * @see Character#isWhitespace + */ + public static boolean isBlank(final CharSequence cs) { + return !StringUtil.hasText(cs); + } + + /** + *

    Checks if a CharSequence is not empty (""), not null and not whitespace only.

    + *
    +     * StringUtil.isNotBlank(null)	  = false
    +     * StringUtil.isNotBlank("")		= false
    +     * StringUtil.isNotBlank(" ")	   = false
    +     * StringUtil.isNotBlank("bob")	 = true
    +     * StringUtil.isNotBlank("  bob  ") = true
    +     * 
    + * + * @param cs the CharSequence to check, may be null + * @return {@code true} if the CharSequence is + * not empty and not null and not whitespace + * @see Character#isWhitespace + */ + public static boolean isNotBlank(final CharSequence cs) { + return StringUtil.hasText(cs); + } + + /** + * 有 任意 一个 Blank + * + * @param css CharSequence + * @return boolean + */ + public static boolean isAnyBlank(final CharSequence... css) { + if (ObjectUtil.isEmpty(css)) { + return true; + } + return Stream.of(css).anyMatch(StringUtil::isBlank); + } + + /** + * 是否全非 Blank + * + * @param css CharSequence + * @return boolean + */ + public static boolean isNoneBlank(final CharSequence... css) { + + if (ObjectUtil.isEmpty(css)) { + return false; + } + return Stream.of(css).allMatch(StringUtil::isNotBlank); + } + + /** + * 是否全为 Blank + * + * @param css CharSequence + * @return boolean + */ + public static boolean isAllBlank(final CharSequence... css) { + return Stream.of(css).allMatch(StringUtil::isBlank); + } + + /** + * 判断一个字符串是否是数字 + * + * @param cs the CharSequence to check, may be null + * @return {boolean} + */ + public static boolean isNumeric(final CharSequence cs) { + if (isBlank(cs)) { + return false; + } + for (int i = cs.length(); --i >= 0; ) { + int chr = cs.charAt(i); + if (chr < 48 || chr > 57) { + return false; + } + } + return true; + } + + /** + * 将字符串中特定模式的字符转换成map中对应的值 + *

    + * use: format("my name is ${name}, and i like ${like}!", {"name":"L.cm", "like": "Java"}) + * + * @param message 需要转换的字符串 + * @param params 转换所需的键值对集合 + * @return 转换后的字符串 + */ + public static String format(@Nullable String message, @Nullable Map params) { + // message 为 null 返回空字符串 + if (message == null) { + return StringPool.EMPTY; + } + // 参数为 null 或者为空 + if (params == null || params.isEmpty()) { + return message; + } + // 替换变量 + StringBuilder sb = new StringBuilder((int) (message.length() * 1.5)); + int cursor = 0; + for (int start, end; (start = message.indexOf(StringPool.DOLLAR_LEFT_BRACE, cursor)) != -1 && (end = message.indexOf(StringPool.RIGHT_BRACE, start)) != -1; ) { + sb.append(message, cursor, start); + String key = message.substring(start + 2, end); + Object value = params.get(StringUtil.trimWhitespace(key)); + sb.append(value == null ? StringPool.EMPTY : value); + cursor = end + 1; + } + sb.append(message.substring(cursor)); + return sb.toString(); + } + + /** + * 同 log 格式的 format 规则 + *

    + * use: format("my name is {}, and i like {}!", "L.cm", "Java") + * + * @param message 需要转换的字符串 + * @param arguments 需要替换的变量 + * @return 转换后的字符串 + */ + public static String format(@Nullable String message, @Nullable Object... arguments) { + // message 为 null 返回空字符串 + if (message == null) { + return StringPool.EMPTY; + } + // 参数为 null 或者为空 + if (arguments == null || arguments.length == 0) { + return message; + } + StringBuilder sb = new StringBuilder((int) (message.length() * 1.5)); + int cursor = 0; + int index = 0; + int argsLength = arguments.length; + for (int start, end; (start = message.indexOf('{', cursor)) != -1 && (end = message.indexOf('}', start)) != -1 && index < argsLength; ) { + sb.append(message, cursor, start); + sb.append(arguments[index]); + cursor = end + 1; + index++; + } + sb.append(message.substring(cursor)); + return sb.toString(); + } + + /** + * 格式化执行时间,单位为 ms 和 s,保留三位小数 + * + * @param nanos 纳秒 + * @return 格式化后的时间 + */ + public static String format(long nanos) { + if (nanos < 1) { + return "0ms"; + } + double millis = (double) nanos / (1000 * 1000); + // 不够 1 ms,最小单位为 ms + if (millis > 1000) { + return String.format("%.3fs", millis / 1000); + } else { + return String.format("%.3fms", millis); + } + } + + /** + * Convert a {@code Collection} into a delimited {@code String} (e.g., CSV). + *

    Useful for {@code toString()} implementations. + * + * @param coll the {@code Collection} to convert + * @return the delimited {@code String} + */ + public static String join(Collection coll) { + return StringUtil.collectionToCommaDelimitedString(coll); + } + + /** + * Convert a {@code Collection} into a delimited {@code String} (e.g. CSV). + *

    Useful for {@code toString()} implementations. + * + * @param coll the {@code Collection} to convert + * @param delim the delimiter to use (typically a ",") + * @return the delimited {@code String} + */ + public static String join(Collection coll, String delim) { + return StringUtil.collectionToDelimitedString(coll, delim); + } + + /** + * Convert a {@code String} array into a comma delimited {@code String} + * (i.e., CSV). + *

    Useful for {@code toString()} implementations. + * + * @param arr the array to display + * @return the delimited {@code String} + */ + public static String join(Object[] arr) { + return StringUtil.arrayToCommaDelimitedString(arr); + } + + /** + * Convert a {@code String} array into a delimited {@code String} (e.g. CSV). + *

    Useful for {@code toString()} implementations. + * + * @param arr the array to display + * @param delim the delimiter to use (typically a ",") + * @return the delimited {@code String} + */ + public static String join(Object[] arr, String delim) { + return StringUtil.arrayToDelimitedString(arr, delim); + } + + /** + * 字符串是否符合指定的 表达式 + * + *

    + * pattern styles: "xxx*", "*xxx", "*xxx*" and "xxx*yyy" + *

    + * + * @param pattern 表达式 + * @param str 字符串 + * @return 是否匹配 + */ + public static boolean simpleMatch(@Nullable String pattern, @Nullable String str) { + return PatternMatchUtils.simpleMatch(pattern, str); + } + + /** + * 字符串是否符合指定的 表达式 + * + *

    + * pattern styles: "xxx*", "*xxx", "*xxx*" and "xxx*yyy" + *

    + * + * @param patterns 表达式 数组 + * @param str 字符串 + * @return 是否匹配 + */ + public static boolean simpleMatch(@Nullable String[] patterns, String str) { + return PatternMatchUtils.simpleMatch(patterns, str); + } + + /** + * 生成uuid + * + * @return UUID + */ + public static String randomUUID() { + ThreadLocalRandom random = ThreadLocalRandom.current(); + return new UUID(random.nextLong(), random.nextLong()).toString().replace(StringPool.DASH, StringPool.EMPTY); + } + + + /** + * 清理字符串,清理出某些不可见字符 + * + * @param txt 字符串 + * @return {String} + */ + public static String cleanChars(String txt) { + return txt.replaceAll("[  `·•�\\f\\t\\v\\s]", ""); + } + + /** + * 特殊字符正则,sql特殊字符和空白符 + */ + private final static Pattern SPECIAL_CHARS_REGEX = Pattern.compile("[`'\"|/,;()-+*%#·•� \\s]"); + + /** + * 清理字符串,清理出某些不可见字符和一些sql特殊字符 + * + * @param txt 文本 + * @return {String} + */ + @Nullable + public static String cleanText(@Nullable String txt) { + if (txt == null) { + return null; + } + return SPECIAL_CHARS_REGEX.matcher(txt).replaceAll(StringPool.EMPTY); + } + + /** + * 获取标识符,用于参数清理 + * + * @param param 参数 + * @return 清理后的标识符 + */ + @Nullable + public static String cleanIdentifier(@Nullable String param) { + if (param == null) { + return null; + } + StringBuilder paramBuilder = new StringBuilder(); + for (int i = 0; i < param.length(); i++) { + char c = param.charAt(i); + if (Character.isJavaIdentifierPart(c)) { + paramBuilder.append(c); + } + } + return paramBuilder.toString(); + } + + /** + * 随机数生成 + * + * @param count 字符长度 + * @return 随机数 + */ + public static String random(int count) { + return StringUtil.random(count, RandomType.ALL); + } + + /** + * 随机数生成 + * + * @param count 字符长度 + * @param randomType 随机数类别 + * @return 随机数 + */ + public static String random(int count, RandomType randomType) { + if (count == 0) { + return StringPool.EMPTY; + } + Assert.isTrue(count > 0, "Requested random string length " + count + " is less than 0."); + final Random random = Holder.SECURE_RANDOM; + char[] buffer = new char[count]; + for (int i = 0; i < count; i++) { + String factor = randomType.getFactor(); + buffer[i] = factor.charAt(random.nextInt(factor.length())); + } + return new String(buffer); + } + + /** + * 有序的格式化文本,使用{number}做为占位符
    + * 例:
    + * 通常使用:format("this is {0} for {1}", "a", "b") =》 this is a for b
    + * + * @param pattern 文本格式 + * @param arguments 参数 + * @return 格式化后的文本 + */ + public static String indexedFormat(CharSequence pattern, Object... arguments) { + return MessageFormat.format(pattern.toString(), arguments); + } + + /** + * 格式化文本,使用 {varName} 占位
    + * map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue + * + * @param template 文本模板,被替换的部分用 {key} 表示 + * @param map 参数值对 + * @return 格式化后的文本 + */ + public static String format(CharSequence template, Map map) { + if (null == template) { + return null; + } + if (null == map || map.isEmpty()) { + return template.toString(); + } + + String template2 = template.toString(); + for (Map.Entry entry : map.entrySet()) { + template2 = template2.replace("{" + entry.getKey() + "}", FuncBase.toStr(entry.getValue())); + } + return template2; + } + + /** + * 切分字符串,不去除切分后每个元素两边的空白符,不去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @return 切分后的集合 + */ + public static List split(CharSequence str, char separator, int limit) { + return split(str, separator, limit, false, false); + } + + /** + * 分割 字符串 删除常见 空白符 + * + * @param str 字符串 + * @param delimiter 分割符 + * @return 字符串数组 + */ + public static String[] splitTrim(@Nullable String str, @Nullable String delimiter) { + return StringUtil.delimitedListToStringArray(str, delimiter, " \t\n\n\f"); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @return 切分后的集合 + * @since 3.1.2 + */ + public static List splitTrim(CharSequence str, char separator) { + return splitTrim(str, separator, -1); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @return 切分后的集合 + * @since 3.2.0 + */ + public static List splitTrim(CharSequence str, CharSequence separator) { + return splitTrim(str, separator, -1); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @return 切分后的集合 + * @since 3.1.0 + */ + public static List splitTrim(CharSequence str, char separator, int limit) { + return split(str, separator, limit, true, true); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @return 切分后的集合 + * @since 3.2.0 + */ + public static List splitTrim(CharSequence str, CharSequence separator, int limit) { + return split(str, separator, limit, true, true); + } + + /** + * 切分字符串,不限制分片数量 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(CharSequence str, char separator, boolean isTrim, boolean ignoreEmpty) { + return split(str, separator, 0, isTrim, ignoreEmpty); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.0.8 + */ + public static List split(CharSequence str, char separator, int limit, boolean isTrim, boolean ignoreEmpty) { + if (null == str) { + return new ArrayList<>(0); + } + return StrSpliter.split(str.toString(), separator, limit, isTrim, ignoreEmpty); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @param limit 限制分片数,-1不限制 + * @param isTrim 是否去除切分字符串后每个元素两边的空格 + * @param ignoreEmpty 是否忽略空串 + * @return 切分后的集合 + * @since 3.2.0 + */ + public static List split(CharSequence str, CharSequence separator, int limit, boolean isTrim, boolean ignoreEmpty) { + if (null == str) { + return new ArrayList<>(0); + } + final String separatorStr = (null == separator) ? null : separator.toString(); + return StrSpliter.split(str.toString(), separatorStr, limit, isTrim, ignoreEmpty); + } + + /** + * 切分字符串 + * + * @param str 被切分的字符串 + * @param separator 分隔符 + * @return 字符串 + */ + public static String[] split(CharSequence str, CharSequence separator) { + if (str == null) { + return new String[]{}; + } + + final String separatorStr = (null == separator) ? null : separator.toString(); + return StrSpliter.splitToArray(str.toString(), separatorStr, 0, false, false); + } + + /** + * 根据给定长度,将给定字符串截取为多个部分 + * + * @param str 字符串 + * @param len 每一个小节的长度 + * @return 截取后的字符串数组 + * @see StrSpliter#splitByLength(String, int) + */ + public static String[] split(CharSequence str, int len) { + if (null == str) { + return new String[]{}; + } + return StrSpliter.splitByLength(str.toString(), len); + } + + /** + * 指定字符是否在字符串中出现过 + * + * @param str 字符串 + * @param searchChar 被查找的字符 + * @return 是否包含 + * @since 3.1.2 + */ + public static boolean contains(CharSequence str, char searchChar) { + return indexOf(str, searchChar) > -1; + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串 + * + * @param str 指定字符串 + * @param testStrs 需要检查的字符串数组 + * @return 是否包含任意一个字符串 + * @since 3.2.0 + */ + public static boolean containsAny(CharSequence str, CharSequence... testStrs) { + return null != getContainsStr(str, testStrs); + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串 + * + * @param str 指定字符串 + * @param testStrs 需要检查的字符串数组 + * @return 被包含的第一个字符串 + * @since 3.2.0 + */ + public static String getContainsStr(CharSequence str, CharSequence... testStrs) { + if (isEmpty(str) || FuncBase.isEmpty(testStrs)) { + return null; + } + for (CharSequence checkStr : testStrs) { + if (str.toString().contains(checkStr)) { + return checkStr.toString(); + } + } + return null; + } + + /** + * 是否包含特定字符,忽略大小写,如果给定两个参数都为null,返回true + * + * @param str 被检测字符串 + * @param testStr 被测试是否包含的字符串 + * @return 是否包含 + */ + public static boolean containsIgnoreCase(CharSequence str, CharSequence testStr) { + if (null == str) { + // 如果被监测字符串和 + return null == testStr; + } + return str.toString().toLowerCase().contains(testStr.toString().toLowerCase()); + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串
    + * 忽略大小写 + * + * @param str 指定字符串 + * @param testStrs 需要检查的字符串数组 + * @return 是否包含任意一个字符串 + * @since 3.2.0 + */ + public static boolean containsAnyIgnoreCase(CharSequence str, CharSequence... testStrs) { + return null != getContainsStrIgnoreCase(str, testStrs); + } + + /** + * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串
    + * 忽略大小写 + * + * @param str 指定字符串 + * @param testStrs 需要检查的字符串数组 + * @return 被包含的第一个字符串 + * @since 3.2.0 + */ + public static String getContainsStrIgnoreCase(CharSequence str, CharSequence... testStrs) { + if (isEmpty(str) || FuncBase.isEmpty(testStrs)) { + return null; + } + for (CharSequence testStr : testStrs) { + if (containsIgnoreCase(str, testStr)) { + return testStr.toString(); + } + } + return null; + } + + /** + * 改进JDK subString
    + * index从0开始计算,最后一个字符为-1
    + * 如果from和to位置一样,返回 ""
    + * 如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
    + * 如果经过修正的index中from大于to,则互换from和to example:
    + * abcdefgh 2 3 =》 c
    + * abcdefgh 2 -3 =》 cde
    + * + * @param str String + * @param fromIndex 开始的index(包括) + * @param toIndex 结束的index(不包括) + * @return 字串 + */ + public static String sub(CharSequence str, int fromIndex, int toIndex) { + if (isEmpty(str)) { + return StringPool.EMPTY; + } + int len = str.length(); + + if (fromIndex < 0) { + fromIndex = len + fromIndex; + if (fromIndex < 0) { + fromIndex = 0; + } + } else if (fromIndex > len) { + fromIndex = len; + } + + if (toIndex < 0) { + toIndex = len + toIndex; + if (toIndex < 0) { + toIndex = len; + } + } else if (toIndex > len) { + toIndex = len; + } + + if (toIndex < fromIndex) { + int tmp = fromIndex; + fromIndex = toIndex; + toIndex = tmp; + } + + if (fromIndex == toIndex) { + return StringPool.EMPTY; + } + + return str.toString().substring(fromIndex, toIndex); + } + + + /** + * 截取分隔字符串之前的字符串,不包括分隔字符串
    + * 如果给定的字符串为空串(null或"")或者分隔字符串为null,返回原字符串
    + * 如果分隔字符串为空串"",则返回空串,如果分隔字符串未找到,返回原字符串 + *

    + * 栗子: + * + *

    +     * StringUtil.subBefore(null, *)      = null
    +     * StringUtil.subBefore("", *)        = ""
    +     * StringUtil.subBefore("abc", "a")   = ""
    +     * StringUtil.subBefore("abcba", "b") = "a"
    +     * StringUtil.subBefore("abc", "c")   = "ab"
    +     * StringUtil.subBefore("abc", "d")   = "abc"
    +     * StringUtil.subBefore("abc", "")    = ""
    +     * StringUtil.subBefore("abc", null)  = "abc"
    +     * 
    + * + * @param string 被查找的字符串 + * @param separator 分隔字符串(不包括) + * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个 + * @return 切割后的字符串 + * @since 3.1.1 + */ + public static String subBefore(CharSequence string, CharSequence separator, boolean isLastSeparator) { + if (isEmpty(string) || separator == null) { + return null == string ? null : string.toString(); + } + + final String str = string.toString(); + final String sep = separator.toString(); + if (sep.isEmpty()) { + return StringPool.EMPTY; + } + final int pos = isLastSeparator ? str.lastIndexOf(sep) : str.indexOf(sep); + if (pos == INDEX_NOT_FOUND) { + return str; + } + return str.substring(0, pos); + } + + /** + * 截取分隔字符串之后的字符串,不包括分隔字符串
    + * 如果给定的字符串为空串(null或""),返回原字符串
    + * 如果分隔字符串为空串(null或""),则返回空串,如果分隔字符串未找到,返回空串 + *

    + * 栗子: + * + *

    +     * StringUtil.subAfter(null, *)      = null
    +     * StringUtil.subAfter("", *)        = ""
    +     * StringUtil.subAfter(*, null)      = ""
    +     * StringUtil.subAfter("abc", "a")   = "bc"
    +     * StringUtil.subAfter("abcba", "b") = "cba"
    +     * StringUtil.subAfter("abc", "c")   = ""
    +     * StringUtil.subAfter("abc", "d")   = ""
    +     * StringUtil.subAfter("abc", "")    = "abc"
    +     * 
    + * + * @param string 被查找的字符串 + * @param separator 分隔字符串(不包括) + * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个 + * @return 切割后的字符串 + * @since 3.1.1 + */ + public static String subAfter(CharSequence string, CharSequence separator, boolean isLastSeparator) { + if (isEmpty(string)) { + return null == string ? null : string.toString(); + } + if (separator == null) { + return StringPool.EMPTY; + } + final String str = string.toString(); + final String sep = separator.toString(); + final int pos = isLastSeparator ? str.lastIndexOf(sep) : str.indexOf(sep); + if (pos == INDEX_NOT_FOUND) { + return StringPool.EMPTY; + } + return str.substring(pos + separator.length()); + } + + /** + * 截取指定字符串中间部分,不包括标识字符串
    + *

    + * 栗子: + * + *

    +     * StringUtil.subBetween("wx[b]yz", "[", "]") = "b"
    +     * StringUtil.subBetween(null, *, *)          = null
    +     * StringUtil.subBetween(*, null, *)          = null
    +     * StringUtil.subBetween(*, *, null)          = null
    +     * StringUtil.subBetween("", "", "")          = ""
    +     * StringUtil.subBetween("", "", "]")         = null
    +     * StringUtil.subBetween("", "[", "]")        = null
    +     * StringUtil.subBetween("yabcz", "", "")     = ""
    +     * StringUtil.subBetween("yabcz", "y", "z")   = "abc"
    +     * StringUtil.subBetween("yabczyabcz", "y", "z")   = "abc"
    +     * 
    + * + * @param str 被切割的字符串 + * @param before 截取开始的字符串标识 + * @param after 截取到的字符串标识 + * @return 截取后的字符串 + * @since 3.1.1 + */ + public static String subBetween(CharSequence str, CharSequence before, CharSequence after) { + if (str == null || before == null || after == null) { + return null; + } + + final String str2 = str.toString(); + final String before2 = before.toString(); + final String after2 = after.toString(); + + final int start = str2.indexOf(before2); + if (start != INDEX_NOT_FOUND) { + final int end = str2.indexOf(after2, start + before2.length()); + if (end != INDEX_NOT_FOUND) { + return str2.substring(start + before2.length(), end); + } + } + return null; + } + + /** + * 截取指定字符串中间部分,不包括标识字符串
    + *

    + * 栗子: + * + *

    +     * StringUtil.subBetween(null, *)            = null
    +     * StringUtil.subBetween("", "")             = ""
    +     * StringUtil.subBetween("", "tag")          = null
    +     * StringUtil.subBetween("tagabctag", null)  = null
    +     * StringUtil.subBetween("tagabctag", "")    = ""
    +     * StringUtil.subBetween("tagabctag", "tag") = "abc"
    +     * 
    + * + * @param str 被切割的字符串 + * @param beforeAndAfter 截取开始和结束的字符串标识 + * @return 截取后的字符串 + * @since 3.1.1 + */ + public static String subBetween(CharSequence str, CharSequence beforeAndAfter) { + return subBetween(str, beforeAndAfter, beforeAndAfter); + } + + /** + * 去掉指定前缀 + * + * @param str 字符串 + * @param prefix 前缀 + * @return 切掉后的字符串,若前缀不是 preffix, 返回原字符串 + */ + public static String removePrefix(CharSequence str, CharSequence prefix) { + if (isEmpty(str) || isEmpty(prefix)) { + return StringPool.EMPTY; + } + + final String str2 = str.toString(); + if (str2.startsWith(prefix.toString())) { + return subSuf(str2, prefix.length()); + } + return str2; + } + + /** + * 忽略大小写去掉指定前缀 + * + * @param str 字符串 + * @param prefix 前缀 + * @return 切掉后的字符串,若前缀不是 prefix, 返回原字符串 + */ + public static String removePrefixIgnoreCase(CharSequence str, CharSequence prefix) { + if (isEmpty(str) || isEmpty(prefix)) { + return StringPool.EMPTY; + } + + final String str2 = str.toString(); + if (str2.toLowerCase().startsWith(prefix.toString().toLowerCase())) { + return subSuf(str2, prefix.length()); + } + return str2; + } + + /** + * 去掉指定后缀 + * + * @param str 字符串 + * @param suffix 后缀 + * @return 切掉后的字符串,若后缀不是 suffix, 返回原字符串 + */ + public static String removeSuffix(CharSequence str, CharSequence suffix) { + if (isEmpty(str) || isEmpty(suffix)) { + return StringPool.EMPTY; + } + + final String str2 = str.toString(); + if (str2.endsWith(suffix.toString())) { + return subPre(str2, str2.length() - suffix.length()); + } + return str2; + } + + /** + * 去掉指定后缀,并小写首字母 + * + * @param str 字符串 + * @param suffix 后缀 + * @return 切掉后的字符串,若后缀不是 suffix, 返回原字符串 + */ + public static String removeSufAndLowerFirst(CharSequence str, CharSequence suffix) { + return firstCharToLower(removeSuffix(str, suffix)); + } + + /** + * 忽略大小写去掉指定后缀 + * + * @param str 字符串 + * @param suffix 后缀 + * @return 切掉后的字符串,若后缀不是 suffix, 返回原字符串 + */ + public static String removeSuffixIgnoreCase(CharSequence str, CharSequence suffix) { + if (isEmpty(str) || isEmpty(suffix)) { + return StringPool.EMPTY; + } + + final String str2 = str.toString(); + if (str2.toLowerCase().endsWith(suffix.toString().toLowerCase())) { + return subPre(str2, str2.length() - suffix.length()); + } + return str2; + } + + /** + * 首字母变小写 + * + * @param str 字符串 + * @return {String} + */ + public static String firstCharToLower(String str) { + char firstChar = str.charAt(0); + if (firstChar >= CharPool.UPPER_A && firstChar <= CharPool.UPPER_Z) { + char[] arr = str.toCharArray(); + arr[0] += (CharPool.LOWER_A - CharPool.UPPER_A); + return new String(arr); + } + return str; + } + + /** + * 首字母变大写 + * + * @param str 字符串 + * @return {String} + */ + public static String firstCharToUpper(String str) { + char firstChar = str.charAt(0); + if (firstChar >= CharPool.LOWER_A && firstChar <= CharPool.LOWER_Z) { + char[] arr = str.toCharArray(); + arr[0] -= (CharPool.LOWER_A - CharPool.UPPER_A); + return new String(arr); + } + return str; + } + + /** + * 切割指定位置之前部分的字符串 + * + * @param string 字符串 + * @param toIndex 切割到的位置(不包括) + * @return 切割后的剩余的前半部分字符串 + */ + public static String subPre(CharSequence string, int toIndex) { + return sub(string, 0, toIndex); + } + + /** + * 切割指定位置之后部分的字符串 + * + * @param string 字符串 + * @param fromIndex 切割开始的位置(包括) + * @return 切割后后剩余的后半部分字符串 + */ + public static String subSuf(CharSequence string, int fromIndex) { + if (isEmpty(string)) { + return null; + } + return sub(string, fromIndex, string.length()); + } + + /** + * 指定范围内查找指定字符 + * + * @param str 字符串 + * @param searchChar 被查找的字符 + * @return 位置 + */ + public static int indexOf(final CharSequence str, char searchChar) { + return indexOf(str, searchChar, 0); + } + + /** + * 指定范围内查找指定字符 + * + * @param str 字符串 + * @param searchChar 被查找的字符 + * @param start 起始位置,如果小于0,从0开始查找 + * @return 位置 + */ + public static int indexOf(final CharSequence str, char searchChar, int start) { + if (str instanceof String) { + return ((String) str).indexOf(searchChar, start); + } else { + return indexOf(str, searchChar, start, -1); + } + } + + /** + * 指定范围内查找指定字符 + * + * @param str 字符串 + * @param searchChar 被查找的字符 + * @param start 起始位置,如果小于0,从0开始查找 + * @param end 终止位置,如果超过str.length()则默认查找到字符串末尾 + * @return 位置 + */ + public static int indexOf(final CharSequence str, char searchChar, int start, int end) { + final int len = str.length(); + if (start < 0 || start > len) { + start = 0; + } + if (end > len || end < 0) { + end = len; + } + for (int i = start; i < end; i++) { + if (str.charAt(i) == searchChar) { + return i; + } + } + return -1; + } + + /** + * 指定范围内查找字符串,忽略大小写
    + * + *
    +     * StringUtil.indexOfIgnoreCase(null, *, *)          = -1
    +     * StringUtil.indexOfIgnoreCase(*, null, *)          = -1
    +     * StringUtil.indexOfIgnoreCase("", "", 0)           = 0
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
    +     * StringUtil.indexOfIgnoreCase("abc", "", 9)        = -1
    +     * 
    + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @return 位置 + * @since 3.2.1 + */ + public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) { + return indexOfIgnoreCase(str, searchStr, 0); + } + + /** + * 指定范围内查找字符串 + * + *
    +     * StringUtil.indexOfIgnoreCase(null, *, *)          = -1
    +     * StringUtil.indexOfIgnoreCase(*, null, *)          = -1
    +     * StringUtil.indexOfIgnoreCase("", "", 0)           = 0
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "A", 0)  = 0
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 0)  = 2
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "AB", 0) = 1
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 3)  = 5
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", 9)  = -1
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "B", -1) = 2
    +     * StringUtil.indexOfIgnoreCase("aabaabaa", "", 2)   = 2
    +     * StringUtil.indexOfIgnoreCase("abc", "", 9)        = -1
    +     * 
    + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @param fromIndex 起始位置 + * @return 位置 + * @since 3.2.1 + */ + public static int indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int fromIndex) { + return indexOf(str, searchStr, fromIndex, true); + } + + /** + * 指定范围内反向查找字符串 + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @param fromIndex 起始位置 + * @param ignoreCase 是否忽略大小写 + * @return 位置 + * @since 3.2.1 + */ + public static int indexOf(final CharSequence str, CharSequence searchStr, int fromIndex, boolean ignoreCase) { + if (str == null || searchStr == null) { + return INDEX_NOT_FOUND; + } + if (fromIndex < 0) { + fromIndex = 0; + } + + final int endLimit = str.length() - searchStr.length() + 1; + if (fromIndex > endLimit) { + return INDEX_NOT_FOUND; + } + if (searchStr.length() == 0) { + return fromIndex; + } + + if (false == ignoreCase) { + // 不忽略大小写调用JDK方法 + return str.toString().indexOf(searchStr.toString(), fromIndex); + } + + for (int i = fromIndex; i < endLimit; i++) { + if (isSubEquals(str, i, searchStr, 0, searchStr.length(), true)) { + return i; + } + } + return INDEX_NOT_FOUND; + } + + /** + * 指定范围内查找字符串,忽略大小写
    + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @return 位置 + * @since 3.2.1 + */ + public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr) { + return lastIndexOfIgnoreCase(str, searchStr, str.length()); + } + + /** + * 指定范围内查找字符串,忽略大小写
    + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @param fromIndex 起始位置,从后往前计数 + * @return 位置 + * @since 3.2.1 + */ + public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int fromIndex) { + return lastIndexOf(str, searchStr, fromIndex, true); + } + + /** + * 指定范围内查找字符串
    + * + * @param str 字符串 + * @param searchStr 需要查找位置的字符串 + * @param fromIndex 起始位置,从后往前计数 + * @param ignoreCase 是否忽略大小写 + * @return 位置 + * @since 3.2.1 + */ + public static int lastIndexOf(final CharSequence str, final CharSequence searchStr, int fromIndex, boolean ignoreCase) { + if (str == null || searchStr == null) { + return INDEX_NOT_FOUND; + } + if (fromIndex < 0) { + fromIndex = 0; + } + fromIndex = Math.min(fromIndex, str.length()); + + if (searchStr.length() == 0) { + return fromIndex; + } + + if (false == ignoreCase) { + // 不忽略大小写调用JDK方法 + return str.toString().lastIndexOf(searchStr.toString(), fromIndex); + } + + for (int i = fromIndex; i > 0; i--) { + if (isSubEquals(str, i, searchStr, 0, searchStr.length(), true)) { + return i; + } + } + return INDEX_NOT_FOUND; + } + + /** + * 返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
    + * 此方法来自:Apache-Commons-Lang + *

    + * 栗子(*代表任意字符): + * + *

    +     * StringUtil.ordinalIndexOf(null, *, *)          = -1
    +     * StringUtil.ordinalIndexOf(*, null, *)          = -1
    +     * StringUtil.ordinalIndexOf("", "", *)           = 0
    +     * StringUtil.ordinalIndexOf("aabaabaa", "a", 1)  = 0
    +     * StringUtil.ordinalIndexOf("aabaabaa", "a", 2)  = 1
    +     * StringUtil.ordinalIndexOf("aabaabaa", "b", 1)  = 2
    +     * StringUtil.ordinalIndexOf("aabaabaa", "b", 2)  = 5
    +     * StringUtil.ordinalIndexOf("aabaabaa", "ab", 1) = 1
    +     * StringUtil.ordinalIndexOf("aabaabaa", "ab", 2) = 4
    +     * StringUtil.ordinalIndexOf("aabaabaa", "", 1)   = 0
    +     * StringUtil.ordinalIndexOf("aabaabaa", "", 2)   = 0
    +     * 
    + * + * @param str 被检查的字符串,可以为null + * @param searchStr 被查找的字符串,可以为null + * @param ordinal 第几次出现的位置 + * @return 查找到的位置 + * @since 3.2.3 + */ + public static int ordinalIndexOf(String str, String searchStr, int ordinal) { + if (str == null || searchStr == null || ordinal <= 0) { + return INDEX_NOT_FOUND; + } + if (searchStr.length() == 0) { + return 0; + } + int found = 0; + int index = INDEX_NOT_FOUND; + do { + index = str.indexOf(searchStr, index + 1); + if (index < 0) { + return index; + } + found++; + } while (found < ordinal); + return index; + } + + /** + * 截取两个字符串的不同部分(长度一致),判断截取的子串是否相同
    + * 任意一个字符串为null返回false + * + * @param str1 第一个字符串 + * @param start1 第一个字符串开始的位置 + * @param str2 第二个字符串 + * @param start2 第二个字符串开始的位置 + * @param length 截取长度 + * @param ignoreCase 是否忽略大小写 + * @return 子串是否相同 + * @since 3.2.1 + */ + public static boolean isSubEquals(CharSequence str1, int start1, CharSequence str2, int start2, int length, boolean ignoreCase) { + if (null == str1 || null == str2) { + return false; + } + + return str1.toString().regionMatches(ignoreCase, start1, str2.toString(), start2, length); + } + + /** + * 比较两个字符串(大小写敏感)。 + * + *
    +     * equalsIgnoreCase(null, null)   = true
    +     * equalsIgnoreCase(null, "abc")  = false
    +     * equalsIgnoreCase("abc", null)  = false
    +     * equalsIgnoreCase("abc", "abc") = true
    +     * equalsIgnoreCase("abc", "ABC") = true
    +     * 
    + * + * @param str1 要比较的字符串1 + * @param str2 要比较的字符串2 + * @return 如果两个字符串相同,或者都是null,则返回true + */ + public static boolean equals(CharSequence str1, CharSequence str2) { + return equals(str1, str2, false); + } + + /** + * 比较两个字符串(大小写不敏感)。 + * + *
    +     * equalsIgnoreCase(null, null)   = true
    +     * equalsIgnoreCase(null, "abc")  = false
    +     * equalsIgnoreCase("abc", null)  = false
    +     * equalsIgnoreCase("abc", "abc") = true
    +     * equalsIgnoreCase("abc", "ABC") = true
    +     * 
    + * + * @param str1 要比较的字符串1 + * @param str2 要比较的字符串2 + * @return 如果两个字符串相同,或者都是null,则返回true + */ + public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2) { + return equals(str1, str2, true); + } + + /** + * 比较两个字符串是否相等。 + * + * @param str1 要比较的字符串1 + * @param str2 要比较的字符串2 + * @param ignoreCase 是否忽略大小写 + * @return 如果两个字符串相同,或者都是null,则返回true + * @since 3.2.0 + */ + public static boolean equals(CharSequence str1, CharSequence str2, boolean ignoreCase) { + if (null == str1) { + // 只有两个都为null才判断相等 + return str2 == null; + } + if (null == str2) { + // 字符串2空,字符串1非空,直接false + return false; + } + + if (ignoreCase) { + return str1.toString().equalsIgnoreCase(str2.toString()); + } else { + return str1.equals(str2); + } + } + + /** + * 创建StringBuilder对象 + * + * @return {String}Builder对象 + */ + public static StringBuilder builder() { + return new StringBuilder(); + } + + /** + * 创建StringBuilder对象 + * + * @param capacity 初始大小 + * @return {String}Builder对象 + */ + public static StringBuilder builder(int capacity) { + return new StringBuilder(capacity); + } + + /** + * 创建StringBuilder对象 + * + * @param strs 初始字符串列表 + * @return {String}Builder对象 + */ + public static StringBuilder builder(CharSequence... strs) { + final StringBuilder sb = new StringBuilder(); + for (CharSequence str : strs) { + sb.append(str); + } + return sb; + } + + /** + * 创建StringBuilder对象 + * + * @param sb 初始StringBuilder + * @param strs 初始字符串列表 + * @return {String}Builder对象 + */ + public static StringBuilder appendBuilder(StringBuilder sb, CharSequence... strs) { + for (CharSequence str : strs) { + sb.append(str); + } + return sb; + } + + /** + * 获得StringReader + * + * @param str 字符串 + * @return {String}Reader + */ + public static StringReader getReader(CharSequence str) { + if (null == str) { + return null; + } + return new StringReader(str.toString()); + } + + /** + * 获得StringWriter + * + * @return {String}Writer + */ + public static StringWriter getWriter() { + return new StringWriter(); + } + + + /** + * 统计指定内容中包含指定字符的数量 + * + * @param content 内容 + * @param charForSearch 被统计的字符 + * @return 包含数量 + */ + public static int count(CharSequence content, char charForSearch) { + int count = 0; + if (isEmpty(content)) { + return 0; + } + int contentLength = content.length(); + for (int i = 0; i < contentLength; i++) { + if (charForSearch == content.charAt(i)) { + count++; + } + } + return count; + } + + /** + * 下划线转驼峰 + * + * @param para 字符串 + * @return {String} + */ + public static String underlineToHump(String para) { + StringBuilder result = new StringBuilder(); + String[] a = para.split("_"); + for (String s : a) { + if (result.length() == 0) { + result.append(s.toLowerCase()); + } else { + result.append(s.substring(0, 1).toUpperCase()); + result.append(s.substring(1).toLowerCase()); + } + } + return result.toString(); + } + + /** + * 驼峰转下划线 + * + * @param para 字符串 + * @return {String} + */ + public static String humpToUnderline(String para) { + para = firstCharToLower(para); + StringBuilder sb = new StringBuilder(para); + int temp = 0; + for (int i = 0; i < para.length(); i++) { + if (Character.isUpperCase(para.charAt(i))) { + sb.insert(i + temp, "_"); + temp += 1; + } + } + return sb.toString().toLowerCase(); + } + + /** + * 横线转驼峰 + * + * @param para 字符串 + * @return {String} + */ + public static String lineToHump(String para) { + StringBuilder result = new StringBuilder(); + String[] a = para.split("-"); + for (String s : a) { + if (result.length() == 0) { + result.append(s.toLowerCase()); + } else { + result.append(s.substring(0, 1).toUpperCase()); + result.append(s.substring(1).toLowerCase()); + } + } + return result.toString(); + } + + /** + * 驼峰转横线 + * + * @param para 字符串 + * @return {String} + */ + public static String humpToLine(String para) { + para = firstCharToLower(para); + StringBuilder sb = new StringBuilder(para); + int temp = 0; + for (int i = 0; i < para.length(); i++) { + if (Character.isUpperCase(para.charAt(i))) { + sb.insert(i + temp, "-"); + temp += 1; + } + } + return sb.toString().toLowerCase(); + } +} \ No newline at end of file diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/spring/SpringUtils.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/spring/SpringUtils.java new file mode 100644 index 0000000..4a07545 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/tool/spring/SpringUtils.java @@ -0,0 +1,176 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.tool.spring; + + +import com.jeelowcode.framework.utils.utils.FuncBase; +import org.springframework.aop.framework.AopContext; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * spring工具类 方便在非spring管理环境中获取bean + * + * @author ruoyi + */ +@Component +public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware +{ + /** Spring应用上下文环境 */ + private static ConfigurableListableBeanFactory beanFactory; + + private static ApplicationContext applicationContext; + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException + { + SpringUtils.beanFactory = beanFactory; + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException + { + SpringUtils.applicationContext = applicationContext; + } + + /** + * 获取对象 + * + * @param name + * @return Object 一个以所给名字注册的bean的实例 + * @throws org.springframework.beans.BeansException + * + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) throws BeansException + { + return (T) beanFactory.getBean(name); + } + + /** + * 获取类型为requiredType的对象 + * + * @param clz + * @return + * @throws org.springframework.beans.BeansException + * + */ + public static T getBean(Class clz) throws BeansException + { + T result = (T) beanFactory.getBean(clz); + return result; + } + + /** + * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true + * + * @param name + * @return boolean + */ + public static boolean containsBean(String name) + { + return beanFactory.containsBean(name); + } + + /** + * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) + * + * @param name + * @return boolean + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.isSingleton(name); + } + + /** + * @param name + * @return Class 注册对象的类型 + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static Class getType(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.getType(name); + } + + /** + * 如果给定的bean名字在bean定义中有别名,则返回这些别名 + * + * @param name + * @return + * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException + * + */ + public static String[] getAliases(String name) throws NoSuchBeanDefinitionException + { + return beanFactory.getAliases(name); + } + + /** + * 获取aop代理对象 + * + * @param invoker + * @return + */ + @SuppressWarnings("unchecked") + public static T getAopProxy(T invoker) + { + return (T) AopContext.currentProxy(); + } + + /** + * 获取当前的环境配置,无配置返回null + * + * @return 当前的环境配置 + */ + public static String[] getActiveProfiles() + { + return applicationContext.getEnvironment().getActiveProfiles(); + } + + /** + * 获取当前的环境配置,当有多个环境配置时,只获取第一个 + * + * @return 当前的环境配置 + */ + public static String getActiveProfile() + { + final String[] activeProfiles = getActiveProfiles(); + return FuncBase.isNotEmpty(activeProfiles) ? activeProfiles[0] : null; + } + + /** + * 获取配置文件中的值 + * + * @param key 配置文件的key + * @return 当前的配置文件的值 + * + */ + public static String getRequiredProperty(String key) + { + return applicationContext.getEnvironment().getRequiredProperty(key); + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncBase.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncBase.java new file mode 100644 index 0000000..0cd169d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncBase.java @@ -0,0 +1,1020 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.utils; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.jeelowcode.framework.utils.tool.CollectionUtil; +import com.jeelowcode.framework.utils.tool.NumberUtil; +import com.jeelowcode.framework.utils.tool.StringPool; +import com.jeelowcode.framework.utils.tool.StringUtil; +import org.springframework.lang.Nullable; +import org.springframework.util.AntPathMatcher; +import org.springframework.util.ObjectUtils; +import org.springframework.util.PatternMatchUtils; + +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 工具包集合,工具类快捷方式 + */ +public class FuncBase { + public static String PARAM_NAME_VALUE_PAIRS = "ew.paramNameValuePairs"; + public static String EW = "ew"; + + /** + * 判断是否为空字符串 + *
    +     * $.isBlank(null)		= true
    +     * $.isBlank("")		= true
    +     * $.isBlank(" ")		= true
    +     * $.isBlank("12345")	= false
    +     * $.isBlank(" 12345 ")	= false
    +     * 
    + * + * @param cs the {@code CharSequence} to check (may be {@code null}) + * @return {@code true} if the {@code CharSequence} is not {@code null}, + * its length is greater than 0, and it does not contain whitespace only + * @see Character#isWhitespace + */ + public static boolean isBlank(@Nullable final CharSequence cs) { + return StringUtil.isBlank(cs); + } + + /** + * 判断不为空字符串 + *
    +     * $.isNotBlank(null)	= false
    +     * $.isNotBlank("")		= false
    +     * $.isNotBlank(" ")	= false
    +     * $.isNotBlank("bob")	= true
    +     * $.isNotBlank("  bob  ") = true
    +     * 
    + * + * @param cs the CharSequence to check, may be null + * @return {@code true} if the CharSequence is + * not empty and not null and not whitespace + * @see Character#isWhitespace + */ + public static boolean isNotBlank(@Nullable final CharSequence cs) { + return StringUtil.isNotBlank(cs); + } + + + /** + * 判断对象是数组 + * + * @param obj the object to check + * @return 是否数组 + */ + public static boolean isArray(@Nullable Object obj) { + return ObjectUtils.isArray(obj); + } + + /** + * 判断空对象 object、map、list、set、字符串、数组 + * + * @param obj the object to check + * @return 数组是否为空 + */ + public static boolean isEmpty(@Nullable Object obj) { + return ObjectUtils.isEmpty(obj); + } + + /** + * 对象不为空 object、map、list、set、字符串、数组 + * + * @param obj the object to check + * @return 是否不为空 + */ + public static boolean isNotEmpty(@Nullable Object obj) { + return !ObjectUtils.isEmpty(obj); + } + + /** + * 判断数组为空 + * + * @param array the array to check + * @return 数组是否为空 + */ + public static boolean isEmpty(@Nullable Object[] array) { + return ObjectUtils.isEmpty(array); + } + + /** + * 判断数组不为空 + * + * @param array 数组 + * @return 数组是否不为空 + */ + public static boolean isNotEmpty(@Nullable Object[] array) { + return ObjectUtil.isNotEmpty(array); + } + + + /** + * 将字符串中特定模式的字符转换成map中对应的值 + *

    + * use: format("my name is ${name}, and i like ${like}!", {"name":"L.cm", "like": "Java"}) + * + * @param message 需要转换的字符串 + * @param params 转换所需的键值对集合 + * @return 转换后的字符串 + */ + public static String format(@Nullable String message, @Nullable Map params) { + return StringUtil.format(message, params); + } + + /** + * 同 log 格式的 format 规则 + *

    + * use: format("my name is {}, and i like {}!", "L.cm", "Java") + * + * @param message 需要转换的字符串 + * @param arguments 需要替换的变量 + * @return 转换后的字符串 + */ + public static String format(@Nullable String message, @Nullable Object... arguments) { + return StringUtil.format(message, arguments); + } + + /** + * 格式化执行时间,单位为 ms 和 s,保留三位小数 + * + * @param nanos 纳秒 + * @return 格式化后的时间 + */ + public static String format(long nanos) { + return StringUtil.format(nanos); + } + + /** + * 比较两个对象是否相等。
    + * 相同的条件有两个,满足其一即可:
    + * + * @param obj1 对象1 + * @param obj2 对象2 + * @return 是否相等 + */ + public static boolean equals(Object obj1, Object obj2) { + return Objects.equals(obj1, obj2); + } + + public static boolean notEquals(Object obj1, Object obj2) { + return !Objects.equals(obj1, obj2); + } + + /** + * 安全的 equals + * + * @param o1 first Object to compare + * @param o2 second Object to compare + * @return whether the given objects are equal + * @see Object#equals(Object) + * @see Arrays#equals + */ + public static boolean equalsSafe(@Nullable Object o1, @Nullable Object o2) { + return ObjectUtils.nullSafeEquals(o1, o2); + } + + /** + * 判断数组中是否包含元素 + * + * @param array the Array to check + * @param element the element to look for + * @param The generic tag + * @return {@code true} if found, {@code false} else + */ + public static boolean contains(@Nullable T[] array, final T element) { + return CollectionUtil.contains(array, element); + } + + /** + * 判断迭代器中是否包含元素 + * + * @param iterator the Iterator to check + * @param element the element to look for + * @return {@code true} if found, {@code false} otherwise + */ + public static boolean contains(@Nullable Iterator iterator, Object element) { + return CollectionUtil.contains(iterator, element); + } + + /** + * 判断枚举是否包含该元素 + * + * @param enumeration the Enumeration to check + * @param element the element to look for + * @return {@code true} if found, {@code false} otherwise + */ + public static boolean contains(@Nullable Enumeration enumeration, Object element) { + return CollectionUtil.contains(enumeration, element); + } + + + /** + * 强转string,并去掉多余空格 + * + * @param str 字符串 + * @return {String} + */ + public static String toStr(Object str) { + return toStr(str, ""); + } + + /** + * 强转string,并去掉多余空格 + * + * @param str 字符串 + * @param defaultValue 默认值 + * @return {String} + */ + public static String toStr(Object str, String defaultValue) { + if (null == str || str.equals(StringPool.NULL)) { + return defaultValue; + } + return String.valueOf(str); + } + + /** + * 强转string(包含空字符串),并去掉多余空格 + * + * @param str 字符串 + * @param defaultValue 默认值 + * @return {String} + */ + public static String toStrWithEmpty(Object str, String defaultValue) { + if (null == str || str.equals(StringPool.NULL) || str.equals(StringPool.EMPTY)) { + return defaultValue; + } + return String.valueOf(str); + } + + + /** + * 字符串转 int,为空则返回0 + * + *

    +     *   $.toInt(null) = 0
    +     *   $.toInt("")   = 0
    +     *   $.toInt("1")  = 1
    +     * 
    + * + * @param str the string to convert, may be null + * @return the int represented by the string, or zero if + * conversion fails + */ + public static int toInt(final Object str) { + return NumberUtil.toInt(String.valueOf(str)); + } + + /** + * 字符串转 int,为空则返回默认值 + * + *
    +     *   $.toInt(null, 1) = 1
    +     *   $.toInt("", 1)   = 1
    +     *   $.toInt("1", 0)  = 1
    +     * 
    + * + * @param str the string to convert, may be null + * @param defaultValue the default value + * @return the int represented by the string, or the default if conversion fails + */ + public static int toInt(@Nullable final Object str, final int defaultValue) { + return NumberUtil.toInt(String.valueOf(str), defaultValue); + } + + /** + * 字符串转 long,为空则返回0 + * + *
    +     *   $.toLong(null) = 0L
    +     *   $.toLong("")   = 0L
    +     *   $.toLong("1")  = 1L
    +     * 
    + * + * @param str the string to convert, may be null + * @return the long represented by the string, or 0 if + * conversion fails + */ + public static long toLong(final Object str) { + return NumberUtil.toLong(String.valueOf(str)); + } + + /** + * 字符串转 long,为空则返回默认值 + * + *
    +     *   $.toLong(null, 1L) = 1L
    +     *   $.toLong("", 1L)   = 1L
    +     *   $.toLong("1", 0L)  = 1L
    +     * 
    + * + * @param str the string to convert, may be null + * @param defaultValue the default value + * @return the long represented by the string, or the default if conversion fails + */ + public static long toLong(@Nullable final Object str, final long defaultValue) { + return NumberUtil.toLong(String.valueOf(str), defaultValue); + } + + /** + *

    Convert a String to an Double, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toDouble(null, 1) = 1.0
    +     *   $.toDouble("", 1)   = 1.0
    +     *   $.toDouble("1", 0)  = 1.0
    +     * 
    + * + * @param value the string to convert, may be null + * @return the int represented by the string, or the default if conversion fails + */ + public static Double toDouble(Object value) { + return toDouble(String.valueOf(value), -1.00); + } + + /** + *

    Convert a String to an Double, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toDouble(null, 1) = 1.0
    +     *   $.toDouble("", 1)   = 1.0
    +     *   $.toDouble("1", 0)  = 1.0
    +     * 
    + * + * @param value the string to convert, may be null + * @param defaultValue the default value + * @return the int represented by the string, or the default if conversion fails + */ + public static Double toDouble(Object value, Double defaultValue) { + return NumberUtil.toDouble(String.valueOf(value), defaultValue); + } + + /** + *

    Convert a String to an Float, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toFloat(null, 1) = 1.00f
    +     *   $.toFloat("", 1)   = 1.00f
    +     *   $.toFloat("1", 0)  = 1.00f
    +     * 
    + * + * @param value the string to convert, may be null + * @return the int represented by the string, or the default if conversion fails + */ + public static Float toFloat(Object value) { + return toFloat(String.valueOf(value), -1.0f); + } + + /** + *

    Convert a String to an Float, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toFloat(null, 1) = 1.00f
    +     *   $.toFloat("", 1)   = 1.00f
    +     *   $.toFloat("1", 0)  = 1.00f
    +     * 
    + * + * @param value the string to convert, may be null + * @param defaultValue the default value + * @return the int represented by the string, or the default if conversion fails + */ + public static Float toFloat(Object value, Float defaultValue) { + return NumberUtil.toFloat(String.valueOf(value), defaultValue); + } + + /** + *

    Convert a String to an Boolean, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toBoolean("true", true)  = true
    +     *   $.toBoolean("false")   	= false
    +     *   $.toBoolean("", false)  	= false
    +     * 
    + * + * @param value the string to convert, may be null + * @return the int represented by the string, or the default if conversion fails + */ + public static Boolean toBoolean(Object value) { + return toBoolean(value, null); + } + + /** + *

    Convert a String to an Boolean, returning a + * default value if the conversion fails.

    + * + *

    If the string is null, the default value is returned.

    + * + *
    +     *   $.toBoolean("true", true)  = true
    +     *   $.toBoolean("false")   	= false
    +     *   $.toBoolean("", false)  	= false
    +     * 
    + * + * @param value the string to convert, may be null + * @param defaultValue the default value + * @return the int represented by the string, or the default if conversion fails + */ + public static Boolean toBoolean(Object value, Boolean defaultValue) { + if (value != null) { + String val = String.valueOf(value); + val = val.toLowerCase().trim(); + return Boolean.parseBoolean(val); + } + return defaultValue; + } + + /** + * 转换为Integer数组
    + * + * @param str 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String str) { + return toIntArray(",", str); + } + + /** + * 转换为Integer数组
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Integer[] toIntArray(String split, String str) { + if (StringUtil.isEmpty(str)) { + return new Integer[]{}; + } + String[] arr = str.split(split); + final Integer[] ints = new Integer[arr.length]; + for (int i = 0; i < arr.length; i++) { + final Integer v = toInt(arr[i], 0); + ints[i] = v; + } + return ints; + } + + /** + * 转换为Integer集合
    + * + * @param str 结果被转换的值 + * @return 结果 + */ + public static List toIntList(String str) { + return Arrays.asList(toIntArray(str)); + } + + /** + * 转换为Integer集合
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static List toIntList(String split, String str) { + return Arrays.asList(toIntArray(split, str)); + } + + /** + * 获取第一位Integer数值 + * + * @param str 被转换的值 + * @return 结果 + */ + public static Integer firstInt(String str) { + return firstInt(",", str); + } + + /** + * 获取第一位Integer数值 + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Integer firstInt(String split, String str) { + List ints = toIntList(split, str); + if (isEmpty(ints)) { + return null; + } else { + return ints.get(0); + } + } + + /** + * 转换为Long数组
    + * + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String str) { + return toLongArray(",", str); + } + + /** + * 转换为Long数组
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Long[] toLongArray(String split, String str) { + if (StringUtil.isEmpty(str)) { + return new Long[]{}; + } + String[] arr = str.split(split); + final Long[] longs = new Long[arr.length]; + for (int i = 0; i < arr.length; i++) { + final Long v = toLong(arr[i], 0); + longs[i] = v; + } + return longs; + } + + /** + * 转换为Long集合
    + * + * @param str 结果被转换的值 + * @return 结果 + */ + public static List toLongList(String str) { + return Arrays.asList(toLongArray(str)); + } + + /** + * 转换为Long集合
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static List toLongList(String split, String str) { + return Arrays.asList(toLongArray(split, str)); + } + + /** + * 获取第一位Long数值 + * + * @param str 被转换的值 + * @return 结果 + */ + public static Long firstLong(String str) { + return firstLong(",", str); + } + + /** + * 获取第一位Long数值 + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static Long firstLong(String split, String str) { + List longs = toLongList(split, str); + if (isEmpty(longs)) { + return null; + } else { + return longs.get(0); + } + } + + /** + * 转换为String数组
    + * + * @param str 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String str) { + return toStrArray(",", str); + } + + /** + * 转换为String数组
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static String[] toStrArray(String split, String str) { + if (isBlank(str)) { + return new String[]{}; + } + return str.split(split); + } + + /** + * 转换为String集合
    + * + * @param str 结果被转换的值 + * @return 结果 + */ + public static List toStrList(String str) { + return Arrays.asList(toStrArray(str)); + } + + public static List toStrNewList(String str) { + List resultList = new ArrayList<>(); + String[] strings = toStrArray(str); + for (String s : strings) { + resultList.add(s); + } + + return resultList; + } + + public static void addStr2List(List list,String str) { + if(list==null){ + return; + } + if (list.contains(str)) { + return; + } + list.add(str); + } + + /** + * 转换为String集合
    + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static List toStrList(String split, String str) { + return Arrays.asList(toStrArray(split, str)); + } + + /** + * 获取第一位String数值 + * + * @param str 被转换的值 + * @return 结果 + */ + public static String firstStr(String str) { + return firstStr(",", str); + } + + /** + * 获取第一位String数值 + * + * @param split 分隔符 + * @param str 被转换的值 + * @return 结果 + */ + public static String firstStr(String split, String str) { + List strs = toStrList(split, str); + if (isEmpty(strs)) { + return null; + } else { + return strs.get(0); + } + } + + /** + * 将 long 转短字符串 为 62 进制 + * + * @param num 数字 + * @return 短字符串 + */ + public static String to62String(long num) { + return NumberUtil.to62String(num); + } + + /** + * 将集合拼接成字符串,默认使用`,`拼接 + * + * @param coll the {@code Collection} to convert + * @return the delimited {@code String} + */ + public static String join(Collection coll) { + return StringUtil.join(coll); + } + + /** + * 将集合拼接成字符串,默认指定分隔符 + * + * @param coll the {@code Collection} to convert + * @param delim the delimiter to use (typically a ",") + * @return the delimited {@code String} + */ + public static String join(Collection coll, String delim) { + return StringUtil.join(coll, delim); + } + + /** + * 将数组拼接成字符串,默认使用`,`拼接 + * + * @param arr the array to display + * @return the delimited {@code String} + */ + public static String join(Object[] arr) { + return StringUtil.join(arr); + } + + /** + * 将数组拼接成字符串,默认指定分隔符 + * + * @param arr the array to display + * @param delim the delimiter to use (typically a ",") + * @return the delimited {@code String} + */ + public static String join(Object[] arr, String delim) { + return StringUtil.join(arr, delim); + } + + /** + * 切分字符串,不去除切分后每个元素两边的空白符,不去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @return 切分后的集合 + */ + public static List split(CharSequence str, char separator) { + return StringUtil.split(str, separator, -1); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @return 切分后的集合 + */ + public static List splitTrim(CharSequence str, char separator) { + return StringUtil.splitTrim(str, separator); + } + + /** + * 切分字符串,去除切分后每个元素两边的空白符,去除空白项 + * + * @param str 被切分的字符串 + * @param separator 分隔符字符 + * @return 切分后的集合 + */ + public static List splitTrim(CharSequence str, CharSequence separator) { + return StringUtil.splitTrim(str, separator); + } + + /** + * 分割 字符串 + * + * @param str 字符串 + * @param delimiter 分割符 + * @return 字符串数组 + */ + public static String[] split(@Nullable String str, @Nullable String delimiter) { + return StringUtil.delimitedListToStringArray(str, delimiter); + } + + /** + * 分割 字符串 删除常见 空白符 + * + * @param str 字符串 + * @param delimiter 分割符 + * @return 字符串数组 + */ + public static String[] splitTrim(@Nullable String str, @Nullable String delimiter) { + return StringUtil.delimitedListToStringArray(str, delimiter, " \t\n\n\f"); + } + + /** + * 字符串是否符合指定的 表达式 + * + *

    + * pattern styles: "xxx*", "*xxx", "*xxx*" and "xxx*yyy" + *

    + * + * @param pattern 表达式 + * @param str 字符串 + * @return 是否匹配 + */ + public static boolean simpleMatch(@Nullable String pattern, @Nullable String str) { + return PatternMatchUtils.simpleMatch(pattern, str); + } + + /** + * 字符串是否符合指定的 表达式 + * + *

    + * pattern styles: "xxx*", "*xxx", "*xxx*" and "xxx*yyy" + *

    + * + * @param patterns 表达式 数组 + * @param str 字符串 + * @return 是否匹配 + */ + public static boolean simpleMatch(@Nullable String[] patterns, String str) { + return PatternMatchUtils.simpleMatch(patterns, str); + } + + /** + * 生成uuid + * + * @return UUID + */ + public static String randomUUID() { + return StringUtil.randomUUID(); + } + + + /** + * 随机数生成 + * + * @param count 字符长度 + * @return 随机数 + */ + public static String random(int count) { + return StringUtil.random(count); + } + + + //--------------常用json------------ + public static String json2Str(Object obj) { + Object tmpResult = obj; + if (obj instanceof Boolean || + obj instanceof Byte || + obj instanceof Short || + obj instanceof Integer || + obj instanceof Long || + obj instanceof Float || + obj instanceof Double) { + tmpResult = toStr(obj); + } + return JSONUtil.toJsonStr(tmpResult); + } + + + + + public static T json2Bean(String jsonString, Class beanClass) { + if (FuncBase.isEmpty(jsonString)) { + return null; + } + return JSONUtil.toBean(jsonString, beanClass); + } + + public static List json2List(String jsonArray, Class elementType) { + return JSONUtil.toList(jsonArray, elementType); + } + + public static boolean jsonIsArray(String str) { + return JSONUtil.isTypeJSONArray(str); + } + + public static boolean jsonIsObject(String str) { + return JSONUtil.isTypeJSONObject(str); + } + + public static boolean jsonIsJson(String str) { + return JSONUtil.isTypeJSONObject(str) || JSONUtil.isTypeJSONArray(str); + } + //--------------常用json------------ + + //获取map数据-------S------ + public static String getMap2Str(Map map, String key) { + return getMap2StrDefault(map, key, null); + } + + public static BigDecimal getMap2BigD(Map map, String key) { + return getMap2BigDDefault(map, key, null); + } + + public static Integer getMap2Int(Map map, String key) { + return getMap2IntDefault(map, key, null); + } + + public static Long getMap2Long(Map map, String key) { + return getMap2LongDefault(map, key, null); + } + + public static Date getMap2Date(Map map, String key) { + try { + String valStr = getMap2StrDefault(map, key, null); + if (FuncBase.isEmpty(valStr)) { + return null; + } + valStr = valStr.substring(0, 10); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return sdf.parse(valStr); + } catch (Exception e) { + + } + return null; + } + + public static Date getMap2DateTime(Map map, String key) { + try { + String valStr = getMap2StrDefault(map, key, null); + if (FuncBase.isEmpty(valStr)) { + return null; + } + valStr = valStr.substring(0, 19); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sdf.parse(valStr); + } catch (Exception e) { + + } + return null; + } + + public static Long getMap2LongDefault(Map map, String key, Long defaultVal) { + String valStr = getMap2StrDefault(map, key, null); + if (FuncBase.isEmpty(valStr)) { + return defaultVal; + } + return Long.valueOf(valStr); + } + + public static Integer getMap2IntDefault(Map map, String key, Integer defaultVal) { + String valStr = getMap2StrDefault(map, key, null); + if (FuncBase.isEmpty(valStr)) { + return defaultVal; + } + return Integer.valueOf(valStr); + } + + public static BigDecimal getMap2BigDDefault(Map map, String key, BigDecimal defaultVal) { + String valStr = getMap2StrDefault(map, key, null); + if (FuncBase.isEmpty(valStr)) { + return defaultVal; + } + BigDecimal bigDecimal = new BigDecimal(valStr); + return bigDecimal; + } + + public static String getMap2StrDefault(Map map, String key, String defaultVal) { + // 参数校验: + if (FuncBase.isEmpty(key) || FuncBase.isEmpty(map)) { + return defaultVal; + } + // 根据高查条件的key获取value + Object o = map.get(key); + if (FuncBase.isEmpty(o)) { + return defaultVal; + } + String value = FuncBase.toStr(o); + return value; + } + //获取map数据-------E------ + + public static String concatSymbol(String val, String symbol, boolean upperFlag) { + if (FuncBase.isEmpty(val)) { + return val; + } + if (upperFlag) { + val = val.toUpperCase(); + } + if(FuncBase.isNotEmpty(symbol)){ + return String.format(symbol,val); + } + return val; + } + + public static String concatSymbol(String val, String symbol) { + return concatSymbol(val,symbol,false); + } + + + //字段加上别名 + public static List fieldCodeAlias(List fieldCodeList) { + return fieldCodeList.stream() + .map(fieldCode -> fieldCode.toUpperCase().contains(" AS ") ? fieldCode : fieldCode + " as \"" + fieldCode + "\"") + .collect(Collectors.toList()); + } + + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncWebBase.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncWebBase.java new file mode 100644 index 0000000..fa5d466 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/FuncWebBase.java @@ -0,0 +1,144 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.utils; + + +import cn.hutool.core.util.CharsetUtil; +import com.jeelowcode.framework.utils.tool.IpUtils; +import com.jeelowcode.framework.utils.tool.StringUtil; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; +import java.util.*; + +/** + * 网络工具包集合,工具类快捷方式 + * + */ +public class FuncWebBase { + + + public static HttpServletRequest getRequest() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + return requestAttributes == null ? null : ((ServletRequestAttributes)requestAttributes).getRequest(); + } + + //获取ip + public static String getIp(ContentCachingRequestWrapper request) { + try{ + String ipAddr = IpUtils.getIpAddr(request); + return ipAddr; + }catch (Exception e){ + + } + return ""; + } + + //获取请求地址 + public static String getPath(String uriStr) { + URI uri; + try { + uri = new URI(uriStr); + } catch (URISyntaxException var3) { + throw new RuntimeException(var3); + } + + return uri.getPath(); + } + + //获取参数 + public static String getRequestParams(ContentCachingRequestWrapper request) { + try { + String queryString = request.getQueryString(); + if (StringUtil.isNotBlank(queryString)) { + return (new String(queryString.getBytes(CharsetUtil.ISO_8859_1), CharsetUtil.UTF_8)).replaceAll("&", "&").replaceAll("%22", "\""); + } else { + String charEncoding = request.getCharacterEncoding(); + if (charEncoding == null) { + charEncoding = "UTF-8"; + } + + byte[] buffer = getRequestBody(request.getInputStream()).getBytes(); + String str = (new String(buffer, charEncoding)).trim(); + if (StringUtil.isBlank(str)) { + StringBuilder sb = new StringBuilder(); + Enumeration parameterNames = request.getParameterNames(); + + while(parameterNames.hasMoreElements()) { + String key = (String)parameterNames.nextElement(); + String value = request.getParameter(key); + StringUtil.appendBuilder(sb, new CharSequence[]{key, "=", value, "&"}); + } + + str = StringUtil.removeSuffix(sb.toString(), "&"); + } + + return str.replaceAll("&", "&"); + } + } catch (Exception var9) { + var9.printStackTrace(); + return ""; + } + } + + //获取body参数 转为字符串 + public static String getRequestBody(ServletInputStream servletInputStream) { + StringBuilder sb = new StringBuilder(); + BufferedReader reader = null; + + try { + reader = new BufferedReader(new InputStreamReader(servletInputStream, StandardCharsets.UTF_8)); + + String line; + while((line = reader.readLine()) != null) { + sb.append(line); + } + } catch (IOException var16) { + var16.printStackTrace(); + } finally { + if (servletInputStream != null) { + try { + servletInputStream.close(); + } catch (IOException var15) { + var15.printStackTrace(); + } + } + + if (reader != null) { + try { + reader.close(); + } catch (IOException var14) { + var14.printStackTrace(); + } + } + + } + + return sb.toString(); + } + + //------------------------------- + + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/JeeLowCodeUtils.java b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/JeeLowCodeUtils.java new file mode 100644 index 0000000..d2fc012 --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/java/com/jeelowcode/framework/utils/utils/JeeLowCodeUtils.java @@ -0,0 +1,179 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.framework.utils.utils; + + +import cn.hutool.core.date.DateUtil; + +import java.sql.Time; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class JeeLowCodeUtils { + + + /** + * 使用正则获取所有的key + * 获取sql中的#{key} 这个key组成的set + */ + public static Set getSqlRuleParams(String sql) { + if (FuncBase.isEmpty(sql)) { + return null; + } + Set varParams = new HashSet(); + String regex = "\\#\\{\\w+\\}"; + + Pattern p = Pattern.compile(regex); + Matcher m = p.matcher(sql); + while (m.find()) { + String group = m.group(); + varParams.add(group.substring(group.indexOf("{") + 1, group.indexOf("}"))); + } + return varParams; + } + + /** + * 获取map值 + * (map的value是单个的数据时使用) + * + * @param map 查询封装的一条数据 + * @param key 高查条件的key + * @return + */ + public static String getMap2Str(Map map, String key) { + // 参数校验: + if (FuncBase.isEmpty(key) || FuncBase.isEmpty(map)) { + return ""; + } + // 根据高查条件的key获取value + Object o = map.get(key); + if (FuncBase.isEmpty(o)) { + return ""; + } + // object -> String + String value = FuncBase.toStr(o); + // 返回 + return value; + } + + public static List getMap2List(Map map, String key) { + // 参数校验: + if (FuncBase.isEmpty(key) || FuncBase.isEmpty(map)) { + return null; + } + // 根据高查条件的key获取value + Object o = map.get(key); + return (List)o; + } + + /** + * 获取map值 + * + * @param map + * @param key + * @return + */ + public static Integer getMap2Integer(Map map, String key) { + String str = getMap2Str(map, key); + if (FuncBase.isEmpty(str)) { + return -1; + } + return FuncBase.toInt(str); + } + + + /** + * 获取map值 + * + * @param map + * @param key + * @return + */ + public static Long getMap2Long(Map map, String key) { + String str = getMap2Str(map, key); + if (FuncBase.isEmpty(str)) { + return -1L; + } + return FuncBase.toLong(str); + } + + /** + * 获取map值 + * (map的value是单个的数据时使用) + * + * @param map 查询封装的一条数据 + * @param key 高查条件的key + * @return + */ + public static Date getMap2DateTime(Map map, String key) { + // 参数校验: + if (FuncBase.isEmpty(key) || FuncBase.isEmpty(map)) { + return null; + } + // 根据高查条件的key获取value + Object o = map.get(key); + if (FuncBase.isEmpty(o)) { + return null; + } + if (o instanceof Date) { + if (o instanceof java.sql.Date || o instanceof Time) { + return new Date(((Date) o).getTime()); + } + return (Date) o; + } + // object -> String + String value = FuncBase.toStr(o); + return DateUtil.parseDateTime(value); + } + + /** + * 获取map值 + * + * @param map + * @param key + * @return + */ + public static Map getMap2Map(Map map, String key) { + if (FuncBase.isEmpty(key) || FuncBase.isEmpty(map)) { + return null; + } + return (Map)map.get(key); + } + + // 提取日期时间格式化逻辑到单独的方法 + public static String formatDate(Object value) { + if (value instanceof LocalDateTime) { + return ((LocalDateTime) value).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } else if (value instanceof LocalDate) { + return ((LocalDate) value).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + } else if (value instanceof LocalTime) { + return ((LocalTime) value).format(DateTimeFormatter.ofPattern("HH:mm:ss")); + } else if (value instanceof java.sql.Time) { + return ((java.sql.Time) value).toLocalTime().format(DateTimeFormatter.ofPattern("HH:mm:ss")); + } else if (value instanceof java.sql.Timestamp) { + return ((java.sql.Timestamp) value).toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } else if (value instanceof Date) { + return DateUtil.formatDate((Date)value); + } else { + return FuncBase.toStr(value); + } + } + + +} diff --git a/jeelowcode-framework/jeelowcode-utils/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/jeelowcode-framework/jeelowcode-utils/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..c2af57d --- /dev/null +++ b/jeelowcode-framework/jeelowcode-utils/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,6 @@ +com.jeelowcode.framework.utils.component.JeeLowCodeAutoConfiguration +com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisConfiguration +com.jeelowcode.framework.utils.component.redis.JeeLowCodeRedisUtils +com.jeelowcode.framework.utils.component.pool.SyncPoolConfiguration +com.jeelowcode.framework.utils.global.exeption.JeeLowCodeGlobalExceptionHandler +com.jeelowcode.framework.utils.global.body.GlobalJeeLowCodeResponseBodyHandler \ No newline at end of file diff --git a/jeelowcode-framework/pom.xml b/jeelowcode-framework/pom.xml new file mode 100644 index 0000000..a11bd83 --- /dev/null +++ b/jeelowcode-framework/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.jeelowcode + jeelowcode + ${revision} + + + com.jeelowcode + jeelowcode-framework + pom + ${project.artifactId} + 低代码框架工具包 + + + jeelowcode-global + jeelowcode-utils + jeelowcode-tenant + jeelowcode-excel + jeelowcode-exception + jeelowcode-plus + + + diff --git a/jeelowcode-module/jeelowcode-module-api/pom.xml b/jeelowcode-module/jeelowcode-module-api/pom.xml new file mode 100644 index 0000000..c55d570 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-api/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + com.jeelowcode + jeelowcode-module + ${revision} + + + com.jeelowcode + jeelowcode-module-api + jar + ${project.artifactId} + ${jeelowcode.version} + 个人业务模块API + + diff --git a/jeelowcode-module/jeelowcode-module-api/src/main/java/com/jeelowcode/module/api/JeeLowCodeApi.java b/jeelowcode-module/jeelowcode-module-api/src/main/java/com/jeelowcode/module/api/JeeLowCodeApi.java new file mode 100644 index 0000000..8d15109 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-api/src/main/java/com/jeelowcode/module/api/JeeLowCodeApi.java @@ -0,0 +1,28 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.api; + +import java.util.List; + +/** + * 低代码 API 接口 + */ +public interface JeeLowCodeApi { + + //获取表单设置的授权类型 + String getDbformAuthType(Long dbFormid); + + String getReportAuthType(String reportCode); + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/pom.xml b/jeelowcode-module/jeelowcode-module-biz/pom.xml new file mode 100644 index 0000000..af7263a --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + + com.jeelowcode + jeelowcode-module + ${revision} + + + com.jeelowcode + jeelowcode-module-biz + jar + ${project.artifactId} + ${jeelowcode.version} + 个人业务模块 + + + + com.jeelowcode + jeelowcode-module-api + + + + com.jeelowcode + jeelowcode-core + + + + diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/api/JeeLowCodeApiImpl.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/api/JeeLowCodeApiImpl.java new file mode 100644 index 0000000..fd9df3f --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/api/JeeLowCodeApiImpl.java @@ -0,0 +1,53 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.api; + +import com.jeelowcode.core.framework.service.IFormService; +import com.jeelowcode.core.framework.service.IReportService; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.utils.enums.AuthTypeEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 低代码 API 接口 + */ +@Service +public class JeeLowCodeApiImpl implements JeeLowCodeApi { + + @Autowired + private IFormService formService; + + @Autowired + private IReportService reportService; + + //获取表单设置的授权类型 + @Override + public String getDbformAuthType(Long dbFormid) { + AuthTypeEnum authType = formService.getAuthType(dbFormid); + return authType.getType(); + + } + + //获取表单设置的授权类型 + @Override + public String getReportAuthType(String reportCode) { + AuthTypeEnum authType = reportService.getAuthType(reportCode); + return authType.getType(); + + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/ADefinableButtonPlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/ADefinableButtonPlugin.java new file mode 100644 index 0000000..96836f9 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/ADefinableButtonPlugin.java @@ -0,0 +1,34 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.component.btncommand; + + +import com.jeelowcode.core.framework.config.btncommand.definable.DefinableButtonPlugin; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamAdd; +import com.jeelowcode.core.framework.utils.Func; + +/** + * A自定义方法 + */ +public class ADefinableButtonPlugin implements DefinableButtonPlugin { + + + @Override + public String execute(ButtonParamAdd param) { + System.out.println("param========"+ Func.json2Str(param)); + + System.out.println("执行A方法"); + return "成功"; + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/BDefinableButtonPlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/BDefinableButtonPlugin.java new file mode 100644 index 0000000..ec2d716 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/btncommand/BDefinableButtonPlugin.java @@ -0,0 +1,31 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.component.btncommand; + + +import com.jeelowcode.core.framework.config.btncommand.definable.DefinableButtonPlugin; +import com.jeelowcode.core.framework.config.btncommand.param.ButtonParamEdit; +import com.jeelowcode.core.framework.utils.Func; + +/** + * B自定义方法 + */ +public class BDefinableButtonPlugin implements DefinableButtonPlugin { + @Override + public Integer execute(ButtonParamEdit param) { + System.out.println("param=========="+ Func.json2Str(param)); + System.out.println("执行B方法"); + return 123; + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/AVirtualizationPlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/AVirtualizationPlugin.java new file mode 100644 index 0000000..73816fb --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/AVirtualizationPlugin.java @@ -0,0 +1,33 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.component.virtualization; + + + +import com.jeelowcode.core.framework.config.virtualization.VirtualizationFieldPlugin; +import com.jeelowcode.core.framework.utils.Func; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component("aVirtualizationPlugin") +public class AVirtualizationPlugin implements VirtualizationFieldPlugin { + + @Override + public String execute(Map dataMap) { + System.out.println(Func.json2Str(dataMap)); + return "执行A插件返回的结果"; + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/BVirtualizationPlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/BVirtualizationPlugin.java new file mode 100644 index 0000000..ed65374 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/component/virtualization/BVirtualizationPlugin.java @@ -0,0 +1,32 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.component.virtualization; + + +import com.jeelowcode.core.framework.config.virtualization.VirtualizationFieldPlugin; +import com.jeelowcode.core.framework.utils.Func; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component("bVirtualizationPlugin") +public class BVirtualizationPlugin implements VirtualizationFieldPlugin { + + @Override + public String execute(Map dataMap) { + System.out.println(Func.json2Str(dataMap)); + return "执行B插件返回的结果"; + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/DemoController.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/DemoController.java new file mode 100644 index 0000000..f287921 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/controller/DemoController.java @@ -0,0 +1,55 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.controller; + +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import com.jeelowcode.framework.tenant.annotation.JeeLowCodeTenantIgnore; +import com.jeelowcode.module.biz.service.IDemoService; +import com.jeelowcode.framework.utils.model.global.BaseWebResult; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +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; +import java.util.Map; + +/** + * @author JX + * @create 2024-02-26 14:59 + * @dedescription: + */ +@JeeLowCodeTenantIgnore +@Tag(name = "低代码框架 - demo接口") +@RestController +@AllArgsConstructor +@RequestMapping(JeeLowCodeBaseConstant.REQUEST_URL_START +"/demo") +public class DemoController { + + private final IDemoService demoService; + + + + @GetMapping({"/getData"}) + @ApiOperationSupport(order = 2) + @Operation(summary = "获取demo数据") + public BaseWebResult getData() { + List> dataMapList = demoService.getDemoData(); + return BaseWebResult.success(dataMapList); + } + +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin.java new file mode 100644 index 0000000..3b09d23 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 9:35 + * @dedescription: + */ +@Component("demoAfterAdvicePlugin") +public class DemoAfterAdvicePlugin implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + List> list = enhanceContext.getParam().getList(); + list.forEach( + map -> map.replace("name", map.get("name") + "01")); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin02.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin02.java new file mode 100644 index 0000000..8a7d7b5 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin02.java @@ -0,0 +1,37 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-20 14:32 + * @dedescription: + */ +@Component("demoAfterAdvicePlugin02") +public class DemoAfterAdvicePlugin02 implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + List> list = enhanceContext.getParam().getList(); + list.forEach( + map -> map.replace("name", map.get("name") + "02")); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin03.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin03.java new file mode 100644 index 0000000..a56a10b --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAfterAdvicePlugin03.java @@ -0,0 +1,36 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-21 9:34 + * @dedescription: + */ +@Component("demoAfterAdvicePlugin03") +public class DemoAfterAdvicePlugin03 implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + List> list = enhanceContext.getParam().getList(); + list.forEach( + map -> map.replace("name", map.get("name") + "_合集")); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAroundAdvicePlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAroundAdvicePlugin.java new file mode 100644 index 0000000..6268567 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoAroundAdvicePlugin.java @@ -0,0 +1,48 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin; +import org.springframework.stereotype.Component; + +/** + * @author JX + * @create 2024-08-13 11:42 + * @dedescription: 环绕增强测试 + */ + +@Component("demoAroundAdvicePlugin") +public class DemoAroundAdvicePlugin implements AroundAdvicePlugin { + + + @Override + public void beforeExecute(EnhanceContext enhanceContext) { +// +// System.out.println("----------------------------------------------------------beforeExecute----------------------------------------------------------"); +// EnhanceResult result = new EnhanceResult(); +// result.setExitFlag(false); +// enhanceContext.setResult(result); + } + + @Override + public void afterExecute(EnhanceContext enhanceContext) { +// System.out.println("----------------------------------------------------------afterExecute----------------------------------------------------------"); +// List> records = enhanceContext.getResult().getRecords(); +// records.forEach(record -> { +// record.replace("name", FuncBase.getMap2Str(record, "name")+"_after_enhance"); +// }); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoBeforeAdvicePlugin.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoBeforeAdvicePlugin.java new file mode 100644 index 0000000..5f4182c --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/DemoBeforeAdvicePlugin.java @@ -0,0 +1,49 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceParam; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.BeforeAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import com.jeelowcode.framework.exception.JeeLowCodeException; +import com.jeelowcode.framework.utils.utils.FuncBase; + + +import java.util.Map; + +/** + * @author JX + * @create 2024-08-15 11:31 + * @dedescription: 前置增强测试 + */ +public class DemoBeforeAdvicePlugin implements BeforeAdvicePlugin { + + + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceParam param = enhanceContext.getParam(); + Map params = param.getParams(); + String name = FuncBase.getMap2Str(params, "name"); + if (Func.equals(name, "jeelowcode")) { + throw new JeeLowCodeException("不允许使用jeelowcode"); + } + params.replace("name",FuncBase.getMap2Str(params,"name")+"before_enhance"); + + EnhanceResult result = new EnhanceResult(); + result.setExitFlag(false); + enhanceContext.setResult(result); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin01.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin01.java new file mode 100644 index 0000000..49e94e8 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin01.java @@ -0,0 +1,39 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:05 + * @dedescription: + */ +public class TestAfterAdvicePlugin01 implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceResult result = enhanceContext.getResult(); + List> records = result.getRecords(); + records.forEach(record -> { + record.replace("name","test01"); + }); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin02.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin02.java new file mode 100644 index 0000000..5f82ea4 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestAfterAdvicePlugin02.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:06 + * @dedescription: + */ +public class TestAfterAdvicePlugin02 implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceResult result = enhanceContext.getResult(); + List> records = result.getRecords(); + records.forEach( + record -> { + if (FuncBase.getMap2Int(record,"id") >5){ + record.replace("name", "test02"); + }else { + record.replace("name", "test01"); + } + } + ); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestCriterFilter.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestCriterFilter.java new file mode 100644 index 0000000..eceda8a --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestCriterFilter.java @@ -0,0 +1,110 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + +import com.jeelowcode.core.framework.config.aspect.enhance.criteria.DifferenceCriteriaFilterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.criteria.IntersectionCriteriaFilterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.criteria.OrCriteriaFilterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.criteria.UnionCriteriaFilterAdvicePlugin; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.framework.utils.utils.FuncBase; + +import org.junit.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:03 + * @dedescription: + */ +public class TestCriterFilter { + + + + + //合集 + @Test + public void testCriterFilter(){ + EnhanceContext context = new EnhanceContext(); + context.setParam(01L,new HashMap<>(),new ArrayList<>()); + context.setResult(false, "01",10L,initRecords()); + TestAfterAdvicePlugin01 plugin01 = new TestAfterAdvicePlugin01(); + TestAfterAdvicePlugin02 plugin02 = new TestAfterAdvicePlugin02(); + //合集 + OrCriteriaFilterAdvicePlugin orPlugin = new OrCriteriaFilterAdvicePlugin(plugin01, plugin02); + orPlugin.execute(context); + System.out.println("合集:"+FuncBase.json2Str(context.getResult().getRecords())); + + + + } + + //差集 + @Test + public void testCriterFilter02(){ + EnhanceContext context = new EnhanceContext(); + context.setParam(01L,new HashMap<>(),new ArrayList<>()); + context.setResult(false, "01",10L,initRecords()); + TestAfterAdvicePlugin01 plugin01 = new TestAfterAdvicePlugin01(); + TestAfterAdvicePlugin02 plugin02 = new TestAfterAdvicePlugin02(); + //差集 + DifferenceCriteriaFilterAdvicePlugin differPlugin = new DifferenceCriteriaFilterAdvicePlugin(plugin01, plugin02); + differPlugin.execute(context); + System.out.println("差集:"+FuncBase.json2Str(context.getResult().getRecords())); + } + + //并集 + @Test + public void testCriterFilter03(){ + EnhanceContext context = new EnhanceContext(); + context.setParam(01L,new HashMap<>(),new ArrayList<>()); + context.setResult(false, "01",10L,initRecords()); + TestAfterAdvicePlugin01 plugin01 = new TestAfterAdvicePlugin01(); + TestAfterAdvicePlugin02 plugin02 = new TestAfterAdvicePlugin02(); + //并集 + UnionCriteriaFilterAdvicePlugin unionPlugin = new UnionCriteriaFilterAdvicePlugin(plugin01, plugin02); + unionPlugin.execute(context); + System.out.println("并集:"+FuncBase.json2Str(context.getResult().getRecords())); + } + + //交集 + @Test + public void testCriterFilter04(){ + EnhanceContext context = new EnhanceContext(); + context.setParam(01L,new HashMap<>(),new ArrayList<>()); + context.setResult(false, "01",10L,initRecords()); + TestAfterAdvicePlugin01 plugin01 = new TestAfterAdvicePlugin01(); + TestAfterAdvicePlugin02 plugin02 = new TestAfterAdvicePlugin02(); + //交集 + IntersectionCriteriaFilterAdvicePlugin intersection = new IntersectionCriteriaFilterAdvicePlugin(plugin01, plugin02); + intersection.execute(context); + System.out.println("交集:"+FuncBase.json2Str(context.getResult().getRecords())); + } + + + public static List> initRecords(){ + List> records = new ArrayList<>(); + for (int i = 0; i < 10; i++) { + Map record = new HashMap<>(); + record.put("id",i); + record.put("name","name--"+i); + records.add(record); + } + return records; + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestListAndPageEnhance.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestListAndPageEnhance.java new file mode 100644 index 0000000..9358c7f --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestListAndPageEnhance.java @@ -0,0 +1,41 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-09-09 14:51 + * @dedescription: + */ + +@Component("testListAndPageEnhance") +public class TestListAndPageEnhance implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + List> list = enhanceContext.getParam().getList(); + list.forEach(map -> { + map.replace("name", Func.getMap2Str(map,"name")+"_list"); + }); + } +} \ No newline at end of file diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestPageEnhance.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestPageEnhance.java new file mode 100644 index 0000000..744d239 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestPageEnhance.java @@ -0,0 +1,40 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-09-09 14:54 + * @dedescription: + */ +@Component("testPageEnhance") +public class TestPageEnhance implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + List> list = enhanceContext.getParam().getList(); + list.forEach(map -> { + map.replace("name", Func.getMap2Str(map,"name")+"_page"); + }); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestUpdateEnhance.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestUpdateEnhance.java new file mode 100644 index 0000000..0d78b0d --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/demo/test/TestUpdateEnhance.java @@ -0,0 +1,38 @@ + +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.demo.test; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceParam; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; + +/** + * @author JX + * @create 2024-09-12 9:50 + * @dedescription: + */ +@Slf4j +public class TestUpdateEnhance implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceParam param = enhanceContext.getParam(); + Map params = param.getParams(); + log.error("TestUpdateEnhance execute params:{}", JsonUtils.toJsonString(params)); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinClassEnhance.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinClassEnhance.java new file mode 100644 index 0000000..1228e3d --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinClassEnhance.java @@ -0,0 +1,42 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.enhance; + + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:05 + * @dedescription: + */ +public class LinClassEnhance implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceResult result = enhanceContext.getResult(); + List> records = result.getRecords(); + records.forEach(record -> { + String njName = Func.getMap2Str(record, "nj_name"); + record.put("nj_name","class-24界"+njName); + + }); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinTestEnhance.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinTestEnhance.java new file mode 100644 index 0000000..9651a8a --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/enhance/LinTestEnhance.java @@ -0,0 +1,44 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.enhance; + + + +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceContext; +import com.jeelowcode.core.framework.config.aspect.enhance.model.EnhanceResult; +import com.jeelowcode.core.framework.config.aspect.enhance.plugin.AfterAdvicePlugin; +import com.jeelowcode.core.framework.utils.Func; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +/** + * @author JX + * @create 2024-08-19 15:05 + * @dedescription: + */ +@Component +public class LinTestEnhance implements AfterAdvicePlugin { + @Override + public void execute(EnhanceContext enhanceContext) { + EnhanceResult result = enhanceContext.getResult(); + List> records = result.getRecords(); + records.forEach(record -> { + String name = Func.getMap2Str(record, "name"); + record.put("name",name+"先生"); + + }); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/mapper/DemoMapper.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/mapper/DemoMapper.java new file mode 100644 index 0000000..9767e37 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/mapper/DemoMapper.java @@ -0,0 +1,23 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.mapper; + + +/** + * demo相关 + */ +public interface DemoMapper { + + void getDemoData(Long id); +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IDemoService.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IDemoService.java new file mode 100644 index 0000000..40a0bb0 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/IDemoService.java @@ -0,0 +1,27 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.service; + +import java.util.List; +import java.util.Map; + +/** + * Demo相关 + */ +public interface IDemoService { + + List> getDemoData(); + + void testAsync(); +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/DemoServiceImpl.java b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/DemoServiceImpl.java new file mode 100644 index 0000000..b8659e6 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/java/com/jeelowcode/module/biz/service/impl/DemoServiceImpl.java @@ -0,0 +1,57 @@ +/* +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +本软件受适用的国家软件著作权法(包括国际条约)和开源协议 双重保护许可。 + +开源协议中文释意如下: +1.JeeLowCode开源版本无任何限制,在遵循本开源协议(Apache2.0)条款下,【允许商用】使用,不会造成侵权行为。 +2.允许基于本平台软件开展业务系统开发。 +3.在任何情况下,您不得使用本软件开发可能被认为与【本软件竞争】的软件。 + +最终解释权归:http://www.jeelowcode.com +*/ +package com.jeelowcode.module.biz.service.impl; + +import com.jeelowcode.core.framework.service.IFrameSqlService; +import com.jeelowcode.framework.plus.SqlHelper; +import com.jeelowcode.framework.plus.build.buildmodel.wrapper.SqlInfoQueryWrapper; +import com.jeelowcode.module.biz.mapper.DemoMapper; +import com.jeelowcode.module.biz.service.IDemoService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + + +/** + * demo + */ +@Slf4j +@Service +public class DemoServiceImpl implements IDemoService { + + @Autowired + private DemoMapper demoMapper; + + @Autowired + private IFrameSqlService sqlService; + + + @Override + public List> getDemoData(){ + SqlInfoQueryWrapper.Wrapper wrapper = SqlHelper.getQueryWrapper(); + wrapper.setTableName("tbl_lin_class"); + List> dataMapList = sqlService.getDataListByPlus(wrapper); + return dataMapList; + } + + @Async("asyncPoolTaskExecutor") + @Override + public void testAsync(){ + log.info("哈哈哈"); + } +} diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/resources/mapper/DemoMapper.xml b/jeelowcode-module/jeelowcode-module-biz/src/main/resources/mapper/DemoMapper.xml new file mode 100644 index 0000000..02e06a1 --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/resources/mapper/DemoMapper.xml @@ -0,0 +1,8 @@ + + + + + + update test_lin set name=1 where id=#{id} + + diff --git a/jeelowcode-module/jeelowcode-module-biz/src/main/resources/操作指引.md b/jeelowcode-module/jeelowcode-module-biz/src/main/resources/操作指引.md new file mode 100644 index 0000000..bc155fe --- /dev/null +++ b/jeelowcode-module/jeelowcode-module-biz/src/main/resources/操作指引.md @@ -0,0 +1,161 @@ +**1.获取当前登录操作人信息** + +```Java + SecurityFrameworkUtils.getLoginUserId(); + + LoginUser loginUser = SecurityUtils.getLoginUser(); //LoginUser 登录用户的信息 + + @Resource + private AdminUserService userService; + AdminUserDO user = userService.getUser(getLoginUserId()); //AdminUserDO 管理后台的用户 + +``` + +2.**租户**相关 + +```Java + @TenantIgnore //数据库场景过滤,Redis场景基于Key实现隔离 + @TenantJob //声明在JobHander实现类的execute方法上,所有租户都会执行此定时任务 + + Long tenantId = WebFrameworkUtils.getTenantId(request); //获取租户id + + //让指定租户,执行对应的逻辑 + TenantUtils.execute(Long tenantId, Runnable runnable); + 或 + V execute(Long tenantId, Callable callable); + + +``` + +3.**接口**权限 + +```Java + + @PermitAll //在接口上使用这个注解,所有人可访问,无需登录 + 适配器 YudaoWebSecurityConfigurerAdapter.java中管理了被注解的接口 + + @PreAuthorize //Spring Security 内置的前置权限注解,添加在接口方法上,声明需要的权限,实现访问权限的控制。 + + +``` + +4.**系统**日志 + +```java + //使用注解+切面实现 OperateLogAspectc.class + @OperateLog //记录所有请求 + @ApiOperation //记录非Get请求 + @OperateLog(enable = false) //声明 @OperateLog 注解时,将 enable 属性设置为 false 时,强制不记录。 +``` + +5.**IP**相关 +```java + ServletUtils.getClientIP(HttpServletRequest request); //获取ip + Area area = IPUtils.getArea(ip); //获取Ip对应的地区 +``` + +6.**缓存** +```java + + @Resource + private StringRedisTemplate stringRedisTemplate; + + opsForValue() 操作String类型数据 + stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS); //存 + stringRedisTemplate.opsForValue().get(key); //取 + stringRedisTemplate.opsForValue().delete(key); //删除 + stringRedisTemplate.hasKey(key); //是否存在 返回boolean + stringRedisTemplate.opsForValue().increment(key,val); //增加,并返回long类型数据 + stringRedisTemplate.expire(key,3000L,TimeUnit.SECONDS); //设置过期时间 + + opsForHash() 操作Hash表类型 + stringRedisTemplate.opsForHash().put(key,"key","value"); //向map中添加键值对。map不存在的话会创建。 + stringRedisTemplate.opsForHash().putAll(key,map); //以map集合的形式向h中插入键值对。 + stringRedisTemplate.opsForHash().putIfAbsent(key,"key","value"); //向map中添加键值对,有键的话不做任何操作 + stringRedisTemplate.opsForHash().delete(redisKey,"hashkey1","hashkey2"); //删除map中的键值对。 + stringRedisTemplate.opsForHash().hasKey(redisKey,"hashKey"); //在map中查找指定的键,返回一个boolean。 + stringRedisTemplate.opsForHash().entries("redisKey"); //获取map中的所有键值对,返回一个map集合。 + stringRedisTemplate.opsForHash().get("redisKey","hashKey"); //获取map中的指定键的值,返回该键的值。 + stringRedisTemplate.opsForHash().keys("redisKey"); //获取map所有的键,返回一个set集合。 + stringRedisTemplate.opsForHash().values("redisKey"); //获取map中的所有值,返回一个List。 + stringRedisTemplate.opsForHash().multiGet("redisKey",hashKeys); //以集合的方式获取map中键的值 + stringRedisTemplate.opsForHash().scan("redisKey", ScanOptions.scanOptions().match("map1").build());//匹配获取键值对,ScanOptions.NONE为获取全部键对。返回一个Cursor>。 + stringRedisTemplate.opsForHash().size("redisKey"); //获取map中有几对键值对。 + + opsForList() 操作List结构数据 + stringRedisTemplate.opsForList().leftPush(String k,String v)、rightPush(String k,String v) //向列表k添加元素v。右边亦同。 + leftPush(String k,String v,String v2)、rightPush(String k,String v,String v2) + leftPushAll(String k,String... vs)、rightPushAll(String k,String... vs) + leftPushAll(String k,Collection collection)、rightPushAll(String k,Collection collection) + leftPushIfAbsent(String k,String v)、rightPushIfAbsent(String k,String v) //如果列表k中元素v不存在,从左添加元素,存在不作任何操作。右边亦同。 + leftPop(String k) //两个方法都是移除列表k最左边元素,第二个方法会有一个等待时间,如果在设置时间内任然没有元素则不做操作。右边亦同。 + leftPop(String k,long l,TimeUtil timeUtil) + rightPop(String k) + rightPop(String k,long l,TimeUtil timeUtil) + rightPopAndLeftPush(String k,String k1) //从列表k右边取出一个元素,把它插入到列表k1的左边。第二个方法则是有一个等待时间,在这个时间内取出元素,如果超过了这个时间就不做操作。这两个方法都会返回被取出的元素的值。 + rightPopAndLeftPush(String k,String k1,long l,TimeUtil timeUtil) + remove(String k,long cont,Object o) //删除列表k中的指定元素o,当cont>0时,删除从左到右的cont个元素;当cont=0时,删除所有值为o的元素;当cont<0时,删除从右向左的cont个元素。 + range(String k,long s,long e) //返回从s到e的列表k元素的集合,返回是一个List。 + set(String k,long l,String v) //在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标则会报错。 + trim(String k,long s,long e) //截取列表k,保留从s到e的数据。 + index(String k,long l) //获取列表k指定位置元素的值。 + + opsForSet() 操作set集合 + stringRedisTemplate.opsForSet().add(String k,String... vs) //添加一个多值的set集合,如果有的话不会重读添加。 + difference(String k,String k1) //比较两个set集合中不同的元素,将k中不同的元素返回,返回set。第二个方法比较set集合与多个集合的不同,将k中不同元素返回,返回set。后两种方法会将值放到一个新的集合中去并且返回新的集合元素个数。 + difference(String k,Collection collection) + differenceAndStore(String k,String k1,String k2) + differenceAndStore(String k,Collection collection,String k1) + intersect(String k,String k1) //都是比较集合的交集,第二个方法可以比较多个,返回set。后两种方法会将值放到一个新的集合中去并且返回新的集合元素个数。 + intersect(String k,Collection collection) + intersectAndStore(String k,String k1,String k2) + intersectAndStore(String k,Collection collection,String k1) + pop(String k) //随机从集合中删除,方法二可以指定删除个数,返回一个List表示删除的值。l为0的话就不会删除,如果删除后集合没有元素,那么集合就会被删除。 + pop(String k,long l) + size(String k) //返回集合的大小。 + remove(String k,Object... objects) //移除集合中输入的元素,返回移除的个数。 + move(String k,String v,String k1) //把集合中的元素移动到别的集合中去。 + scan(String k,ScanOptions scanOptions) //根据ScanOptions查看集合中的元素,ScanOptions.NONE为获取全部键对。返回一个Cursor。 + union(String k,String k1) //此方法是求集合的并集,用法和上面的intersect、difference基本一致,返回一个Set或者新集合的大小。 + union(String k,Collection collection) + unionAndStore(String k,String k1,String k2) + unionAndStore(String k,Collection collection,String k1) + randomMember(String k) //随机获取一个或多个元素,返回获取的元素String或者List。 + randomMembers(String k,long l) + members(String k) //获取集合的所有元素。 + isMember(String k,Object o) //o是否是集合中元素 + + opsForZSet() 操作Zset集合 + stringRedisTemplate.opsForZSet().add(String k,String v,double v1) //向有序集合k添加元素v并设置它的分数为v1 + add(K key, Set> tuples) ////通过TypedTuple方式新增数据。 + count(String k,double v,double v1) //获取分数在v-v1之间的元素的个数 + incrementScore(String k,String v,double v1) //增加集合k元素v的份数值。 + intersectAndStore(String k,String k1,String k2) //获取集合的交集并存储在新的集合中。 + intersectAndStore(String k,Collection collection,String k1) + intersectAndStore(String key,Collection otherKeys,String destKey,Aggregate aggretate) + intersectAndStore(String k,Collection collection,String destKey,Aggregate aggretate,Weights weights) + range(String k,long l,long l1) //获取集合l-l1之间的元素(不包括l),返回一个Set + rangByLex(String k,Range range) + rangByLex(String k,Range range,Limit limit) + rangeByScore(String k,double v,double v1) + rangeByScore(String k,double v,double v1,long l,long l1) + rangeByScoreWithScores(String k,double v,double v1) //根据分数在集合中查找或者集合区间查找元素,返回Set> + rangeByScoreWithScores(String k,double v,double v1,long l,long l1) + rank(String k,Object o) //获取集合中o元素的位置,返回其下标。 + remove(String k,Object... objects) //移除集合中的多个元素 + removeByRange(String k,long l,long emoveByScore(String k,double v,double v1) //移除集合下标范围内的元素,不包括l。 + unionAndStore(String k,String k1,String k2) //获取集合的并集放到新的集合中。 + unionAndStore(String k,Collection collection,String k1) + unionAndStore(String key,Collection otherKeys,String destKey,Aggregate aggretate) + unionAndStore(String k,Collection collection,String destKey,Aggregate aggretate,Weights weights) + reverseRange(String k,long l,long l1) //这些方法都是倒序获取集合中的元素。 + reverseRangeByScore(String k,double v,double v1) + reverseRangeByScore(String k,double v,double v1,long l,long l1) + reverseRangeByScoreWithScores(String k,double v,double v1) + reverseRangeByScoreWithScores(String k,double v,double v1,long l,long l1) + reverseRangeWithScores(String k,long l,long l1) + size(String k) //获取集合大小。 + score(String k,Object o) //获取集合中元素的分数。 + zCard(String k) //获取集合中元素的个数。 + +``` \ No newline at end of file diff --git a/jeelowcode-module/pom.xml b/jeelowcode-module/pom.xml new file mode 100644 index 0000000..2dbb3bf --- /dev/null +++ b/jeelowcode-module/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + com.jeelowcode + jeelowcode + ${revision} + + + com.jeelowcode + jeelowcode-module + pom + JeelowCode低代码模块 + + + jeelowcode-module-api + jeelowcode-module-biz + + + + \ No newline at end of file diff --git a/lombok.config b/lombok.config new file mode 100644 index 0000000..a8e8ce6 --- /dev/null +++ b/lombok.config @@ -0,0 +1,4 @@ +config.stopBubbling = true +lombok.tostring.callsuper=CALL +lombok.equalsandhashcode.callsuper=CALL +lombok.accessors.chain=true diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fac02a0 --- /dev/null +++ b/pom.xml @@ -0,0 +1,156 @@ + + + 4.0.0 + com.jeelowcode + jeelowcode + ${revision} + pom + + + jeelowcode-dependencies + + + jeelowcode-admin + + jeelowcode-framework + jeelowcode-core + jeelowcode-module + + + yudao-framework + yudao-module + + + + ${project.artifactId} + JeeLowCode低代码 - 基础脚手架 + + + 2.0.1-jdk8-snapshot + 1.0.0 + + 1.8 + ${java.version} + ${java.version} + 3.0.0-M5 + 3.8.1 + 1.5.0 + + 1.18.30 + 2.7.17 + 1.5.5.Final + UTF-8 + + + + + + com.jeelowcode + jeelowcode-dependencies + ${revision} + pom + import + + + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + UTF-8 + + -parameters + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + org.codehaus.mojo + flatten-maven-plugin + + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + resolveCiFriendliesOnly + true + + + + + flatten + + flatten + process-resources + + + + clean + + flatten.clean + clean + + + + + + + + + + huaweicloud + huawei + https://mirrors.huaweicloud.com/repository/maven/ + + + + aliyunmaven + aliyun + https://maven.aliyun.com/repository/public + + + + + diff --git a/yudao-framework/pom.xml b/yudao-framework/pom.xml new file mode 100644 index 0000000..6b5c6c5 --- /dev/null +++ b/yudao-framework/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + + com.jeelowcode + jeelowcode + ${revision} + + + pom + cn.iocoder.boot + yudao-framework + + 该包是技术组件,每个子包,代表一个组件。每个组件包括两部分: + 1. core 包:是该组件的核心封装 + 2. config 包:是该组件基于 Spring 的配置 + + 技术组件,也分成两类: + 1. 框架组件:和我们熟悉的 MyBatis、Redis 等等的拓展 + 2. 业务组件:和业务相关的组件的封装,例如说数据字典、操作日志等等。 + 如果是业务组件,Maven 名字会包含 biz + + https://github.com/YunaiV/ruoyi-vue-pro + + + yudao-common + yudao-spring-boot-starter-mybatis + yudao-spring-boot-starter-redis + yudao-spring-boot-starter-web + yudao-spring-boot-starter-security + + yudao-spring-boot-starter-file + yudao-spring-boot-starter-monitor + yudao-spring-boot-starter-protection + yudao-spring-boot-starter-job + yudao-spring-boot-starter-mq + + yudao-spring-boot-starter-excel + yudao-spring-boot-starter-test + + yudao-spring-boot-starter-biz-operatelog + yudao-spring-boot-starter-biz-dict + + yudao-spring-boot-starter-biz-tenant + yudao-spring-boot-starter-biz-data-permission + yudao-spring-boot-starter-biz-ip + + yudao-spring-boot-starter-flowable + yudao-spring-boot-starter-captcha + yudao-spring-boot-starter-websocket + + + + + + diff --git a/yudao-framework/yudao-common/pom.xml b/yudao-framework/yudao-common/pom.xml new file mode 100644 index 0000000..bc70c94 --- /dev/null +++ b/yudao-framework/yudao-common/pom.xml @@ -0,0 +1,144 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-common + jar + + ${project.artifactId} + 定义基础 pojo 类、枚举、工具类等等 + https://github.com/YunaiV/ruoyi-vue-pro + + + + + org.springframework + spring-core + provided + + + org.springframework + spring-expression + provided + + + org.springframework + spring-aop + provided + + + org.aspectj + aspectjweaver + provided + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + org.springframework + spring-web + provided + + + + jakarta.servlet + jakarta.servlet-api + provided + + + + org.springdoc + springdoc-openapi-ui + provided + + + + + org.apache.skywalking + apm-toolkit-trace + + + + + org.projectlombok + lombok + + + + org.mapstruct + mapstruct + + + org.mapstruct + mapstruct-jdk8 + + + org.mapstruct + mapstruct-processor + + + + com.google.guava + guava + provided + + + + com.fasterxml.jackson.core + jackson-databind + provided + + + com.fasterxml.jackson.core + jackson-core + provided + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + provided + + + + org.slf4j + slf4j-api + provided + + + + jakarta.validation + jakarta.validation-api + provided + + + + cn.hutool + hutool-all + + + + com.alibaba + transmittable-thread-local + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/IntArrayValuable.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/IntArrayValuable.java new file mode 100644 index 0000000..8914231 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/IntArrayValuable.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.framework.common.core; + +/** + * 可生成 Int 数组的接口 + * + * @author 芋道源码 + */ +public interface IntArrayValuable { + + /** + * @return int 数组 + */ + int[] array(); + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/KeyValue.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/KeyValue.java new file mode 100644 index 0000000..07a8f39 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/core/KeyValue.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.common.core; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * Key Value 的键值对 + * + * @author 芋道源码 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class KeyValue implements Serializable { + + private K key; + private V value; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/CommonStatusEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/CommonStatusEnum.java new file mode 100644 index 0000000..facf326 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/CommonStatusEnum.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.common.enums; + +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 通用状态枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum CommonStatusEnum implements IntArrayValuable { + + ENABLE(0, "开启"), + DISABLE(1, "关闭"); + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CommonStatusEnum::getStatus).toArray(); + + /** + * 状态值 + */ + private final Integer status; + /** + * 状态名 + */ + private final String name; + + @Override + public int[] array() { + return ARRAYS; + } + + public static boolean isEnable(Integer status) { + return ObjUtil.equal(ENABLE.status, status); + } + + public static boolean isDisable(Integer status) { + return ObjUtil.equal(DISABLE.status, status); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/DocumentEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/DocumentEnum.java new file mode 100644 index 0000000..a96ee24 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/DocumentEnum.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文档地址 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum DocumentEnum { + + REDIS_INSTALL("https://gitee.com/zhijiantianya/ruoyi-vue-pro/issues/I4VCSJ", "Redis 安装文档"), + TENANT("https://doc.iocoder.cn", "SaaS 多租户文档"); + + private final String url; + private final String memo; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java new file mode 100644 index 0000000..f256712 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/TerminalEnum.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.common.enums; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; + +/** + * 终端的枚举 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +@Getter +public enum TerminalEnum implements IntArrayValuable { + + UNKNOWN(0, "未知"), // 目的:在无法解析到 terminal 时,使用它 + WECHAT_MINI_PROGRAM(10, "微信小程序"), + WECHAT_WAP(11, "微信公众号"), + H5(20, "H5 网页"), + APP(31, "手机 App"), + ; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(TerminalEnum::getTerminal).toArray(); + + /** + * 终端 + */ + private final Integer terminal; + /** + * 终端名 + */ + private final String name; + + @Override + public int[] array() { + return ARRAYS; + } +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/UserTypeEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/UserTypeEnum.java new file mode 100644 index 0000000..c950c52 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/UserTypeEnum.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.common.enums; + +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 全局用户类型枚举 + */ +@AllArgsConstructor +@Getter +public enum UserTypeEnum implements IntArrayValuable { + + MEMBER(1, "会员"), // 面向 c 端,普通用户 + ADMIN(2, "管理员"); // 面向 b 端,管理后台 + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(UserTypeEnum::getValue).toArray(); + + /** + * 类型 + */ + private final Integer value; + /** + * 类型名 + */ + private final String name; + + public static UserTypeEnum valueOf(Integer value) { + return ArrayUtil.firstMatch(userType -> userType.getValue().equals(value), UserTypeEnum.values()); + } + + @Override + public int[] array() { + return ARRAYS; + } +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/WebFilterOrderEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/WebFilterOrderEnum.java new file mode 100644 index 0000000..11a5ee0 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/WebFilterOrderEnum.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.common.enums; + +/** + * Web 过滤器顺序的枚举类,保证过滤器按照符合我们的预期 + * + * 考虑到每个 starter 都需要用到该工具类,所以放到 common 模块下的 enums 包下 + * + * @author 芋道源码 + */ +public interface WebFilterOrderEnum { + + int CORS_FILTER = Integer.MIN_VALUE; + + int TRACE_FILTER = CORS_FILTER + 1; + + int REQUEST_BODY_CACHE_FILTER = Integer.MIN_VALUE + 500; + + // OrderedRequestContextFilter 默认为 -105,用于国际化上下文等等 + + int TENANT_CONTEXT_FILTER = - 104; // 需要保证在 ApiAccessLogFilter 前面 + + int API_ACCESS_LOG_FILTER = -103; // 需要保证在 RequestBodyCacheFilter 后面 + + int XSS_FILTER = -102; // 需要保证在 RequestBodyCacheFilter 后面 + + // Spring Security Filter 默认为 -100,可见 org.springframework.boot.autoconfigure.security.SecurityProperties 配置属性类 + + int TENANT_SECURITY_FILTER = -99; // 需要保证在 Spring Security 过滤器后面 + + int FLOWABLE_FILTER = -98; // 需要保证在 Spring Security 过滤后面 + + int DEMO_FILTER = Integer.MAX_VALUE; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ErrorCode.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ErrorCode.java new file mode 100644 index 0000000..45feaec --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ErrorCode.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.framework.common.exception; + +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.exception.enums.ServiceErrorCodeRange; +import lombok.Data; + +/** + * 错误码对象 + * + * 全局错误码,占用 [0, 999], 参见 {@link GlobalErrorCodeConstants} + * 业务异常错误码,占用 [1 000 000 000, +∞),参见 {@link ServiceErrorCodeRange} + * + * TODO 错误码设计成对象的原因,为未来的 i18 国际化做准备 + */ +@Data +public class ErrorCode { + + /** + * 错误码 + */ + private final Integer code; + /** + * 错误提示 + */ + private final String msg; + + public ErrorCode(Integer code, String message) { + this.code = code; + this.msg = message; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServerException.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServerException.java new file mode 100644 index 0000000..fac56d5 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServerException.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.framework.common.exception; + +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 服务器异常 Exception + */ +@Data +@EqualsAndHashCode(callSuper = true) +public final class ServerException extends RuntimeException { + + /** + * 全局错误码 + * + * @see GlobalErrorCodeConstants + */ + private Integer code; + /** + * 错误提示 + */ + private String message; + + /** + * 空构造方法,避免反序列化问题 + */ + public ServerException() { + } + + public ServerException(ErrorCode errorCode) { + this.code = errorCode.getCode(); + this.message = errorCode.getMsg(); + } + + public ServerException(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public ServerException setCode(Integer code) { + this.code = code; + return this; + } + + @Override + public String getMessage() { + return message; + } + + public ServerException setMessage(String message) { + this.message = message; + return this; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServiceException.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServiceException.java new file mode 100644 index 0000000..5c6967e --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/ServiceException.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.framework.common.exception; + +import cn.iocoder.yudao.framework.common.exception.enums.ServiceErrorCodeRange; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 业务逻辑异常 Exception + */ +@Data +@EqualsAndHashCode(callSuper = true) +public final class ServiceException extends RuntimeException { + + /** + * 业务错误码 + * + * @see ServiceErrorCodeRange + */ + private Integer code; + /** + * 错误提示 + */ + private String message; + + /** + * 空构造方法,避免反序列化问题 + */ + public ServiceException() { + } + + public ServiceException(ErrorCode errorCode) { + this.code = errorCode.getCode(); + this.message = errorCode.getMsg(); + } + + public ServiceException(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public ServiceException setCode(Integer code) { + this.code = code; + return this; + } + + @Override + public String getMessage() { + return message; + } + + public ServiceException setMessage(String message) { + this.message = message; + return this; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/GlobalErrorCodeConstants.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/GlobalErrorCodeConstants.java new file mode 100644 index 0000000..edf31f2 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/GlobalErrorCodeConstants.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.framework.common.exception.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + +/** + * 全局错误码枚举 + * 0-999 系统异常编码保留 + * + * 一般情况下,使用 HTTP 响应状态码 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status + * 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的 + * 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。 + * + * @author 芋道源码 + */ +public interface GlobalErrorCodeConstants { + + ErrorCode SUCCESS = new ErrorCode(0, "成功"); + + // ========== 客户端错误段 ========== + + ErrorCode BAD_REQUEST = new ErrorCode(400, "请求参数不正确"); + ErrorCode UNAUTHORIZED = new ErrorCode(401, "账号未登录"); + ErrorCode FORBIDDEN = new ErrorCode(403, "没有该操作权限"); + ErrorCode NOT_FOUND = new ErrorCode(404, "请求未找到"); + ErrorCode METHOD_NOT_ALLOWED = new ErrorCode(405, "请求方法不正确"); + ErrorCode LOCKED = new ErrorCode(423, "请求失败,请稍后重试"); // 并发请求,不允许 + ErrorCode TOO_MANY_REQUESTS = new ErrorCode(429, "请求过于频繁,请稍后重试"); + + // ========== 服务端错误段 ========== + + ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常"); + ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "功能未实现/未开启"); + ErrorCode ERROR_CONFIGURATION = new ErrorCode(502, "错误的配置项"); + + // ========== 自定义错误段 ========== + ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求 + ErrorCode DEMO_DENY = new ErrorCode(901, "演示模式,禁止写操作"); + + ErrorCode UNKNOWN = new ErrorCode(999, "未知错误"); + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/ServiceErrorCodeRange.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/ServiceErrorCodeRange.java new file mode 100644 index 0000000..94dd67c --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/enums/ServiceErrorCodeRange.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.common.exception.enums; + +/** + * 业务异常的错误码区间,解决:解决各模块错误码定义,避免重复,在此只声明不做实际使用 + * + * 一共 10 位,分成四段 + * + * 第一段,1 位,类型 + * 1 - 业务级别异常 + * x - 预留 + * 第二段,3 位,系统类型 + * 001 - 用户系统 + * 002 - 商品系统 + * 003 - 订单系统 + * 004 - 支付系统 + * 005 - 优惠劵系统 + * ... - ... + * 第三段,3 位,模块 + * 不限制规则。 + * 一般建议,每个系统里面,可能有多个模块,可以再去做分段。以用户系统为例子: + * 001 - OAuth2 模块 + * 002 - User 模块 + * 003 - MobileCode 模块 + * 第四段,3 位,错误码 + * 不限制规则。 + * 一般建议,每个模块自增。 + * + * @author 芋道源码 + */ +public class ServiceErrorCodeRange { + + // 模块 infra 错误码区间 [1-001-000-000 ~ 1-002-000-000) + // 模块 system 错误码区间 [1-002-000-000 ~ 1-003-000-000) + // 模块 report 错误码区间 [1-003-000-000 ~ 1-004-000-000) + // 模块 member 错误码区间 [1-004-000-000 ~ 1-005-000-000) + // 模块 mp 错误码区间 [1-006-000-000 ~ 1-007-000-000) + // 模块 pay 错误码区间 [1-007-000-000 ~ 1-008-000-000) + // 模块 bpm 错误码区间 [1-009-000-000 ~ 1-010-000-000) + + // 模块 product 错误码区间 [1-008-000-000 ~ 1-009-000-000) + // 模块 trade 错误码区间 [1-011-000-000 ~ 1-012-000-000) + // 模块 promotion 错误码区间 [1-013-000-000 ~ 1-014-000-000) + + // 模块 crm 错误码区间 [1-020-000-000 ~ 1-021-000-000) + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/util/ServiceExceptionUtil.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/util/ServiceExceptionUtil.java new file mode 100644 index 0000000..966109f --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/exception/util/ServiceExceptionUtil.java @@ -0,0 +1,127 @@ +package cn.iocoder.yudao.framework.common.exception.util; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * {@link ServiceException} 工具类 + * + * 目的在于,格式化异常信息提示。 + * 考虑到 String.format 在参数不正确时会报错,因此使用 {} 作为占位符,并使用 {@link #doFormat(int, String, Object...)} 方法来格式化 + * + * 因为 {@link #MESSAGES} 里面默认是没有异常信息提示的模板的,所以需要使用方自己初始化进去。目前想到的有几种方式: + * + * 1. 异常提示信息,写在枚举类中,例如说,cn.iocoder.oceans.user.api.constants.ErrorCodeEnum 类 + ServiceExceptionConfiguration + * 2. 异常提示信息,写在 .properties 等等配置文件 + * 3. 异常提示信息,写在 Apollo 等等配置中心中,从而实现可动态刷新 + * 4. 异常提示信息,存储在 db 等等数据库中,从而实现可动态刷新 + */ +@Slf4j +public class ServiceExceptionUtil { + + /** + * 错误码提示模板 + */ + private static final ConcurrentMap MESSAGES = new ConcurrentHashMap<>(); + + public static void putAll(Map messages) { + ServiceExceptionUtil.MESSAGES.putAll(messages); + } + + public static void put(Integer code, String message) { + ServiceExceptionUtil.MESSAGES.put(code, message); + } + + public static void delete(Integer code, String message) { + ServiceExceptionUtil.MESSAGES.remove(code, message); + } + + // ========== 和 ServiceException 的集成 ========== + + public static ServiceException exception(ErrorCode errorCode) { + String messagePattern = MESSAGES.getOrDefault(errorCode.getCode(), errorCode.getMsg()); + return exception0(errorCode.getCode(), messagePattern); + } + + public static ServiceException exception(ErrorCode errorCode, Object... params) { + String messagePattern = MESSAGES.getOrDefault(errorCode.getCode(), errorCode.getMsg()); + return exception0(errorCode.getCode(), messagePattern, params); + } + + /** + * 创建指定编号的 ServiceException 的异常 + * + * @param code 编号 + * @return 异常 + */ + public static ServiceException exception(Integer code) { + return exception0(code, MESSAGES.get(code)); + } + + /** + * 创建指定编号的 ServiceException 的异常 + * + * @param code 编号 + * @param params 消息提示的占位符对应的参数 + * @return 异常 + */ + public static ServiceException exception(Integer code, Object... params) { + return exception0(code, MESSAGES.get(code), params); + } + + public static ServiceException exception0(Integer code, String messagePattern, Object... params) { + String message = doFormat(code, messagePattern, params); + return new ServiceException(code, message); + } + + public static ServiceException invalidParamException(String messagePattern, Object... params) { + return exception0(GlobalErrorCodeConstants.BAD_REQUEST.getCode(), messagePattern, params); + } + + // ========== 格式化方法 ========== + + /** + * 将错误编号对应的消息使用 params 进行格式化。 + * + * @param code 错误编号 + * @param messagePattern 消息模版 + * @param params 参数 + * @return 格式化后的提示 + */ + @VisibleForTesting + public static String doFormat(int code, String messagePattern, Object... params) { + StringBuilder sbuf = new StringBuilder(messagePattern.length() + 50); + int i = 0; + int j; + int l; + for (l = 0; l < params.length; l++) { + j = messagePattern.indexOf("{}", i); + if (j == -1) { + log.error("[doFormat][参数过多:错误码({})|错误内容({})|参数({})", code, messagePattern, params); + if (i == 0) { + return messagePattern; + } else { + sbuf.append(messagePattern.substring(i)); + return sbuf.toString(); + } + } else { + sbuf.append(messagePattern, i, j); + sbuf.append(params[l]); + i = j + 2; + } + } + if (messagePattern.indexOf("{}", i) != -1) { + log.error("[doFormat][参数过少:错误码({})|错误内容({})|参数({})", code, messagePattern, params); + } + sbuf.append(messagePattern.substring(i)); + return sbuf.toString(); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/package-info.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/package-info.java new file mode 100644 index 0000000..f3f2574 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/package-info.java @@ -0,0 +1,6 @@ +/** + * 基础的通用类,和框架无关 + * + * 例如说,CommonResult 为通用返回 + */ +package cn.iocoder.yudao.framework.common; diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java new file mode 100644 index 0000000..e29292d --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java @@ -0,0 +1,112 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import org.springframework.util.Assert; + +import java.io.Serializable; +import java.util.Objects; + +/** + * 通用返回 + * + * @param 数据泛型 + */ +@Data +public class CommonResult implements Serializable { + + /** + * 错误码 + * + * @see ErrorCode#getCode() + */ + private Integer code; + /** + * 返回数据 + */ + private T data; + /** + * 错误提示,用户可阅读 + * + * @see ErrorCode#getMsg() () + */ + private String msg; + + /** + * 将传入的 result 对象,转换成另外一个泛型结果的对象 + * + * 因为 A 方法返回的 CommonResult 对象,不满足调用其的 B 方法的返回,所以需要进行转换。 + * + * @param result 传入的 result 对象 + * @param 返回的泛型 + * @return 新的 CommonResult 对象 + */ + public static CommonResult error(CommonResult result) { + return error(result.getCode(), result.getMsg()); + } + + public static CommonResult error(Integer code, String message) { + Assert.isTrue(!GlobalErrorCodeConstants.SUCCESS.getCode().equals(code), "code 必须是错误的!"); + CommonResult result = new CommonResult<>(); + result.code = code; + result.msg = message; + return result; + } + + public static CommonResult error(ErrorCode errorCode) { + return error(errorCode.getCode(), errorCode.getMsg()); + } + + public static CommonResult success(T data) { + CommonResult result = new CommonResult<>(); + result.code = GlobalErrorCodeConstants.SUCCESS.getCode(); + result.data = data; + result.msg = ""; + return result; + } + + public static boolean isSuccess(Integer code) { + return Objects.equals(code, GlobalErrorCodeConstants.SUCCESS.getCode()); + } + + @JsonIgnore // 避免 jackson 序列化 + public boolean isSuccess() { + return isSuccess(code); + } + + @JsonIgnore // 避免 jackson 序列化 + public boolean isError() { + return !isSuccess(); + } + + // ========= 和 Exception 异常体系集成 ========= + + /** + * 判断是否有异常。如果有,则抛出 {@link ServiceException} 异常 + */ + public void checkError() throws ServiceException { + if (isSuccess()) { + return; + } + // 业务异常 + throw new ServiceException(code, msg); + } + + /** + * 判断是否有异常。如果有,则抛出 {@link ServiceException} 异常 + * 如果没有,则返回 {@link #data} 数据 + */ + @JsonIgnore // 避免 jackson 序列化 + public T getCheckedData() { + checkError(); + return data; + } + + public static CommonResult error(ServiceException serviceException) { + return error(serviceException.getCode(), serviceException.getMessage()); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java new file mode 100644 index 0000000..07b5afd --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageParam.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.Max; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Schema(description="分页参数") +@Data +public class PageParam implements Serializable { + + private static final Integer PAGE_NO = 1; + private static final Integer PAGE_SIZE = 10; + + /** + * 每页条数 - 不分页 + * + * 例如说,导出接口,可以设置 {@link #pageSize} 为 -1 不分页,查询所有数据。 + */ + public static final Integer PAGE_SIZE_NONE = -1; + + @Schema(description = "页码,从 1 开始", requiredMode = Schema.RequiredMode.REQUIRED,example = "1") + @NotNull(message = "页码不能为空") + + private Integer pageNo = PAGE_NO; + + @Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @NotNull(message = "每页条数不能为空") + private Integer pageSize = PAGE_SIZE; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java new file mode 100644 index 0000000..ff9087a --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/PageResult.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Schema(description = "分页结果") +@Data +public final class PageResult implements Serializable { + + @Schema(description = "数据", requiredMode = Schema.RequiredMode.REQUIRED) + private List list; + + @Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED) + private Long total; + + public PageResult() { + } + + public PageResult(List list, Long total) { + this.list = list; + this.total = total; + } + + public PageResult(Long total) { + this.list = new ArrayList<>(); + this.total = total; + } + + public static PageResult empty() { + return new PageResult<>(0L); + } + + public static PageResult empty(Long total) { + return new PageResult<>(total); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortablePageParam.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortablePageParam.java new file mode 100644 index 0000000..2365c41 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortablePageParam.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +@Schema(description = "可排序的分页参数") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SortablePageParam extends PageParam { + + @Schema(description = "排序字段") + private List sortingFields; + +} \ No newline at end of file diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortingField.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortingField.java new file mode 100644 index 0000000..07a68b0 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/SortingField.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.common.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 排序字段 DTO + * + * 类名加了 ing 的原因是,避免和 ES SortField 重名。 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SortingField implements Serializable { + + /** + * 顺序 - 升序 + */ + public static final String ORDER_ASC = "asc"; + /** + * 顺序 - 降序 + */ + public static final String ORDER_DESC = "desc"; + + /** + * 字段 + */ + private String field; + /** + * 顺序 + */ + private String order; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java new file mode 100644 index 0000000..41f7540 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/cache/CacheUtils.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.common.util.cache; + +import com.alibaba.ttl.threadpool.TtlExecutors; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; + +import java.time.Duration; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + +/** + * Cache 工具类 + * + * @author 芋道源码 + */ +public class CacheUtils { + + public static LoadingCache buildAsyncReloadingCache(Duration duration, CacheLoader loader) { + Executor executor = Executors.newCachedThreadPool( // TODO 芋艿:可能要思考下,未来要不要做成可配置 + TtlExecutors.getDefaultDisableInheritableThreadFactory()); // TTL 保证 ThreadLocal 可以透传 + return CacheBuilder.newBuilder() + // 只阻塞当前数据加载线程,其他线程返回旧值 + .refreshAfterWrite(duration) + // 通过 asyncReloading 实现全异步加载,包括 refreshAfterWrite 被阻塞的加载线程 + .build(CacheLoader.asyncReloading(loader, executor)); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/ArrayUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/ArrayUtils.java new file mode 100644 index 0000000..4285b8f --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/ArrayUtils.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.framework.common.util.collection; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.IterUtil; +import cn.hutool.core.util.ArrayUtil; + +import java.util.Collection; +import java.util.function.Consumer; +import java.util.function.Function; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + +/** + * Array 工具类 + * + * @author 芋道源码 + */ +public class ArrayUtils { + + /** + * 将 object 和 newElements 合并成一个数组 + * + * @param object 对象 + * @param newElements 数组 + * @param 泛型 + * @return 结果数组 + */ + @SafeVarargs + public static Consumer[] append(Consumer object, Consumer... newElements) { + if (object == null) { + return newElements; + } + Consumer[] result = ArrayUtil.newArray(Consumer.class, 1 + newElements.length); + result[0] = object; + System.arraycopy(newElements, 0, result, 1, newElements.length); + return result; + } + + public static V[] toArray(Collection from, Function mapper) { + return toArray(convertList(from, mapper)); + } + + @SuppressWarnings("unchecked") + public static T[] toArray(Collection from) { + if (CollectionUtil.isEmpty(from)) { + return (T[]) (new Object[0]); + } + return ArrayUtil.toArray(from, (Class) IterUtil.getElementType(from.iterator())); + } + + public static T get(T[] array, int index) { + if (null == array || index >= array.length) { + return null; + } + return array[index]; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java new file mode 100644 index 0000000..8ffd21c --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtils.java @@ -0,0 +1,318 @@ +package cn.iocoder.yudao.framework.common.util.collection; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ArrayUtil; +import com.google.common.collect.ImmutableMap; + +import java.util.*; +import java.util.function.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.util.Arrays.asList; + +/** + * Collection 工具类 + * + * @author 芋道源码 + */ +public class CollectionUtils { + + public static boolean containsAny(Object source, Object... targets) { + return asList(targets).contains(source); + } + + public static boolean isAnyEmpty(Collection... collections) { + return Arrays.stream(collections).anyMatch(CollectionUtil::isEmpty); + } + + public static boolean anyMatch(Collection from, Predicate predicate) { + return from.stream().anyMatch(predicate); + } + + public static List filterList(Collection from, Predicate predicate) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().filter(predicate).collect(Collectors.toList()); + } + + public static List distinct(Collection from, Function keyMapper) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return distinct(from, keyMapper, (t1, t2) -> t1); + } + + public static List distinct(Collection from, Function keyMapper, BinaryOperator cover) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return new ArrayList<>(convertMap(from, keyMapper, Function.identity(), cover).values()); + } + + public static List convertList(T[] from, Function func) { + if (ArrayUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return convertList(Arrays.asList(from), func); + } + + public static List convertList(Collection from, Function func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().map(func).filter(Objects::nonNull).collect(Collectors.toList()); + } + + public static List convertList(Collection from, Function func, Predicate filter) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().filter(filter).map(func).filter(Objects::nonNull).collect(Collectors.toList()); + } + + public static List convertListByFlatMap(Collection from, + Function> func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().flatMap(func).filter(Objects::nonNull).collect(Collectors.toList()); + } + + public static List convertListByFlatMap(Collection from, + Function mapper, + Function> func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().map(mapper).flatMap(func).filter(Objects::nonNull).collect(Collectors.toList()); + } + + public static List mergeValuesFromMap(Map> map) { + return map.values() + .stream() + .flatMap(List::stream) + .collect(Collectors.toList()); + } + + public static Set convertSet(Collection from, Function func) { + if (CollUtil.isEmpty(from)) { + return new HashSet<>(); + } + return from.stream().map(func).filter(Objects::nonNull).collect(Collectors.toSet()); + } + + public static Set convertSet(Collection from, Function func, Predicate filter) { + if (CollUtil.isEmpty(from)) { + return new HashSet<>(); + } + return from.stream().filter(filter).map(func).filter(Objects::nonNull).collect(Collectors.toSet()); + } + + public static Map convertMapByFilter(Collection from, Predicate filter, Function keyFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return from.stream().filter(filter).collect(Collectors.toMap(keyFunc, v -> v)); + } + + public static Set convertSetByFlatMap(Collection from, + Function> func) { + if (CollUtil.isEmpty(from)) { + return new HashSet<>(); + } + return from.stream().flatMap(func).filter(Objects::nonNull).collect(Collectors.toSet()); + } + + public static Set convertSetByFlatMap(Collection from, + Function mapper, + Function> func) { + if (CollUtil.isEmpty(from)) { + return new HashSet<>(); + } + return from.stream().map(mapper).flatMap(func).filter(Objects::nonNull).collect(Collectors.toSet()); + } + + public static Map convertMap(Collection from, Function keyFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return convertMap(from, keyFunc, Function.identity()); + } + + public static Map convertMap(Collection from, Function keyFunc, Supplier> supplier) { + if (CollUtil.isEmpty(from)) { + return supplier.get(); + } + return convertMap(from, keyFunc, Function.identity(), supplier); + } + + public static Map convertMap(Collection from, Function keyFunc, Function valueFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return convertMap(from, keyFunc, valueFunc, (v1, v2) -> v1); + } + + public static Map convertMap(Collection from, Function keyFunc, Function valueFunc, BinaryOperator mergeFunction) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return convertMap(from, keyFunc, valueFunc, mergeFunction, HashMap::new); + } + + public static Map convertMap(Collection from, Function keyFunc, Function valueFunc, Supplier> supplier) { + if (CollUtil.isEmpty(from)) { + return supplier.get(); + } + return convertMap(from, keyFunc, valueFunc, (v1, v2) -> v1, supplier); + } + + public static Map convertMap(Collection from, Function keyFunc, Function valueFunc, BinaryOperator mergeFunction, Supplier> supplier) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return from.stream().collect(Collectors.toMap(keyFunc, valueFunc, mergeFunction, supplier)); + } + + public static Map> convertMultiMap(Collection from, Function keyFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return from.stream().collect(Collectors.groupingBy(keyFunc, Collectors.mapping(t -> t, Collectors.toList()))); + } + + public static Map> convertMultiMap(Collection from, Function keyFunc, Function valueFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return from.stream() + .collect(Collectors.groupingBy(keyFunc, Collectors.mapping(valueFunc, Collectors.toList()))); + } + + // 暂时没想好名字,先以 2 结尾噶 + public static Map> convertMultiMap2(Collection from, Function keyFunc, Function valueFunc) { + if (CollUtil.isEmpty(from)) { + return new HashMap<>(); + } + return from.stream().collect(Collectors.groupingBy(keyFunc, Collectors.mapping(valueFunc, Collectors.toSet()))); + } + + public static Map convertImmutableMap(Collection from, Function keyFunc) { + if (CollUtil.isEmpty(from)) { + return Collections.emptyMap(); + } + ImmutableMap.Builder builder = ImmutableMap.builder(); + from.forEach(item -> builder.put(keyFunc.apply(item), item)); + return builder.build(); + } + + /** + * 对比老、新两个列表,找出新增、修改、删除的数据 + * + * @param oldList 老列表 + * @param newList 新列表 + * @param sameFunc 对比函数,返回 true 表示相同,返回 false 表示不同 + * 注意,same 是通过每个元素的“标识”,判断它们是不是同一个数据 + * @return [新增列表、修改列表、删除列表] + */ + public static List> diffList(Collection oldList, Collection newList, + BiFunction sameFunc) { + List createList = new LinkedList<>(newList); // 默认都认为是新增的,后续会进行移除 + List updateList = new ArrayList<>(); + List deleteList = new ArrayList<>(); + + // 通过以 oldList 为主遍历,找出 updateList 和 deleteList + for (T oldObj : oldList) { + // 1. 寻找是否有匹配的 + T foundObj = null; + for (Iterator iterator = createList.iterator(); iterator.hasNext(); ) { + T newObj = iterator.next(); + // 1.1 不匹配,则直接跳过 + if (!sameFunc.apply(oldObj, newObj)) { + continue; + } + // 1.2 匹配,则移除,并结束寻找 + iterator.remove(); + foundObj = newObj; + break; + } + // 2. 匹配添加到 updateList;不匹配则添加到 deleteList 中 + if (foundObj != null) { + updateList.add(foundObj); + } else { + deleteList.add(oldObj); + } + } + return asList(createList, updateList, deleteList); + } + + public static boolean containsAny(Collection source, Collection candidates) { + return org.springframework.util.CollectionUtils.containsAny(source, candidates); + } + + public static T getFirst(List from) { + return !CollectionUtil.isEmpty(from) ? from.get(0) : null; + } + + public static T findFirst(List from, Predicate predicate) { + return findFirst(from, predicate, Function.identity()); + } + + public static U findFirst(List from, Predicate predicate, Function func) { + if (CollUtil.isEmpty(from)) { + return null; + } + return from.stream().filter(predicate).findFirst().map(func).orElse(null); + } + + public static > V getMaxValue(Collection from, Function valueFunc) { + if (CollUtil.isEmpty(from)) { + return null; + } + assert !from.isEmpty(); // 断言,避免告警 + T t = from.stream().max(Comparator.comparing(valueFunc)).get(); + return valueFunc.apply(t); + } + + public static > V getMinValue(List from, Function valueFunc) { + if (CollUtil.isEmpty(from)) { + return null; + } + assert from.size() > 0; // 断言,避免告警 + T t = from.stream().min(Comparator.comparing(valueFunc)).get(); + return valueFunc.apply(t); + } + + public static > V getSumValue(List from, Function valueFunc, + BinaryOperator accumulator) { + return getSumValue(from, valueFunc, accumulator, null); + } + + public static > V getSumValue(Collection from, Function valueFunc, + BinaryOperator accumulator, V defaultValue) { + if (CollUtil.isEmpty(from)) { + return defaultValue; + } + assert !from.isEmpty(); // 断言,避免告警 + return from.stream().map(valueFunc).filter(Objects::nonNull).reduce(accumulator).orElse(defaultValue); + } + + public static void addIfNotNull(Collection coll, T item) { + if (item == null) { + return; + } + coll.add(item); + } + + public static Collection singleton(T obj) { + return obj == null ? Collections.emptyList() : Collections.singleton(obj); + } + + public static List newArrayList(List> list) { + return list.stream().flatMap(Collection::stream).collect(Collectors.toList()); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/MapUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/MapUtils.java new file mode 100644 index 0000000..f4a17b5 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/MapUtils.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.framework.common.util.collection; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + * Map 工具类 + * + * @author 芋道源码 + */ +public class MapUtils { + + /** + * 从哈希表表中,获得 keys 对应的所有 value 数组 + * + * @param multimap 哈希表 + * @param keys keys + * @return value 数组 + */ + public static List getList(Multimap multimap, Collection keys) { + List result = new ArrayList<>(); + keys.forEach(k -> { + Collection values = multimap.get(k); + if (CollectionUtil.isEmpty(values)) { + return; + } + result.addAll(values); + }); + return result; + } + + /** + * 从哈希表查找到 key 对应的 value,然后进一步处理 + * 注意,如果查找到的 value 为 null 时,不进行处理 + * + * @param map 哈希表 + * @param key key + * @param consumer 进一步处理的逻辑 + */ + public static void findAndThen(Map map, K key, Consumer consumer) { + if (CollUtil.isEmpty(map)) { + return; + } + V value = map.get(key); + if (value == null) { + return; + } + consumer.accept(value); + } + + public static Map convertMap(List> keyValues) { + Map map = Maps.newLinkedHashMapWithExpectedSize(keyValues.size()); + keyValues.forEach(keyValue -> map.put(keyValue.getKey(), keyValue.getValue())); + return map; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java new file mode 100644 index 0000000..e8eba66 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/collection/SetUtils.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.framework.common.util.collection; + +import cn.hutool.core.collection.CollUtil; + +import java.util.Set; + +/** + * Set 工具类 + * + * @author 芋道源码 + */ +public class SetUtils { + + @SafeVarargs + public static Set asSet(T... objs) { + return CollUtil.newHashSet(objs); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java new file mode 100644 index 0000000..53b5574 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java @@ -0,0 +1,190 @@ +package cn.iocoder.yudao.framework.common.util.date; + +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.*; +import java.util.Calendar; +import java.util.Date; + +/** + * 时间工具类 + * + * @author 芋道源码 + */ +public class DateUtils { + + /** + * 时区 - 默认 + */ + public static final String TIME_ZONE_DEFAULT = "GMT+8"; + + /** + * 秒转换成毫秒 + */ + public static final long SECOND_MILLIS = 1000; + + public static final String FORMAT_YEAR_MONTH_DAY = "yyyy-MM-dd"; + + public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; + + public static final String FORMAT_HOUR_MINUTE_SECOND = "HH:mm:ss"; + + /** + * 将 LocalDateTime 转换成 Date + * + * @param date LocalDateTime + * @return LocalDateTime + */ + public static Date of(LocalDateTime date) { + if (date == null) { + return null; + } + // 将此日期时间与时区相结合以创建 ZonedDateTime + ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault()); + // 本地时间线 LocalDateTime 到即时时间线 Instant 时间戳 + Instant instant = zonedDateTime.toInstant(); + // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间 + return Date.from(instant); + } + + /** + * 将 Date 转换成 LocalDateTime + * + * @param date Date + * @return LocalDateTime + */ + public static LocalDateTime of(Date date) { + if (date == null) { + return null; + } + // 转为时间戳 + Instant instant = date.toInstant(); + // UTC时间(世界协调时间,UTC + 00:00)转北京(北京,UTC + 8:00)时间 + return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + } + + public static Date addTime(Duration duration) { + return new Date(System.currentTimeMillis() + duration.toMillis()); + } + + public static boolean isExpired(Date time) { + return System.currentTimeMillis() > time.getTime(); + } + + public static boolean isExpired(LocalDateTime time) { + LocalDateTime now = LocalDateTime.now(); + return now.isAfter(time); + } + + public static long diff(Date endTime, Date startTime) { + return endTime.getTime() - startTime.getTime(); + } + + /** + * 创建指定时间 + * + * @param year 年 + * @param mouth 月 + * @param day 日 + * @return 指定时间 + */ + public static Date buildTime(int year, int mouth, int day) { + return buildTime(year, mouth, day, 0, 0, 0); + } + + /** + * 创建指定时间 + * + * @param year 年 + * @param mouth 月 + * @param day 日 + * @param hour 小时 + * @param minute 分钟 + * @param second 秒 + * @return 指定时间 + */ + public static Date buildTime(int year, int mouth, int day, + int hour, int minute, int second) { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, mouth - 1); + calendar.set(Calendar.DAY_OF_MONTH, day); + calendar.set(Calendar.HOUR_OF_DAY, hour); + calendar.set(Calendar.MINUTE, minute); + calendar.set(Calendar.SECOND, second); + calendar.set(Calendar.MILLISECOND, 0); // 一般情况下,都是 0 毫秒 + return calendar.getTime(); + } + + public static Date max(Date a, Date b) { + if (a == null) { + return b; + } + if (b == null) { + return a; + } + return a.compareTo(b) > 0 ? a : b; + } + + public static LocalDateTime max(LocalDateTime a, LocalDateTime b) { + if (a == null) { + return b; + } + if (b == null) { + return a; + } + return a.isAfter(b) ? a : b; + } + + /** + * 计算当期时间相差的日期 + * + * @param field 日历字段.
    eg:Calendar.MONTH,Calendar.DAY_OF_MONTH,
    Calendar.HOUR_OF_DAY等. + * @param amount 相差的数值 + * @return 计算后的日志 + */ + public static Date addDate(int field, int amount) { + return addDate(null, field, amount); + } + + /** + * 计算当期时间相差的日期 + * + * @param date 设置时间 + * @param field 日历字段 例如说,{@link Calendar#DAY_OF_MONTH} 等 + * @param amount 相差的数值 + * @return 计算后的日志 + */ + public static Date addDate(Date date, int field, int amount) { + if (amount == 0) { + return date; + } + Calendar c = Calendar.getInstance(); + if (date != null) { + c.setTime(date); + } + c.add(field, amount); + return c.getTime(); + } + + /** + * 是否今天 + * + * @param date 日期 + * @return 是否 + */ + public static boolean isToday(LocalDateTime date) { + return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now()); + } + + /** + * 是否昨天 + * + * @param date 日期 + * @return 是否 + */ + public static boolean isYesterday(LocalDateTime date) { + return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now().minusDays(1)); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java new file mode 100644 index 0000000..59656cb --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/LocalDateTimeUtils.java @@ -0,0 +1,135 @@ +package cn.iocoder.yudao.framework.common.util.date; + +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalAdjusters; + +/** + * 时间工具类,用于 {@link java.time.LocalDateTime} + * + * @author 芋道源码 + */ +public class LocalDateTimeUtils { + + /** + * 空的 LocalDateTime 对象,主要用于 DB 唯一索引的默认值 + */ + public static LocalDateTime EMPTY = buildTime(1970, 1, 1); + + public static LocalDateTime addTime(Duration duration) { + return LocalDateTime.now().plus(duration); + } + + public static LocalDateTime minusTime(Duration duration) { + return LocalDateTime.now().minus(duration); + } + + public static boolean beforeNow(LocalDateTime date) { + return date.isBefore(LocalDateTime.now()); + } + + public static boolean afterNow(LocalDateTime date) { + return date.isAfter(LocalDateTime.now()); + } + + /** + * 创建指定时间 + * + * @param year 年 + * @param mouth 月 + * @param day 日 + * @return 指定时间 + */ + public static LocalDateTime buildTime(int year, int mouth, int day) { + return LocalDateTime.of(year, mouth, day, 0, 0, 0); + } + + public static LocalDateTime[] buildBetweenTime(int year1, int mouth1, int day1, + int year2, int mouth2, int day2) { + return new LocalDateTime[]{buildTime(year1, mouth1, day1), buildTime(year2, mouth2, day2)}; + } + + /** + * 判断当前时间是否在该时间范围内 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 是否 + */ + public static boolean isBetween(LocalDateTime startTime, LocalDateTime endTime) { + if (startTime == null || endTime == null) { + return false; + } + return LocalDateTimeUtil.isIn(LocalDateTime.now(), startTime, endTime); + } + + /** + * 判断当前时间是否在该时间范围内 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 是否 + */ + public static boolean isBetween(String startTime, String endTime) { + if (startTime == null || endTime == null) { + return false; + } + LocalDate nowDate = LocalDate.now(); + return LocalDateTimeUtil.isIn(LocalDateTime.now(), + LocalDateTime.of(nowDate, LocalTime.parse(startTime)), + LocalDateTime.of(nowDate, LocalTime.parse(endTime))); + } + + /** + * 判断时间段是否重叠 + * + * @param startTime1 开始 time1 + * @param endTime1 结束 time1 + * @param startTime2 开始 time2 + * @param endTime2 结束 time2 + * @return 重叠:true 不重叠:false + */ + public static boolean isOverlap(LocalTime startTime1, LocalTime endTime1, LocalTime startTime2, LocalTime endTime2) { + LocalDate nowDate = LocalDate.now(); + return LocalDateTimeUtil.isOverlap(LocalDateTime.of(nowDate, startTime1), LocalDateTime.of(nowDate, endTime1), + LocalDateTime.of(nowDate, startTime2), LocalDateTime.of(nowDate, endTime2)); + } + + /** + * 获取指定日期所在的月份的开始时间 + * 例如:2023-09-30 00:00:00,000 + * + * @param date 日期 + * @return 月份的开始时间 + */ + public static LocalDateTime beginOfMonth(LocalDateTime date) { + return date.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN); + } + + /** + * 获取指定日期所在的月份的最后时间 + * 例如:2023-09-30 23:59:59,999 + * + * @param date 日期 + * @return 月份的结束时间 + */ + public static LocalDateTime endOfMonth(LocalDateTime date) { + return date.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX); + } + + /** + * 获取指定日期到现在过了几天,如果指定日期在当前日期之后,获取结果为负 + * + * @param dateTime 日期 + * @return 相差天数 + */ + public static Long between(LocalDateTime dateTime) { + return LocalDateTimeUtil.between(dateTime, LocalDateTime.now(), ChronoUnit.DAYS); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java new file mode 100644 index 0000000..d36b2c3 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java @@ -0,0 +1,126 @@ +package cn.iocoder.yudao.framework.common.util.http; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.map.TableMap; +import cn.hutool.core.net.url.UrlBuilder; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import org.springframework.util.StringUtils; +import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; + +import javax.servlet.http.HttpServletRequest; +import java.net.URI; +import java.nio.charset.Charset; +import java.util.Map; + +/** + * HTTP 工具类 + * + * @author 芋道源码 + */ +public class HttpUtils { + + @SuppressWarnings("unchecked") + public static String replaceUrlQuery(String url, String key, String value) { + UrlBuilder builder = UrlBuilder.of(url, Charset.defaultCharset()); + // 先移除 + TableMap query = (TableMap) + ReflectUtil.getFieldValue(builder.getQuery(), "query"); + query.remove(key); + // 后添加 + builder.addQuery(key, value); + return builder.build(); + } + + private String append(String base, Map query, boolean fragment) { + return append(base, query, null, fragment); + } + + /** + * 拼接 URL + * + * copy from Spring Security OAuth2 的 AuthorizationEndpoint 类的 append 方法 + * + * @param base 基础 URL + * @param query 查询参数 + * @param keys query 的 key,对应的原本的 key 的映射。例如说 query 里有个 key 是 xx,实际它的 key 是 extra_xx,则通过 keys 里添加这个映射 + * @param fragment URL 的 fragment,即拼接到 # 中 + * @return 拼接后的 URL + */ + public static String append(String base, Map query, Map keys, boolean fragment) { + UriComponentsBuilder template = UriComponentsBuilder.newInstance(); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(base); + URI redirectUri; + try { + // assume it's encoded to start with (if it came in over the wire) + redirectUri = builder.build(true).toUri(); + } catch (Exception e) { + // ... but allow client registrations to contain hard-coded non-encoded values + redirectUri = builder.build().toUri(); + builder = UriComponentsBuilder.fromUri(redirectUri); + } + template.scheme(redirectUri.getScheme()).port(redirectUri.getPort()).host(redirectUri.getHost()) + .userInfo(redirectUri.getUserInfo()).path(redirectUri.getPath()); + + if (fragment) { + StringBuilder values = new StringBuilder(); + if (redirectUri.getFragment() != null) { + String append = redirectUri.getFragment(); + values.append(append); + } + for (String key : query.keySet()) { + if (values.length() > 0) { + values.append("&"); + } + String name = key; + if (keys != null && keys.containsKey(key)) { + name = keys.get(key); + } + values.append(name).append("={").append(key).append("}"); + } + if (values.length() > 0) { + template.fragment(values.toString()); + } + UriComponents encoded = template.build().expand(query).encode(); + builder.fragment(encoded.getFragment()); + } else { + for (String key : query.keySet()) { + String name = key; + if (keys != null && keys.containsKey(key)) { + name = keys.get(key); + } + template.queryParam(name, "{" + key + "}"); + } + template.fragment(redirectUri.getFragment()); + UriComponents encoded = template.build().expand(query).encode(); + builder.query(encoded.getQuery()); + } + return builder.build().toUriString(); + } + + public static String[] obtainBasicAuthorization(HttpServletRequest request) { + String clientId; + String clientSecret; + // 先从 Header 中获取 + String authorization = request.getHeader("Authorization"); + authorization = StrUtil.subAfter(authorization, "Basic ", true); + if (StringUtils.hasText(authorization)) { + authorization = Base64.decodeStr(authorization); + clientId = StrUtil.subBefore(authorization, ":", false); + clientSecret = StrUtil.subAfter(authorization, ":", false); + // 再从 Param 中获取 + } else { + clientId = request.getParameter("client_id"); + clientSecret = request.getParameter("client_secret"); + } + + // 如果两者非空,则返回 + if (StrUtil.isNotEmpty(clientId) && StrUtil.isNotEmpty(clientSecret)) { + return new String[]{clientId, clientSecret}; + } + return null; + } + + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java new file mode 100644 index 0000000..2f870d7 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.framework.common.util.io; + +import cn.hutool.core.io.FileTypeUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.DigestUtil; +import lombok.SneakyThrows; + +import java.io.ByteArrayInputStream; +import java.io.File; + +/** + * 文件工具类 + * + * @author 芋道源码 + */ +public class FileUtils { + + /** + * 创建临时文件 + * 该文件会在 JVM 退出时,进行删除 + * + * @param data 文件内容 + * @return 文件 + */ + @SneakyThrows + public static File createTempFile(String data) { + File file = createTempFile(); + // 写入内容 + FileUtil.writeUtf8String(data, file); + return file; + } + + /** + * 创建临时文件 + * 该文件会在 JVM 退出时,进行删除 + * + * @param data 文件内容 + * @return 文件 + */ + @SneakyThrows + public static File createTempFile(byte[] data) { + File file = createTempFile(); + // 写入内容 + FileUtil.writeBytes(data, file); + return file; + } + + /** + * 创建临时文件,无内容 + * 该文件会在 JVM 退出时,进行删除 + * + * @return 文件 + */ + @SneakyThrows + public static File createTempFile() { + // 创建文件,通过 UUID 保证唯一 + File file = File.createTempFile(IdUtil.simpleUUID(), null); + // 标记 JVM 退出时,自动删除 + file.deleteOnExit(); + return file; + } + + /** + * 生成文件路径 + * + * @param content 文件内容 + * @param originalName 原始文件名 + * @return path,唯一不可重复 + */ + public static String generatePath(byte[] content, String originalName) { + String sha256Hex = DigestUtil.sha256Hex(content); + // 情况一:如果存在 name,则优先使用 name 的后缀 + if (StrUtil.isNotBlank(originalName)) { + String extName = FileNameUtil.extName(originalName); + return StrUtil.isBlank(extName) ? sha256Hex : sha256Hex + "." + extName; + } + // 情况二:基于 content 计算 + return sha256Hex + '.' + FileTypeUtil.getType(new ByteArrayInputStream(content)); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java new file mode 100644 index 0000000..4a19f47 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.common.util.io; + +import cn.hutool.core.io.IORuntimeException; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; + +import java.io.InputStream; + +/** + * IO 工具类,用于 {@link cn.hutool.core.io.IoUtil} 缺失的方法 + * + * @author 芋道源码 + */ +public class IoUtils { + + /** + * 从流中读取 UTF8 编码的内容 + * + * @param in 输入流 + * @param isClose 是否关闭 + * @return 内容 + * @throws IORuntimeException IO 异常 + */ + public static String readUtf8(InputStream in, boolean isClose) throws IORuntimeException { + return StrUtil.utf8Str(IoUtil.read(in, isClose)); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java new file mode 100644 index 0000000..2c7288e --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java @@ -0,0 +1,187 @@ +package cn.iocoder.yudao.framework.common.util.json; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +/** + * JSON 工具类 + * + * @author 芋道源码 + */ +@Slf4j +public class JsonUtils { + + private static ObjectMapper objectMapper = new ObjectMapper(); + + static { + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 忽略 null 值 + objectMapper.registerModules(new JavaTimeModule()); // 解决 LocalDateTime 的序列化 + } + + /** + * 初始化 objectMapper 属性 + *

    + * 通过这样的方式,使用 Spring 创建的 ObjectMapper Bean + * + * @param objectMapper ObjectMapper 对象 + */ + public static void init(ObjectMapper objectMapper) { + JsonUtils.objectMapper = objectMapper; + } + + @SneakyThrows + public static String toJsonString(Object object) { + return objectMapper.writeValueAsString(object); + } + + @SneakyThrows + public static byte[] toJsonByte(Object object) { + return objectMapper.writeValueAsBytes(object); + } + + @SneakyThrows + public static String toJsonPrettyString(Object object) { + return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object); + } + + public static T parseObject(String text, Class clazz) { + if (StrUtil.isEmpty(text)) { + return null; + } + try { + return objectMapper.readValue(text, clazz); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static T parseObject(String text, String path, Class clazz) { + if (StrUtil.isEmpty(text)) { + return null; + } + try { + JsonNode treeNode = objectMapper.readTree(text); + JsonNode pathNode = treeNode.path(path); + return objectMapper.readValue(pathNode.toString(), clazz); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static T parseObject(String text, Type type) { + if (StrUtil.isEmpty(text)) { + return null; + } + try { + return objectMapper.readValue(text, objectMapper.getTypeFactory().constructType(type)); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + /** + * 将字符串解析成指定类型的对象 + * 使用 {@link #parseObject(String, Class)} 时,在@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 的场景下, + * 如果 text 没有 class 属性,则会报错。此时,使用这个方法,可以解决。 + * + * @param text 字符串 + * @param clazz 类型 + * @return 对象 + */ + public static T parseObject2(String text, Class clazz) { + if (StrUtil.isEmpty(text)) { + return null; + } + return JSONUtil.toBean(text, clazz); + } + + public static T parseObject(byte[] bytes, Class clazz) { + if (ArrayUtil.isEmpty(bytes)) { + return null; + } + try { + return objectMapper.readValue(bytes, clazz); + } catch (IOException e) { + log.error("json parse err,json:{}", bytes, e); + throw new RuntimeException(e); + } + } + + public static T parseObject(String text, TypeReference typeReference) { + try { + return objectMapper.readValue(text, typeReference); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static List parseArray(String text, Class clazz) { + if (StrUtil.isEmpty(text)) { + return new ArrayList<>(); + } + try { + return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz)); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static List parseArray(String text, String path, Class clazz) { + if (StrUtil.isEmpty(text)) { + return null; + } + try { + JsonNode treeNode = objectMapper.readTree(text); + JsonNode pathNode = treeNode.path(path); + return objectMapper.readValue(pathNode.toString(), objectMapper.getTypeFactory().constructCollectionType(List.class, clazz)); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static JsonNode parseTree(String text) { + try { + return objectMapper.readTree(text); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static JsonNode parseTree(byte[] text) { + try { + return objectMapper.readTree(text); + } catch (IOException e) { + log.error("json parse err,json:{}", text, e); + throw new RuntimeException(e); + } + } + + public static boolean isJson(String text) { + return JSONUtil.isTypeJSON(text); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/monitor/TracerUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/monitor/TracerUtils.java new file mode 100644 index 0000000..81092b6 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/monitor/TracerUtils.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.framework.common.util.monitor; + +import org.apache.skywalking.apm.toolkit.trace.TraceContext; + +/** + * 链路追踪工具类 + * + * 考虑到每个 starter 都需要用到该工具类,所以放到 common 模块下的 util 包下 + * + * @author 芋道源码 + */ +public class TracerUtils { + + /** + * 私有化构造方法 + */ + private TracerUtils() { + } + + /** + * 获得链路追踪编号,直接返回 SkyWalking 的 TraceId。 + * 如果不存在的话为空字符串!!! + * + * @return 链路追踪编号 + */ + public static String getTraceId() { + return TraceContext.traceId(); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/MoneyUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/MoneyUtils.java new file mode 100644 index 0000000..90888d7 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/MoneyUtils.java @@ -0,0 +1,131 @@ +package cn.iocoder.yudao.framework.common.util.number; + +import cn.hutool.core.math.Money; +import cn.hutool.core.util.NumberUtil; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 金额工具类 + * + * @author 芋道源码 + */ +public class MoneyUtils { + + /** + * 金额的小数位数 + */ + private static final int PRICE_SCALE = 2; + + /** + * 百分比对应的 BigDecimal 对象 + */ + public static final BigDecimal PERCENT_100 = BigDecimal.valueOf(100); + + /** + * 计算百分比金额,四舍五入 + * + * @param price 金额 + * @param rate 百分比,例如说 56.77% 则传入 56.77 + * @return 百分比金额 + */ + public static Integer calculateRatePrice(Integer price, Double rate) { + return calculateRatePrice(price, rate, 0, RoundingMode.HALF_UP).intValue(); + } + + /** + * 计算百分比金额,向下传入 + * + * @param price 金额 + * @param rate 百分比,例如说 56.77% 则传入 56.77 + * @return 百分比金额 + */ + public static Integer calculateRatePriceFloor(Integer price, Double rate) { + return calculateRatePrice(price, rate, 0, RoundingMode.FLOOR).intValue(); + } + + /** + * 计算百分比金额 + * + * @param price 金额(单位分) + * @param count 数量 + * @param percent 折扣(单位分),列如 60.2%,则传入 6020 + * @return 商品总价 + */ + public static Integer calculator(Integer price, Integer count, Integer percent) { + price = price * count; + if (percent == null) { + return price; + } + return MoneyUtils.calculateRatePriceFloor(price, (double) (percent / 100)); + } + + /** + * 计算百分比金额 + * + * @param price 金额 + * @param rate 百分比,例如说 56.77% 则传入 56.77 + * @param scale 保留小数位数 + * @param roundingMode 舍入模式 + */ + public static BigDecimal calculateRatePrice(Number price, Number rate, int scale, RoundingMode roundingMode) { + return NumberUtil.toBigDecimal(price).multiply(NumberUtil.toBigDecimal(rate)) // 乘以 + .divide(BigDecimal.valueOf(100), scale, roundingMode); // 除以 100 + } + + /** + * 分转元 + * + * @param fen 分 + * @return 元 + */ + public static BigDecimal fenToYuan(int fen) { + return new Money(0, fen).getAmount(); + } + + /** + * 分转元(字符串) + * + * 例如说 fen 为 1 时,则结果为 0.01 + * + * @param fen 分 + * @return 元 + */ + public static String fenToYuanStr(int fen) { + return new Money(0, fen).toString(); + } + + /** + * 金额相乘,默认进行四舍五入 + * + * 位数:{@link #PRICE_SCALE} + * + * @param price 金额 + * @param count 数量 + * @return 金额相乘结果 + */ + public static BigDecimal priceMultiply(BigDecimal price, BigDecimal count) { + if (price == null || count == null) { + return null; + } + return price.multiply(count).setScale(PRICE_SCALE, RoundingMode.HALF_UP); + } + + /** + * 金额相乘(百分比),默认进行四舍五入 + * + * 位数:{@link #PRICE_SCALE} + * + * @param price 金额 + * @param percent 百分比 + * @return 金额相乘结果 + */ + public static BigDecimal priceMultiplyPercent(BigDecimal price, BigDecimal percent) { + if (price == null || percent == null) { + return null; + } + return price.multiply(percent).divide(PERCENT_100, PRICE_SCALE, RoundingMode.HALF_UP); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java new file mode 100644 index 0000000..ea131e8 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/NumberUtils.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.framework.common.util.number; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; + +import java.math.BigDecimal; + +/** + * 数字的工具类,补全 {@link cn.hutool.core.util.NumberUtil} 的功能 + * + * @author 芋道源码 + */ +public class NumberUtils { + + public static Long parseLong(String str) { + return StrUtil.isNotEmpty(str) ? Long.valueOf(str) : null; + } + + /** + * 通过经纬度获取地球上两点之间的距离 + * + * 参考 <DistanceUtil> 实现,目前它已经被 hutool 删除 + * + * @param lat1 经度1 + * @param lng1 纬度1 + * @param lat2 经度2 + * @param lng2 纬度2 + * @return 距离,单位:千米 + */ + public static double getDistance(double lat1, double lng1, double lat2, double lng2) { + double radLat1 = lat1 * Math.PI / 180.0; + double radLat2 = lat2 * Math.PI / 180.0; + double a = radLat1 - radLat2; + double b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0; + double distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + + Math.cos(radLat1) * Math.cos(radLat2) + * Math.pow(Math.sin(b / 2), 2))); + distance = distance * 6378.137; + distance = Math.round(distance * 10000d) / 10000d; + return distance; + } + + /** + * 提供精确的乘法运算 + * + * 和 hutool {@link NumberUtil#mul(BigDecimal...)} 的差别是,如果存在 null,则返回 null + * + * @param values 多个被乘值 + * @return 积 + */ + public static BigDecimal mul(BigDecimal... values) { + for (BigDecimal value : values) { + if (value == null) { + return null; + } + } + return NumberUtil.mul(values); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java new file mode 100644 index 0000000..720b565 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.framework.common.util.object; + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; + +import java.util.List; +import java.util.function.Consumer; + +/** + * Bean 工具类 + * + * 1. 默认使用 {@link cn.hutool.core.bean.BeanUtil} 作为实现类,虽然不同 bean 工具的性能有差别,但是对绝大多数同学的项目,不用在意这点性能 + * 2. 针对复杂的对象转换,可以搜参考 AuthConvert 实现,通过 mapstruct + default 配合实现 + * + * @author 芋道源码 + */ +public class BeanUtils { + + public static T toBean(Object source, Class targetClass) { + return BeanUtil.toBean(source, targetClass); + } + + public static T toBean(Object source, Class targetClass, Consumer peek) { + T target = toBean(source, targetClass); + if (target != null) { + peek.accept(target); + } + return target; + } + + public static List toBean(List source, Class targetType) { + if (source == null) { + return null; + } + return CollectionUtils.convertList(source, s -> toBean(s, targetType)); + } + + public static List toBean(List source, Class targetType, Consumer peek) { + List list = toBean(source, targetType); + if (list != null) { + list.forEach(peek); + } + return list; + } + + public static PageResult toBean(PageResult source, Class targetType) { + return toBean(source, targetType, null); + } + + public static PageResult toBean(PageResult source, Class targetType, Consumer peek) { + if (source == null) { + return null; + } + List list = toBean(source.getList(), targetType); + if (peek != null) { + list.forEach(peek); + } + return new PageResult<>(list, source.getTotal()); + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/ObjectUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/ObjectUtils.java new file mode 100644 index 0000000..c08316d --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/ObjectUtils.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.framework.common.util.object; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReflectUtil; + +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.function.Consumer; + +/** + * Object 工具类 + * + * @author 芋道源码 + */ +public class ObjectUtils { + + /** + * 复制对象,并忽略 Id 编号 + * + * @param object 被复制对象 + * @param consumer 消费者,可以二次编辑被复制对象 + * @return 复制后的对象 + */ + public static T cloneIgnoreId(T object, Consumer consumer) { + T result = ObjectUtil.clone(object); + // 忽略 id 编号 + Field field = ReflectUtil.getField(object.getClass(), "id"); + if (field != null) { + ReflectUtil.setFieldValue(result, field, null); + } + // 二次编辑 + if (result != null) { + consumer.accept(result); + } + return result; + } + + public static > T max(T obj1, T obj2) { + if (obj1 == null) { + return obj2; + } + if (obj2 == null) { + return obj1; + } + return obj1.compareTo(obj2) > 0 ? obj1 : obj2; + } + + @SafeVarargs + public static T defaultIfNull(T... array) { + for (T item : array) { + if (item != null) { + return item; + } + } + return null; + } + + @SafeVarargs + public static boolean equalsAny(T obj, T... array) { + return Arrays.asList(array).contains(obj); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/PageUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/PageUtils.java new file mode 100644 index 0000000..cf077db --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/PageUtils.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.framework.common.util.object; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.func.Func1; +import cn.hutool.core.lang.func.LambdaUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.SortablePageParam; +import cn.iocoder.yudao.framework.common.pojo.SortingField; +import org.springframework.util.Assert; + +import static java.util.Collections.singletonList; + +/** + * {@link cn.iocoder.yudao.framework.common.pojo.PageParam} 工具类 + * + * @author 芋道源码 + */ +public class PageUtils { + + private static final Object[] ORDER_TYPES = new String[]{SortingField.ORDER_ASC, SortingField.ORDER_DESC}; + + public static int getStart(PageParam pageParam) { + return (pageParam.getPageNo() - 1) * pageParam.getPageSize(); + } + + /** + * 构建排序字段(默认倒序) + * + * @param func 排序字段的 Lambda 表达式 + * @param 排序字段所属的类型 + * @return 排序字段 + */ + public static SortingField buildSortingField(Func1 func) { + return buildSortingField(func, SortingField.ORDER_DESC); + } + + /** + * 构建排序字段 + * + * @param func 排序字段的 Lambda 表达式 + * @param order 排序类型 {@link SortingField#ORDER_ASC} {@link SortingField#ORDER_DESC} + * @param 排序字段所属的类型 + * @return 排序字段 + */ + public static SortingField buildSortingField(Func1 func, String order) { + Assert.isTrue(ArrayUtil.contains(ORDER_TYPES, order), String.format("字段的排序类型只能是 %s/%s", ORDER_TYPES)); + + String fieldName = LambdaUtil.getFieldName(func); + return new SortingField(fieldName, order); + } + + /** + * 构建默认的排序字段 + * 如果排序字段为空,则设置排序字段;否则忽略 + * + * @param sortablePageParam 排序分页查询参数 + * @param func 排序字段的 Lambda 表达式 + * @param 排序字段所属的类型 + */ + public static void buildDefaultSortingField(SortablePageParam sortablePageParam, Func1 func) { + if (sortablePageParam != null && CollUtil.isEmpty(sortablePageParam.getSortingFields())) { + sortablePageParam.setSortingFields(singletonList(buildSortingField(func))); + } + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/package-info.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/package-info.java new file mode 100644 index 0000000..cd8ae6b --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/package-info.java @@ -0,0 +1,7 @@ +/** + * 对于工具类的选择,优先查找 Hutool 中有没对应的方法 + * 如果没有,则自己封装对应的工具类,以 Utils 结尾,用于区分 + * + * ps:如果担心 Hutool 存在坑的问题,可以阅读 Hutool 的实现源码,以确保可靠性。并且,可以补充相关的单元测试。 + */ +package cn.iocoder.yudao.framework.common.util; diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/servlet/ServletUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/servlet/ServletUtils.java new file mode 100644 index 0000000..4460798 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/servlet/ServletUtils.java @@ -0,0 +1,111 @@ +package cn.iocoder.yudao.framework.common.util.servlet; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.servlet.ServletUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import org.springframework.http.MediaType; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.Map; + +/** + * 客户端工具类 + * + * @author 芋道源码 + */ +public class ServletUtils { + + /** + * 返回 JSON 字符串 + * + * @param response 响应 + * @param object 对象,会序列化成 JSON 字符串 + */ + @SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码 + public static void writeJSON(HttpServletResponse response, Object object) { + String content = JsonUtils.toJsonString(object); + ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE); + } + + /** + * 返回附件 + * + * @param response 响应 + * @param filename 文件名 + * @param content 附件内容 + */ + public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException { + // 设置 header 和 contentType + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + // 输出附件 + IoUtil.write(response.getOutputStream(), false, content); + } + + /** + * @param request 请求 + * @return ua + */ + public static String getUserAgent(HttpServletRequest request) { + String ua = request.getHeader("User-Agent"); + return ua != null ? ua : ""; + } + + /** + * 获得请求 + * + * @return HttpServletRequest + */ + public static HttpServletRequest getRequest() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if (!(requestAttributes instanceof ServletRequestAttributes)) { + return null; + } + return ((ServletRequestAttributes) requestAttributes).getRequest(); + } + + public static String getUserAgent() { + HttpServletRequest request = getRequest(); + if (request == null) { + return null; + } + return getUserAgent(request); + } + + public static String getClientIP() { + HttpServletRequest request = getRequest(); + if (request == null) { + return null; + } + return ServletUtil.getClientIP(request); + } + + public static boolean isJsonRequest(ServletRequest request) { + return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE); + } + + public static String getBody(HttpServletRequest request) { + return ServletUtil.getBody(request); + } + + public static byte[] getBodyBytes(HttpServletRequest request) { + return ServletUtil.getBodyBytes(request); + } + + public static String getClientIP(HttpServletRequest request) { + return ServletUtil.getClientIP(request); + } + + public static Map getParamMap(HttpServletRequest request) { + return ServletUtil.getParamMap(request); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringAopUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringAopUtils.java new file mode 100644 index 0000000..b71342c --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringAopUtils.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.common.util.spring; + +import cn.hutool.core.bean.BeanUtil; +import org.springframework.aop.framework.AdvisedSupport; +import org.springframework.aop.framework.AopProxy; +import org.springframework.aop.support.AopUtils; + +/** + * Spring AOP 工具类 + * + * 参考波克尔 http://www.bubuko.com/infodetail-3471885.html 实现 + */ +public class SpringAopUtils { + + /** + * 获取代理的目标对象 + * + * @param proxy 代理对象 + * @return 目标对象 + */ + public static Object getTarget(Object proxy) throws Exception { + // 不是代理对象 + if (!AopUtils.isAopProxy(proxy)) { + return proxy; + } + // Jdk 代理 + if (AopUtils.isJdkDynamicProxy(proxy)) { + return getJdkDynamicProxyTargetObject(proxy); + } + // Cglib 代理 + return getCglibProxyTargetObject(proxy); + } + + private static Object getCglibProxyTargetObject(Object proxy) throws Exception { + Object dynamicAdvisedInterceptor = BeanUtil.getFieldValue(proxy, "CGLIB$CALLBACK_0"); + AdvisedSupport advisedSupport = (AdvisedSupport) BeanUtil.getFieldValue(dynamicAdvisedInterceptor, "advised"); + return advisedSupport.getTargetSource().getTarget(); + } + + private static Object getJdkDynamicProxyTargetObject(Object proxy) throws Exception { + AopProxy aopProxy = (AopProxy) BeanUtil.getFieldValue(proxy, "h"); + AdvisedSupport advisedSupport = (AdvisedSupport) BeanUtil.getFieldValue(aopProxy, "advised"); + return advisedSupport.getTargetSource().getTarget(); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java new file mode 100644 index 0000000..9a7f881 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/spring/SpringExpressionUtils.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.framework.common.util.spring; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.core.ParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; + +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Spring EL 表达式的工具类 + * + * @author mashu + */ +public class SpringExpressionUtils { + + /** + * Spring EL 表达式解析器 + */ + private static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); + /** + * 参数名发现器 + */ + private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); + + private SpringExpressionUtils() { + } + + /** + * 从切面中,单个解析 EL 表达式的结果 + * + * @param joinPoint 切面点 + * @param expressionString EL 表达式数组 + * @return 执行界面 + */ + public static Object parseExpression(JoinPoint joinPoint, String expressionString) { + Map result = parseExpressions(joinPoint, Collections.singletonList(expressionString)); + return result.get(expressionString); + } + + /** + * 从切面中,批量解析 EL 表达式的结果 + * + * @param joinPoint 切面点 + * @param expressionStrings EL 表达式数组 + * @return 结果,key 为表达式,value 为对应值 + */ + public static Map parseExpressions(JoinPoint joinPoint, List expressionStrings) { + // 如果为空,则不进行解析 + if (CollUtil.isEmpty(expressionStrings)) { + return MapUtil.newHashMap(); + } + + // 第一步,构建解析的上下文 EvaluationContext + // 通过 joinPoint 获取被注解方法 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + Method method = methodSignature.getMethod(); + // 使用 spring 的 ParameterNameDiscoverer 获取方法形参名数组 + String[] paramNames = PARAMETER_NAME_DISCOVERER.getParameterNames(method); + // Spring 的表达式上下文对象 + EvaluationContext context = new StandardEvaluationContext(); + // 给上下文赋值 + if (ArrayUtil.isNotEmpty(paramNames)) { + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < paramNames.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + } + + // 第二步,逐个参数解析 + Map result = MapUtil.newHashMap(expressionStrings.size(), true); + expressionStrings.forEach(key -> { + Object value = EXPRESSION_PARSER.parseExpression(key).getValue(context); + result.put(key, value); + }); + return result; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/string/StrUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/string/StrUtils.java new file mode 100644 index 0000000..08cea83 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/string/StrUtils.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.framework.common.util.string; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 字符串工具类 + * + * @author 芋道源码 + */ +public class StrUtils { + + public static String maxLength(CharSequence str, int maxLength) { + return StrUtil.maxLength(str, maxLength - 3); // -3 的原因,是该方法会补充 ... 恰好 + } + + /** + * 给定字符串是否以任何一个字符串开始 + * 给定字符串和数组为空都返回 false + * + * @param str 给定字符串 + * @param prefixes 需要检测的开始字符串 + * @since 3.0.6 + */ + public static boolean startWithAny(String str, Collection prefixes) { + if (StrUtil.isEmpty(str) || ArrayUtil.isEmpty(prefixes)) { + return false; + } + + for (CharSequence suffix : prefixes) { + if (StrUtil.startWith(str, suffix, false)) { + return true; + } + } + return false; + } + + public static List splitToLong(String value, CharSequence separator) { + long[] longs = StrUtil.splitToLong(value, separator); + return Arrays.stream(longs).boxed().collect(Collectors.toList()); + } + + public static List splitToInteger(String value, CharSequence separator) { + int[] integers = StrUtil.splitToInt(value, separator); + return Arrays.stream(integers).boxed().collect(Collectors.toList()); + } + + /** + * 移除字符串中,包含指定字符串的行 + * + * @param content 字符串 + * @param sequence 包含的字符串 + * @return 移除后的字符串 + */ + public static String removeLineContains(String content, String sequence) { + if (StrUtil.isEmpty(content) || StrUtil.isEmpty(sequence)) { + return content; + } + return Arrays.stream(content.split("\n")) + .filter(line -> !line.contains(sequence)) + .collect(Collectors.joining("\n")); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/validation/ValidationUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/validation/ValidationUtils.java new file mode 100644 index 0000000..436a9e6 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/validation/ValidationUtils.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.common.util.validation; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import org.springframework.util.StringUtils; + +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import javax.validation.Validation; +import javax.validation.Validator; +import java.util.Set; +import java.util.regex.Pattern; + +/** + * 校验工具类 + * + * @author 芋道源码 + */ +public class ValidationUtils { + + private static final Pattern PATTERN_MOBILE = Pattern.compile("^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[0,1,4-9])|(?:5[0-3,5-9])|(?:6[2,5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[0-3,5-9]))\\d{8}$"); + + private static final Pattern PATTERN_URL = Pattern.compile("^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); + + private static final Pattern PATTERN_XML_NCNAME = Pattern.compile("[a-zA-Z_][\\-_.0-9_a-zA-Z$]*"); + + public static boolean isMobile(String mobile) { + return StringUtils.hasText(mobile) + && PATTERN_MOBILE.matcher(mobile).matches(); + } + + public static boolean isURL(String url) { + return StringUtils.hasText(url) + && PATTERN_URL.matcher(url).matches(); + } + + public static boolean isXmlNCName(String str) { + return StringUtils.hasText(str) + && PATTERN_XML_NCNAME.matcher(str).matches(); + } + + public static void validate(Object object, Class... groups) { + Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); + Assert.notNull(validator); + validate(validator, object, groups); + } + + public static void validate(Validator validator, Object object, Class... groups) { + Set> constraintViolations = validator.validate(object, groups); + if (CollUtil.isNotEmpty(constraintViolations)) { + throw new ConstraintViolationException(constraintViolations); + } + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnum.java new file mode 100644 index 0000000..139b089 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnum.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.common.validation; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Target({ + ElementType.METHOD, + ElementType.FIELD, + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.PARAMETER, + ElementType.TYPE_USE +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = {InEnumValidator.class, InEnumCollectionValidator.class} +) +public @interface InEnum { + + /** + * @return 实现 EnumValuable 接口的 + */ + Class value(); + + String message() default "必须在指定范围 {value}"; + + Class[] groups() default {}; + + Class[] payload() default {}; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumCollectionValidator.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumCollectionValidator.java new file mode 100644 index 0000000..d20a717 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumCollectionValidator.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.common.validation; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class InEnumCollectionValidator implements ConstraintValidator> { + + private List values; + + @Override + public void initialize(InEnum annotation) { + IntArrayValuable[] values = annotation.value().getEnumConstants(); + if (values.length == 0) { + this.values = Collections.emptyList(); + } else { + this.values = Arrays.stream(values[0].array()).boxed().collect(Collectors.toList()); + } + } + + @Override + public boolean isValid(Collection list, ConstraintValidatorContext context) { + // 校验通过 + if (CollUtil.containsAll(values, list)) { + return true; + } + // 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值) + context.disableDefaultConstraintViolation(); // 禁用默认的 message 的值 + context.buildConstraintViolationWithTemplate(context.getDefaultConstraintMessageTemplate() + .replaceAll("\\{value}", CollUtil.join(list, ","))).addConstraintViolation(); // 重新添加错误提示语句 + return false; + } + +} + diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumValidator.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumValidator.java new file mode 100644 index 0000000..6cd08ca --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/InEnumValidator.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.framework.common.validation; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class InEnumValidator implements ConstraintValidator { + + private List values; + + @Override + public void initialize(InEnum annotation) { + IntArrayValuable[] values = annotation.value().getEnumConstants(); + if (values.length == 0) { + this.values = Collections.emptyList(); + } else { + this.values = Arrays.stream(values[0].array()).boxed().collect(Collectors.toList()); + } + } + + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + // 为空时,默认不校验,即认为通过 + if (value == null) { + return true; + } + // 校验通过 + if (values.contains(value)) { + return true; + } + // 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值) + context.disableDefaultConstraintViolation(); // 禁用默认的 message 的值 + context.buildConstraintViolationWithTemplate(context.getDefaultConstraintMessageTemplate() + .replaceAll("\\{value}", values.toString())).addConstraintViolation(); // 重新添加错误提示语句 + return false; + } + +} + diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Mobile.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Mobile.java new file mode 100644 index 0000000..4c7cb10 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Mobile.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.common.validation; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Target({ + ElementType.METHOD, + ElementType.FIELD, + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.PARAMETER, + ElementType.TYPE_USE +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = MobileValidator.class +) +public @interface Mobile { + + String message() default "手机号格式不正确"; + + Class[] groups() default {}; + + Class[] payload() default {}; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/MobileValidator.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/MobileValidator.java new file mode 100644 index 0000000..0bddfcb --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/MobileValidator.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.common.validation; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +public class MobileValidator implements ConstraintValidator { + + @Override + public void initialize(Mobile annotation) { + } + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + // 如果手机号为空,默认不校验,即校验通过 + if (StrUtil.isEmpty(value)) { + return true; + } + // 校验手机 + return ValidationUtils.isMobile(value); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Telephone.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Telephone.java new file mode 100644 index 0000000..910601f --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/Telephone.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.common.validation; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Target({ + ElementType.METHOD, + ElementType.FIELD, + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.PARAMETER, + ElementType.TYPE_USE +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = TelephoneValidator.class +) +public @interface Telephone { + + String message() default "电话格式不正确"; + + Class[] groups() default {}; + + Class[] payload() default {}; + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/TelephoneValidator.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/TelephoneValidator.java new file mode 100644 index 0000000..d214cfe --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/TelephoneValidator.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.common.validation; + +import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.PhoneUtil; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +public class TelephoneValidator implements ConstraintValidator { + + @Override + public void initialize(Telephone annotation) { + } + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + // 如果手机号为空,默认不校验,即校验通过 + if (CharSequenceUtil.isEmpty(value)) { + return true; + } + // 校验手机 + return PhoneUtil.isTel(value) || PhoneUtil.isPhone(value); + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/package-info.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/package-info.java new file mode 100644 index 0000000..aa95c69 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/validation/package-info.java @@ -0,0 +1,4 @@ +/** + * 使用 Hibernate Validator 实现参数校验 + */ +package cn.iocoder.yudao.framework.common.validation; diff --git a/yudao-framework/yudao-common/src/test/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtilsTest.java b/yudao-framework/yudao-common/src/test/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtilsTest.java new file mode 100644 index 0000000..0e44645 --- /dev/null +++ b/yudao-framework/yudao-common/src/test/java/cn/iocoder/yudao/framework/common/util/collection/CollectionUtilsTest.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.framework.common.util.collection; + +import lombok.AllArgsConstructor; +import lombok.Data; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.function.BiFunction; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * {@link CollectionUtils} 的单元测试 + */ +public class CollectionUtilsTest { + + @Data + @AllArgsConstructor + private static class Dog { + + private Integer id; + private String name; + private String code; + + } + + @Test + public void testDiffList() { + // 准备参数 + Collection oldList = Arrays.asList( + new Dog(1, "花花", "hh"), + new Dog(2, "旺财", "wc") + ); + Collection newList = Arrays.asList( + new Dog(null, "花花2", "hh"), + new Dog(null, "小白", "xb") + ); + BiFunction sameFunc = (oldObj, newObj) -> { + boolean same = oldObj.getCode().equals(newObj.getCode()); + // 如果相等的情况下,需要设置下 id,后续好更新 + if (same) { + newObj.setId(oldObj.getId()); + } + return same; + }; + + // 调用 + List> result = CollectionUtils.diffList(oldList, newList, sameFunc); + // 断言 + assertEquals(result.size(), 3); + // 断言 create + assertEquals(result.get(0).size(), 1); + assertEquals(result.get(0).get(0), new Dog(null, "小白", "xb")); + // 断言 update + assertEquals(result.get(1).size(), 1); + assertEquals(result.get(1).get(0), new Dog(1, "花花2", "hh")); + // 断言 delete + assertEquals(result.get(2).size(), 1); + assertEquals(result.get(2).get(0), new Dog(2, "旺财", "wc")); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/pom.xml new file mode 100644 index 0000000..09e8786 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/pom.xml @@ -0,0 +1,52 @@ + + + + yudao-framework + cn.iocoder.boot + ${revision} + + 4.0.0 + yudao-spring-boot-starter-biz-data-permission + jar + + ${project.artifactId} + 数据权限 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + true + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDataPermissionAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDataPermissionAutoConfiguration.java new file mode 100644 index 0000000..4453198 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDataPermissionAutoConfiguration.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.framework.datapermission.config; + +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionAnnotationAdvisor; +import cn.iocoder.yudao.framework.datapermission.core.db.DataPermissionDatabaseInterceptor; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactory; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactoryImpl; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +import java.util.List; + +/** + * 数据权限的自动配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +public class YudaoDataPermissionAutoConfiguration { + + @Bean + public DataPermissionRuleFactory dataPermissionRuleFactory(List rules) { + return new DataPermissionRuleFactoryImpl(rules); + } + + @Bean + public DataPermissionDatabaseInterceptor dataPermissionDatabaseInterceptor(MybatisPlusInterceptor interceptor, + DataPermissionRuleFactory ruleFactory) { + // 创建 DataPermissionDatabaseInterceptor 拦截器 + DataPermissionDatabaseInterceptor inner = new DataPermissionDatabaseInterceptor(ruleFactory); + // 添加到 interceptor 中 + // 需要加在首个,主要是为了在分页插件前面。这个是 MyBatis Plus 的规定 + MyBatisUtils.addInterceptor(interceptor, inner, 0); + return inner; + } + + @Bean + public DataPermissionAnnotationAdvisor dataPermissionAnnotationAdvisor() { + return new DataPermissionAnnotationAdvisor(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDeptDataPermissionAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDeptDataPermissionAutoConfiguration.java new file mode 100644 index 0000000..6016fcd --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDeptDataPermissionAutoConfiguration.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.datapermission.config; + +import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRule; +import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; + +import java.util.List; + +/** + * 基于部门的数据权限 AutoConfiguration + * + * @author 芋道源码 + */ +@AutoConfiguration +@ConditionalOnClass(LoginUser.class) +@ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class}) +public class YudaoDeptDataPermissionAutoConfiguration { + + @Bean + public DeptDataPermissionRule deptDataPermissionRule(PermissionApi permissionApi, + List customizers) { + // 创建 DeptDataPermissionRule 对象 + DeptDataPermissionRule rule = new DeptDataPermissionRule(permissionApi); + // 补全表配置 + customizers.forEach(customizer -> customizer.customize(rule)); + return rule; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/annotation/DataPermission.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/annotation/DataPermission.java new file mode 100644 index 0000000..4e8a921 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/annotation/DataPermission.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.datapermission.core.annotation; + +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; + +import java.lang.annotation.*; + +/** + * 数据权限注解 + * 可声明在类或者方法上,标识使用的数据权限规则 + * + * @author 芋道源码 + */ +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataPermission { + + /** + * 当前类或方法是否开启数据权限 + * 即使不添加 @DataPermission 注解,默认是开启状态 + * 可通过设置 enable 为 false 禁用 + */ + boolean enable() default true; + + /** + * 生效的数据权限规则数组,优先级高于 {@link #excludeRules()} + */ + Class[] includeRules() default {}; + + /** + * 排除的数据权限规则数组,优先级最低 + */ + Class[] excludeRules() default {}; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java new file mode 100644 index 0000000..03d212c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.datapermission.core.aop; + +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import org.aopalliance.aop.Advice; +import org.springframework.aop.Pointcut; +import org.springframework.aop.support.AbstractPointcutAdvisor; +import org.springframework.aop.support.ComposablePointcut; +import org.springframework.aop.support.annotation.AnnotationMatchingPointcut; + +/** + * {@link cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission} 注解的 Advisor 实现类 + * + * @author 芋道源码 + */ +@Getter +@EqualsAndHashCode(callSuper = true) +public class DataPermissionAnnotationAdvisor extends AbstractPointcutAdvisor { + + private final Advice advice; + + private final Pointcut pointcut; + + public DataPermissionAnnotationAdvisor() { + this.advice = new DataPermissionAnnotationInterceptor(); + this.pointcut = this.buildPointcut(); + } + + protected Pointcut buildPointcut() { + Pointcut classPointcut = new AnnotationMatchingPointcut(DataPermission.class, true); + Pointcut methodPointcut = new AnnotationMatchingPointcut(null, DataPermission.class, true); + return new ComposablePointcut(classPointcut).union(methodPointcut); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java new file mode 100644 index 0000000..48a0354 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.framework.datapermission.core.aop; + +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import lombok.Getter; +import org.aopalliance.intercept.MethodInterceptor; +import org.aopalliance.intercept.MethodInvocation; +import org.springframework.core.MethodClassKey; +import org.springframework.core.annotation.AnnotationUtils; + +import java.lang.reflect.Method; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * {@link DataPermission} 注解的拦截器 + * 1. 在执行方法前,将 @DataPermission 注解入栈 + * 2. 在执行方法后,将 @DataPermission 注解出栈 + * + * @author 芋道源码 + */ +@DataPermission // 该注解,用于 {@link DATA_PERMISSION_NULL} 的空对象 +public class DataPermissionAnnotationInterceptor implements MethodInterceptor { + + /** + * DataPermission 空对象,用于方法无 {@link DataPermission} 注解时,使用 DATA_PERMISSION_NULL 进行占位 + */ + static final DataPermission DATA_PERMISSION_NULL = DataPermissionAnnotationInterceptor.class.getAnnotation(DataPermission.class); + + @Getter + private final Map dataPermissionCache = new ConcurrentHashMap<>(); + + @Override + public Object invoke(MethodInvocation methodInvocation) throws Throwable { + // 入栈 + DataPermission dataPermission = this.findAnnotation(methodInvocation); + if (dataPermission != null) { + DataPermissionContextHolder.add(dataPermission); + } + try { + // 执行逻辑 + return methodInvocation.proceed(); + } finally { + // 出栈 + if (dataPermission != null) { + DataPermissionContextHolder.remove(); + } + } + } + + private DataPermission findAnnotation(MethodInvocation methodInvocation) { + // 1. 从缓存中获取 + Method method = methodInvocation.getMethod(); + Object targetObject = methodInvocation.getThis(); + Class clazz = targetObject != null ? targetObject.getClass() : method.getDeclaringClass(); + MethodClassKey methodClassKey = new MethodClassKey(method, clazz); + DataPermission dataPermission = dataPermissionCache.get(methodClassKey); + if (dataPermission != null) { + return dataPermission != DATA_PERMISSION_NULL ? dataPermission : null; + } + + // 2.1 从方法中获取 + dataPermission = AnnotationUtils.findAnnotation(method, DataPermission.class); + // 2.2 从类上获取 + if (dataPermission == null) { + dataPermission = AnnotationUtils.findAnnotation(clazz, DataPermission.class); + } + // 2.3 添加到缓存中 + dataPermissionCache.put(methodClassKey, dataPermission != null ? dataPermission : DATA_PERMISSION_NULL); + return dataPermission; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionContextHolder.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionContextHolder.java new file mode 100644 index 0000000..9705d88 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/aop/DataPermissionContextHolder.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.framework.datapermission.core.aop; + +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import com.alibaba.ttl.TransmittableThreadLocal; + +import java.util.LinkedList; +import java.util.List; + +/** + * {@link DataPermission} 注解的 Context 上下文 + * + * @author 芋道源码 + */ +public class DataPermissionContextHolder { + + /** + * 使用 List 的原因,可能存在方法的嵌套调用 + */ + private static final ThreadLocal> DATA_PERMISSIONS = + TransmittableThreadLocal.withInitial(LinkedList::new); + + /** + * 获得当前的 DataPermission 注解 + * + * @return DataPermission 注解 + */ + public static DataPermission get() { + return DATA_PERMISSIONS.get().peekLast(); + } + + /** + * 入栈 DataPermission 注解 + * + * @param dataPermission DataPermission 注解 + */ + public static void add(DataPermission dataPermission) { + DATA_PERMISSIONS.get().addLast(dataPermission); + } + + /** + * 出栈 DataPermission 注解 + * + * @return DataPermission 注解 + */ + public static DataPermission remove() { + DataPermission dataPermission = DATA_PERMISSIONS.get().removeLast(); + // 无元素时,清空 ThreadLocal + if (DATA_PERMISSIONS.get().isEmpty()) { + DATA_PERMISSIONS.remove(); + } + return dataPermission; + } + + /** + * 获得所有 DataPermission + * + * @return DataPermission 队列 + */ + public static List getAll() { + return DATA_PERMISSIONS.get(); + } + + /** + * 清空上下文 + * + * 目前仅仅用于单测 + */ + public static void clear() { + DATA_PERMISSIONS.remove(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java new file mode 100644 index 0000000..cbeedee --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java @@ -0,0 +1,641 @@ +package cn.iocoder.yudao.framework.datapermission.core.db; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactory; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.PluginUtils; +import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport; +import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.sf.jsqlparser.expression.*; +import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.conditional.OrExpression; +import net.sf.jsqlparser.expression.operators.relational.ExistsExpression; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; +import net.sf.jsqlparser.expression.operators.relational.InExpression; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.select.*; +import net.sf.jsqlparser.statement.update.Update; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.executor.statement.StatementHandler; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlCommandType; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; + +import java.sql.Connection; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 数据权限拦截器,通过 {@link DataPermissionRule} 数据权限规则,重写 SQL 的方式来实现 + * 主要的 SQL 重写方法,可见 {@link #builderExpression(Expression, List)} 方法 + * + * 整体的代码实现上,参考 {@link com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor} 实现。 + * 所以每次 MyBatis Plus 升级时,需要 Review 下其具体的实现是否有变更! + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class DataPermissionDatabaseInterceptor extends JsqlParserSupport implements InnerInterceptor { + + private final DataPermissionRuleFactory ruleFactory; + + @Getter + private final MappedStatementCache mappedStatementCache = new MappedStatementCache(); + + @Override // SELECT 场景 + public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { + // 获得 Mapper 对应的数据权限的规则 + List rules = ruleFactory.getDataPermissionRule(ms.getId()); + if (mappedStatementCache.noRewritable(ms, rules)) { // 如果无需重写,则跳过 + return; + } + + PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql); + try { + // 初始化上下文 + ContextHolder.init(rules); + // 处理 SQL + mpBs.sql(parserSingle(mpBs.sql(), null)); + } finally { + // 添加是否需要重写的缓存 + addMappedStatementCache(ms); + // 清空上下文 + ContextHolder.clear(); + } + } + + @Override // 只处理 UPDATE / DELETE 场景,不处理 INSERT 场景(因为 INSERT 不需要数据权限) + public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) { + PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh); + MappedStatement ms = mpSh.mappedStatement(); + SqlCommandType sct = ms.getSqlCommandType(); + if (sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) { + // 获得 Mapper 对应的数据权限的规则 + List rules = ruleFactory.getDataPermissionRule(ms.getId()); + if (mappedStatementCache.noRewritable(ms, rules)) { // 如果无需重写,则跳过 + return; + } + + PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql(); + try { + // 初始化上下文 + ContextHolder.init(rules); + // 处理 SQL + mpBs.sql(parserMulti(mpBs.sql(), null)); + } finally { + // 添加是否需要重写的缓存 + addMappedStatementCache(ms); + // 清空上下文 + ContextHolder.clear(); + } + } + } + + @Override + protected void processSelect(Select select, int index, String sql, Object obj) { + processSelectBody(select.getSelectBody()); + List withItemsList = select.getWithItemsList(); + if (!CollectionUtils.isEmpty(withItemsList)) { + withItemsList.forEach(this::processSelectBody); + } + } + + /** + * update 语句处理 + */ + @Override + protected void processUpdate(Update update, int index, String sql, Object obj) { + final Table table = update.getTable(); + update.setWhere(this.builderExpression(update.getWhere(), table)); + } + + /** + * delete 语句处理 + */ + @Override + protected void processDelete(Delete delete, int index, String sql, Object obj) { + delete.setWhere(this.builderExpression(delete.getWhere(), delete.getTable())); + } + + // ========== 和 TenantLineInnerInterceptor 一致的逻辑 ========== + + protected void processSelectBody(SelectBody selectBody) { + if (selectBody == null) { + return; + } + if (selectBody instanceof PlainSelect) { + processPlainSelect((PlainSelect) selectBody); + } else if (selectBody instanceof WithItem) { + WithItem withItem = (WithItem) selectBody; + processSelectBody(withItem.getSubSelect().getSelectBody()); + } else { + SetOperationList operationList = (SetOperationList) selectBody; + List selectBodyList = operationList.getSelects(); + if (CollectionUtils.isNotEmpty(selectBodyList)) { + selectBodyList.forEach(this::processSelectBody); + } + } + } + + /** + * 处理 PlainSelect + */ + protected void processPlainSelect(PlainSelect plainSelect) { + //#3087 github + List selectItems = plainSelect.getSelectItems(); + if (CollectionUtils.isNotEmpty(selectItems)) { + selectItems.forEach(this::processSelectItem); + } + + // 处理 where 中的子查询 + Expression where = plainSelect.getWhere(); + processWhereSubSelect(where); + + // 处理 fromItem + FromItem fromItem = plainSelect.getFromItem(); + List

    list = processFromItem(fromItem); + List
    mainTables = new ArrayList<>(list); + + // 处理 join + List joins = plainSelect.getJoins(); + if (CollectionUtils.isNotEmpty(joins)) { + mainTables = processJoins(mainTables, joins); + } + + // 当有 mainTable 时,进行 where 条件追加 + if (CollectionUtils.isNotEmpty(mainTables)) { + plainSelect.setWhere(builderExpression(where, mainTables)); + } + } + + private List
    processFromItem(FromItem fromItem) { + // 处理括号括起来的表达式 + while (fromItem instanceof ParenthesisFromItem) { + fromItem = ((ParenthesisFromItem) fromItem).getFromItem(); + } + + List
    mainTables = new ArrayList<>(); + // 无 join 时的处理逻辑 + if (fromItem instanceof Table) { + Table fromTable = (Table) fromItem; + mainTables.add(fromTable); + } else if (fromItem instanceof SubJoin) { + // SubJoin 类型则还需要添加上 where 条件 + List
    tables = processSubJoin((SubJoin) fromItem); + mainTables.addAll(tables); + } else { + // 处理下 fromItem + processOtherFromItem(fromItem); + } + return mainTables; + } + + /** + * 处理where条件内的子查询 + *

    + * 支持如下: + * 1. in + * 2. = + * 3. > + * 4. < + * 5. >= + * 6. <= + * 7. <> + * 8. EXISTS + * 9. NOT EXISTS + *

    + * 前提条件: + * 1. 子查询必须放在小括号中 + * 2. 子查询一般放在比较操作符的右边 + * + * @param where where 条件 + */ + protected void processWhereSubSelect(Expression where) { + if (where == null) { + return; + } + if (where instanceof FromItem) { + processOtherFromItem((FromItem) where); + return; + } + if (where.toString().indexOf("SELECT") > 0) { + // 有子查询 + if (where instanceof BinaryExpression) { + // 比较符号 , and , or , 等等 + BinaryExpression expression = (BinaryExpression) where; + processWhereSubSelect(expression.getLeftExpression()); + processWhereSubSelect(expression.getRightExpression()); + } else if (where instanceof InExpression) { + // in + InExpression expression = (InExpression) where; + Expression inExpression = expression.getRightExpression(); + if (inExpression instanceof SubSelect) { + processSelectBody(((SubSelect) inExpression).getSelectBody()); + } + } else if (where instanceof ExistsExpression) { + // exists + ExistsExpression expression = (ExistsExpression) where; + processWhereSubSelect(expression.getRightExpression()); + } else if (where instanceof NotExpression) { + // not exists + NotExpression expression = (NotExpression) where; + processWhereSubSelect(expression.getExpression()); + } else if (where instanceof Parenthesis) { + Parenthesis expression = (Parenthesis) where; + processWhereSubSelect(expression.getExpression()); + } + } + } + + protected void processSelectItem(SelectItem selectItem) { + if (selectItem instanceof SelectExpressionItem) { + SelectExpressionItem selectExpressionItem = (SelectExpressionItem) selectItem; + if (selectExpressionItem.getExpression() instanceof SubSelect) { + processSelectBody(((SubSelect) selectExpressionItem.getExpression()).getSelectBody()); + } else if (selectExpressionItem.getExpression() instanceof Function) { + processFunction((Function) selectExpressionItem.getExpression()); + } + } + } + + /** + * 处理函数 + *

    支持: 1. select fun(args..) 2. select fun1(fun2(args..),args..)

    + *

    fixed gitee pulls/141

    + * + * @param function + */ + protected void processFunction(Function function) { + ExpressionList parameters = function.getParameters(); + if (parameters != null) { + parameters.getExpressions().forEach(expression -> { + if (expression instanceof SubSelect) { + processSelectBody(((SubSelect) expression).getSelectBody()); + } else if (expression instanceof Function) { + processFunction((Function) expression); + } + }); + } + } + + /** + * 处理子查询等 + */ + protected void processOtherFromItem(FromItem fromItem) { + // 去除括号 + while (fromItem instanceof ParenthesisFromItem) { + fromItem = ((ParenthesisFromItem) fromItem).getFromItem(); + } + + if (fromItem instanceof SubSelect) { + SubSelect subSelect = (SubSelect) fromItem; + if (subSelect.getSelectBody() != null) { + processSelectBody(subSelect.getSelectBody()); + } + } else if (fromItem instanceof ValuesList) { + logger.debug("Perform a subQuery, if you do not give us feedback"); + } else if (fromItem instanceof LateralSubSelect) { + LateralSubSelect lateralSubSelect = (LateralSubSelect) fromItem; + if (lateralSubSelect.getSubSelect() != null) { + SubSelect subSelect = lateralSubSelect.getSubSelect(); + if (subSelect.getSelectBody() != null) { + processSelectBody(subSelect.getSelectBody()); + } + } + } + } + + /** + * 处理 sub join + * + * @param subJoin subJoin + * @return Table subJoin 中的主表 + */ + private List
    processSubJoin(SubJoin subJoin) { + List
    mainTables = new ArrayList<>(); + if (subJoin.getJoinList() != null) { + List
    list = processFromItem(subJoin.getLeft()); + mainTables.addAll(list); + mainTables = processJoins(mainTables, subJoin.getJoinList()); + } + return mainTables; + } + + /** + * 处理 joins + * + * @param mainTables 可以为 null + * @param joins join 集合 + * @return List
    右连接查询的 Table 列表 + */ + private List
    processJoins(List
    mainTables, List joins) { + // join 表达式中最终的主表 + Table mainTable = null; + // 当前 join 的左表 + Table leftTable = null; + + if (mainTables == null) { + mainTables = new ArrayList<>(); + } else if (mainTables.size() == 1) { + mainTable = mainTables.get(0); + leftTable = mainTable; + } + + //对于 on 表达式写在最后的 join,需要记录下前面多个 on 的表名 + Deque> onTableDeque = new LinkedList<>(); + for (Join join : joins) { + // 处理 on 表达式 + FromItem joinItem = join.getRightItem(); + + // 获取当前 join 的表,subJoint 可以看作是一张表 + List
    joinTables = null; + if (joinItem instanceof Table) { + joinTables = new ArrayList<>(); + joinTables.add((Table) joinItem); + } else if (joinItem instanceof SubJoin) { + joinTables = processSubJoin((SubJoin) joinItem); + } + + if (joinTables != null) { + + // 如果是隐式内连接 + if (join.isSimple()) { + mainTables.addAll(joinTables); + continue; + } + + // 当前表是否忽略 + Table joinTable = joinTables.get(0); + + List
    onTables = null; + // 如果不要忽略,且是右连接,则记录下当前表 + if (join.isRight()) { + mainTable = joinTable; + if (leftTable != null) { + onTables = Collections.singletonList(leftTable); + } + } else if (join.isLeft()) { + onTables = Collections.singletonList(joinTable); + } else if (join.isInner()) { + if (mainTable == null) { + onTables = Collections.singletonList(joinTable); + } else { + onTables = Arrays.asList(mainTable, joinTable); + } + mainTable = null; + } + + mainTables = new ArrayList<>(); + if (mainTable != null) { + mainTables.add(mainTable); + } + + // 获取 join 尾缀的 on 表达式列表 + Collection originOnExpressions = join.getOnExpressions(); + // 正常 join on 表达式只有一个,立刻处理 + if (originOnExpressions.size() == 1 && onTables != null) { + List onExpressions = new LinkedList<>(); + onExpressions.add(builderExpression(originOnExpressions.iterator().next(), onTables)); + join.setOnExpressions(onExpressions); + leftTable = joinTable; + continue; + } + // 表名压栈,忽略的表压入 null,以便后续不处理 + onTableDeque.push(onTables); + // 尾缀多个 on 表达式的时候统一处理 + if (originOnExpressions.size() > 1) { + Collection onExpressions = new LinkedList<>(); + for (Expression originOnExpression : originOnExpressions) { + List
    currentTableList = onTableDeque.poll(); + if (CollectionUtils.isEmpty(currentTableList)) { + onExpressions.add(originOnExpression); + } else { + onExpressions.add(builderExpression(originOnExpression, currentTableList)); + } + } + join.setOnExpressions(onExpressions); + } + leftTable = joinTable; + } else { + processOtherFromItem(joinItem); + leftTable = null; + } + } + + return mainTables; + } + + // ========== 和 TenantLineInnerInterceptor 存在差异的逻辑:关键,实现权限条件的拼接 ========== + + /** + * 处理条件 + * + * @param currentExpression 当前 where 条件 + * @param table 单个表 + */ + protected Expression builderExpression(Expression currentExpression, Table table) { + return this.builderExpression(currentExpression, Collections.singletonList(table)); + } + + /** + * 处理条件 + * + * @param currentExpression 当前 where 条件 + * @param tables 多个表 + */ + protected Expression builderExpression(Expression currentExpression, List
    tables) { + // 没有表需要处理直接返回 + if (CollectionUtils.isEmpty(tables)) { + return currentExpression; + } + + // 第一步,获得 Table 对应的数据权限条件 + Expression dataPermissionExpression = null; + for (Table table : tables) { + // 构建每个表的权限 Expression 条件 + Expression expression = buildDataPermissionExpression(table); + if (expression == null) { + continue; + } + // 合并到 dataPermissionExpression 中 + dataPermissionExpression = dataPermissionExpression == null ? expression + : new AndExpression(dataPermissionExpression, expression); + } + + // 第二步,合并多个 Expression 条件 + if (dataPermissionExpression == null) { + return currentExpression; + } + if (currentExpression == null) { + return dataPermissionExpression; + } + // ① 如果表达式为 Or,则需要 (currentExpression) AND dataPermissionExpression + if (currentExpression instanceof OrExpression) { + return new AndExpression(new Parenthesis(currentExpression), dataPermissionExpression); + } + // ② 如果表达式为 And,则直接返回 where AND dataPermissionExpression + return new AndExpression(currentExpression, dataPermissionExpression); + } + + /** + * 构建指定表的数据权限的 Expression 过滤条件 + * + * @param table 表 + * @return Expression 过滤条件 + */ + private Expression buildDataPermissionExpression(Table table) { + // 生成条件 + Expression allExpression = null; + for (DataPermissionRule rule : ContextHolder.getRules()) { + // 判断表名是否匹配 + String tableName = MyBatisUtils.getTableName(table); + if (!rule.getTableNames().contains(tableName)) { + continue; + } + // 如果有匹配的规则,说明可重写。 + // 为什么不是有 allExpression 非空才重写呢?在生成 column = value 过滤条件时,会因为 value 不存在,导致未重写。 + // 这样导致第一次无 value,被标记成无需重写;但是第二次有 value,此时会需要重写。 + ContextHolder.setRewrite(true); + + // 单条规则的条件 + Expression oneExpress = rule.getExpression(tableName, table.getAlias()); + if (oneExpress == null){ + continue; + } + // 拼接到 allExpression 中 + allExpression = allExpression == null ? oneExpress + : new AndExpression(allExpression, oneExpress); + } + + return allExpression; + } + + /** + * 判断 SQL 是否重写。如果没有重写,则添加到 {@link MappedStatementCache} 中 + * + * @param ms MappedStatement + */ + private void addMappedStatementCache(MappedStatement ms) { + if (ContextHolder.getRewrite()) { + return; + } + // 无重写,进行添加 + mappedStatementCache.addNoRewritable(ms, ContextHolder.getRules()); + } + + /** + * SQL 解析上下文,方便透传 {@link DataPermissionRule} 规则 + * + * @author 芋道源码 + */ + static final class ContextHolder { + + /** + * 该 {@link MappedStatement} 对应的规则 + */ + private static final ThreadLocal> RULES = ThreadLocal.withInitial(Collections::emptyList); + /** + * SQL 是否进行重写 + */ + private static final ThreadLocal REWRITE = ThreadLocal.withInitial(() -> Boolean.FALSE); + + public static void init(List rules) { + RULES.set(rules); + REWRITE.set(false); + } + + public static void clear() { + RULES.remove(); + REWRITE.remove(); + } + + public static boolean getRewrite() { + return REWRITE.get(); + } + + public static void setRewrite(boolean rewrite) { + REWRITE.set(rewrite); + } + + public static List getRules() { + return RULES.get(); + } + + } + + /** + * {@link MappedStatement} 缓存 + * 目前主要用于,记录 {@link DataPermissionRule} 是否对指定 {@link MappedStatement} 无效 + * 如果无效,则可以避免 SQL 的解析,加快速度 + * + * @author 芋道源码 + */ + static final class MappedStatementCache { + + /** + * 指定数据权限规则,对指定 MappedStatement 无需重写(不生效)的缓存 + * + * value:{@link MappedStatement#getId()} 编号 + */ + @Getter + private final Map, Set> noRewritableMappedStatements = new ConcurrentHashMap<>(); + + /** + * 判断是否无需重写 + * ps:虽然有点中文式英语,但是容易读懂即可 + * + * @param ms MappedStatement + * @param rules 数据权限规则数组 + * @return 是否无需重写 + */ + public boolean noRewritable(MappedStatement ms, List rules) { + // 如果规则为空,说明无需重写 + if (CollUtil.isEmpty(rules)) { + return true; + } + // 任一规则不在 noRewritableMap 中,则说明可能需要重写 + for (DataPermissionRule rule : rules) { + Set mappedStatementIds = noRewritableMappedStatements.get(rule.getClass()); + if (!CollUtil.contains(mappedStatementIds, ms.getId())) { + return false; + } + } + return true; + } + + /** + * 添加无需重写的 MappedStatement + * + * @param ms MappedStatement + * @param rules 数据权限规则数组 + */ + public void addNoRewritable(MappedStatement ms, List rules) { + for (DataPermissionRule rule : rules) { + Set mappedStatementIds = noRewritableMappedStatements.get(rule.getClass()); + if (CollUtil.isNotEmpty(mappedStatementIds)) { + mappedStatementIds.add(ms.getId()); + } else { + noRewritableMappedStatements.put(rule.getClass(), SetUtils.asSet(ms.getId())); + } + } + } + + /** + * 清空缓存 + * 目前主要提供给单元测试 + */ + public void clear() { + noRewritableMappedStatements.clear(); + } + + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRule.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRule.java new file mode 100644 index 0000000..2bccde8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRule.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.datapermission.core.rule; + +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import net.sf.jsqlparser.expression.Alias; +import net.sf.jsqlparser.expression.Expression; + +import java.util.Set; + +/** + * 数据权限规则接口 + * 通过实现接口,自定义数据规则。例如说, + * + * @author 芋道源码 + */ +public interface DataPermissionRule { + + /** + * 返回需要生效的表名数组 + * 为什么需要该方法?Data Permission 数组基于 SQL 重写,通过 Where 返回只有权限的数据 + * + * 如果需要基于实体名获得表名,可调用 {@link TableInfoHelper#getTableInfo(Class)} 获得 + * + * @return 表名数组 + */ + Set getTableNames(); + + /** + * 根据表名和别名,生成对应的 WHERE / OR 过滤条件 + * + * @param tableName 表名 + * @param tableAlias 别名,可能为空 + * @return 过滤条件 Expression 表达式 + */ + Expression getExpression(String tableName, Alias tableAlias); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactory.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactory.java new file mode 100644 index 0000000..166dfea --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactory.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.datapermission.core.rule; + +import java.util.List; + +/** + * {@link DataPermissionRule} 工厂接口 + * 作为 {@link DataPermissionRule} 的容器,提供管理能力 + * + * @author 芋道源码 + */ +public interface DataPermissionRuleFactory { + + /** + * 获得所有数据权限规则数组 + * + * @return 数据权限规则数组 + */ + List getDataPermissionRules(); + + /** + * 获得指定 Mapper 的数据权限规则数组 + * + * @param mappedStatementId 指定 Mapper 的编号 + * @return 数据权限规则数组 + */ + List getDataPermissionRule(String mappedStatementId); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java new file mode 100644 index 0000000..eaa6e6a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.framework.datapermission.core.rule; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; +import lombok.RequiredArgsConstructor; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 默认的 DataPermissionRuleFactoryImpl 实现类 + * 支持通过 {@link DataPermissionContextHolder} 过滤数据权限 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class DataPermissionRuleFactoryImpl implements DataPermissionRuleFactory { + + /** + * 数据权限规则数组 + */ + private final List rules; + + @Override + public List getDataPermissionRules() { + return rules; + } + + @Override // mappedStatementId 参数,暂时没有用。以后,可以基于 mappedStatementId + DataPermission 进行缓存 + public List getDataPermissionRule(String mappedStatementId) { + // 1. 无数据权限 + if (CollUtil.isEmpty(rules)) { + return Collections.emptyList(); + } + // 2. 未配置,则默认开启 + DataPermission dataPermission = DataPermissionContextHolder.get(); + if (dataPermission == null) { + return rules; + } + // 3. 已配置,但禁用 + if (!dataPermission.enable()) { + return Collections.emptyList(); + } + + // 4. 已配置,只选择部分规则 + if (ArrayUtil.isNotEmpty(dataPermission.includeRules())) { + return rules.stream().filter(rule -> ArrayUtil.contains(dataPermission.includeRules(), rule.getClass())) + .collect(Collectors.toList()); // 一般规则不会太多,所以不采用 HashSet 查询 + } + // 5. 已配置,只排除部分规则 + if (ArrayUtil.isNotEmpty(dataPermission.excludeRules())) { + return rules.stream().filter(rule -> !ArrayUtil.contains(dataPermission.excludeRules(), rule.getClass())) + .collect(Collectors.toList()); // 一般规则不会太多,所以不采用 HashSet 查询 + } + // 6. 已配置,全部规则 + return rules; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java new file mode 100644 index 0000000..b182e98 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java @@ -0,0 +1,206 @@ +package cn.iocoder.yudao.framework.datapermission.core.rule.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.expression.*; +import net.sf.jsqlparser.expression.operators.conditional.OrExpression; +import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; +import net.sf.jsqlparser.expression.operators.relational.InExpression; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * 基于部门的 {@link DataPermissionRule} 数据权限规则实现 + * + * 注意,使用 DeptDataPermissionRule 时,需要保证表中有 dept_id 部门编号的字段,可自定义。 + * + * 实际业务场景下,会存在一个经典的问题?当用户修改部门时,冗余的 dept_id 是否需要修改? + * 1. 一般情况下,dept_id 不进行修改,则会导致用户看不到之前的数据。【yudao-server 采用该方案】 + * 2. 部分情况下,希望该用户还是能看到之前的数据,则有两种方式解决:【需要你改造该 DeptDataPermissionRule 的实现代码】 + * 1)编写洗数据的脚本,将 dept_id 修改成新部门的编号;【建议】 + * 最终过滤条件是 WHERE dept_id = ? + * 2)洗数据的话,可能涉及的数据量较大,也可以采用 user_id 进行过滤的方式,此时需要获取到 dept_id 对应的所有 user_id 用户编号; + * 最终过滤条件是 WHERE user_id IN (?, ?, ? ...) + * 3)想要保证原 dept_id 和 user_id 都可以看的到,此时使用 dept_id 和 user_id 一起过滤; + * 最终过滤条件是 WHERE dept_id = ? OR user_id IN (?, ?, ? ...) + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Slf4j +public class DeptDataPermissionRule implements DataPermissionRule { + + /** + * LoginUser 的 Context 缓存 Key + */ + protected static final String CONTEXT_KEY = DeptDataPermissionRule.class.getSimpleName(); + + private static final String DEPT_COLUMN_NAME = "dept_id"; + private static final String USER_COLUMN_NAME = "user_id"; + + static final Expression EXPRESSION_NULL = new NullValue(); + + private final PermissionApi permissionApi; + + /** + * 基于部门的表字段配置 + * 一般情况下,每个表的部门编号字段是 dept_id,通过该配置自定义。 + * + * key:表名 + * value:字段名 + */ + private final Map deptColumns = new HashMap<>(); + + /** + * 基于用户的表字段配置 + * 一般情况下,每个表的部门编号字段是 dept_id,通过该配置自定义。 + * + * key:表名 + * value:字段名 + */ + private final Map userColumns = new HashMap<>(); + /** + * 所有表名,是 {@link #deptColumns} 和 {@link #userColumns} 的合集 + */ + private final Set TABLE_NAMES = new HashSet<>(); + + @Override + public Set getTableNames() { + return TABLE_NAMES; + } + + @Override + public Expression getExpression(String tableName, Alias tableAlias) { + // 只有有登陆用户的情况下,才进行数据权限的处理 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (loginUser == null) { + return null; + } + // 只有管理员类型的用户,才进行数据权限的处理 + if (ObjectUtil.notEqual(loginUser.getUserType(), UserTypeEnum.ADMIN.getValue())) { + return null; + } + + // 获得数据权限 + DeptDataPermissionRespDTO deptDataPermission = loginUser.getContext(CONTEXT_KEY, DeptDataPermissionRespDTO.class); + // 从上下文中拿不到,则调用逻辑进行获取 + if (deptDataPermission == null) { + deptDataPermission = permissionApi.getDeptDataPermission(loginUser.getId()); + if (deptDataPermission == null) { + log.error("[getExpression][LoginUser({}) 获取数据权限为 null]", JsonUtils.toJsonString(loginUser)); + throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 未返回数据权限", + loginUser.getId(), tableName, tableAlias.getName())); + } + // 添加到上下文中,避免重复计算 + loginUser.setContext(CONTEXT_KEY, deptDataPermission); + } + + // 情况一,如果是 ALL 可查看全部,则无需拼接条件 + if (deptDataPermission.getAll()) { + return null; + } + + // 情况二,即不能查看部门,又不能查看自己,则说明 100% 无权限 + if (CollUtil.isEmpty(deptDataPermission.getDeptIds()) + && Boolean.FALSE.equals(deptDataPermission.getSelf())) { + return new EqualsTo(null, null); // WHERE null = null,可以保证返回的数据为空 + } + + // 情况三,拼接 Dept 和 User 的条件,最后组合 + Expression deptExpression = buildDeptExpression(tableName,tableAlias, deptDataPermission.getDeptIds()); + Expression userExpression = buildUserExpression(tableName, tableAlias, deptDataPermission.getSelf(), loginUser.getId()); + if (deptExpression == null && userExpression == null) { + // TODO 芋艿:获得不到条件的时候,暂时不抛出异常,而是不返回数据 + log.warn("[getExpression][LoginUser({}) Table({}/{}) DeptDataPermission({}) 构建的条件为空]", + JsonUtils.toJsonString(loginUser), tableName, tableAlias, JsonUtils.toJsonString(deptDataPermission)); +// throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 构建的条件为空", +// loginUser.getId(), tableName, tableAlias.getName())); + return EXPRESSION_NULL; + } + if (deptExpression == null) { + return userExpression; + } + if (userExpression == null) { + return deptExpression; + } + // 目前,如果有指定部门 + 可查看自己,采用 OR 条件。即,WHERE (dept_id IN ? OR user_id = ?) + return new Parenthesis(new OrExpression(deptExpression, userExpression)); + } + + private Expression buildDeptExpression(String tableName, Alias tableAlias, Set deptIds) { + // 如果不存在配置,则无需作为条件 + String columnName = deptColumns.get(tableName); + if (StrUtil.isEmpty(columnName)) { + return null; + } + // 如果为空,则无条件 + if (CollUtil.isEmpty(deptIds)) { + return null; + } + // 拼接条件 + return new InExpression(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), + new ExpressionList(CollectionUtils.convertList(deptIds, LongValue::new))); + } + + private Expression buildUserExpression(String tableName, Alias tableAlias, Boolean self, Long userId) { + // 如果不查看自己,则无需作为条件 + if (Boolean.FALSE.equals(self)) { + return null; + } + String columnName = userColumns.get(tableName); + if (StrUtil.isEmpty(columnName)) { + return null; + } + // 拼接条件 + return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new LongValue(userId)); + } + + // ==================== 添加配置 ==================== + + public void addDeptColumn(Class entityClass) { + addDeptColumn(entityClass, DEPT_COLUMN_NAME); + } + + public void addDeptColumn(Class entityClass, String columnName) { + String tableName = TableInfoHelper.getTableInfo(entityClass).getTableName(); + addDeptColumn(tableName, columnName); + } + + public void addDeptColumn(String tableName, String columnName) { + deptColumns.put(tableName, columnName); + TABLE_NAMES.add(tableName); + } + + public void addUserColumn(Class entityClass) { + addUserColumn(entityClass, USER_COLUMN_NAME); + } + + public void addUserColumn(Class entityClass, String columnName) { + String tableName = TableInfoHelper.getTableInfo(entityClass).getTableName(); + addUserColumn(tableName, columnName); + } + + public void addUserColumn(String tableName, String columnName) { + userColumns.put(tableName, columnName); + TABLE_NAMES.add(tableName); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java new file mode 100644 index 0000000..e5e4f57 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.framework.datapermission.core.rule.dept; + +/** + * {@link DeptDataPermissionRule} 的自定义配置接口 + * + * @author 芋道源码 + */ +@FunctionalInterface +public interface DeptDataPermissionRuleCustomizer { + + /** + * 自定义该权限规则 + * 1. 调用 {@link DeptDataPermissionRule#addDeptColumn(Class, String)} 方法,配置基于 dept_id 的过滤规则 + * 2. 调用 {@link DeptDataPermissionRule#addUserColumn(Class, String)} 方法,配置基于 user_id 的过滤规则 + * + * @param rule 权限规则 + */ + void customize(DeptDataPermissionRule rule); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/package-info.java new file mode 100644 index 0000000..66e9326 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/package-info.java @@ -0,0 +1,6 @@ +/** + * 基于部门的数据权限规则 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.datapermission.core.rule.dept; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/util/DataPermissionUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/util/DataPermissionUtils.java new file mode 100644 index 0000000..c154bd5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/util/DataPermissionUtils.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.framework.datapermission.core.util; + +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.framework.datapermission.core.aop.DataPermissionContextHolder; +import lombok.SneakyThrows; + +/** + * 数据权限 Util + * + * @author 芋道源码 + */ +public class DataPermissionUtils { + + private static DataPermission DATA_PERMISSION_DISABLE; + + @DataPermission(enable = false) + @SneakyThrows + private static DataPermission getDisableDataPermissionDisable() { + if (DATA_PERMISSION_DISABLE == null) { + DATA_PERMISSION_DISABLE = DataPermissionUtils.class + .getDeclaredMethod("getDisableDataPermissionDisable") + .getAnnotation(DataPermission.class); + } + return DATA_PERMISSION_DISABLE; + } + + /** + * 忽略数据权限,执行对应的逻辑 + * + * @param runnable 逻辑 + */ + public static void executeIgnore(Runnable runnable) { + DataPermission dataPermission = getDisableDataPermissionDisable(); + DataPermissionContextHolder.add(dataPermission); + try { + // 执行 runnable + runnable.run(); + } finally { + DataPermissionContextHolder.remove(); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/package-info.java new file mode 100644 index 0000000..831aa7c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/package-info.java @@ -0,0 +1,4 @@ +/** + * 基于 JSqlParser 解析 SQL,增加数据权限的 WHERE 条件 + */ +package cn.iocoder.yudao.framework.datapermission; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..c5d0cd3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.datapermission.config.YudaoDataPermissionAutoConfiguration +cn.iocoder.yudao.framework.datapermission.config.YudaoDeptDataPermissionAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-dict/pom.xml new file mode 100644 index 0000000..e74551f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/pom.xml @@ -0,0 +1,50 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-biz-dict + jar + + ${project.artifactId} + 字典类型、数据 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + + com.google.guava + guava + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/config/YudaoDictAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/config/YudaoDictAutoConfiguration.java new file mode 100644 index 0000000..1b29fd1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/config/YudaoDictAutoConfiguration.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.framework.dict.config; + +import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +@AutoConfiguration +public class YudaoDictAutoConfiguration { + + @Bean + @SuppressWarnings("InstantiationOfUtilityClass") + public DictFrameworkUtils dictUtils(DictDataApi dictDataApi) { + DictFrameworkUtils.init(dictDataApi); + return new DictFrameworkUtils(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/package-info.java new file mode 100644 index 0000000..7ba720a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.framework.dict.core; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/util/DictFrameworkUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/util/DictFrameworkUtils.java new file mode 100644 index 0000000..d0a765b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/core/util/DictFrameworkUtils.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.framework.dict.core.util; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + +import java.time.Duration; + +/** + * 字典工具类 + * + * @author 芋道源码 + */ +@Slf4j +public class DictFrameworkUtils { + + private static DictDataApi dictDataApi; + + private static final DictDataRespDTO DICT_DATA_NULL = new DictDataRespDTO(); + + /** + * 针对 {@link #getDictDataLabel(String, String)} 的缓存 + */ + private static final LoadingCache, DictDataRespDTO> GET_DICT_DATA_CACHE = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader, DictDataRespDTO>() { + + @Override + public DictDataRespDTO load(KeyValue key) { + return ObjectUtil.defaultIfNull(dictDataApi.getDictData(key.getKey(), key.getValue()), DICT_DATA_NULL); + } + + }); + + /** + * 针对 {@link #parseDictDataValue(String, String)} 的缓存 + */ + private static final LoadingCache, DictDataRespDTO> PARSE_DICT_DATA_CACHE = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader, DictDataRespDTO>() { + + @Override + public DictDataRespDTO load(KeyValue key) { + return ObjectUtil.defaultIfNull(dictDataApi.parseDictData(key.getKey(), key.getValue()), DICT_DATA_NULL); + } + + }); + + public static void init(DictDataApi dictDataApi) { + DictFrameworkUtils.dictDataApi = dictDataApi; + log.info("[init][初始化 DictFrameworkUtils 成功]"); + } + + @SneakyThrows + public static String getDictDataLabel(String dictType, Integer value) { + return GET_DICT_DATA_CACHE.get(new KeyValue<>(dictType, String.valueOf(value))).getLabel(); + } + + @SneakyThrows + public static String getDictDataLabel(String dictType, String value) { + return GET_DICT_DATA_CACHE.get(new KeyValue<>(dictType, value)).getLabel(); + } + + @SneakyThrows + public static String parseDictDataValue(String dictType, String label) { + return PARSE_DICT_DATA_CACHE.get(new KeyValue<>(dictType, label)).getValue(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/package-info.java new file mode 100644 index 0000000..94a787e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/java/cn/iocoder/yudao/framework/dict/package-info.java @@ -0,0 +1,6 @@ +/** + * 字典数据模块,提供 {@link cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils} 工具类 + * + * 通过将字典缓存在内存中,保证性能 + */ +package cn.iocoder.yudao.framework.dict; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..2125cee --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.dict.config.YudaoDictAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-ip/pom.xml new file mode 100644 index 0000000..bc800c8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/pom.xml @@ -0,0 +1,54 @@ + + + + yudao-framework + cn.iocoder.boot + ${revision} + + 4.0.0 + yudao-spring-boot-starter-biz-ip + jar + + ${project.artifactId} + IP 拓展,支持如下功能: + 1. IP 功能:查询 IP 对应的城市信息 + 基于 https://gitee.com/lionsoul/ip2region 实现 + 2. 城市功能:查询城市编码对应的城市信息 + 基于 https://github.com/modood/Administrative-divisions-of-China 实现 + + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.lionsoul + ip2region + + + + org.projectlombok + lombok + + + + org.slf4j + slf4j-api + provided + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/Area.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/Area.java new file mode 100644 index 0000000..dcc9442 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/Area.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.ip.core; + +import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 区域节点,包括国家、省份、城市、地区等信息 + * + * 数据可见 resources/area.csv 文件 + * + * @author 芋道源码 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Area { + + /** + * 编号 - 全球,即根目录 + */ + public static final Integer ID_GLOBAL = 0; + /** + * 编号 - 中国 + */ + public static final Integer ID_CHINA = 1; + + /** + * 编号 + */ + private Integer id; + /** + * 名字 + */ + private String name; + /** + * 类型 + * + * 枚举 {@link AreaTypeEnum} + */ + private Integer type; + + /** + * 父节点 + */ + private Area parent; + /** + * 子节点 + */ + private List children; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/enums/AreaTypeEnum.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/enums/AreaTypeEnum.java new file mode 100644 index 0000000..916d885 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/enums/AreaTypeEnum.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.ip.core.enums; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 区域类型枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum AreaTypeEnum implements IntArrayValuable { + + COUNTRY(1, "国家"), + PROVINCE(2, "省份"), + CITY(3, "城市"), + DISTRICT(4, "地区"), // 县、镇、区等 + ; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(AreaTypeEnum::getType).toArray(); + + /** + * 类型 + */ + private final Integer type; + /** + * 名字 + */ + private final String name; + + @Override + public int[] array() { + return ARRAYS; + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java new file mode 100644 index 0000000..88cf0db --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java @@ -0,0 +1,187 @@ +package cn.iocoder.yudao.framework.ip.core.utils; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.text.csv.CsvRow; +import cn.hutool.core.text.csv.CsvUtil; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.ip.core.Area; +import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum; +import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + +/** + * 区域工具类 + * + * @author 芋道源码 + */ +@Slf4j +public class AreaUtils { + + /** + * 初始化 SEARCHER + */ + @SuppressWarnings("InstantiationOfUtilityClass") + private final static AreaUtils INSTANCE = new AreaUtils(); + + /** + * Area 内存缓存,提升访问速度 + */ + private static Map areas; + + private AreaUtils() { + long now = System.currentTimeMillis(); + areas = new HashMap<>(); + areas.put(Area.ID_GLOBAL, new Area(Area.ID_GLOBAL, "全球", 0, + null, new ArrayList<>())); + // 从 csv 中加载数据 + List rows = CsvUtil.getReader().read(ResourceUtil.getUtf8Reader("area.csv")).getRows(); + rows.remove(0); // 删除 header + for (CsvRow row : rows) { + // 创建 Area 对象 + Area area = new Area(Integer.valueOf(row.get(0)), row.get(1), Integer.valueOf(row.get(2)), + null, new ArrayList<>()); + // 添加到 areas 中 + areas.put(area.getId(), area); + } + + // 构建父子关系:因为 Area 中没有 parentId 字段,所以需要重复读取 + for (CsvRow row : rows) { + Area area = areas.get(Integer.valueOf(row.get(0))); // 自己 + Area parent = areas.get(Integer.valueOf(row.get(3))); // 父 + Assert.isTrue(area != parent, "{}:父子节点相同", area.getName()); + area.setParent(parent); + parent.getChildren().add(area); + } + log.info("启动加载 AreaUtils 成功,耗时 ({}) 毫秒", System.currentTimeMillis() - now); + } + + /** + * 获得指定编号对应的区域 + * + * @param id 区域编号 + * @return 区域 + */ + public static Area getArea(Integer id) { + return areas.get(id); + } + + /** + * 格式化区域 + * + * @param id 区域编号 + * @return 格式化后的区域 + */ + public static String format(Integer id) { + return format(id, " "); + } + + /** + * 格式化区域 + * + * 例如说: + * 1. id = “静安区”时:上海 上海市 静安区 + * 2. id = “上海市”时:上海 上海市 + * 3. id = “上海”时:上海 + * 4. id = “美国”时:美国 + * 当区域在中国时,默认不显示中国 + * + * @param id 区域编号 + * @param separator 分隔符 + * @return 格式化后的区域 + */ + public static String format(Integer id, String separator) { + // 获得区域 + Area area = areas.get(id); + if (area == null) { + return null; + } + + // 格式化 + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < AreaTypeEnum.values().length; i++) { // 避免死循环 + sb.insert(0, area.getName()); + // “递归”父节点 + area = area.getParent(); + if (area == null + || ObjectUtils.equalsAny(area.getId(), Area.ID_GLOBAL, Area.ID_CHINA)) { // 跳过父节点为中国的情况 + break; + } + sb.insert(0, separator); + } + return sb.toString(); + } + + /** + * 获取指定类型的区域列表 + * + * @param type 区域类型 + * @param func 转换函数 + * @param 结果类型 + * @return 区域列表 + */ + public static List getByType(AreaTypeEnum type, Function func) { + return convertList(areas.values(), func, area -> type.getType().equals(area.getType())); + } + + /** + * 根据区域编号、上级区域类型,获取上级区域编号 + * + * @param id 区域编号 + * @param type 区域类型 + * @return 上级区域编号 + */ + public static Integer getParentIdByType(Integer id, @NonNull AreaTypeEnum type) { + for (int i = 0; i < Byte.MAX_VALUE; i++) { + Area area = AreaUtils.getArea(id); + if (area == null) { + return null; + } + // 情况一:匹配到,返回它 + if (type.getType().equals(area.getType())) { + return area.getId(); + } + // 情况二:找到根节点,返回空 + if (area.getParent() == null || area.getParent().getId() == null) { + return null; + } + // 其它:继续向上查找 + id = area.getParent().getId(); + } + return null; + } + + //获取所有上级 + public static List getAllParentList(Integer id){ + List areaList=new ArrayList<>(); + + for (int i = 0; i < Byte.MAX_VALUE; i++) { + Area area = AreaUtils.getArea(id); + if (area == null) { + return areaList; + } + Area myArea=new Area(); + myArea.setId(area.getId()); + myArea.setName(area.getName()); + myArea.setType(area.getType()); + myArea.setParent(area.getParent()); + areaList.add(myArea);//添加 + + // 情况二:找到根节点,返回空 + if (area.getParent() == null || area.getParent().getId() == null) { + return areaList; + } + // 其它:继续向上查找 + id = area.getParent().getId(); + } + return areaList; + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java new file mode 100644 index 0000000..f74f848 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.framework.ip.core.utils; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.iocoder.yudao.framework.ip.core.Area; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.lionsoul.ip2region.xdb.Searcher; + +import java.io.IOException; + +/** + * IP 工具类 + * + * IP 数据源来自 ip2region.xdb 精简版,基于 项目 + * + * @author wanglhup + */ +@Slf4j +public class IPUtils { + + /** + * 初始化 SEARCHER + */ + @SuppressWarnings("InstantiationOfUtilityClass") + private final static IPUtils INSTANCE = new IPUtils(); + + /** + * IP 查询器,启动加载到内存中 + */ + private static Searcher SEARCHER; + + /** + * 私有化构造 + */ + private IPUtils() { + try { + long now = System.currentTimeMillis(); + byte[] bytes = ResourceUtil.readBytes("ip2region.xdb"); + SEARCHER = Searcher.newWithBuffer(bytes); + log.info("启动加载 IPUtils 成功,耗时 ({}) 毫秒", System.currentTimeMillis() - now); + } catch (IOException e) { + log.error("启动加载 IPUtils 失败", e); + } + } + + /** + * 查询 IP 对应的地区编号 + * + * @param ip IP 地址,格式为 127.0.0.1 + * @return 地区id + */ + @SneakyThrows + public static Integer getAreaId(String ip) { + return Integer.parseInt(SEARCHER.search(ip.trim())); + } + + /** + * 查询 IP 对应的地区编号 + * + * @param ip IP 地址的时间戳,格式参考{@link Searcher#checkIP(String)} 的返回 + * @return 地区编号 + */ + @SneakyThrows + public static Integer getAreaId(long ip) { + return Integer.parseInt(SEARCHER.search(ip)); + } + + /** + * 查询 IP 对应的地区 + * + * @param ip IP 地址,格式为 127.0.0.1 + * @return 地区 + */ + public static Area getArea(String ip) { + return AreaUtils.getArea(getAreaId(ip)); + } + + /** + * 查询 IP 对应的地区 + * + * @param ip IP 地址的时间戳,格式参考{@link Searcher#checkIP(String)} 的返回 + * @return 地区 + */ + public static Area getArea(long ip) { + return AreaUtils.getArea(getAreaId(ip)); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/package-info.java new file mode 100644 index 0000000..9d422f5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/package-info.java @@ -0,0 +1,11 @@ +/** + * IP 拓展,支持如下功能: + * + * 1. IP 功能:查询 IP 对应的城市信息 + * 基于 https://gitee.com/lionsoul/ip2region 实现 + * 2. 城市功能:查询城市编码对应的城市信息 + * 基于 https://github.com/modood/Administrative-divisions-of-China 实现 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.ip; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/area.csv b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/area.csv new file mode 100644 index 0000000..c9a3a0e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/area.csv @@ -0,0 +1,3639 @@ +id,name,type,parentId +1,中国,1,0 +2,蒙古,1,0 +3,朝鲜,1,0 +4,韩国,1,0 +5,日本,1,0 +6,菲律宾,1,0 +7,越南,1,0 +8,老挝,1,0 +9,柬埔寨,1,0 +10,缅甸,1,0 +11,泰国,1,0 +12,马来西亚,1,0 +13,文莱,1,0 +14,新加坡,1,0 +15,印度尼西亚,1,0 +16,东帝汶,1,0 +17,尼泊尔,1,0 +18,不丹,1,0 +19,孟加拉国,1,0 +20,印度,1,0 +21,巴基斯坦,1,0 +22,斯里兰卡,1,0 +23,马尔代夫,1,0 +24,哈萨克斯坦,1,0 +25,吉尔吉斯斯坦,1,0 +26,塔吉克斯坦,1,0 +27,乌兹别克斯坦,1,0 +28,土库曼斯坦,1,0 +29,阿富汗,1,0 +30,伊拉克,1,0 +31,伊朗,1,0 +32,叙利亚,1,0 +33,约旦,1,0 +34,黎巴嫩,1,0 +35,以色列,1,0 +36,巴勒斯坦,1,0 +37,沙特阿拉伯,1,0 +38,巴林,1,0 +39,卡塔尔,1,0 +40,科威特,1,0 +41,阿拉伯联合酋长国,1,0 +42,阿曼,1,0 +43,也门,1,0 +44,格鲁吉亚,1,0 +45,亚美尼亚,1,0 +46,阿塞拜疆,1,0 +47,土耳其,1,0 +48,塞浦路斯,1,0 +49,芬兰,1,0 +50,瑞典,1,0 +51,挪威,1,0 +52,冰岛,1,0 +53,丹麦,1,0 +54,爱沙尼亚,1,0 +55,拉脱维亚,1,0 +56,立陶宛,1,0 +57,白俄罗斯,1,0 +58,俄罗斯,1,0 +59,乌克兰,1,0 +60,摩尔多瓦,1,0 +61,波兰,1,0 +62,捷克,1,0 +63,斯洛伐克,1,0 +64,匈牙利,1,0 +65,德国,1,0 +66,奥地利,1,0 +67,瑞士,1,0 +68,列支敦士登,1,0 +69,英国,1,0 +70,爱尔兰,1,0 +71,荷兰,1,0 +72,比利时,1,0 +73,卢森堡,1,0 +74,法国,1,0 +75,摩纳哥,1,0 +76,罗马尼亚,1,0 +77,保加利亚,1,0 +78,塞尔维亚,1,0 +79,马其顿,1,0 +80,阿尔巴尼亚,1,0 +81,希腊,1,0 +82,斯洛文尼亚,1,0 +83,克罗地亚,1,0 +84,波斯尼亚和墨塞哥维那,1,0 +85,意大利,1,0 +86,梵蒂冈,1,0 +87,圣马力诺,1,0 +88,马耳他,1,0 +89,西班牙,1,0 +90,葡萄牙,1,0 +91,安道尔共和国,1,0 +92,埃及,1,0 +93,利比亚,1,0 +94,苏丹,1,0 +95,突尼斯,1,0 +96,阿尔及利亚,1,0 +97,摩洛哥,1,0 +98,亚速尔群岛,1,0 +99,马德拉群岛,1,0 +100,埃塞俄比亚,1,0 +101,厄立特里亚,1,0 +102,索马里,1,0 +103,吉布提,1,0 +104,肯尼亚,1,0 +105,坦桑尼亚,1,0 +106,乌干达,1,0 +107,卢旺达,1,0 +108,布隆迪,1,0 +109,塞舌尔,1,0 +110,圣多美及普林西比,1,0 +111,塞内加尔,1,0 +112,冈比亚,1,0 +113,马里,1,0 +114,布基纳法索,1,0 +115,几内亚,1,0 +116,几内亚比绍,1,0 +117,佛得角,1,0 +118,塞拉利昂,1,0 +119,利比里亚,1,0 +120,科特迪瓦,1,0 +121,加纳,1,0 +122,多哥,1,0 +123,贝宁,1,0 +124,尼日尔,1,0 +125,加那利群岛,1,0 +126,赞比亚,1,0 +127,安哥拉,1,0 +128,津巴布韦,1,0 +129,马拉维,1,0 +130,莫桑比克,1,0 +131,博茨瓦纳,1,0 +132,纳米比亚,1,0 +133,南非,1,0 +134,斯威士兰,1,0 +135,莱索托,1,0 +136,马达加斯加,1,0 +137,科摩罗,1,0 +138,毛里求斯,1,0 +139,留尼旺,1,0 +140,圣赫勒拿,1,0 +141,澳大利亚,1,0 +142,新西兰,1,0 +143,巴布亚新几内亚,1,0 +144,所罗门群岛,1,0 +145,瓦努阿图共和国,1,0 +146,密克罗尼西亚,1,0 +147,马绍尔群岛,1,0 +148,帕劳,1,0 +149,瑙鲁,1,0 +150,基里巴斯,1,0 +151,图瓦卢,1,0 +152,萨摩亚,1,0 +153,斐济,1,0 +154,汤加,1,0 +155,库克群岛,1,0 +156,关岛,1,0 +157,新喀里多尼亚,1,0 +158,法属波利尼西亚,1,0 +159,皮特凯恩岛,1,0 +160,瓦利斯与富图纳,1,0 +161,纽埃,1,0 +162,托克劳,1,0 +163,美属萨摩亚,1,0 +164,北马里亚纳,1,0 +165,加拿大,1,0 +166,美国,1,0 +167,墨西哥,1,0 +168,格陵兰,1,0 +169,危地马拉,1,0 +170,伯利兹,1,0 +171,萨尔瓦多,1,0 +172,洪都拉斯,1,0 +173,尼加拉瓜,1,0 +174,哥斯达黎加,1,0 +175,巴拿马,1,0 +176,巴哈马,1,0 +177,古巴,1,0 +178,牙买加,1,0 +179,海地,1,0 +180,多米尼加共和国,1,0 +181,安提瓜和巴布达,1,0 +182,圣基茨和尼维斯,1,0 +183,多米尼克,1,0 +184,圣卢西亚,1,0 +185,圣文森特和格林纳丁斯,1,0 +186,格林纳达,1,0 +187,巴巴多斯,1,0 +188,特立尼达和多巴哥,1,0 +189,波多黎各,1,0 +190,英属维尔京群岛,1,0 +191,美属维尔京群岛,1,0 +192,安圭拉,1,0 +193,蒙特塞拉特岛,1,0 +194,瓜德罗普,1,0 +195,马提尼克,1,0 +196,荷属安的列斯,1,0 +197,阿鲁巴,1,0 +198,特克斯和凯科斯群岛,1,0 +199,开曼群岛,1,0 +200,百慕大,1,0 +201,哥伦比亚,1,0 +202,委内瑞拉,1,0 +203,圭亚那,1,0 +204,法属圭亚那,1,0 +205,苏里南,1,0 +206,厄瓜多尔,1,0 +207,秘鲁,1,0 +208,玻利维亚,1,0 +209,巴西,1,0 +210,智利,1,0 +211,阿根廷,1,0 +212,乌拉圭,1,0 +213,巴拉圭,1,0 +214,波黑,1,0 +215,直布罗陀,1,0 +216,新喀里多尼亚群岛,1,0 +217,瓦利斯和富图纳群岛,1,0 +218,泽西岛,1,0 +219,黑山,1,0 +220,英属马恩岛,1,0 +221,尼日利亚,1,0 +222,喀麦隆,1,0 +223,加蓬,1,0 +224,乍得,1,0 +225,刚果共和国,1,0 +226,中非共和国,1,0 +227,南苏丹,1,0 +228,赤道几内亚,1,0 +229,毛里塔尼亚,1,0 +230,刚果民主共和国,1,0 +231,留尼汪岛,1,0 +232,格陵兰岛,1,0 +233,法罗群岛,1,0 +234,根西岛,1,0 +235,百慕大群岛,1,0 +236,圣皮埃尔和密克隆群岛,1,0 +237,法属圣马丁,1,0 +238,奥兰群岛,1,0 +239,北马里亚纳群岛,1,0 +240,库拉索,1,0 +241,博内尔岛,1,0 +242,圣马丁岛,1,0 +243,圣巴泰勒米岛,1,0 +244,福克兰群岛,1,0 +245,圣多美和普林西比,1,0 +246,英属印度洋领地,1,0 +247,东萨摩亚,1,0 +248,诺福克岛,1,0 +110000,北京,2,1 +120000,天津,2,1 +130000,河北省,2,1 +140000,山西省,2,1 +150000,内蒙古自治区,2,1 +210000,辽宁省,2,1 +220000,吉林省,2,1 +230000,黑龙江省,2,1 +310000,上海,2,1 +320000,江苏省,2,1 +330000,浙江省,2,1 +340000,安徽省,2,1 +350000,福建省,2,1 +360000,江西省,2,1 +370000,山东省,2,1 +410000,河南省,2,1 +420000,湖北省,2,1 +430000,湖南省,2,1 +440000,广东省,2,1 +450000,广西壮族自治区,2,1 +460000,海南省,2,1 +500000,重庆,2,1 +510000,四川省,2,1 +520000,贵州省,2,1 +530000,云南省,2,1 +540000,西藏自治区,2,1 +610000,陕西省,2,1 +620000,甘肃省,2,1 +630000,青海省,2,1 +640000,宁夏回族自治区,2,1 +650000,新疆维吾尔自治区,2,1 +110100,北京市,3,110000 +120100,天津市,3,120000 +130100,石家庄市,3,130000 +130200,唐山市,3,130000 +130300,秦皇岛市,3,130000 +130400,邯郸市,3,130000 +130500,邢台市,3,130000 +130600,保定市,3,130000 +130700,张家口市,3,130000 +130800,承德市,3,130000 +130900,沧州市,3,130000 +131000,廊坊市,3,130000 +131100,衡水市,3,130000 +140100,太原市,3,140000 +140200,大同市,3,140000 +140300,阳泉市,3,140000 +140400,长治市,3,140000 +140500,晋城市,3,140000 +140600,朔州市,3,140000 +140700,晋中市,3,140000 +140800,运城市,3,140000 +140900,忻州市,3,140000 +141000,临汾市,3,140000 +141100,吕梁市,3,140000 +150100,呼和浩特市,3,150000 +150200,包头市,3,150000 +150300,乌海市,3,150000 +150400,赤峰市,3,150000 +150500,通辽市,3,150000 +150600,鄂尔多斯市,3,150000 +150700,呼伦贝尔市,3,150000 +150800,巴彦淖尔市,3,150000 +150900,乌兰察布市,3,150000 +152200,兴安盟,3,150000 +152500,锡林郭勒盟,3,150000 +152900,阿拉善盟,3,150000 +210100,沈阳市,3,210000 +210200,大连市,3,210000 +210300,鞍山市,3,210000 +210400,抚顺市,3,210000 +210500,本溪市,3,210000 +210600,丹东市,3,210000 +210700,锦州市,3,210000 +210800,营口市,3,210000 +210900,阜新市,3,210000 +211000,辽阳市,3,210000 +211100,盘锦市,3,210000 +211200,铁岭市,3,210000 +211300,朝阳市,3,210000 +211400,葫芦岛市,3,210000 +220100,长春市,3,220000 +220200,吉林市,3,220000 +220300,四平市,3,220000 +220400,辽源市,3,220000 +220500,通化市,3,220000 +220600,白山市,3,220000 +220700,松原市,3,220000 +220800,白城市,3,220000 +222400,延边朝鲜族自治州,3,220000 +230100,哈尔滨市,3,230000 +230200,齐齐哈尔市,3,230000 +230300,鸡西市,3,230000 +230400,鹤岗市,3,230000 +230500,双鸭山市,3,230000 +230600,大庆市,3,230000 +230700,伊春市,3,230000 +230800,佳木斯市,3,230000 +230900,七台河市,3,230000 +231000,牡丹江市,3,230000 +231100,黑河市,3,230000 +231200,绥化市,3,230000 +232700,大兴安岭地区,3,230000 +310100,上海市,3,310000 +320100,南京市,3,320000 +320200,无锡市,3,320000 +320300,徐州市,3,320000 +320400,常州市,3,320000 +320500,苏州市,3,320000 +320600,南通市,3,320000 +320700,连云港市,3,320000 +320800,淮安市,3,320000 +320900,盐城市,3,320000 +321000,扬州市,3,320000 +321100,镇江市,3,320000 +321200,泰州市,3,320000 +321300,宿迁市,3,320000 +330100,杭州市,3,330000 +330200,宁波市,3,330000 +330300,温州市,3,330000 +330400,嘉兴市,3,330000 +330500,湖州市,3,330000 +330600,绍兴市,3,330000 +330700,金华市,3,330000 +330800,衢州市,3,330000 +330900,舟山市,3,330000 +331000,台州市,3,330000 +331100,丽水市,3,330000 +340100,合肥市,3,340000 +340200,芜湖市,3,340000 +340300,蚌埠市,3,340000 +340400,淮南市,3,340000 +340500,马鞍山市,3,340000 +340600,淮北市,3,340000 +340700,铜陵市,3,340000 +340800,安庆市,3,340000 +341000,黄山市,3,340000 +341100,滁州市,3,340000 +341200,阜阳市,3,340000 +341300,宿州市,3,340000 +341500,六安市,3,340000 +341600,亳州市,3,340000 +341700,池州市,3,340000 +341800,宣城市,3,340000 +350100,福州市,3,350000 +350200,厦门市,3,350000 +350300,莆田市,3,350000 +350400,三明市,3,350000 +350500,泉州市,3,350000 +350600,漳州市,3,350000 +350700,南平市,3,350000 +350800,龙岩市,3,350000 +350900,宁德市,3,350000 +360100,南昌市,3,360000 +360200,景德镇市,3,360000 +360300,萍乡市,3,360000 +360400,九江市,3,360000 +360500,新余市,3,360000 +360600,鹰潭市,3,360000 +360700,赣州市,3,360000 +360800,吉安市,3,360000 +360900,宜春市,3,360000 +361000,抚州市,3,360000 +361100,上饶市,3,360000 +370100,济南市,3,370000 +370200,青岛市,3,370000 +370300,淄博市,3,370000 +370400,枣庄市,3,370000 +370500,东营市,3,370000 +370600,烟台市,3,370000 +370700,潍坊市,3,370000 +370800,济宁市,3,370000 +370900,泰安市,3,370000 +371000,威海市,3,370000 +371100,日照市,3,370000 +371300,临沂市,3,370000 +371400,德州市,3,370000 +371500,聊城市,3,370000 +371600,滨州市,3,370000 +371700,菏泽市,3,370000 +410100,郑州市,3,410000 +410200,开封市,3,410000 +410300,洛阳市,3,410000 +410400,平顶山市,3,410000 +410500,安阳市,3,410000 +410600,鹤壁市,3,410000 +410700,新乡市,3,410000 +410800,焦作市,3,410000 +410900,濮阳市,3,410000 +411000,许昌市,3,410000 +411100,漯河市,3,410000 +411200,三门峡市,3,410000 +411300,南阳市,3,410000 +411400,商丘市,3,410000 +411500,信阳市,3,410000 +411600,周口市,3,410000 +411700,驻马店市,3,410000 +419000,省直辖县级行政区划,3,410000 +420100,武汉市,3,420000 +420200,黄石市,3,420000 +420300,十堰市,3,420000 +420500,宜昌市,3,420000 +420600,襄阳市,3,420000 +420700,鄂州市,3,420000 +420800,荆门市,3,420000 +420900,孝感市,3,420000 +421000,荆州市,3,420000 +421100,黄冈市,3,420000 +421200,咸宁市,3,420000 +421300,随州市,3,420000 +422800,恩施土家族苗族自治州,3,420000 +429000,省直辖县级行政区划,3,420000 +430100,长沙市,3,430000 +430200,株洲市,3,430000 +430300,湘潭市,3,430000 +430400,衡阳市,3,430000 +430500,邵阳市,3,430000 +430600,岳阳市,3,430000 +430700,常德市,3,430000 +430800,张家界市,3,430000 +430900,益阳市,3,430000 +431000,郴州市,3,430000 +431100,永州市,3,430000 +431200,怀化市,3,430000 +431300,娄底市,3,430000 +433100,湘西土家族苗族自治州,3,430000 +440100,广州市,3,440000 +440200,韶关市,3,440000 +440300,深圳市,3,440000 +440400,珠海市,3,440000 +440500,汕头市,3,440000 +440600,佛山市,3,440000 +440700,江门市,3,440000 +440800,湛江市,3,440000 +440900,茂名市,3,440000 +441200,肇庆市,3,440000 +441300,惠州市,3,440000 +441400,梅州市,3,440000 +441500,汕尾市,3,440000 +441600,河源市,3,440000 +441700,阳江市,3,440000 +441800,清远市,3,440000 +441900,东莞市,3,440000 +441901,莞城区,4,441900 +441902,南城区,4,441900 +441904,万江区,4,441900 +441905,石碣镇,4,441900 +441906,石龙镇,4,441900 +441907,茶山镇,4,441900 +441908,石排镇,4,441900 +441909,企石镇,4,441900 +441910,横沥镇,4,441900 +441911,桥头镇,4,441900 +441912,谢岗镇,4,441900 +441913,东坑镇,4,441900 +441914,常平镇,4,441900 +441915,寮步镇,4,441900 +441916,大朗镇,4,441900 +441917,麻涌镇,4,441900 +441918,中堂镇,4,441900 +441919,高埗镇,4,441900 +441920,樟木头镇,4,441900 +441921,大岭山镇,4,441900 +441922,望牛墩镇,4,441900 +441923,黄江镇,4,441900 +441924,洪梅镇,4,441900 +441925,清溪镇,4,441900 +441926,沙田镇,4,441900 +441927,道滘镇,4,441900 +441928,塘厦镇,4,441900 +441929,虎门镇,4,441900 +441930,厚街镇,4,441900 +441931,凤岗镇,4,441900 +441932,长安镇,4,441900 +442000,中山市,3,440000 +445100,潮州市,3,440000 +445200,揭阳市,3,440000 +445300,云浮市,3,440000 +450100,南宁市,3,450000 +450200,柳州市,3,450000 +450300,桂林市,3,450000 +450400,梧州市,3,450000 +450500,北海市,3,450000 +450600,防城港市,3,450000 +450700,钦州市,3,450000 +450800,贵港市,3,450000 +450900,玉林市,3,450000 +451000,百色市,3,450000 +451100,贺州市,3,450000 +451200,河池市,3,450000 +451300,来宾市,3,450000 +451400,崇左市,3,450000 +460100,海口市,3,460000 +460200,三亚市,3,460000 +460300,三沙市,3,460000 +460400,儋州市,3,460000 +469000,省直辖县级行政区划,3,460000 +500100,重庆市,3,500000 +510100,成都市,3,510000 +510300,自贡市,3,510000 +510400,攀枝花市,3,510000 +510500,泸州市,3,510000 +510600,德阳市,3,510000 +510700,绵阳市,3,510000 +510800,广元市,3,510000 +510900,遂宁市,3,510000 +511000,内江市,3,510000 +511100,乐山市,3,510000 +511300,南充市,3,510000 +511400,眉山市,3,510000 +511500,宜宾市,3,510000 +511600,广安市,3,510000 +511700,达州市,3,510000 +511800,雅安市,3,510000 +511900,巴中市,3,510000 +512000,资阳市,3,510000 +513200,阿坝藏族羌族自治州,3,510000 +513300,甘孜藏族自治州,3,510000 +513400,凉山彝族自治州,3,510000 +520100,贵阳市,3,520000 +520200,六盘水市,3,520000 +520300,遵义市,3,520000 +520400,安顺市,3,520000 +520500,毕节市,3,520000 +520600,铜仁市,3,520000 +522300,黔西南布依族苗族自治州,3,520000 +522600,黔东南苗族侗族自治州,3,520000 +522700,黔南布依族苗族自治州,3,520000 +530100,昆明市,3,530000 +530300,曲靖市,3,530000 +530400,玉溪市,3,530000 +530500,保山市,3,530000 +530600,昭通市,3,530000 +530700,丽江市,3,530000 +530800,普洱市,3,530000 +530900,临沧市,3,530000 +532300,楚雄彝族自治州,3,530000 +532500,红河哈尼族彝族自治州,3,530000 +532600,文山壮族苗族自治州,3,530000 +532800,西双版纳傣族自治州,3,530000 +532900,大理白族自治州,3,530000 +533100,德宏傣族景颇族自治州,3,530000 +533300,怒江傈僳族自治州,3,530000 +533400,迪庆藏族自治州,3,530000 +540100,拉萨市,3,540000 +540200,日喀则市,3,540000 +540300,昌都市,3,540000 +540400,林芝市,3,540000 +540500,山南市,3,540000 +540600,那曲市,3,540000 +542500,阿里地区,3,540000 +610100,西安市,3,610000 +610200,铜川市,3,610000 +610300,宝鸡市,3,610000 +610400,咸阳市,3,610000 +610500,渭南市,3,610000 +610600,延安市,3,610000 +610700,汉中市,3,610000 +610800,榆林市,3,610000 +610900,安康市,3,610000 +611000,商洛市,3,610000 +620100,兰州市,3,620000 +620200,嘉峪关市,3,620000 +620300,金昌市,3,620000 +620400,白银市,3,620000 +620500,天水市,3,620000 +620600,武威市,3,620000 +620700,张掖市,3,620000 +620800,平凉市,3,620000 +620900,酒泉市,3,620000 +621000,庆阳市,3,620000 +621100,定西市,3,620000 +621200,陇南市,3,620000 +622900,临夏回族自治州,3,620000 +623000,甘南藏族自治州,3,620000 +630100,西宁市,3,630000 +630200,海东市,3,630000 +632200,海北藏族自治州,3,630000 +632300,黄南藏族自治州,3,630000 +632500,海南藏族自治州,3,630000 +632600,果洛藏族自治州,3,630000 +632700,玉树藏族自治州,3,630000 +632800,海西蒙古族藏族自治州,3,630000 +640100,银川市,3,640000 +640200,石嘴山市,3,640000 +640300,吴忠市,3,640000 +640400,固原市,3,640000 +640500,中卫市,3,640000 +650100,乌鲁木齐市,3,650000 +650200,克拉玛依市,3,650000 +650400,吐鲁番市,3,650000 +650500,哈密市,3,650000 +652300,昌吉回族自治州,3,650000 +652700,博尔塔拉蒙古自治州,3,650000 +652800,巴音郭楞蒙古自治州,3,650000 +652900,阿克苏地区,3,650000 +653000,克孜勒苏柯尔克孜自治州,3,650000 +653100,喀什地区,3,650000 +653200,和田地区,3,650000 +654000,伊犁哈萨克自治州,3,650000 +654200,塔城地区,3,650000 +654300,阿勒泰地区,3,650000 +659000,自治区直辖县级行政区划,3,650000 +110101,东城区,4,110100 +110102,西城区,4,110100 +110105,朝阳区,4,110100 +110106,丰台区,4,110100 +110107,石景山区,4,110100 +110108,海淀区,4,110100 +110109,门头沟区,4,110100 +110111,房山区,4,110100 +110112,通州区,4,110100 +110113,顺义区,4,110100 +110114,昌平区,4,110100 +110115,大兴区,4,110100 +110116,怀柔区,4,110100 +110117,平谷区,4,110100 +110118,密云区,4,110100 +110119,延庆区,4,110100 +120101,和平区,4,120100 +120102,河东区,4,120100 +120103,河西区,4,120100 +120104,南开区,4,120100 +120105,河北区,4,120100 +120106,红桥区,4,120100 +120110,东丽区,4,120100 +120111,西青区,4,120100 +120112,津南区,4,120100 +120113,北辰区,4,120100 +120114,武清区,4,120100 +120115,宝坻区,4,120100 +120116,滨海新区,4,120100 +120117,宁河区,4,120100 +120118,静海区,4,120100 +120119,蓟州区,4,120100 +130102,长安区,4,130100 +130104,桥西区,4,130100 +130105,新华区,4,130100 +130107,井陉矿区,4,130100 +130108,裕华区,4,130100 +130109,藁城区,4,130100 +130110,鹿泉区,4,130100 +130111,栾城区,4,130100 +130121,井陉县,4,130100 +130123,正定县,4,130100 +130125,行唐县,4,130100 +130126,灵寿县,4,130100 +130127,高邑县,4,130100 +130128,深泽县,4,130100 +130129,赞皇县,4,130100 +130130,无极县,4,130100 +130131,平山县,4,130100 +130132,元氏县,4,130100 +130133,赵县,4,130100 +130171,石家庄高新技术产业开发区,4,130100 +130172,石家庄循环化工园区,4,130100 +130181,辛集市,4,130100 +130183,晋州市,4,130100 +130184,新乐市,4,130100 +130202,路南区,4,130200 +130203,路北区,4,130200 +130204,古冶区,4,130200 +130205,开平区,4,130200 +130207,丰南区,4,130200 +130208,丰润区,4,130200 +130209,曹妃甸区,4,130200 +130224,滦南县,4,130200 +130225,乐亭县,4,130200 +130227,迁西县,4,130200 +130229,玉田县,4,130200 +130271,河北唐山芦台经济开发区,4,130200 +130272,唐山市汉沽管理区,4,130200 +130273,唐山高新技术产业开发区,4,130200 +130274,河北唐山海港经济开发区,4,130200 +130281,遵化市,4,130200 +130283,迁安市,4,130200 +130284,滦州市,4,130200 +130302,海港区,4,130300 +130303,山海关区,4,130300 +130304,北戴河区,4,130300 +130306,抚宁区,4,130300 +130321,青龙满族自治县,4,130300 +130322,昌黎县,4,130300 +130324,卢龙县,4,130300 +130371,秦皇岛市经济技术开发区,4,130300 +130372,北戴河新区,4,130300 +130402,邯山区,4,130400 +130403,丛台区,4,130400 +130404,复兴区,4,130400 +130406,峰峰矿区,4,130400 +130407,肥乡区,4,130400 +130408,永年区,4,130400 +130423,临漳县,4,130400 +130424,成安县,4,130400 +130425,大名县,4,130400 +130426,涉县,4,130400 +130427,磁县,4,130400 +130430,邱县,4,130400 +130431,鸡泽县,4,130400 +130432,广平县,4,130400 +130433,馆陶县,4,130400 +130434,魏县,4,130400 +130435,曲周县,4,130400 +130471,邯郸经济技术开发区,4,130400 +130473,邯郸冀南新区,4,130400 +130481,武安市,4,130400 +130502,襄都区,4,130500 +130503,信都区,4,130500 +130505,任泽区,4,130500 +130506,南和区,4,130500 +130522,临城县,4,130500 +130523,内丘县,4,130500 +130524,柏乡县,4,130500 +130525,隆尧县,4,130500 +130528,宁晋县,4,130500 +130529,巨鹿县,4,130500 +130530,新河县,4,130500 +130531,广宗县,4,130500 +130532,平乡县,4,130500 +130533,威县,4,130500 +130534,清河县,4,130500 +130535,临西县,4,130500 +130571,河北邢台经济开发区,4,130500 +130581,南宫市,4,130500 +130582,沙河市,4,130500 +130602,竞秀区,4,130600 +130606,莲池区,4,130600 +130607,满城区,4,130600 +130608,清苑区,4,130600 +130609,徐水区,4,130600 +130623,涞水县,4,130600 +130624,阜平县,4,130600 +130626,定兴县,4,130600 +130627,唐县,4,130600 +130628,高阳县,4,130600 +130629,容城县,4,130600 +130630,涞源县,4,130600 +130631,望都县,4,130600 +130632,安新县,4,130600 +130633,易县,4,130600 +130634,曲阳县,4,130600 +130635,蠡县,4,130600 +130636,顺平县,4,130600 +130637,博野县,4,130600 +130638,雄县,4,130600 +130671,保定高新技术产业开发区,4,130600 +130672,保定白沟新城,4,130600 +130681,涿州市,4,130600 +130682,定州市,4,130600 +130683,安国市,4,130600 +130684,高碑店市,4,130600 +130702,桥东区,4,130700 +130703,桥西区,4,130700 +130705,宣化区,4,130700 +130706,下花园区,4,130700 +130708,万全区,4,130700 +130709,崇礼区,4,130700 +130722,张北县,4,130700 +130723,康保县,4,130700 +130724,沽源县,4,130700 +130725,尚义县,4,130700 +130726,蔚县,4,130700 +130727,阳原县,4,130700 +130728,怀安县,4,130700 +130730,怀来县,4,130700 +130731,涿鹿县,4,130700 +130732,赤城县,4,130700 +130771,张家口经济开发区,4,130700 +130772,张家口市察北管理区,4,130700 +130773,张家口市塞北管理区,4,130700 +130802,双桥区,4,130800 +130803,双滦区,4,130800 +130804,鹰手营子矿区,4,130800 +130821,承德县,4,130800 +130822,兴隆县,4,130800 +130824,滦平县,4,130800 +130825,隆化县,4,130800 +130826,丰宁满族自治县,4,130800 +130827,宽城满族自治县,4,130800 +130828,围场满族蒙古族自治县,4,130800 +130871,承德高新技术产业开发区,4,130800 +130881,平泉市,4,130800 +130902,新华区,4,130900 +130903,运河区,4,130900 +130921,沧县,4,130900 +130922,青县,4,130900 +130923,东光县,4,130900 +130924,海兴县,4,130900 +130925,盐山县,4,130900 +130926,肃宁县,4,130900 +130927,南皮县,4,130900 +130928,吴桥县,4,130900 +130929,献县,4,130900 +130930,孟村回族自治县,4,130900 +130971,河北沧州经济开发区,4,130900 +130972,沧州高新技术产业开发区,4,130900 +130973,沧州渤海新区,4,130900 +130981,泊头市,4,130900 +130982,任丘市,4,130900 +130983,黄骅市,4,130900 +130984,河间市,4,130900 +131002,安次区,4,131000 +131003,广阳区,4,131000 +131022,固安县,4,131000 +131023,永清县,4,131000 +131024,香河县,4,131000 +131025,大城县,4,131000 +131026,文安县,4,131000 +131028,大厂回族自治县,4,131000 +131071,廊坊经济技术开发区,4,131000 +131081,霸州市,4,131000 +131082,三河市,4,131000 +131102,桃城区,4,131100 +131103,冀州区,4,131100 +131121,枣强县,4,131100 +131122,武邑县,4,131100 +131123,武强县,4,131100 +131124,饶阳县,4,131100 +131125,安平县,4,131100 +131126,故城县,4,131100 +131127,景县,4,131100 +131128,阜城县,4,131100 +131171,河北衡水高新技术产业开发区,4,131100 +131172,衡水滨湖新区,4,131100 +131182,深州市,4,131100 +140105,小店区,4,140100 +140106,迎泽区,4,140100 +140107,杏花岭区,4,140100 +140108,尖草坪区,4,140100 +140109,万柏林区,4,140100 +140110,晋源区,4,140100 +140121,清徐县,4,140100 +140122,阳曲县,4,140100 +140123,娄烦县,4,140100 +140171,山西转型综合改革示范区,4,140100 +140181,古交市,4,140100 +140212,新荣区,4,140200 +140213,平城区,4,140200 +140214,云冈区,4,140200 +140215,云州区,4,140200 +140221,阳高县,4,140200 +140222,天镇县,4,140200 +140223,广灵县,4,140200 +140224,灵丘县,4,140200 +140225,浑源县,4,140200 +140226,左云县,4,140200 +140271,山西大同经济开发区,4,140200 +140302,城区,4,140300 +140303,矿区,4,140300 +140311,郊区,4,140300 +140321,平定县,4,140300 +140322,盂县,4,140300 +140403,潞州区,4,140400 +140404,上党区,4,140400 +140405,屯留区,4,140400 +140406,潞城区,4,140400 +140423,襄垣县,4,140400 +140425,平顺县,4,140400 +140426,黎城县,4,140400 +140427,壶关县,4,140400 +140428,长子县,4,140400 +140429,武乡县,4,140400 +140430,沁县,4,140400 +140431,沁源县,4,140400 +140471,山西长治高新技术产业园区,4,140400 +140502,城区,4,140500 +140521,沁水县,4,140500 +140522,阳城县,4,140500 +140524,陵川县,4,140500 +140525,泽州县,4,140500 +140581,高平市,4,140500 +140602,朔城区,4,140600 +140603,平鲁区,4,140600 +140621,山阴县,4,140600 +140622,应县,4,140600 +140623,右玉县,4,140600 +140671,山西朔州经济开发区,4,140600 +140681,怀仁市,4,140600 +140702,榆次区,4,140700 +140703,太谷区,4,140700 +140721,榆社县,4,140700 +140722,左权县,4,140700 +140723,和顺县,4,140700 +140724,昔阳县,4,140700 +140725,寿阳县,4,140700 +140727,祁县,4,140700 +140728,平遥县,4,140700 +140729,灵石县,4,140700 +140781,介休市,4,140700 +140802,盐湖区,4,140800 +140821,临猗县,4,140800 +140822,万荣县,4,140800 +140823,闻喜县,4,140800 +140824,稷山县,4,140800 +140825,新绛县,4,140800 +140826,绛县,4,140800 +140827,垣曲县,4,140800 +140828,夏县,4,140800 +140829,平陆县,4,140800 +140830,芮城县,4,140800 +140881,永济市,4,140800 +140882,河津市,4,140800 +140902,忻府区,4,140900 +140921,定襄县,4,140900 +140922,五台县,4,140900 +140923,代县,4,140900 +140924,繁峙县,4,140900 +140925,宁武县,4,140900 +140926,静乐县,4,140900 +140927,神池县,4,140900 +140928,五寨县,4,140900 +140929,岢岚县,4,140900 +140930,河曲县,4,140900 +140931,保德县,4,140900 +140932,偏关县,4,140900 +140971,五台山风景名胜区,4,140900 +140981,原平市,4,140900 +141002,尧都区,4,141000 +141021,曲沃县,4,141000 +141022,翼城县,4,141000 +141023,襄汾县,4,141000 +141024,洪洞县,4,141000 +141025,古县,4,141000 +141026,安泽县,4,141000 +141027,浮山县,4,141000 +141028,吉县,4,141000 +141029,乡宁县,4,141000 +141030,大宁县,4,141000 +141031,隰县,4,141000 +141032,永和县,4,141000 +141033,蒲县,4,141000 +141034,汾西县,4,141000 +141081,侯马市,4,141000 +141082,霍州市,4,141000 +141102,离石区,4,141100 +141121,文水县,4,141100 +141122,交城县,4,141100 +141123,兴县,4,141100 +141124,临县,4,141100 +141125,柳林县,4,141100 +141126,石楼县,4,141100 +141127,岚县,4,141100 +141128,方山县,4,141100 +141129,中阳县,4,141100 +141130,交口县,4,141100 +141181,孝义市,4,141100 +141182,汾阳市,4,141100 +150102,新城区,4,150100 +150103,回民区,4,150100 +150104,玉泉区,4,150100 +150105,赛罕区,4,150100 +150121,土默特左旗,4,150100 +150122,托克托县,4,150100 +150123,和林格尔县,4,150100 +150124,清水河县,4,150100 +150125,武川县,4,150100 +150172,呼和浩特经济技术开发区,4,150100 +150202,东河区,4,150200 +150203,昆都仑区,4,150200 +150204,青山区,4,150200 +150205,石拐区,4,150200 +150206,白云鄂博矿区,4,150200 +150207,九原区,4,150200 +150221,土默特右旗,4,150200 +150222,固阳县,4,150200 +150223,达尔罕茂明安联合旗,4,150200 +150271,包头稀土高新技术产业开发区,4,150200 +150302,海勃湾区,4,150300 +150303,海南区,4,150300 +150304,乌达区,4,150300 +150402,红山区,4,150400 +150403,元宝山区,4,150400 +150404,松山区,4,150400 +150421,阿鲁科尔沁旗,4,150400 +150422,巴林左旗,4,150400 +150423,巴林右旗,4,150400 +150424,林西县,4,150400 +150425,克什克腾旗,4,150400 +150426,翁牛特旗,4,150400 +150428,喀喇沁旗,4,150400 +150429,宁城县,4,150400 +150430,敖汉旗,4,150400 +150502,科尔沁区,4,150500 +150521,科尔沁左翼中旗,4,150500 +150522,科尔沁左翼后旗,4,150500 +150523,开鲁县,4,150500 +150524,库伦旗,4,150500 +150525,奈曼旗,4,150500 +150526,扎鲁特旗,4,150500 +150571,通辽经济技术开发区,4,150500 +150581,霍林郭勒市,4,150500 +150602,东胜区,4,150600 +150603,康巴什区,4,150600 +150621,达拉特旗,4,150600 +150622,准格尔旗,4,150600 +150623,鄂托克前旗,4,150600 +150624,鄂托克旗,4,150600 +150625,杭锦旗,4,150600 +150626,乌审旗,4,150600 +150627,伊金霍洛旗,4,150600 +150702,海拉尔区,4,150700 +150703,扎赉诺尔区,4,150700 +150721,阿荣旗,4,150700 +150722,莫力达瓦达斡尔族自治旗,4,150700 +150723,鄂伦春自治旗,4,150700 +150724,鄂温克族自治旗,4,150700 +150725,陈巴尔虎旗,4,150700 +150726,新巴尔虎左旗,4,150700 +150727,新巴尔虎右旗,4,150700 +150781,满洲里市,4,150700 +150782,牙克石市,4,150700 +150783,扎兰屯市,4,150700 +150784,额尔古纳市,4,150700 +150785,根河市,4,150700 +150802,临河区,4,150800 +150821,五原县,4,150800 +150822,磴口县,4,150800 +150823,乌拉特前旗,4,150800 +150824,乌拉特中旗,4,150800 +150825,乌拉特后旗,4,150800 +150826,杭锦后旗,4,150800 +150902,集宁区,4,150900 +150921,卓资县,4,150900 +150922,化德县,4,150900 +150923,商都县,4,150900 +150924,兴和县,4,150900 +150925,凉城县,4,150900 +150926,察哈尔右翼前旗,4,150900 +150927,察哈尔右翼中旗,4,150900 +150928,察哈尔右翼后旗,4,150900 +150929,四子王旗,4,150900 +150981,丰镇市,4,150900 +152201,乌兰浩特市,4,152200 +152202,阿尔山市,4,152200 +152221,科尔沁右翼前旗,4,152200 +152222,科尔沁右翼中旗,4,152200 +152223,扎赉特旗,4,152200 +152224,突泉县,4,152200 +152501,二连浩特市,4,152500 +152502,锡林浩特市,4,152500 +152522,阿巴嘎旗,4,152500 +152523,苏尼特左旗,4,152500 +152524,苏尼特右旗,4,152500 +152525,东乌珠穆沁旗,4,152500 +152526,西乌珠穆沁旗,4,152500 +152527,太仆寺旗,4,152500 +152528,镶黄旗,4,152500 +152529,正镶白旗,4,152500 +152530,正蓝旗,4,152500 +152531,多伦县,4,152500 +152571,乌拉盖管委会,4,152500 +152921,阿拉善左旗,4,152900 +152922,阿拉善右旗,4,152900 +152923,额济纳旗,4,152900 +152971,内蒙古阿拉善高新技术产业开发区,4,152900 +210102,和平区,4,210100 +210103,沈河区,4,210100 +210104,大东区,4,210100 +210105,皇姑区,4,210100 +210106,铁西区,4,210100 +210111,苏家屯区,4,210100 +210112,浑南区,4,210100 +210113,沈北新区,4,210100 +210114,于洪区,4,210100 +210115,辽中区,4,210100 +210123,康平县,4,210100 +210124,法库县,4,210100 +210181,新民市,4,210100 +210202,中山区,4,210200 +210203,西岗区,4,210200 +210204,沙河口区,4,210200 +210211,甘井子区,4,210200 +210212,旅顺口区,4,210200 +210213,金州区,4,210200 +210214,普兰店区,4,210200 +210224,长海县,4,210200 +210281,瓦房店市,4,210200 +210283,庄河市,4,210200 +210302,铁东区,4,210300 +210303,铁西区,4,210300 +210304,立山区,4,210300 +210311,千山区,4,210300 +210321,台安县,4,210300 +210323,岫岩满族自治县,4,210300 +210381,海城市,4,210300 +210402,新抚区,4,210400 +210403,东洲区,4,210400 +210404,望花区,4,210400 +210411,顺城区,4,210400 +210421,抚顺县,4,210400 +210422,新宾满族自治县,4,210400 +210423,清原满族自治县,4,210400 +210502,平山区,4,210500 +210503,溪湖区,4,210500 +210504,明山区,4,210500 +210505,南芬区,4,210500 +210521,本溪满族自治县,4,210500 +210522,桓仁满族自治县,4,210500 +210602,元宝区,4,210600 +210603,振兴区,4,210600 +210604,振安区,4,210600 +210624,宽甸满族自治县,4,210600 +210681,东港市,4,210600 +210682,凤城市,4,210600 +210702,古塔区,4,210700 +210703,凌河区,4,210700 +210711,太和区,4,210700 +210726,黑山县,4,210700 +210727,义县,4,210700 +210781,凌海市,4,210700 +210782,北镇市,4,210700 +210802,站前区,4,210800 +210803,西市区,4,210800 +210804,鲅鱼圈区,4,210800 +210811,老边区,4,210800 +210881,盖州市,4,210800 +210882,大石桥市,4,210800 +210902,海州区,4,210900 +210903,新邱区,4,210900 +210904,太平区,4,210900 +210905,清河门区,4,210900 +210911,细河区,4,210900 +210921,阜新蒙古族自治县,4,210900 +210922,彰武县,4,210900 +211002,白塔区,4,211000 +211003,文圣区,4,211000 +211004,宏伟区,4,211000 +211005,弓长岭区,4,211000 +211011,太子河区,4,211000 +211021,辽阳县,4,211000 +211081,灯塔市,4,211000 +211102,双台子区,4,211100 +211103,兴隆台区,4,211100 +211104,大洼区,4,211100 +211122,盘山县,4,211100 +211202,银州区,4,211200 +211204,清河区,4,211200 +211221,铁岭县,4,211200 +211223,西丰县,4,211200 +211224,昌图县,4,211200 +211281,调兵山市,4,211200 +211282,开原市,4,211200 +211302,双塔区,4,211300 +211303,龙城区,4,211300 +211321,朝阳县,4,211300 +211322,建平县,4,211300 +211324,喀喇沁左翼蒙古族自治县,4,211300 +211381,北票市,4,211300 +211382,凌源市,4,211300 +211402,连山区,4,211400 +211403,龙港区,4,211400 +211404,南票区,4,211400 +211421,绥中县,4,211400 +211422,建昌县,4,211400 +211481,兴城市,4,211400 +220102,南关区,4,220100 +220103,宽城区,4,220100 +220104,朝阳区,4,220100 +220105,二道区,4,220100 +220106,绿园区,4,220100 +220112,双阳区,4,220100 +220113,九台区,4,220100 +220122,农安县,4,220100 +220171,长春经济技术开发区,4,220100 +220172,长春净月高新技术产业开发区,4,220100 +220173,长春高新技术产业开发区,4,220100 +220174,长春汽车经济技术开发区,4,220100 +220182,榆树市,4,220100 +220183,德惠市,4,220100 +220184,公主岭市,4,220100 +220202,昌邑区,4,220200 +220203,龙潭区,4,220200 +220204,船营区,4,220200 +220211,丰满区,4,220200 +220221,永吉县,4,220200 +220271,吉林经济开发区,4,220200 +220272,吉林高新技术产业开发区,4,220200 +220273,吉林中国新加坡食品区,4,220200 +220281,蛟河市,4,220200 +220282,桦甸市,4,220200 +220283,舒兰市,4,220200 +220284,磐石市,4,220200 +220302,铁西区,4,220300 +220303,铁东区,4,220300 +220322,梨树县,4,220300 +220323,伊通满族自治县,4,220300 +220382,双辽市,4,220300 +220402,龙山区,4,220400 +220403,西安区,4,220400 +220421,东丰县,4,220400 +220422,东辽县,4,220400 +220502,东昌区,4,220500 +220503,二道江区,4,220500 +220521,通化县,4,220500 +220523,辉南县,4,220500 +220524,柳河县,4,220500 +220581,梅河口市,4,220500 +220582,集安市,4,220500 +220602,浑江区,4,220600 +220605,江源区,4,220600 +220621,抚松县,4,220600 +220622,靖宇县,4,220600 +220623,长白朝鲜族自治县,4,220600 +220681,临江市,4,220600 +220702,宁江区,4,220700 +220721,前郭尔罗斯蒙古族自治县,4,220700 +220722,长岭县,4,220700 +220723,乾安县,4,220700 +220771,吉林松原经济开发区,4,220700 +220781,扶余市,4,220700 +220802,洮北区,4,220800 +220821,镇赉县,4,220800 +220822,通榆县,4,220800 +220871,吉林白城经济开发区,4,220800 +220881,洮南市,4,220800 +220882,大安市,4,220800 +222401,延吉市,4,222400 +222402,图们市,4,222400 +222403,敦化市,4,222400 +222404,珲春市,4,222400 +222405,龙井市,4,222400 +222406,和龙市,4,222400 +222424,汪清县,4,222400 +222426,安图县,4,222400 +230102,道里区,4,230100 +230103,南岗区,4,230100 +230104,道外区,4,230100 +230108,平房区,4,230100 +230109,松北区,4,230100 +230110,香坊区,4,230100 +230111,呼兰区,4,230100 +230112,阿城区,4,230100 +230113,双城区,4,230100 +230123,依兰县,4,230100 +230124,方正县,4,230100 +230125,宾县,4,230100 +230126,巴彦县,4,230100 +230127,木兰县,4,230100 +230128,通河县,4,230100 +230129,延寿县,4,230100 +230183,尚志市,4,230100 +230184,五常市,4,230100 +230202,龙沙区,4,230200 +230203,建华区,4,230200 +230204,铁锋区,4,230200 +230205,昂昂溪区,4,230200 +230206,富拉尔基区,4,230200 +230207,碾子山区,4,230200 +230208,梅里斯达斡尔族区,4,230200 +230221,龙江县,4,230200 +230223,依安县,4,230200 +230224,泰来县,4,230200 +230225,甘南县,4,230200 +230227,富裕县,4,230200 +230229,克山县,4,230200 +230230,克东县,4,230200 +230231,拜泉县,4,230200 +230281,讷河市,4,230200 +230302,鸡冠区,4,230300 +230303,恒山区,4,230300 +230304,滴道区,4,230300 +230305,梨树区,4,230300 +230306,城子河区,4,230300 +230307,麻山区,4,230300 +230321,鸡东县,4,230300 +230381,虎林市,4,230300 +230382,密山市,4,230300 +230402,向阳区,4,230400 +230403,工农区,4,230400 +230404,南山区,4,230400 +230405,兴安区,4,230400 +230406,东山区,4,230400 +230407,兴山区,4,230400 +230421,萝北县,4,230400 +230422,绥滨县,4,230400 +230502,尖山区,4,230500 +230503,岭东区,4,230500 +230505,四方台区,4,230500 +230506,宝山区,4,230500 +230521,集贤县,4,230500 +230522,友谊县,4,230500 +230523,宝清县,4,230500 +230524,饶河县,4,230500 +230602,萨尔图区,4,230600 +230603,龙凤区,4,230600 +230604,让胡路区,4,230600 +230605,红岗区,4,230600 +230606,大同区,4,230600 +230621,肇州县,4,230600 +230622,肇源县,4,230600 +230623,林甸县,4,230600 +230624,杜尔伯特蒙古族自治县,4,230600 +230671,大庆高新技术产业开发区,4,230600 +230717,伊美区,4,230700 +230718,乌翠区,4,230700 +230719,友好区,4,230700 +230722,嘉荫县,4,230700 +230723,汤旺县,4,230700 +230724,丰林县,4,230700 +230725,大箐山县,4,230700 +230726,南岔县,4,230700 +230751,金林区,4,230700 +230781,铁力市,4,230700 +230803,向阳区,4,230800 +230804,前进区,4,230800 +230805,东风区,4,230800 +230811,郊区,4,230800 +230822,桦南县,4,230800 +230826,桦川县,4,230800 +230828,汤原县,4,230800 +230881,同江市,4,230800 +230882,富锦市,4,230800 +230883,抚远市,4,230800 +230902,新兴区,4,230900 +230903,桃山区,4,230900 +230904,茄子河区,4,230900 +230921,勃利县,4,230900 +231002,东安区,4,231000 +231003,阳明区,4,231000 +231004,爱民区,4,231000 +231005,西安区,4,231000 +231025,林口县,4,231000 +231071,牡丹江经济技术开发区,4,231000 +231081,绥芬河市,4,231000 +231083,海林市,4,231000 +231084,宁安市,4,231000 +231085,穆棱市,4,231000 +231086,东宁市,4,231000 +231102,爱辉区,4,231100 +231123,逊克县,4,231100 +231124,孙吴县,4,231100 +231181,北安市,4,231100 +231182,五大连池市,4,231100 +231183,嫩江市,4,231100 +231202,北林区,4,231200 +231221,望奎县,4,231200 +231222,兰西县,4,231200 +231223,青冈县,4,231200 +231224,庆安县,4,231200 +231225,明水县,4,231200 +231226,绥棱县,4,231200 +231281,安达市,4,231200 +231282,肇东市,4,231200 +231283,海伦市,4,231200 +232701,漠河市,4,232700 +232721,呼玛县,4,232700 +232722,塔河县,4,232700 +232761,加格达奇区,4,232700 +232762,松岭区,4,232700 +232763,新林区,4,232700 +232764,呼中区,4,232700 +310101,黄浦区,4,310100 +310104,徐汇区,4,310100 +310105,长宁区,4,310100 +310106,静安区,4,310100 +310107,普陀区,4,310100 +310109,虹口区,4,310100 +310110,杨浦区,4,310100 +310112,闵行区,4,310100 +310113,宝山区,4,310100 +310114,嘉定区,4,310100 +310115,浦东新区,4,310100 +310116,金山区,4,310100 +310117,松江区,4,310100 +310118,青浦区,4,310100 +310120,奉贤区,4,310100 +310151,崇明区,4,310100 +320102,玄武区,4,320100 +320104,秦淮区,4,320100 +320105,建邺区,4,320100 +320106,鼓楼区,4,320100 +320111,浦口区,4,320100 +320113,栖霞区,4,320100 +320114,雨花台区,4,320100 +320115,江宁区,4,320100 +320116,六合区,4,320100 +320117,溧水区,4,320100 +320118,高淳区,4,320100 +320205,锡山区,4,320200 +320206,惠山区,4,320200 +320211,滨湖区,4,320200 +320213,梁溪区,4,320200 +320214,新吴区,4,320200 +320281,江阴市,4,320200 +320282,宜兴市,4,320200 +320302,鼓楼区,4,320300 +320303,云龙区,4,320300 +320305,贾汪区,4,320300 +320311,泉山区,4,320300 +320312,铜山区,4,320300 +320321,丰县,4,320300 +320322,沛县,4,320300 +320324,睢宁县,4,320300 +320371,徐州经济技术开发区,4,320300 +320381,新沂市,4,320300 +320382,邳州市,4,320300 +320402,天宁区,4,320400 +320404,钟楼区,4,320400 +320411,新北区,4,320400 +320412,武进区,4,320400 +320413,金坛区,4,320400 +320481,溧阳市,4,320400 +320505,虎丘区,4,320500 +320506,吴中区,4,320500 +320507,相城区,4,320500 +320508,姑苏区,4,320500 +320509,吴江区,4,320500 +320571,苏州工业园区,4,320500 +320581,常熟市,4,320500 +320582,张家港市,4,320500 +320583,昆山市,4,320500 +320585,太仓市,4,320500 +320612,通州区,4,320600 +320613,崇川区,4,320600 +320614,海门区,4,320600 +320623,如东县,4,320600 +320671,南通经济技术开发区,4,320600 +320681,启东市,4,320600 +320682,如皋市,4,320600 +320685,海安市,4,320600 +320703,连云区,4,320700 +320706,海州区,4,320700 +320707,赣榆区,4,320700 +320722,东海县,4,320700 +320723,灌云县,4,320700 +320724,灌南县,4,320700 +320771,连云港经济技术开发区,4,320700 +320772,连云港高新技术产业开发区,4,320700 +320803,淮安区,4,320800 +320804,淮阴区,4,320800 +320812,清江浦区,4,320800 +320813,洪泽区,4,320800 +320826,涟水县,4,320800 +320830,盱眙县,4,320800 +320831,金湖县,4,320800 +320871,淮安经济技术开发区,4,320800 +320902,亭湖区,4,320900 +320903,盐都区,4,320900 +320904,大丰区,4,320900 +320921,响水县,4,320900 +320922,滨海县,4,320900 +320923,阜宁县,4,320900 +320924,射阳县,4,320900 +320925,建湖县,4,320900 +320971,盐城经济技术开发区,4,320900 +320981,东台市,4,320900 +321002,广陵区,4,321000 +321003,邗江区,4,321000 +321012,江都区,4,321000 +321023,宝应县,4,321000 +321071,扬州经济技术开发区,4,321000 +321081,仪征市,4,321000 +321084,高邮市,4,321000 +321102,京口区,4,321100 +321111,润州区,4,321100 +321112,丹徒区,4,321100 +321171,镇江新区,4,321100 +321181,丹阳市,4,321100 +321182,扬中市,4,321100 +321183,句容市,4,321100 +321202,海陵区,4,321200 +321203,高港区,4,321200 +321204,姜堰区,4,321200 +321271,泰州医药高新技术产业开发区,4,321200 +321281,兴化市,4,321200 +321282,靖江市,4,321200 +321283,泰兴市,4,321200 +321302,宿城区,4,321300 +321311,宿豫区,4,321300 +321322,沭阳县,4,321300 +321323,泗阳县,4,321300 +321324,泗洪县,4,321300 +321371,宿迁经济技术开发区,4,321300 +330102,上城区,4,330100 +330105,拱墅区,4,330100 +330106,西湖区,4,330100 +330108,滨江区,4,330100 +330109,萧山区,4,330100 +330110,余杭区,4,330100 +330111,富阳区,4,330100 +330112,临安区,4,330100 +330113,临平区,4,330100 +330114,钱塘区,4,330100 +330122,桐庐县,4,330100 +330127,淳安县,4,330100 +330182,建德市,4,330100 +330203,海曙区,4,330200 +330205,江北区,4,330200 +330206,北仑区,4,330200 +330211,镇海区,4,330200 +330212,鄞州区,4,330200 +330213,奉化区,4,330200 +330225,象山县,4,330200 +330226,宁海县,4,330200 +330281,余姚市,4,330200 +330282,慈溪市,4,330200 +330302,鹿城区,4,330300 +330303,龙湾区,4,330300 +330304,瓯海区,4,330300 +330305,洞头区,4,330300 +330324,永嘉县,4,330300 +330326,平阳县,4,330300 +330327,苍南县,4,330300 +330328,文成县,4,330300 +330329,泰顺县,4,330300 +330371,温州经济技术开发区,4,330300 +330381,瑞安市,4,330300 +330382,乐清市,4,330300 +330383,龙港市,4,330300 +330402,南湖区,4,330400 +330411,秀洲区,4,330400 +330421,嘉善县,4,330400 +330424,海盐县,4,330400 +330481,海宁市,4,330400 +330482,平湖市,4,330400 +330483,桐乡市,4,330400 +330502,吴兴区,4,330500 +330503,南浔区,4,330500 +330521,德清县,4,330500 +330522,长兴县,4,330500 +330523,安吉县,4,330500 +330602,越城区,4,330600 +330603,柯桥区,4,330600 +330604,上虞区,4,330600 +330624,新昌县,4,330600 +330681,诸暨市,4,330600 +330683,嵊州市,4,330600 +330702,婺城区,4,330700 +330703,金东区,4,330700 +330723,武义县,4,330700 +330726,浦江县,4,330700 +330727,磐安县,4,330700 +330781,兰溪市,4,330700 +330782,义乌市,4,330700 +330783,东阳市,4,330700 +330784,永康市,4,330700 +330802,柯城区,4,330800 +330803,衢江区,4,330800 +330822,常山县,4,330800 +330824,开化县,4,330800 +330825,龙游县,4,330800 +330881,江山市,4,330800 +330902,定海区,4,330900 +330903,普陀区,4,330900 +330921,岱山县,4,330900 +330922,嵊泗县,4,330900 +331002,椒江区,4,331000 +331003,黄岩区,4,331000 +331004,路桥区,4,331000 +331022,三门县,4,331000 +331023,天台县,4,331000 +331024,仙居县,4,331000 +331081,温岭市,4,331000 +331082,临海市,4,331000 +331083,玉环市,4,331000 +331102,莲都区,4,331100 +331121,青田县,4,331100 +331122,缙云县,4,331100 +331123,遂昌县,4,331100 +331124,松阳县,4,331100 +331125,云和县,4,331100 +331126,庆元县,4,331100 +331127,景宁畲族自治县,4,331100 +331181,龙泉市,4,331100 +340102,瑶海区,4,340100 +340103,庐阳区,4,340100 +340104,蜀山区,4,340100 +340111,包河区,4,340100 +340121,长丰县,4,340100 +340122,肥东县,4,340100 +340123,肥西县,4,340100 +340124,庐江县,4,340100 +340171,合肥高新技术产业开发区,4,340100 +340172,合肥经济技术开发区,4,340100 +340173,合肥新站高新技术产业开发区,4,340100 +340181,巢湖市,4,340100 +340202,镜湖区,4,340200 +340207,鸠江区,4,340200 +340209,弋江区,4,340200 +340210,湾沚区,4,340200 +340212,繁昌区,4,340200 +340223,南陵县,4,340200 +340271,芜湖经济技术开发区,4,340200 +340272,安徽芜湖三山经济开发区,4,340200 +340281,无为市,4,340200 +340302,龙子湖区,4,340300 +340303,蚌山区,4,340300 +340304,禹会区,4,340300 +340311,淮上区,4,340300 +340321,怀远县,4,340300 +340322,五河县,4,340300 +340323,固镇县,4,340300 +340371,蚌埠市高新技术开发区,4,340300 +340372,蚌埠市经济开发区,4,340300 +340402,大通区,4,340400 +340403,田家庵区,4,340400 +340404,谢家集区,4,340400 +340405,八公山区,4,340400 +340406,潘集区,4,340400 +340421,凤台县,4,340400 +340422,寿县,4,340400 +340503,花山区,4,340500 +340504,雨山区,4,340500 +340506,博望区,4,340500 +340521,当涂县,4,340500 +340522,含山县,4,340500 +340523,和县,4,340500 +340602,杜集区,4,340600 +340603,相山区,4,340600 +340604,烈山区,4,340600 +340621,濉溪县,4,340600 +340705,铜官区,4,340700 +340706,义安区,4,340700 +340711,郊区,4,340700 +340722,枞阳县,4,340700 +340802,迎江区,4,340800 +340803,大观区,4,340800 +340811,宜秀区,4,340800 +340822,怀宁县,4,340800 +340825,太湖县,4,340800 +340826,宿松县,4,340800 +340827,望江县,4,340800 +340828,岳西县,4,340800 +340871,安徽安庆经济开发区,4,340800 +340881,桐城市,4,340800 +340882,潜山市,4,340800 +341002,屯溪区,4,341000 +341003,黄山区,4,341000 +341004,徽州区,4,341000 +341021,歙县,4,341000 +341022,休宁县,4,341000 +341023,黟县,4,341000 +341024,祁门县,4,341000 +341102,琅琊区,4,341100 +341103,南谯区,4,341100 +341122,来安县,4,341100 +341124,全椒县,4,341100 +341125,定远县,4,341100 +341126,凤阳县,4,341100 +341171,中新苏滁高新技术产业开发区,4,341100 +341172,滁州经济技术开发区,4,341100 +341181,天长市,4,341100 +341182,明光市,4,341100 +341202,颍州区,4,341200 +341203,颍东区,4,341200 +341204,颍泉区,4,341200 +341221,临泉县,4,341200 +341222,太和县,4,341200 +341225,阜南县,4,341200 +341226,颍上县,4,341200 +341271,阜阳合肥现代产业园区,4,341200 +341272,阜阳经济技术开发区,4,341200 +341282,界首市,4,341200 +341302,埇桥区,4,341300 +341321,砀山县,4,341300 +341322,萧县,4,341300 +341323,灵璧县,4,341300 +341324,泗县,4,341300 +341371,宿州马鞍山现代产业园区,4,341300 +341372,宿州经济技术开发区,4,341300 +341502,金安区,4,341500 +341503,裕安区,4,341500 +341504,叶集区,4,341500 +341522,霍邱县,4,341500 +341523,舒城县,4,341500 +341524,金寨县,4,341500 +341525,霍山县,4,341500 +341602,谯城区,4,341600 +341621,涡阳县,4,341600 +341622,蒙城县,4,341600 +341623,利辛县,4,341600 +341702,贵池区,4,341700 +341721,东至县,4,341700 +341722,石台县,4,341700 +341723,青阳县,4,341700 +341802,宣州区,4,341800 +341821,郎溪县,4,341800 +341823,泾县,4,341800 +341824,绩溪县,4,341800 +341825,旌德县,4,341800 +341871,宣城市经济开发区,4,341800 +341881,宁国市,4,341800 +341882,广德市,4,341800 +350102,鼓楼区,4,350100 +350103,台江区,4,350100 +350104,仓山区,4,350100 +350105,马尾区,4,350100 +350111,晋安区,4,350100 +350112,长乐区,4,350100 +350121,闽侯县,4,350100 +350122,连江县,4,350100 +350123,罗源县,4,350100 +350124,闽清县,4,350100 +350125,永泰县,4,350100 +350128,平潭县,4,350100 +350181,福清市,4,350100 +350203,思明区,4,350200 +350205,海沧区,4,350200 +350206,湖里区,4,350200 +350211,集美区,4,350200 +350212,同安区,4,350200 +350213,翔安区,4,350200 +350302,城厢区,4,350300 +350303,涵江区,4,350300 +350304,荔城区,4,350300 +350305,秀屿区,4,350300 +350322,仙游县,4,350300 +350404,三元区,4,350400 +350405,沙县区,4,350400 +350421,明溪县,4,350400 +350423,清流县,4,350400 +350424,宁化县,4,350400 +350425,大田县,4,350400 +350426,尤溪县,4,350400 +350428,将乐县,4,350400 +350429,泰宁县,4,350400 +350430,建宁县,4,350400 +350481,永安市,4,350400 +350502,鲤城区,4,350500 +350503,丰泽区,4,350500 +350504,洛江区,4,350500 +350505,泉港区,4,350500 +350521,惠安县,4,350500 +350524,安溪县,4,350500 +350525,永春县,4,350500 +350526,德化县,4,350500 +350527,金门县,4,350500 +350581,石狮市,4,350500 +350582,晋江市,4,350500 +350583,南安市,4,350500 +350602,芗城区,4,350600 +350603,龙文区,4,350600 +350604,龙海区,4,350600 +350605,长泰区,4,350600 +350622,云霄县,4,350600 +350623,漳浦县,4,350600 +350624,诏安县,4,350600 +350626,东山县,4,350600 +350627,南靖县,4,350600 +350628,平和县,4,350600 +350629,华安县,4,350600 +350702,延平区,4,350700 +350703,建阳区,4,350700 +350721,顺昌县,4,350700 +350722,浦城县,4,350700 +350723,光泽县,4,350700 +350724,松溪县,4,350700 +350725,政和县,4,350700 +350781,邵武市,4,350700 +350782,武夷山市,4,350700 +350783,建瓯市,4,350700 +350802,新罗区,4,350800 +350803,永定区,4,350800 +350821,长汀县,4,350800 +350823,上杭县,4,350800 +350824,武平县,4,350800 +350825,连城县,4,350800 +350881,漳平市,4,350800 +350902,蕉城区,4,350900 +350921,霞浦县,4,350900 +350922,古田县,4,350900 +350923,屏南县,4,350900 +350924,寿宁县,4,350900 +350925,周宁县,4,350900 +350926,柘荣县,4,350900 +350981,福安市,4,350900 +350982,福鼎市,4,350900 +360102,东湖区,4,360100 +360103,西湖区,4,360100 +360104,青云谱区,4,360100 +360111,青山湖区,4,360100 +360112,新建区,4,360100 +360113,红谷滩区,4,360100 +360121,南昌县,4,360100 +360123,安义县,4,360100 +360124,进贤县,4,360100 +360202,昌江区,4,360200 +360203,珠山区,4,360200 +360222,浮梁县,4,360200 +360281,乐平市,4,360200 +360302,安源区,4,360300 +360313,湘东区,4,360300 +360321,莲花县,4,360300 +360322,上栗县,4,360300 +360323,芦溪县,4,360300 +360402,濂溪区,4,360400 +360403,浔阳区,4,360400 +360404,柴桑区,4,360400 +360423,武宁县,4,360400 +360424,修水县,4,360400 +360425,永修县,4,360400 +360426,德安县,4,360400 +360428,都昌县,4,360400 +360429,湖口县,4,360400 +360430,彭泽县,4,360400 +360481,瑞昌市,4,360400 +360482,共青城市,4,360400 +360483,庐山市,4,360400 +360502,渝水区,4,360500 +360521,分宜县,4,360500 +360602,月湖区,4,360600 +360603,余江区,4,360600 +360681,贵溪市,4,360600 +360702,章贡区,4,360700 +360703,南康区,4,360700 +360704,赣县区,4,360700 +360722,信丰县,4,360700 +360723,大余县,4,360700 +360724,上犹县,4,360700 +360725,崇义县,4,360700 +360726,安远县,4,360700 +360728,定南县,4,360700 +360729,全南县,4,360700 +360730,宁都县,4,360700 +360731,于都县,4,360700 +360732,兴国县,4,360700 +360733,会昌县,4,360700 +360734,寻乌县,4,360700 +360735,石城县,4,360700 +360781,瑞金市,4,360700 +360783,龙南市,4,360700 +360802,吉州区,4,360800 +360803,青原区,4,360800 +360821,吉安县,4,360800 +360822,吉水县,4,360800 +360823,峡江县,4,360800 +360824,新干县,4,360800 +360825,永丰县,4,360800 +360826,泰和县,4,360800 +360827,遂川县,4,360800 +360828,万安县,4,360800 +360829,安福县,4,360800 +360830,永新县,4,360800 +360881,井冈山市,4,360800 +360902,袁州区,4,360900 +360921,奉新县,4,360900 +360922,万载县,4,360900 +360923,上高县,4,360900 +360924,宜丰县,4,360900 +360925,靖安县,4,360900 +360926,铜鼓县,4,360900 +360981,丰城市,4,360900 +360982,樟树市,4,360900 +360983,高安市,4,360900 +361002,临川区,4,361000 +361003,东乡区,4,361000 +361021,南城县,4,361000 +361022,黎川县,4,361000 +361023,南丰县,4,361000 +361024,崇仁县,4,361000 +361025,乐安县,4,361000 +361026,宜黄县,4,361000 +361027,金溪县,4,361000 +361028,资溪县,4,361000 +361030,广昌县,4,361000 +361102,信州区,4,361100 +361103,广丰区,4,361100 +361104,广信区,4,361100 +361123,玉山县,4,361100 +361124,铅山县,4,361100 +361125,横峰县,4,361100 +361126,弋阳县,4,361100 +361127,余干县,4,361100 +361128,鄱阳县,4,361100 +361129,万年县,4,361100 +361130,婺源县,4,361100 +361181,德兴市,4,361100 +370102,历下区,4,370100 +370103,市中区,4,370100 +370104,槐荫区,4,370100 +370105,天桥区,4,370100 +370112,历城区,4,370100 +370113,长清区,4,370100 +370114,章丘区,4,370100 +370115,济阳区,4,370100 +370116,莱芜区,4,370100 +370117,钢城区,4,370100 +370124,平阴县,4,370100 +370126,商河县,4,370100 +370171,济南高新技术产业开发区,4,370100 +370202,市南区,4,370200 +370203,市北区,4,370200 +370211,黄岛区,4,370200 +370212,崂山区,4,370200 +370213,李沧区,4,370200 +370214,城阳区,4,370200 +370215,即墨区,4,370200 +370271,青岛高新技术产业开发区,4,370200 +370281,胶州市,4,370200 +370283,平度市,4,370200 +370285,莱西市,4,370200 +370302,淄川区,4,370300 +370303,张店区,4,370300 +370304,博山区,4,370300 +370305,临淄区,4,370300 +370306,周村区,4,370300 +370321,桓台县,4,370300 +370322,高青县,4,370300 +370323,沂源县,4,370300 +370402,市中区,4,370400 +370403,薛城区,4,370400 +370404,峄城区,4,370400 +370405,台儿庄区,4,370400 +370406,山亭区,4,370400 +370481,滕州市,4,370400 +370502,东营区,4,370500 +370503,河口区,4,370500 +370505,垦利区,4,370500 +370522,利津县,4,370500 +370523,广饶县,4,370500 +370571,东营经济技术开发区,4,370500 +370572,东营港经济开发区,4,370500 +370602,芝罘区,4,370600 +370611,福山区,4,370600 +370612,牟平区,4,370600 +370613,莱山区,4,370600 +370614,蓬莱区,4,370600 +370671,烟台高新技术产业开发区,4,370600 +370672,烟台经济技术开发区,4,370600 +370681,龙口市,4,370600 +370682,莱阳市,4,370600 +370683,莱州市,4,370600 +370685,招远市,4,370600 +370686,栖霞市,4,370600 +370687,海阳市,4,370600 +370702,潍城区,4,370700 +370703,寒亭区,4,370700 +370704,坊子区,4,370700 +370705,奎文区,4,370700 +370724,临朐县,4,370700 +370725,昌乐县,4,370700 +370772,潍坊滨海经济技术开发区,4,370700 +370781,青州市,4,370700 +370782,诸城市,4,370700 +370783,寿光市,4,370700 +370784,安丘市,4,370700 +370785,高密市,4,370700 +370786,昌邑市,4,370700 +370811,任城区,4,370800 +370812,兖州区,4,370800 +370826,微山县,4,370800 +370827,鱼台县,4,370800 +370828,金乡县,4,370800 +370829,嘉祥县,4,370800 +370830,汶上县,4,370800 +370831,泗水县,4,370800 +370832,梁山县,4,370800 +370871,济宁高新技术产业开发区,4,370800 +370881,曲阜市,4,370800 +370883,邹城市,4,370800 +370902,泰山区,4,370900 +370911,岱岳区,4,370900 +370921,宁阳县,4,370900 +370923,东平县,4,370900 +370982,新泰市,4,370900 +370983,肥城市,4,370900 +371002,环翠区,4,371000 +371003,文登区,4,371000 +371071,威海火炬高技术产业开发区,4,371000 +371072,威海经济技术开发区,4,371000 +371073,威海临港经济技术开发区,4,371000 +371082,荣成市,4,371000 +371083,乳山市,4,371000 +371102,东港区,4,371100 +371103,岚山区,4,371100 +371121,五莲县,4,371100 +371122,莒县,4,371100 +371171,日照经济技术开发区,4,371100 +371302,兰山区,4,371300 +371311,罗庄区,4,371300 +371312,河东区,4,371300 +371321,沂南县,4,371300 +371322,郯城县,4,371300 +371323,沂水县,4,371300 +371324,兰陵县,4,371300 +371325,费县,4,371300 +371326,平邑县,4,371300 +371327,莒南县,4,371300 +371328,蒙阴县,4,371300 +371329,临沭县,4,371300 +371371,临沂高新技术产业开发区,4,371300 +371402,德城区,4,371400 +371403,陵城区,4,371400 +371422,宁津县,4,371400 +371423,庆云县,4,371400 +371424,临邑县,4,371400 +371425,齐河县,4,371400 +371426,平原县,4,371400 +371427,夏津县,4,371400 +371428,武城县,4,371400 +371471,德州经济技术开发区,4,371400 +371472,德州运河经济开发区,4,371400 +371481,乐陵市,4,371400 +371482,禹城市,4,371400 +371502,东昌府区,4,371500 +371503,茌平区,4,371500 +371521,阳谷县,4,371500 +371522,莘县,4,371500 +371524,东阿县,4,371500 +371525,冠县,4,371500 +371526,高唐县,4,371500 +371581,临清市,4,371500 +371602,滨城区,4,371600 +371603,沾化区,4,371600 +371621,惠民县,4,371600 +371622,阳信县,4,371600 +371623,无棣县,4,371600 +371625,博兴县,4,371600 +371681,邹平市,4,371600 +371702,牡丹区,4,371700 +371703,定陶区,4,371700 +371721,曹县,4,371700 +371722,单县,4,371700 +371723,成武县,4,371700 +371724,巨野县,4,371700 +371725,郓城县,4,371700 +371726,鄄城县,4,371700 +371728,东明县,4,371700 +371771,菏泽经济技术开发区,4,371700 +371772,菏泽高新技术开发区,4,371700 +410102,中原区,4,410100 +410103,二七区,4,410100 +410104,管城回族区,4,410100 +410105,金水区,4,410100 +410106,上街区,4,410100 +410108,惠济区,4,410100 +410122,中牟县,4,410100 +410171,郑州经济技术开发区,4,410100 +410172,郑州高新技术产业开发区,4,410100 +410173,郑州航空港经济综合实验区,4,410100 +410181,巩义市,4,410100 +410182,荥阳市,4,410100 +410183,新密市,4,410100 +410184,新郑市,4,410100 +410185,登封市,4,410100 +410202,龙亭区,4,410200 +410203,顺河回族区,4,410200 +410204,鼓楼区,4,410200 +410205,禹王台区,4,410200 +410212,祥符区,4,410200 +410221,杞县,4,410200 +410222,通许县,4,410200 +410223,尉氏县,4,410200 +410225,兰考县,4,410200 +410302,老城区,4,410300 +410303,西工区,4,410300 +410304,瀍河回族区,4,410300 +410305,涧西区,4,410300 +410307,偃师区,4,410300 +410308,孟津区,4,410300 +410311,洛龙区,4,410300 +410323,新安县,4,410300 +410324,栾川县,4,410300 +410325,嵩县,4,410300 +410326,汝阳县,4,410300 +410327,宜阳县,4,410300 +410328,洛宁县,4,410300 +410329,伊川县,4,410300 +410371,洛阳高新技术产业开发区,4,410300 +410402,新华区,4,410400 +410403,卫东区,4,410400 +410404,石龙区,4,410400 +410411,湛河区,4,410400 +410421,宝丰县,4,410400 +410422,叶县,4,410400 +410423,鲁山县,4,410400 +410425,郏县,4,410400 +410471,平顶山高新技术产业开发区,4,410400 +410472,平顶山市城乡一体化示范区,4,410400 +410481,舞钢市,4,410400 +410482,汝州市,4,410400 +410502,文峰区,4,410500 +410503,北关区,4,410500 +410505,殷都区,4,410500 +410506,龙安区,4,410500 +410522,安阳县,4,410500 +410523,汤阴县,4,410500 +410526,滑县,4,410500 +410527,内黄县,4,410500 +410571,安阳高新技术产业开发区,4,410500 +410581,林州市,4,410500 +410602,鹤山区,4,410600 +410603,山城区,4,410600 +410611,淇滨区,4,410600 +410621,浚县,4,410600 +410622,淇县,4,410600 +410671,鹤壁经济技术开发区,4,410600 +410702,红旗区,4,410700 +410703,卫滨区,4,410700 +410704,凤泉区,4,410700 +410711,牧野区,4,410700 +410721,新乡县,4,410700 +410724,获嘉县,4,410700 +410725,原阳县,4,410700 +410726,延津县,4,410700 +410727,封丘县,4,410700 +410771,新乡高新技术产业开发区,4,410700 +410772,新乡经济技术开发区,4,410700 +410773,新乡市平原城乡一体化示范区,4,410700 +410781,卫辉市,4,410700 +410782,辉县市,4,410700 +410783,长垣市,4,410700 +410802,解放区,4,410800 +410803,中站区,4,410800 +410804,马村区,4,410800 +410811,山阳区,4,410800 +410821,修武县,4,410800 +410822,博爱县,4,410800 +410823,武陟县,4,410800 +410825,温县,4,410800 +410871,焦作城乡一体化示范区,4,410800 +410882,沁阳市,4,410800 +410883,孟州市,4,410800 +410902,华龙区,4,410900 +410922,清丰县,4,410900 +410923,南乐县,4,410900 +410926,范县,4,410900 +410927,台前县,4,410900 +410928,濮阳县,4,410900 +410971,河南濮阳工业园区,4,410900 +410972,濮阳经济技术开发区,4,410900 +411002,魏都区,4,411000 +411003,建安区,4,411000 +411024,鄢陵县,4,411000 +411025,襄城县,4,411000 +411071,许昌经济技术开发区,4,411000 +411081,禹州市,4,411000 +411082,长葛市,4,411000 +411102,源汇区,4,411100 +411103,郾城区,4,411100 +411104,召陵区,4,411100 +411121,舞阳县,4,411100 +411122,临颍县,4,411100 +411171,漯河经济技术开发区,4,411100 +411202,湖滨区,4,411200 +411203,陕州区,4,411200 +411221,渑池县,4,411200 +411224,卢氏县,4,411200 +411271,河南三门峡经济开发区,4,411200 +411281,义马市,4,411200 +411282,灵宝市,4,411200 +411302,宛城区,4,411300 +411303,卧龙区,4,411300 +411321,南召县,4,411300 +411322,方城县,4,411300 +411323,西峡县,4,411300 +411324,镇平县,4,411300 +411325,内乡县,4,411300 +411326,淅川县,4,411300 +411327,社旗县,4,411300 +411328,唐河县,4,411300 +411329,新野县,4,411300 +411330,桐柏县,4,411300 +411371,南阳高新技术产业开发区,4,411300 +411372,南阳市城乡一体化示范区,4,411300 +411381,邓州市,4,411300 +411402,梁园区,4,411400 +411403,睢阳区,4,411400 +411421,民权县,4,411400 +411422,睢县,4,411400 +411423,宁陵县,4,411400 +411424,柘城县,4,411400 +411425,虞城县,4,411400 +411426,夏邑县,4,411400 +411471,豫东综合物流产业聚集区,4,411400 +411472,河南商丘经济开发区,4,411400 +411481,永城市,4,411400 +411502,浉河区,4,411500 +411503,平桥区,4,411500 +411521,罗山县,4,411500 +411522,光山县,4,411500 +411523,新县,4,411500 +411524,商城县,4,411500 +411525,固始县,4,411500 +411526,潢川县,4,411500 +411527,淮滨县,4,411500 +411528,息县,4,411500 +411571,信阳高新技术产业开发区,4,411500 +411602,川汇区,4,411600 +411603,淮阳区,4,411600 +411621,扶沟县,4,411600 +411622,西华县,4,411600 +411623,商水县,4,411600 +411624,沈丘县,4,411600 +411625,郸城县,4,411600 +411627,太康县,4,411600 +411628,鹿邑县,4,411600 +411671,河南周口经济开发区,4,411600 +411681,项城市,4,411600 +411702,驿城区,4,411700 +411721,西平县,4,411700 +411722,上蔡县,4,411700 +411723,平舆县,4,411700 +411724,正阳县,4,411700 +411725,确山县,4,411700 +411726,泌阳县,4,411700 +411727,汝南县,4,411700 +411728,遂平县,4,411700 +411729,新蔡县,4,411700 +411771,河南驻马店经济开发区,4,411700 +419001,济源市,4,419000 +420102,江岸区,4,420100 +420103,江汉区,4,420100 +420104,硚口区,4,420100 +420105,汉阳区,4,420100 +420106,武昌区,4,420100 +420107,青山区,4,420100 +420111,洪山区,4,420100 +420112,东西湖区,4,420100 +420113,汉南区,4,420100 +420114,蔡甸区,4,420100 +420115,江夏区,4,420100 +420116,黄陂区,4,420100 +420117,新洲区,4,420100 +420202,黄石港区,4,420200 +420203,西塞山区,4,420200 +420204,下陆区,4,420200 +420205,铁山区,4,420200 +420222,阳新县,4,420200 +420281,大冶市,4,420200 +420302,茅箭区,4,420300 +420303,张湾区,4,420300 +420304,郧阳区,4,420300 +420322,郧西县,4,420300 +420323,竹山县,4,420300 +420324,竹溪县,4,420300 +420325,房县,4,420300 +420381,丹江口市,4,420300 +420502,西陵区,4,420500 +420503,伍家岗区,4,420500 +420504,点军区,4,420500 +420505,猇亭区,4,420500 +420506,夷陵区,4,420500 +420525,远安县,4,420500 +420526,兴山县,4,420500 +420527,秭归县,4,420500 +420528,长阳土家族自治县,4,420500 +420529,五峰土家族自治县,4,420500 +420581,宜都市,4,420500 +420582,当阳市,4,420500 +420583,枝江市,4,420500 +420602,襄城区,4,420600 +420606,樊城区,4,420600 +420607,襄州区,4,420600 +420624,南漳县,4,420600 +420625,谷城县,4,420600 +420626,保康县,4,420600 +420682,老河口市,4,420600 +420683,枣阳市,4,420600 +420684,宜城市,4,420600 +420702,梁子湖区,4,420700 +420703,华容区,4,420700 +420704,鄂城区,4,420700 +420802,东宝区,4,420800 +420804,掇刀区,4,420800 +420822,沙洋县,4,420800 +420881,钟祥市,4,420800 +420882,京山市,4,420800 +420902,孝南区,4,420900 +420921,孝昌县,4,420900 +420922,大悟县,4,420900 +420923,云梦县,4,420900 +420981,应城市,4,420900 +420982,安陆市,4,420900 +420984,汉川市,4,420900 +421002,沙市区,4,421000 +421003,荆州区,4,421000 +421022,公安县,4,421000 +421024,江陵县,4,421000 +421071,荆州经济技术开发区,4,421000 +421081,石首市,4,421000 +421083,洪湖市,4,421000 +421087,松滋市,4,421000 +421088,监利市,4,421000 +421102,黄州区,4,421100 +421121,团风县,4,421100 +421122,红安县,4,421100 +421123,罗田县,4,421100 +421124,英山县,4,421100 +421125,浠水县,4,421100 +421126,蕲春县,4,421100 +421127,黄梅县,4,421100 +421171,龙感湖管理区,4,421100 +421181,麻城市,4,421100 +421182,武穴市,4,421100 +421202,咸安区,4,421200 +421221,嘉鱼县,4,421200 +421222,通城县,4,421200 +421223,崇阳县,4,421200 +421224,通山县,4,421200 +421281,赤壁市,4,421200 +421303,曾都区,4,421300 +421321,随县,4,421300 +421381,广水市,4,421300 +422801,恩施市,4,422800 +422802,利川市,4,422800 +422822,建始县,4,422800 +422823,巴东县,4,422800 +422825,宣恩县,4,422800 +422826,咸丰县,4,422800 +422827,来凤县,4,422800 +422828,鹤峰县,4,422800 +429004,仙桃市,4,429000 +429005,潜江市,4,429000 +429006,天门市,4,429000 +429021,神农架林区,4,429000 +430102,芙蓉区,4,430100 +430103,天心区,4,430100 +430104,岳麓区,4,430100 +430105,开福区,4,430100 +430111,雨花区,4,430100 +430112,望城区,4,430100 +430121,长沙县,4,430100 +430181,浏阳市,4,430100 +430182,宁乡市,4,430100 +430202,荷塘区,4,430200 +430203,芦淞区,4,430200 +430204,石峰区,4,430200 +430211,天元区,4,430200 +430212,渌口区,4,430200 +430223,攸县,4,430200 +430224,茶陵县,4,430200 +430225,炎陵县,4,430200 +430271,云龙示范区,4,430200 +430281,醴陵市,4,430200 +430302,雨湖区,4,430300 +430304,岳塘区,4,430300 +430321,湘潭县,4,430300 +430371,湖南湘潭高新技术产业园区,4,430300 +430372,湘潭昭山示范区,4,430300 +430373,湘潭九华示范区,4,430300 +430381,湘乡市,4,430300 +430382,韶山市,4,430300 +430405,珠晖区,4,430400 +430406,雁峰区,4,430400 +430407,石鼓区,4,430400 +430408,蒸湘区,4,430400 +430412,南岳区,4,430400 +430421,衡阳县,4,430400 +430422,衡南县,4,430400 +430423,衡山县,4,430400 +430424,衡东县,4,430400 +430426,祁东县,4,430400 +430471,衡阳综合保税区,4,430400 +430472,湖南衡阳高新技术产业园区,4,430400 +430473,湖南衡阳松木经济开发区,4,430400 +430481,耒阳市,4,430400 +430482,常宁市,4,430400 +430502,双清区,4,430500 +430503,大祥区,4,430500 +430511,北塔区,4,430500 +430522,新邵县,4,430500 +430523,邵阳县,4,430500 +430524,隆回县,4,430500 +430525,洞口县,4,430500 +430527,绥宁县,4,430500 +430528,新宁县,4,430500 +430529,城步苗族自治县,4,430500 +430581,武冈市,4,430500 +430582,邵东市,4,430500 +430602,岳阳楼区,4,430600 +430603,云溪区,4,430600 +430611,君山区,4,430600 +430621,岳阳县,4,430600 +430623,华容县,4,430600 +430624,湘阴县,4,430600 +430626,平江县,4,430600 +430671,岳阳市屈原管理区,4,430600 +430681,汨罗市,4,430600 +430682,临湘市,4,430600 +430702,武陵区,4,430700 +430703,鼎城区,4,430700 +430721,安乡县,4,430700 +430722,汉寿县,4,430700 +430723,澧县,4,430700 +430724,临澧县,4,430700 +430725,桃源县,4,430700 +430726,石门县,4,430700 +430771,常德市西洞庭管理区,4,430700 +430781,津市市,4,430700 +430802,永定区,4,430800 +430811,武陵源区,4,430800 +430821,慈利县,4,430800 +430822,桑植县,4,430800 +430902,资阳区,4,430900 +430903,赫山区,4,430900 +430921,南县,4,430900 +430922,桃江县,4,430900 +430923,安化县,4,430900 +430971,益阳市大通湖管理区,4,430900 +430972,湖南益阳高新技术产业园区,4,430900 +430981,沅江市,4,430900 +431002,北湖区,4,431000 +431003,苏仙区,4,431000 +431021,桂阳县,4,431000 +431022,宜章县,4,431000 +431023,永兴县,4,431000 +431024,嘉禾县,4,431000 +431025,临武县,4,431000 +431026,汝城县,4,431000 +431027,桂东县,4,431000 +431028,安仁县,4,431000 +431081,资兴市,4,431000 +431102,零陵区,4,431100 +431103,冷水滩区,4,431100 +431122,东安县,4,431100 +431123,双牌县,4,431100 +431124,道县,4,431100 +431125,江永县,4,431100 +431126,宁远县,4,431100 +431127,蓝山县,4,431100 +431128,新田县,4,431100 +431129,江华瑶族自治县,4,431100 +431171,永州经济技术开发区,4,431100 +431173,永州市回龙圩管理区,4,431100 +431181,祁阳市,4,431100 +431202,鹤城区,4,431200 +431221,中方县,4,431200 +431222,沅陵县,4,431200 +431223,辰溪县,4,431200 +431224,溆浦县,4,431200 +431225,会同县,4,431200 +431226,麻阳苗族自治县,4,431200 +431227,新晃侗族自治县,4,431200 +431228,芷江侗族自治县,4,431200 +431229,靖州苗族侗族自治县,4,431200 +431230,通道侗族自治县,4,431200 +431271,怀化市洪江管理区,4,431200 +431281,洪江市,4,431200 +431302,娄星区,4,431300 +431321,双峰县,4,431300 +431322,新化县,4,431300 +431381,冷水江市,4,431300 +431382,涟源市,4,431300 +433101,吉首市,4,433100 +433122,泸溪县,4,433100 +433123,凤凰县,4,433100 +433124,花垣县,4,433100 +433125,保靖县,4,433100 +433126,古丈县,4,433100 +433127,永顺县,4,433100 +433130,龙山县,4,433100 +440103,荔湾区,4,440100 +440104,越秀区,4,440100 +440105,海珠区,4,440100 +440106,天河区,4,440100 +440111,白云区,4,440100 +440112,黄埔区,4,440100 +440113,番禺区,4,440100 +440114,花都区,4,440100 +440115,南沙区,4,440100 +440117,从化区,4,440100 +440118,增城区,4,440100 +440203,武江区,4,440200 +440204,浈江区,4,440200 +440205,曲江区,4,440200 +440222,始兴县,4,440200 +440224,仁化县,4,440200 +440229,翁源县,4,440200 +440232,乳源瑶族自治县,4,440200 +440233,新丰县,4,440200 +440281,乐昌市,4,440200 +440282,南雄市,4,440200 +440303,罗湖区,4,440300 +440304,福田区,4,440300 +440305,南山区,4,440300 +440306,宝安区,4,440300 +440307,龙岗区,4,440300 +440308,盐田区,4,440300 +440309,龙华区,4,440300 +440310,坪山区,4,440300 +440311,光明区,4,440300 +440402,香洲区,4,440400 +440403,斗门区,4,440400 +440404,金湾区,4,440400 +440507,龙湖区,4,440500 +440511,金平区,4,440500 +440512,濠江区,4,440500 +440513,潮阳区,4,440500 +440514,潮南区,4,440500 +440515,澄海区,4,440500 +440523,南澳县,4,440500 +440604,禅城区,4,440600 +440605,南海区,4,440600 +440606,顺德区,4,440600 +440607,三水区,4,440600 +440608,高明区,4,440600 +440703,蓬江区,4,440700 +440704,江海区,4,440700 +440705,新会区,4,440700 +440781,台山市,4,440700 +440783,开平市,4,440700 +440784,鹤山市,4,440700 +440785,恩平市,4,440700 +440802,赤坎区,4,440800 +440803,霞山区,4,440800 +440804,坡头区,4,440800 +440811,麻章区,4,440800 +440823,遂溪县,4,440800 +440825,徐闻县,4,440800 +440881,廉江市,4,440800 +440882,雷州市,4,440800 +440883,吴川市,4,440800 +440902,茂南区,4,440900 +440904,电白区,4,440900 +440981,高州市,4,440900 +440982,化州市,4,440900 +440983,信宜市,4,440900 +441202,端州区,4,441200 +441203,鼎湖区,4,441200 +441204,高要区,4,441200 +441223,广宁县,4,441200 +441224,怀集县,4,441200 +441225,封开县,4,441200 +441226,德庆县,4,441200 +441284,四会市,4,441200 +441302,惠城区,4,441300 +441303,惠阳区,4,441300 +441322,博罗县,4,441300 +441323,惠东县,4,441300 +441324,龙门县,4,441300 +441402,梅江区,4,441400 +441403,梅县区,4,441400 +441422,大埔县,4,441400 +441423,丰顺县,4,441400 +441424,五华县,4,441400 +441426,平远县,4,441400 +441427,蕉岭县,4,441400 +441481,兴宁市,4,441400 +441502,城区,4,441500 +441521,海丰县,4,441500 +441523,陆河县,4,441500 +441581,陆丰市,4,441500 +441602,源城区,4,441600 +441621,紫金县,4,441600 +441622,龙川县,4,441600 +441623,连平县,4,441600 +441624,和平县,4,441600 +441625,东源县,4,441600 +441702,江城区,4,441700 +441704,阳东区,4,441700 +441721,阳西县,4,441700 +441781,阳春市,4,441700 +441802,清城区,4,441800 +441803,清新区,4,441800 +441821,佛冈县,4,441800 +441823,阳山县,4,441800 +441825,连山壮族瑶族自治县,4,441800 +441826,连南瑶族自治县,4,441800 +441881,英德市,4,441800 +441882,连州市,4,441800 +445102,湘桥区,4,445100 +445103,潮安区,4,445100 +445122,饶平县,4,445100 +445202,榕城区,4,445200 +445203,揭东区,4,445200 +445222,揭西县,4,445200 +445224,惠来县,4,445200 +445281,普宁市,4,445200 +445302,云城区,4,445300 +445303,云安区,4,445300 +445321,新兴县,4,445300 +445322,郁南县,4,445300 +445381,罗定市,4,445300 +450102,兴宁区,4,450100 +450103,青秀区,4,450100 +450105,江南区,4,450100 +450107,西乡塘区,4,450100 +450108,良庆区,4,450100 +450109,邕宁区,4,450100 +450110,武鸣区,4,450100 +450123,隆安县,4,450100 +450124,马山县,4,450100 +450125,上林县,4,450100 +450126,宾阳县,4,450100 +450181,横州市,4,450100 +450202,城中区,4,450200 +450203,鱼峰区,4,450200 +450204,柳南区,4,450200 +450205,柳北区,4,450200 +450206,柳江区,4,450200 +450222,柳城县,4,450200 +450223,鹿寨县,4,450200 +450224,融安县,4,450200 +450225,融水苗族自治县,4,450200 +450226,三江侗族自治县,4,450200 +450302,秀峰区,4,450300 +450303,叠彩区,4,450300 +450304,象山区,4,450300 +450305,七星区,4,450300 +450311,雁山区,4,450300 +450312,临桂区,4,450300 +450321,阳朔县,4,450300 +450323,灵川县,4,450300 +450324,全州县,4,450300 +450325,兴安县,4,450300 +450326,永福县,4,450300 +450327,灌阳县,4,450300 +450328,龙胜各族自治县,4,450300 +450329,资源县,4,450300 +450330,平乐县,4,450300 +450332,恭城瑶族自治县,4,450300 +450381,荔浦市,4,450300 +450403,万秀区,4,450400 +450405,长洲区,4,450400 +450406,龙圩区,4,450400 +450421,苍梧县,4,450400 +450422,藤县,4,450400 +450423,蒙山县,4,450400 +450481,岑溪市,4,450400 +450502,海城区,4,450500 +450503,银海区,4,450500 +450512,铁山港区,4,450500 +450521,合浦县,4,450500 +450602,港口区,4,450600 +450603,防城区,4,450600 +450621,上思县,4,450600 +450681,东兴市,4,450600 +450702,钦南区,4,450700 +450703,钦北区,4,450700 +450721,灵山县,4,450700 +450722,浦北县,4,450700 +450802,港北区,4,450800 +450803,港南区,4,450800 +450804,覃塘区,4,450800 +450821,平南县,4,450800 +450881,桂平市,4,450800 +450902,玉州区,4,450900 +450903,福绵区,4,450900 +450921,容县,4,450900 +450922,陆川县,4,450900 +450923,博白县,4,450900 +450924,兴业县,4,450900 +450981,北流市,4,450900 +451002,右江区,4,451000 +451003,田阳区,4,451000 +451022,田东县,4,451000 +451024,德保县,4,451000 +451026,那坡县,4,451000 +451027,凌云县,4,451000 +451028,乐业县,4,451000 +451029,田林县,4,451000 +451030,西林县,4,451000 +451031,隆林各族自治县,4,451000 +451081,靖西市,4,451000 +451082,平果市,4,451000 +451102,八步区,4,451100 +451103,平桂区,4,451100 +451121,昭平县,4,451100 +451122,钟山县,4,451100 +451123,富川瑶族自治县,4,451100 +451202,金城江区,4,451200 +451203,宜州区,4,451200 +451221,南丹县,4,451200 +451222,天峨县,4,451200 +451223,凤山县,4,451200 +451224,东兰县,4,451200 +451225,罗城仫佬族自治县,4,451200 +451226,环江毛南族自治县,4,451200 +451227,巴马瑶族自治县,4,451200 +451228,都安瑶族自治县,4,451200 +451229,大化瑶族自治县,4,451200 +451302,兴宾区,4,451300 +451321,忻城县,4,451300 +451322,象州县,4,451300 +451323,武宣县,4,451300 +451324,金秀瑶族自治县,4,451300 +451381,合山市,4,451300 +451402,江州区,4,451400 +451421,扶绥县,4,451400 +451422,宁明县,4,451400 +451423,龙州县,4,451400 +451424,大新县,4,451400 +451425,天等县,4,451400 +451481,凭祥市,4,451400 +460105,秀英区,4,460100 +460106,龙华区,4,460100 +460107,琼山区,4,460100 +460108,美兰区,4,460100 +460202,海棠区,4,460200 +460203,吉阳区,4,460200 +460204,天涯区,4,460200 +460205,崖州区,4,460200 +460321,西沙群岛,4,460300 +460322,南沙群岛,4,460300 +460323,中沙群岛的岛礁及其海域,4,460300 +469001,五指山市,4,469000 +469002,琼海市,4,469000 +469005,文昌市,4,469000 +469006,万宁市,4,469000 +469007,东方市,4,469000 +469021,定安县,4,469000 +469022,屯昌县,4,469000 +469023,澄迈县,4,469000 +469024,临高县,4,469000 +469025,白沙黎族自治县,4,469000 +469026,昌江黎族自治县,4,469000 +469027,乐东黎族自治县,4,469000 +469028,陵水黎族自治县,4,469000 +469029,保亭黎族苗族自治县,4,469000 +469030,琼中黎族苗族自治县,4,469000 +500101,万州区,4,500100 +500102,涪陵区,4,500100 +500103,渝中区,4,500100 +500104,大渡口区,4,500100 +500105,江北区,4,500100 +500106,沙坪坝区,4,500100 +500107,九龙坡区,4,500100 +500108,南岸区,4,500100 +500109,北碚区,4,500100 +500110,綦江区,4,500100 +500111,大足区,4,500100 +500112,渝北区,4,500100 +500113,巴南区,4,500100 +500114,黔江区,4,500100 +500115,长寿区,4,500100 +500116,江津区,4,500100 +500117,合川区,4,500100 +500118,永川区,4,500100 +500119,南川区,4,500100 +500120,璧山区,4,500100 +500151,铜梁区,4,500100 +500152,潼南区,4,500100 +500153,荣昌区,4,500100 +500154,开州区,4,500100 +500155,梁平区,4,500100 +500156,武隆区,4,500100 +500229,城口县,4,500100 +500230,丰都县,4,500100 +500231,垫江县,4,500100 +500233,忠县,4,500100 +500235,云阳县,4,500100 +500236,奉节县,4,500100 +500237,巫山县,4,500100 +500238,巫溪县,4,500100 +500240,石柱土家族自治县,4,500100 +500241,秀山土家族苗族自治县,4,500100 +500242,酉阳土家族苗族自治县,4,500100 +500243,彭水苗族土家族自治县,4,500100 +510104,锦江区,4,510100 +510105,青羊区,4,510100 +510106,金牛区,4,510100 +510107,武侯区,4,510100 +510108,成华区,4,510100 +510112,龙泉驿区,4,510100 +510113,青白江区,4,510100 +510114,新都区,4,510100 +510115,温江区,4,510100 +510116,双流区,4,510100 +510117,郫都区,4,510100 +510118,新津区,4,510100 +510121,金堂县,4,510100 +510129,大邑县,4,510100 +510131,蒲江县,4,510100 +510181,都江堰市,4,510100 +510182,彭州市,4,510100 +510183,邛崃市,4,510100 +510184,崇州市,4,510100 +510185,简阳市,4,510100 +510302,自流井区,4,510300 +510303,贡井区,4,510300 +510304,大安区,4,510300 +510311,沿滩区,4,510300 +510321,荣县,4,510300 +510322,富顺县,4,510300 +510402,东区,4,510400 +510403,西区,4,510400 +510411,仁和区,4,510400 +510421,米易县,4,510400 +510422,盐边县,4,510400 +510502,江阳区,4,510500 +510503,纳溪区,4,510500 +510504,龙马潭区,4,510500 +510521,泸县,4,510500 +510522,合江县,4,510500 +510524,叙永县,4,510500 +510525,古蔺县,4,510500 +510603,旌阳区,4,510600 +510604,罗江区,4,510600 +510623,中江县,4,510600 +510681,广汉市,4,510600 +510682,什邡市,4,510600 +510683,绵竹市,4,510600 +510703,涪城区,4,510700 +510704,游仙区,4,510700 +510705,安州区,4,510700 +510722,三台县,4,510700 +510723,盐亭县,4,510700 +510725,梓潼县,4,510700 +510726,北川羌族自治县,4,510700 +510727,平武县,4,510700 +510781,江油市,4,510700 +510802,利州区,4,510800 +510811,昭化区,4,510800 +510812,朝天区,4,510800 +510821,旺苍县,4,510800 +510822,青川县,4,510800 +510823,剑阁县,4,510800 +510824,苍溪县,4,510800 +510903,船山区,4,510900 +510904,安居区,4,510900 +510921,蓬溪县,4,510900 +510923,大英县,4,510900 +510981,射洪市,4,510900 +511002,市中区,4,511000 +511011,东兴区,4,511000 +511024,威远县,4,511000 +511025,资中县,4,511000 +511071,内江经济开发区,4,511000 +511083,隆昌市,4,511000 +511102,市中区,4,511100 +511111,沙湾区,4,511100 +511112,五通桥区,4,511100 +511113,金口河区,4,511100 +511123,犍为县,4,511100 +511124,井研县,4,511100 +511126,夹江县,4,511100 +511129,沐川县,4,511100 +511132,峨边彝族自治县,4,511100 +511133,马边彝族自治县,4,511100 +511181,峨眉山市,4,511100 +511302,顺庆区,4,511300 +511303,高坪区,4,511300 +511304,嘉陵区,4,511300 +511321,南部县,4,511300 +511322,营山县,4,511300 +511323,蓬安县,4,511300 +511324,仪陇县,4,511300 +511325,西充县,4,511300 +511381,阆中市,4,511300 +511402,东坡区,4,511400 +511403,彭山区,4,511400 +511421,仁寿县,4,511400 +511423,洪雅县,4,511400 +511424,丹棱县,4,511400 +511425,青神县,4,511400 +511502,翠屏区,4,511500 +511503,南溪区,4,511500 +511504,叙州区,4,511500 +511523,江安县,4,511500 +511524,长宁县,4,511500 +511525,高县,4,511500 +511526,珙县,4,511500 +511527,筠连县,4,511500 +511528,兴文县,4,511500 +511529,屏山县,4,511500 +511602,广安区,4,511600 +511603,前锋区,4,511600 +511621,岳池县,4,511600 +511622,武胜县,4,511600 +511623,邻水县,4,511600 +511681,华蓥市,4,511600 +511702,通川区,4,511700 +511703,达川区,4,511700 +511722,宣汉县,4,511700 +511723,开江县,4,511700 +511724,大竹县,4,511700 +511725,渠县,4,511700 +511771,达州经济开发区,4,511700 +511781,万源市,4,511700 +511802,雨城区,4,511800 +511803,名山区,4,511800 +511822,荥经县,4,511800 +511823,汉源县,4,511800 +511824,石棉县,4,511800 +511825,天全县,4,511800 +511826,芦山县,4,511800 +511827,宝兴县,4,511800 +511902,巴州区,4,511900 +511903,恩阳区,4,511900 +511921,通江县,4,511900 +511922,南江县,4,511900 +511923,平昌县,4,511900 +511971,巴中经济开发区,4,511900 +512002,雁江区,4,512000 +512021,安岳县,4,512000 +512022,乐至县,4,512000 +513201,马尔康市,4,513200 +513221,汶川县,4,513200 +513222,理县,4,513200 +513223,茂县,4,513200 +513224,松潘县,4,513200 +513225,九寨沟县,4,513200 +513226,金川县,4,513200 +513227,小金县,4,513200 +513228,黑水县,4,513200 +513230,壤塘县,4,513200 +513231,阿坝县,4,513200 +513232,若尔盖县,4,513200 +513233,红原县,4,513200 +513301,康定市,4,513300 +513322,泸定县,4,513300 +513323,丹巴县,4,513300 +513324,九龙县,4,513300 +513325,雅江县,4,513300 +513326,道孚县,4,513300 +513327,炉霍县,4,513300 +513328,甘孜县,4,513300 +513329,新龙县,4,513300 +513330,德格县,4,513300 +513331,白玉县,4,513300 +513332,石渠县,4,513300 +513333,色达县,4,513300 +513334,理塘县,4,513300 +513335,巴塘县,4,513300 +513336,乡城县,4,513300 +513337,稻城县,4,513300 +513338,得荣县,4,513300 +513401,西昌市,4,513400 +513402,会理市,4,513400 +513422,木里藏族自治县,4,513400 +513423,盐源县,4,513400 +513424,德昌县,4,513400 +513426,会东县,4,513400 +513427,宁南县,4,513400 +513428,普格县,4,513400 +513429,布拖县,4,513400 +513430,金阳县,4,513400 +513431,昭觉县,4,513400 +513432,喜德县,4,513400 +513433,冕宁县,4,513400 +513434,越西县,4,513400 +513435,甘洛县,4,513400 +513436,美姑县,4,513400 +513437,雷波县,4,513400 +520102,南明区,4,520100 +520103,云岩区,4,520100 +520111,花溪区,4,520100 +520112,乌当区,4,520100 +520113,白云区,4,520100 +520115,观山湖区,4,520100 +520121,开阳县,4,520100 +520122,息烽县,4,520100 +520123,修文县,4,520100 +520181,清镇市,4,520100 +520201,钟山区,4,520200 +520203,六枝特区,4,520200 +520204,水城区,4,520200 +520281,盘州市,4,520200 +520302,红花岗区,4,520300 +520303,汇川区,4,520300 +520304,播州区,4,520300 +520322,桐梓县,4,520300 +520323,绥阳县,4,520300 +520324,正安县,4,520300 +520325,道真仡佬族苗族自治县,4,520300 +520326,务川仡佬族苗族自治县,4,520300 +520327,凤冈县,4,520300 +520328,湄潭县,4,520300 +520329,余庆县,4,520300 +520330,习水县,4,520300 +520381,赤水市,4,520300 +520382,仁怀市,4,520300 +520402,西秀区,4,520400 +520403,平坝区,4,520400 +520422,普定县,4,520400 +520423,镇宁布依族苗族自治县,4,520400 +520424,关岭布依族苗族自治县,4,520400 +520425,紫云苗族布依族自治县,4,520400 +520502,七星关区,4,520500 +520521,大方县,4,520500 +520523,金沙县,4,520500 +520524,织金县,4,520500 +520525,纳雍县,4,520500 +520526,威宁彝族回族苗族自治县,4,520500 +520527,赫章县,4,520500 +520581,黔西市,4,520500 +520602,碧江区,4,520600 +520603,万山区,4,520600 +520621,江口县,4,520600 +520622,玉屏侗族自治县,4,520600 +520623,石阡县,4,520600 +520624,思南县,4,520600 +520625,印江土家族苗族自治县,4,520600 +520626,德江县,4,520600 +520627,沿河土家族自治县,4,520600 +520628,松桃苗族自治县,4,520600 +522301,兴义市,4,522300 +522302,兴仁市,4,522300 +522323,普安县,4,522300 +522324,晴隆县,4,522300 +522325,贞丰县,4,522300 +522326,望谟县,4,522300 +522327,册亨县,4,522300 +522328,安龙县,4,522300 +522601,凯里市,4,522600 +522622,黄平县,4,522600 +522623,施秉县,4,522600 +522624,三穗县,4,522600 +522625,镇远县,4,522600 +522626,岑巩县,4,522600 +522627,天柱县,4,522600 +522628,锦屏县,4,522600 +522629,剑河县,4,522600 +522630,台江县,4,522600 +522631,黎平县,4,522600 +522632,榕江县,4,522600 +522633,从江县,4,522600 +522634,雷山县,4,522600 +522635,麻江县,4,522600 +522636,丹寨县,4,522600 +522701,都匀市,4,522700 +522702,福泉市,4,522700 +522722,荔波县,4,522700 +522723,贵定县,4,522700 +522725,瓮安县,4,522700 +522726,独山县,4,522700 +522727,平塘县,4,522700 +522728,罗甸县,4,522700 +522729,长顺县,4,522700 +522730,龙里县,4,522700 +522731,惠水县,4,522700 +522732,三都水族自治县,4,522700 +530102,五华区,4,530100 +530103,盘龙区,4,530100 +530111,官渡区,4,530100 +530112,西山区,4,530100 +530113,东川区,4,530100 +530114,呈贡区,4,530100 +530115,晋宁区,4,530100 +530124,富民县,4,530100 +530125,宜良县,4,530100 +530126,石林彝族自治县,4,530100 +530127,嵩明县,4,530100 +530128,禄劝彝族苗族自治县,4,530100 +530129,寻甸回族彝族自治县,4,530100 +530181,安宁市,4,530100 +530302,麒麟区,4,530300 +530303,沾益区,4,530300 +530304,马龙区,4,530300 +530322,陆良县,4,530300 +530323,师宗县,4,530300 +530324,罗平县,4,530300 +530325,富源县,4,530300 +530326,会泽县,4,530300 +530381,宣威市,4,530300 +530402,红塔区,4,530400 +530403,江川区,4,530400 +530423,通海县,4,530400 +530424,华宁县,4,530400 +530425,易门县,4,530400 +530426,峨山彝族自治县,4,530400 +530427,新平彝族傣族自治县,4,530400 +530428,元江哈尼族彝族傣族自治县,4,530400 +530481,澄江市,4,530400 +530502,隆阳区,4,530500 +530521,施甸县,4,530500 +530523,龙陵县,4,530500 +530524,昌宁县,4,530500 +530581,腾冲市,4,530500 +530602,昭阳区,4,530600 +530621,鲁甸县,4,530600 +530622,巧家县,4,530600 +530623,盐津县,4,530600 +530624,大关县,4,530600 +530625,永善县,4,530600 +530626,绥江县,4,530600 +530627,镇雄县,4,530600 +530628,彝良县,4,530600 +530629,威信县,4,530600 +530681,水富市,4,530600 +530702,古城区,4,530700 +530721,玉龙纳西族自治县,4,530700 +530722,永胜县,4,530700 +530723,华坪县,4,530700 +530724,宁蒗彝族自治县,4,530700 +530802,思茅区,4,530800 +530821,宁洱哈尼族彝族自治县,4,530800 +530822,墨江哈尼族自治县,4,530800 +530823,景东彝族自治县,4,530800 +530824,景谷傣族彝族自治县,4,530800 +530825,镇沅彝族哈尼族拉祜族自治县,4,530800 +530826,江城哈尼族彝族自治县,4,530800 +530827,孟连傣族拉祜族佤族自治县,4,530800 +530828,澜沧拉祜族自治县,4,530800 +530829,西盟佤族自治县,4,530800 +530902,临翔区,4,530900 +530921,凤庆县,4,530900 +530922,云县,4,530900 +530923,永德县,4,530900 +530924,镇康县,4,530900 +530925,双江拉祜族佤族布朗族傣族自治县,4,530900 +530926,耿马傣族佤族自治县,4,530900 +530927,沧源佤族自治县,4,530900 +532301,楚雄市,4,532300 +532302,禄丰市,4,532300 +532322,双柏县,4,532300 +532323,牟定县,4,532300 +532324,南华县,4,532300 +532325,姚安县,4,532300 +532326,大姚县,4,532300 +532327,永仁县,4,532300 +532328,元谋县,4,532300 +532329,武定县,4,532300 +532501,个旧市,4,532500 +532502,开远市,4,532500 +532503,蒙自市,4,532500 +532504,弥勒市,4,532500 +532523,屏边苗族自治县,4,532500 +532524,建水县,4,532500 +532525,石屏县,4,532500 +532527,泸西县,4,532500 +532528,元阳县,4,532500 +532529,红河县,4,532500 +532530,金平苗族瑶族傣族自治县,4,532500 +532531,绿春县,4,532500 +532532,河口瑶族自治县,4,532500 +532601,文山市,4,532600 +532622,砚山县,4,532600 +532623,西畴县,4,532600 +532624,麻栗坡县,4,532600 +532625,马关县,4,532600 +532626,丘北县,4,532600 +532627,广南县,4,532600 +532628,富宁县,4,532600 +532801,景洪市,4,532800 +532822,勐海县,4,532800 +532823,勐腊县,4,532800 +532901,大理市,4,532900 +532922,漾濞彝族自治县,4,532900 +532923,祥云县,4,532900 +532924,宾川县,4,532900 +532925,弥渡县,4,532900 +532926,南涧彝族自治县,4,532900 +532927,巍山彝族回族自治县,4,532900 +532928,永平县,4,532900 +532929,云龙县,4,532900 +532930,洱源县,4,532900 +532931,剑川县,4,532900 +532932,鹤庆县,4,532900 +533102,瑞丽市,4,533100 +533103,芒市,4,533100 +533122,梁河县,4,533100 +533123,盈江县,4,533100 +533124,陇川县,4,533100 +533301,泸水市,4,533300 +533323,福贡县,4,533300 +533324,贡山独龙族怒族自治县,4,533300 +533325,兰坪白族普米族自治县,4,533300 +533401,香格里拉市,4,533400 +533422,德钦县,4,533400 +533423,维西傈僳族自治县,4,533400 +540102,城关区,4,540100 +540103,堆龙德庆区,4,540100 +540104,达孜区,4,540100 +540121,林周县,4,540100 +540122,当雄县,4,540100 +540123,尼木县,4,540100 +540124,曲水县,4,540100 +540127,墨竹工卡县,4,540100 +540171,格尔木藏青工业园区,4,540100 +540172,拉萨经济技术开发区,4,540100 +540173,西藏文化旅游创意园区,4,540100 +540174,达孜工业园区,4,540100 +540202,桑珠孜区,4,540200 +540221,南木林县,4,540200 +540222,江孜县,4,540200 +540223,定日县,4,540200 +540224,萨迦县,4,540200 +540225,拉孜县,4,540200 +540226,昂仁县,4,540200 +540227,谢通门县,4,540200 +540228,白朗县,4,540200 +540229,仁布县,4,540200 +540230,康马县,4,540200 +540231,定结县,4,540200 +540232,仲巴县,4,540200 +540233,亚东县,4,540200 +540234,吉隆县,4,540200 +540235,聂拉木县,4,540200 +540236,萨嘎县,4,540200 +540237,岗巴县,4,540200 +540302,卡若区,4,540300 +540321,江达县,4,540300 +540322,贡觉县,4,540300 +540323,类乌齐县,4,540300 +540324,丁青县,4,540300 +540325,察雅县,4,540300 +540326,八宿县,4,540300 +540327,左贡县,4,540300 +540328,芒康县,4,540300 +540329,洛隆县,4,540300 +540330,边坝县,4,540300 +540402,巴宜区,4,540400 +540421,工布江达县,4,540400 +540422,米林县,4,540400 +540423,墨脱县,4,540400 +540424,波密县,4,540400 +540425,察隅县,4,540400 +540426,朗县,4,540400 +540502,乃东区,4,540500 +540521,扎囊县,4,540500 +540522,贡嘎县,4,540500 +540523,桑日县,4,540500 +540524,琼结县,4,540500 +540525,曲松县,4,540500 +540526,措美县,4,540500 +540527,洛扎县,4,540500 +540528,加查县,4,540500 +540529,隆子县,4,540500 +540530,错那县,4,540500 +540531,浪卡子县,4,540500 +540602,色尼区,4,540600 +540621,嘉黎县,4,540600 +540622,比如县,4,540600 +540623,聂荣县,4,540600 +540624,安多县,4,540600 +540625,申扎县,4,540600 +540626,索县,4,540600 +540627,班戈县,4,540600 +540628,巴青县,4,540600 +540629,尼玛县,4,540600 +540630,双湖县,4,540600 +542521,普兰县,4,542500 +542522,札达县,4,542500 +542523,噶尔县,4,542500 +542524,日土县,4,542500 +542525,革吉县,4,542500 +542526,改则县,4,542500 +542527,措勤县,4,542500 +610102,新城区,4,610100 +610103,碑林区,4,610100 +610104,莲湖区,4,610100 +610111,灞桥区,4,610100 +610112,未央区,4,610100 +610113,雁塔区,4,610100 +610114,阎良区,4,610100 +610115,临潼区,4,610100 +610116,长安区,4,610100 +610117,高陵区,4,610100 +610118,鄠邑区,4,610100 +610122,蓝田县,4,610100 +610124,周至县,4,610100 +610202,王益区,4,610200 +610203,印台区,4,610200 +610204,耀州区,4,610200 +610222,宜君县,4,610200 +610302,渭滨区,4,610300 +610303,金台区,4,610300 +610304,陈仓区,4,610300 +610305,凤翔区,4,610300 +610323,岐山县,4,610300 +610324,扶风县,4,610300 +610326,眉县,4,610300 +610327,陇县,4,610300 +610328,千阳县,4,610300 +610329,麟游县,4,610300 +610330,凤县,4,610300 +610331,太白县,4,610300 +610402,秦都区,4,610400 +610403,杨陵区,4,610400 +610404,渭城区,4,610400 +610422,三原县,4,610400 +610423,泾阳县,4,610400 +610424,乾县,4,610400 +610425,礼泉县,4,610400 +610426,永寿县,4,610400 +610428,长武县,4,610400 +610429,旬邑县,4,610400 +610430,淳化县,4,610400 +610431,武功县,4,610400 +610481,兴平市,4,610400 +610482,彬州市,4,610400 +610502,临渭区,4,610500 +610503,华州区,4,610500 +610522,潼关县,4,610500 +610523,大荔县,4,610500 +610524,合阳县,4,610500 +610525,澄城县,4,610500 +610526,蒲城县,4,610500 +610527,白水县,4,610500 +610528,富平县,4,610500 +610581,韩城市,4,610500 +610582,华阴市,4,610500 +610602,宝塔区,4,610600 +610603,安塞区,4,610600 +610621,延长县,4,610600 +610622,延川县,4,610600 +610625,志丹县,4,610600 +610626,吴起县,4,610600 +610627,甘泉县,4,610600 +610628,富县,4,610600 +610629,洛川县,4,610600 +610630,宜川县,4,610600 +610631,黄龙县,4,610600 +610632,黄陵县,4,610600 +610681,子长市,4,610600 +610702,汉台区,4,610700 +610703,南郑区,4,610700 +610722,城固县,4,610700 +610723,洋县,4,610700 +610724,西乡县,4,610700 +610725,勉县,4,610700 +610726,宁强县,4,610700 +610727,略阳县,4,610700 +610728,镇巴县,4,610700 +610729,留坝县,4,610700 +610730,佛坪县,4,610700 +610802,榆阳区,4,610800 +610803,横山区,4,610800 +610822,府谷县,4,610800 +610824,靖边县,4,610800 +610825,定边县,4,610800 +610826,绥德县,4,610800 +610827,米脂县,4,610800 +610828,佳县,4,610800 +610829,吴堡县,4,610800 +610830,清涧县,4,610800 +610831,子洲县,4,610800 +610881,神木市,4,610800 +610902,汉滨区,4,610900 +610921,汉阴县,4,610900 +610922,石泉县,4,610900 +610923,宁陕县,4,610900 +610924,紫阳县,4,610900 +610925,岚皋县,4,610900 +610926,平利县,4,610900 +610927,镇坪县,4,610900 +610929,白河县,4,610900 +610981,旬阳市,4,610900 +611002,商州区,4,611000 +611021,洛南县,4,611000 +611022,丹凤县,4,611000 +611023,商南县,4,611000 +611024,山阳县,4,611000 +611025,镇安县,4,611000 +611026,柞水县,4,611000 +620102,城关区,4,620100 +620103,七里河区,4,620100 +620104,西固区,4,620100 +620105,安宁区,4,620100 +620111,红古区,4,620100 +620121,永登县,4,620100 +620122,皋兰县,4,620100 +620123,榆中县,4,620100 +620171,兰州新区,4,620100 +620201,嘉峪关市,4,620200 +620302,金川区,4,620300 +620321,永昌县,4,620300 +620402,白银区,4,620400 +620403,平川区,4,620400 +620421,靖远县,4,620400 +620422,会宁县,4,620400 +620423,景泰县,4,620400 +620502,秦州区,4,620500 +620503,麦积区,4,620500 +620521,清水县,4,620500 +620522,秦安县,4,620500 +620523,甘谷县,4,620500 +620524,武山县,4,620500 +620525,张家川回族自治县,4,620500 +620602,凉州区,4,620600 +620621,民勤县,4,620600 +620622,古浪县,4,620600 +620623,天祝藏族自治县,4,620600 +620702,甘州区,4,620700 +620721,肃南裕固族自治县,4,620700 +620722,民乐县,4,620700 +620723,临泽县,4,620700 +620724,高台县,4,620700 +620725,山丹县,4,620700 +620802,崆峒区,4,620800 +620821,泾川县,4,620800 +620822,灵台县,4,620800 +620823,崇信县,4,620800 +620825,庄浪县,4,620800 +620826,静宁县,4,620800 +620881,华亭市,4,620800 +620902,肃州区,4,620900 +620921,金塔县,4,620900 +620922,瓜州县,4,620900 +620923,肃北蒙古族自治县,4,620900 +620924,阿克塞哈萨克族自治县,4,620900 +620981,玉门市,4,620900 +620982,敦煌市,4,620900 +621002,西峰区,4,621000 +621021,庆城县,4,621000 +621022,环县,4,621000 +621023,华池县,4,621000 +621024,合水县,4,621000 +621025,正宁县,4,621000 +621026,宁县,4,621000 +621027,镇原县,4,621000 +621102,安定区,4,621100 +621121,通渭县,4,621100 +621122,陇西县,4,621100 +621123,渭源县,4,621100 +621124,临洮县,4,621100 +621125,漳县,4,621100 +621126,岷县,4,621100 +621202,武都区,4,621200 +621221,成县,4,621200 +621222,文县,4,621200 +621223,宕昌县,4,621200 +621224,康县,4,621200 +621225,西和县,4,621200 +621226,礼县,4,621200 +621227,徽县,4,621200 +621228,两当县,4,621200 +622901,临夏市,4,622900 +622921,临夏县,4,622900 +622922,康乐县,4,622900 +622923,永靖县,4,622900 +622924,广河县,4,622900 +622925,和政县,4,622900 +622926,东乡族自治县,4,622900 +622927,积石山保安族东乡族撒拉族自治县,4,622900 +623001,合作市,4,623000 +623021,临潭县,4,623000 +623022,卓尼县,4,623000 +623023,舟曲县,4,623000 +623024,迭部县,4,623000 +623025,玛曲县,4,623000 +623026,碌曲县,4,623000 +623027,夏河县,4,623000 +630102,城东区,4,630100 +630103,城中区,4,630100 +630104,城西区,4,630100 +630105,城北区,4,630100 +630106,湟中区,4,630100 +630121,大通回族土族自治县,4,630100 +630123,湟源县,4,630100 +630202,乐都区,4,630200 +630203,平安区,4,630200 +630222,民和回族土族自治县,4,630200 +630223,互助土族自治县,4,630200 +630224,化隆回族自治县,4,630200 +630225,循化撒拉族自治县,4,630200 +632221,门源回族自治县,4,632200 +632222,祁连县,4,632200 +632223,海晏县,4,632200 +632224,刚察县,4,632200 +632301,同仁市,4,632300 +632322,尖扎县,4,632300 +632323,泽库县,4,632300 +632324,河南蒙古族自治县,4,632300 +632521,共和县,4,632500 +632522,同德县,4,632500 +632523,贵德县,4,632500 +632524,兴海县,4,632500 +632525,贵南县,4,632500 +632621,玛沁县,4,632600 +632622,班玛县,4,632600 +632623,甘德县,4,632600 +632624,达日县,4,632600 +632625,久治县,4,632600 +632626,玛多县,4,632600 +632701,玉树市,4,632700 +632722,杂多县,4,632700 +632723,称多县,4,632700 +632724,治多县,4,632700 +632725,囊谦县,4,632700 +632726,曲麻莱县,4,632700 +632801,格尔木市,4,632800 +632802,德令哈市,4,632800 +632803,茫崖市,4,632800 +632821,乌兰县,4,632800 +632822,都兰县,4,632800 +632823,天峻县,4,632800 +632857,大柴旦行政委员会,4,632800 +640104,兴庆区,4,640100 +640105,西夏区,4,640100 +640106,金凤区,4,640100 +640121,永宁县,4,640100 +640122,贺兰县,4,640100 +640181,灵武市,4,640100 +640202,大武口区,4,640200 +640205,惠农区,4,640200 +640221,平罗县,4,640200 +640302,利通区,4,640300 +640303,红寺堡区,4,640300 +640323,盐池县,4,640300 +640324,同心县,4,640300 +640381,青铜峡市,4,640300 +640402,原州区,4,640400 +640422,西吉县,4,640400 +640423,隆德县,4,640400 +640424,泾源县,4,640400 +640425,彭阳县,4,640400 +640502,沙坡头区,4,640500 +640521,中宁县,4,640500 +640522,海原县,4,640500 +650102,天山区,4,650100 +650103,沙依巴克区,4,650100 +650104,新市区,4,650100 +650105,水磨沟区,4,650100 +650106,头屯河区,4,650100 +650107,达坂城区,4,650100 +650109,米东区,4,650100 +650121,乌鲁木齐县,4,650100 +650202,独山子区,4,650200 +650203,克拉玛依区,4,650200 +650204,白碱滩区,4,650200 +650205,乌尔禾区,4,650200 +650402,高昌区,4,650400 +650421,鄯善县,4,650400 +650422,托克逊县,4,650400 +650502,伊州区,4,650500 +650521,巴里坤哈萨克自治县,4,650500 +650522,伊吾县,4,650500 +652301,昌吉市,4,652300 +652302,阜康市,4,652300 +652323,呼图壁县,4,652300 +652324,玛纳斯县,4,652300 +652325,奇台县,4,652300 +652327,吉木萨尔县,4,652300 +652328,木垒哈萨克自治县,4,652300 +652701,博乐市,4,652700 +652702,阿拉山口市,4,652700 +652722,精河县,4,652700 +652723,温泉县,4,652700 +652801,库尔勒市,4,652800 +652822,轮台县,4,652800 +652823,尉犁县,4,652800 +652824,若羌县,4,652800 +652825,且末县,4,652800 +652826,焉耆回族自治县,4,652800 +652827,和静县,4,652800 +652828,和硕县,4,652800 +652829,博湖县,4,652800 +652871,库尔勒经济技术开发区,4,652800 +652901,阿克苏市,4,652900 +652902,库车市,4,652900 +652922,温宿县,4,652900 +652924,沙雅县,4,652900 +652925,新和县,4,652900 +652926,拜城县,4,652900 +652927,乌什县,4,652900 +652928,阿瓦提县,4,652900 +652929,柯坪县,4,652900 +653001,阿图什市,4,653000 +653022,阿克陶县,4,653000 +653023,阿合奇县,4,653000 +653024,乌恰县,4,653000 +653101,喀什市,4,653100 +653121,疏附县,4,653100 +653122,疏勒县,4,653100 +653123,英吉沙县,4,653100 +653124,泽普县,4,653100 +653125,莎车县,4,653100 +653126,叶城县,4,653100 +653127,麦盖提县,4,653100 +653128,岳普湖县,4,653100 +653129,伽师县,4,653100 +653130,巴楚县,4,653100 +653131,塔什库尔干塔吉克自治县,4,653100 +653201,和田市,4,653200 +653221,和田县,4,653200 +653222,墨玉县,4,653200 +653223,皮山县,4,653200 +653224,洛浦县,4,653200 +653225,策勒县,4,653200 +653226,于田县,4,653200 +653227,民丰县,4,653200 +654002,伊宁市,4,654000 +654003,奎屯市,4,654000 +654004,霍尔果斯市,4,654000 +654021,伊宁县,4,654000 +654022,察布查尔锡伯自治县,4,654000 +654023,霍城县,4,654000 +654024,巩留县,4,654000 +654025,新源县,4,654000 +654026,昭苏县,4,654000 +654027,特克斯县,4,654000 +654028,尼勒克县,4,654000 +654201,塔城市,4,654200 +654202,乌苏市,4,654200 +654203,沙湾市,4,654200 +654221,额敏县,4,654200 +654224,托里县,4,654200 +654225,裕民县,4,654200 +654226,和布克赛尔蒙古自治县,4,654200 +654301,阿勒泰市,4,654300 +654321,布尔津县,4,654300 +654322,富蕴县,4,654300 +654323,福海县,4,654300 +654324,哈巴河县,4,654300 +654325,青河县,4,654300 +654326,吉木乃县,4,654300 +659001,石河子市,4,659000 +659002,阿拉尔市,4,659000 +659003,图木舒克市,4,659000 +659004,五家渠市,4,659000 +659005,北屯市,4,659000 +659006,铁门关市,4,659000 +659007,双河市,4,659000 +659008,可克达拉市,4,659000 +659009,昆玉市,4,659000 +659010,胡杨河市,4,659000 +659011,新星市,4,659000 \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb new file mode 100644 index 0000000..58596a5 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb differ diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java new file mode 100644 index 0000000..8f5646b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.ip.core.utils; + + +import cn.iocoder.yudao.framework.ip.core.Area; +import cn.iocoder.yudao.framework.ip.core.enums.AreaTypeEnum; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * {@link AreaUtils} 的单元测试 + * + * @author 芋道源码 + */ +public class AreaUtilsTest { + + @Test + public void testGetArea() { + // 调用:北京 + Area area = AreaUtils.getArea(110100); + // 断言 + assertEquals(area.getId(), 110100); + assertEquals(area.getName(), "北京市"); + assertEquals(area.getType(), AreaTypeEnum.CITY.getType()); + assertEquals(area.getParent().getId(), 110000); + assertEquals(area.getChildren().size(), 16); + } + + @Test + public void testFormat() { + assertEquals(AreaUtils.format(110105), "北京 北京市 朝阳区"); + assertEquals(AreaUtils.format(1), "中国"); + assertEquals(AreaUtils.format(2), "蒙古"); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtilsTest.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtilsTest.java new file mode 100644 index 0000000..761a1aa --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtilsTest.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.framework.ip.core.utils; + +import cn.iocoder.yudao.framework.ip.core.Area; +import org.junit.jupiter.api.Test; +import org.lionsoul.ip2region.xdb.Searcher; + + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * {@link IPUtils} 的单元测试 + * + * @author wanglhup + */ +public class IPUtilsTest { + + @Test + public void testGetAreaId_string() { + // 120.202.4.0|120.202.4.255|420600 + Integer areaId = IPUtils.getAreaId("120.202.4.50"); + assertEquals(420600, areaId); + } + + @Test + public void testGetAreaId_long() throws Exception { + // 120.203.123.0|120.203.133.255|360900 + long ip = Searcher.checkIP("120.203.123.250"); + Integer areaId = IPUtils.getAreaId(ip); + assertEquals(360900, areaId); + } + + @Test + public void testGetArea_string() { + // 120.202.4.0|120.202.4.255|420600 + Area area = IPUtils.getArea("120.202.4.50"); + assertEquals("襄阳市", area.getName()); + } + + @Test + public void testGetArea_long() throws Exception { + // 120.203.123.0|120.203.133.255|360900 + long ip = Searcher.checkIP("120.203.123.252"); + Area area = IPUtils.getArea(ip); + assertEquals("宜春市", area.getName()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml new file mode 100644 index 0000000..c52d8fc --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml @@ -0,0 +1,52 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-biz-operatelog + jar + + ${project.artifactId} + 操作日志 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + provided + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + + com.google.guava + guava + + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogAutoConfiguration.java new file mode 100644 index 0000000..441ec6b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogAutoConfiguration.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.framework.operatelog.config; + +import cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect; +import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkService; +import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkServiceImpl; +import cn.iocoder.yudao.module.system.api.logger.OperateLogApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +@AutoConfiguration +public class YudaoOperateLogAutoConfiguration { + + @Bean + public OperateLogAspect operateLogAspect() { + return new OperateLogAspect(); + } + + @Bean + public OperateLogFrameworkService operateLogFrameworkService(OperateLogApi operateLogApi) { + return new OperateLogFrameworkServiceImpl(operateLogApi); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/annotations/OperateLog.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/annotations/OperateLog.java new file mode 100644 index 0000000..adac327 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/annotations/OperateLog.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.framework.operatelog.core.annotations; + +import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 操作日志注解 + * + * @author 芋道源码 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface OperateLog { + + // ========== 模块字段 ========== + + /** + * 操作模块 + * + * 为空时,会尝试读取 {@link Tag#name()} 属性 + */ + String module() default ""; + /** + * 操作名 + * + * 为空时,会尝试读取 {@link Operation#summary()} 属性 + */ + String name() default ""; + /** + * 操作分类 + * + * 实际并不是数组,因为枚举不能设置 null 作为默认值 + */ + OperateTypeEnum[] type() default {}; + + // ========== 开关字段 ========== + + /** + * 是否记录操作日志 + */ + boolean enable() default true; + /** + * 是否记录方法参数 + */ + boolean logArgs() default true; + /** + * 是否记录方法结果的数据 + */ + boolean logResultData() default true; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/aop/OperateLogAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/aop/OperateLogAspect.java new file mode 100644 index 0000000..8031ea8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/aop/OperateLogAspect.java @@ -0,0 +1,385 @@ +package cn.iocoder.yudao.framework.operatelog.core.aop; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; +import cn.iocoder.yudao.framework.operatelog.core.service.OperateLog; +import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkService; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import com.google.common.collect.Maps; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.annotation.Annotation; +import java.lang.reflect.Array; +import java.time.LocalDateTime; +import java.util.*; +import java.util.function.Predicate; +import java.util.stream.IntStream; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.SUCCESS; + +/** + * 拦截使用 @OperateLog 注解,如果满足条件,则生成操作日志。 + * 满足如下任一条件,则会进行记录: + * 1. 使用 @ApiOperation + 非 @GetMapping + * 2. 使用 @OperateLog 注解 + *

    + * 但是,如果声明 @OperateLog 注解时,将 enable 属性设置为 false 时,强制不记录。 + * + * @author 芋道源码 + */ +@Aspect +@Slf4j +public class OperateLogAspect { + + /** + * 用于记录操作内容的上下文 + * + * @see OperateLog#getContent() + */ + private static final ThreadLocal CONTENT = new ThreadLocal<>(); + /** + * 用于记录拓展字段的上下文 + * + * @see OperateLog#getExts() + */ + private static final ThreadLocal> EXTS = new ThreadLocal<>(); + + @Resource + private OperateLogFrameworkService operateLogFrameworkService; + + @Around("@annotation(operation)") + public Object around(ProceedingJoinPoint joinPoint, Operation operation) throws Throwable { + // 可能也添加了 @ApiOperation 注解 + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog = getMethodAnnotation(joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog.class); + return around0(joinPoint, operateLog, operation); + } + + @Around("!@annotation(io.swagger.v3.oas.annotations.Operation) && @annotation(operateLog)") + // 兼容处理,只添加 @OperateLog 注解的情况 + public Object around(ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog) throws Throwable { + return around0(joinPoint, operateLog, null); + } + + private Object around0(ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, + Operation operation) throws Throwable { + // 目前,只有管理员,才记录操作日志!所以非管理员,直接调用,不进行记录 + Integer userType = WebFrameworkUtils.getLoginUserType(); + if (!Objects.equals(userType, UserTypeEnum.ADMIN.getValue())) { + return joinPoint.proceed(); + } + + // 记录开始时间 + LocalDateTime startTime = LocalDateTime.now(); + try { + // 执行原有方法 + Object result = joinPoint.proceed(); + // 记录正常执行时的操作日志 + this.log(joinPoint, operateLog, operation, startTime, result, null); + return result; + } catch (Throwable exception) { + this.log(joinPoint, operateLog, operation, startTime, null, exception); + throw exception; + } finally { + clearThreadLocal(); + } + } + + public static void setContent(String content) { + CONTENT.set(content); + } + + public static void addExt(String key, Object value) { + if (EXTS.get() == null) { + EXTS.set(new HashMap<>()); + } + EXTS.get().put(key, value); + } + + private static void clearThreadLocal() { + CONTENT.remove(); + EXTS.remove(); + } + + private void log(ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, + Operation operation, + LocalDateTime startTime, Object result, Throwable exception) { + try { + // 判断不记录的情况 + if (!isLogEnable(joinPoint, operateLog)) { + return; + } + // 真正记录操作日志 + this.log0(joinPoint, operateLog, operation, startTime, result, exception); + } catch (Throwable ex) { + log.error("[log][记录操作日志时,发生异常,其中参数是 joinPoint({}) operateLog({}) apiOperation({}) result({}) exception({}) ]", + joinPoint, operateLog, operation, result, exception, ex); + } + } + + private void log0(ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, + Operation operation, + LocalDateTime startTime, Object result, Throwable exception) { + OperateLog operateLogObj = new OperateLog(); + // 补全通用字段 + operateLogObj.setTraceId(TracerUtils.getTraceId()); + operateLogObj.setStartTime(startTime); + // 补充用户信息 + fillUserFields(operateLogObj); + // 补全模块信息 + fillModuleFields(operateLogObj, joinPoint, operateLog, operation); + // 补全请求信息 + fillRequestFields(operateLogObj); + // 补全方法信息 + fillMethodFields(operateLogObj, joinPoint, operateLog, startTime, result, exception); + + // 异步记录日志 + operateLogFrameworkService.createOperateLog(operateLogObj); + } + + private static void fillUserFields(OperateLog operateLogObj) { + operateLogObj.setUserId(WebFrameworkUtils.getLoginUserId()); + operateLogObj.setUserType(WebFrameworkUtils.getLoginUserType()); + } + + private static void fillModuleFields(OperateLog operateLogObj, + ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, + Operation operation) { + // module 属性 + if (operateLog != null) { + operateLogObj.setModule(operateLog.module()); + } + if (StrUtil.isEmpty(operateLogObj.getModule())) { + Tag tag = getClassAnnotation(joinPoint, Tag.class); + if (tag != null) { + // 优先读取 @Tag 的 name 属性 + if (StrUtil.isNotEmpty(tag.name())) { + operateLogObj.setModule(tag.name()); + } + // 没有的话,读取 @API 的 description 属性 + if (StrUtil.isEmpty(operateLogObj.getModule()) && ArrayUtil.isNotEmpty(tag.description())) { + operateLogObj.setModule(tag.description()); + } + } + } + // name 属性 + if (operateLog != null) { + operateLogObj.setName(operateLog.name()); + } + if (StrUtil.isEmpty(operateLogObj.getName()) && operation != null) { + operateLogObj.setName(operation.summary()); + } + // type 属性 + if (operateLog != null && ArrayUtil.isNotEmpty(operateLog.type())) { + operateLogObj.setType(operateLog.type()[0].getType()); + } + if (operateLogObj.getType() == null) { + RequestMethod requestMethod = obtainFirstMatchRequestMethod(obtainRequestMethod(joinPoint)); + OperateTypeEnum operateLogType = convertOperateLogType(requestMethod); + operateLogObj.setType(operateLogType != null ? operateLogType.getType() : null); + } + // content 和 exts 属性 + operateLogObj.setContent(CONTENT.get()); + operateLogObj.setExts(EXTS.get()); + } + + private static void fillRequestFields(OperateLog operateLogObj) { + // 获得 Request 对象 + HttpServletRequest request = ServletUtils.getRequest(); + if (request == null) { + return; + } + // 补全请求信息 + operateLogObj.setRequestMethod(request.getMethod()); + operateLogObj.setRequestUrl(request.getRequestURI()); + operateLogObj.setUserIp(ServletUtils.getClientIP(request)); + operateLogObj.setUserAgent(ServletUtils.getUserAgent(request)); + } + + private static void fillMethodFields(OperateLog operateLogObj, + ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog, + LocalDateTime startTime, Object result, Throwable exception) { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + operateLogObj.setJavaMethod(methodSignature.toString()); + if (operateLog == null || operateLog.logArgs()) { + operateLogObj.setJavaMethodArgs(obtainMethodArgs(joinPoint)); + } + if (operateLog == null || operateLog.logResultData()) { + operateLogObj.setResultData(obtainResultData(result)); + } + operateLogObj.setDuration((int) (LocalDateTimeUtil.between(startTime, LocalDateTime.now()).toMillis())); + // (正常)处理 resultCode 和 resultMsg 字段 + if (result instanceof CommonResult) { + CommonResult commonResult = (CommonResult) result; + operateLogObj.setResultCode(commonResult.getCode()); + operateLogObj.setResultMsg(commonResult.getMsg()); + } else { + operateLogObj.setResultCode(SUCCESS.getCode()); + } + // (异常)处理 resultCode 和 resultMsg 字段 + if (exception != null) { + operateLogObj.setResultCode(INTERNAL_SERVER_ERROR.getCode()); + operateLogObj.setResultMsg(ExceptionUtil.getRootCauseMessage(exception)); + } + } + + private static boolean isLogEnable(ProceedingJoinPoint joinPoint, + cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog operateLog) { + // 有 @OperateLog 注解的情况下 + if (operateLog != null) { + return operateLog.enable(); + } + // 没有 @ApiOperation 注解的情况下,只记录 POST、PUT、DELETE 的情况 + boolean flag= obtainFirstLogRequestMethod(obtainRequestMethod(joinPoint)) != null; + return flag; + } + + private static RequestMethod obtainFirstLogRequestMethod(RequestMethod[] requestMethods) { + if (ArrayUtil.isEmpty(requestMethods)) { + return null; + } + RequestMethod requestMethod = requestMethods[0]; + if(RequestMethod.POST.equals(requestMethod)){ + return requestMethod; + } + if(RequestMethod.PUT.equals(requestMethod)){ + return requestMethod; + } + if(RequestMethod.DELETE.equals(requestMethod)){ + return requestMethod; + } + return null; + + } + + private static RequestMethod obtainFirstMatchRequestMethod(RequestMethod[] requestMethods) { + if (ArrayUtil.isEmpty(requestMethods)) { + return null; + } + // 优先,匹配最优的 POST、PUT、DELETE + RequestMethod result = obtainFirstLogRequestMethod(requestMethods); + if (result != null) { + return result; + } + // 然后,匹配次优的 GET + RequestMethod requestMethod = requestMethods[0]; + if(RequestMethod.GET.equals(requestMethod)){ + return requestMethod; + } + return null; + } + + private static OperateTypeEnum convertOperateLogType(RequestMethod requestMethod) { + if (requestMethod == null) { + return null; + } + switch (requestMethod) { + case GET: + return OperateTypeEnum.GET; + case POST: + return OperateTypeEnum.CREATE; + case PUT: + return OperateTypeEnum.UPDATE; + case DELETE: + return OperateTypeEnum.DELETE; + default: + return OperateTypeEnum.OTHER; + } + } + + private static RequestMethod[] obtainRequestMethod(ProceedingJoinPoint joinPoint) { + RequestMapping requestMapping = AnnotationUtils.getAnnotation( // 使用 Spring 的工具类,可以处理 @RequestMapping 别名注解 + ((MethodSignature) joinPoint.getSignature()).getMethod(), RequestMapping.class); + return requestMapping != null ? requestMapping.method() : new RequestMethod[]{}; + } + + @SuppressWarnings("SameParameterValue") + private static T getMethodAnnotation(ProceedingJoinPoint joinPoint, Class annotationClass) { + return ((MethodSignature) joinPoint.getSignature()).getMethod().getAnnotation(annotationClass); + } + + @SuppressWarnings("SameParameterValue") + private static T getClassAnnotation(ProceedingJoinPoint joinPoint, Class annotationClass) { + return ((MethodSignature) joinPoint.getSignature()).getMethod().getDeclaringClass().getAnnotation(annotationClass); + } + + private static String obtainMethodArgs(ProceedingJoinPoint joinPoint) { + // TODO 提升:参数脱敏和忽略 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] argNames = methodSignature.getParameterNames(); + Object[] argValues = joinPoint.getArgs(); + // 拼接参数 + Map args = Maps.newHashMapWithExpectedSize(argValues.length); + for (int i = 0; i < argNames.length; i++) { + String argName = argNames[i]; + Object argValue = argValues[i]; + if(argValue == null){ + args.put(argName, null); + }else{ + // 被忽略时,标记为 ignore 字符串,避免和 null 混在一起 + args.put(argName, !isIgnoreArgs(argValue) ? argValue : "[ignore]"); + } + } + return JsonUtils.toJsonString(args); + } + + private static String obtainResultData(Object result) { + // TODO 提升:结果脱敏和忽略 + if (result instanceof CommonResult) { + result = ((CommonResult) result).getData(); + } + return JsonUtils.toJsonString(result); + } + + private static boolean isIgnoreArgs(Object object) { + Class clazz = object.getClass(); + // 处理数组的情况 + if (clazz.isArray()) { + return IntStream.range(0, Array.getLength(object)) + .anyMatch(index -> isIgnoreArgs(Array.get(object, index))); + } + // 递归,处理数组、Collection、Map 的情况 + if (Collection.class.isAssignableFrom(clazz)) { + return ((Collection) object).stream() + .anyMatch((Predicate) OperateLogAspect::isIgnoreArgs); + } + if (Map.class.isAssignableFrom(clazz)) { + return isIgnoreArgs(((Map) object).values()); + } + // obj + return object instanceof MultipartFile + || object instanceof HttpServletRequest + || object instanceof HttpServletResponse + || object instanceof BindingResult; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/enums/OperateTypeEnum.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/enums/OperateTypeEnum.java new file mode 100644 index 0000000..65ee26d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/enums/OperateTypeEnum.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.operatelog.core.enums; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 操作日志的操作类型 + * + * @author ruoyi + */ +@Getter +@AllArgsConstructor +public enum OperateTypeEnum { + + /** + * 查询 + * + * 绝大多数情况下,不会记录查询动作,因为过于大量显得没有意义。 + * 在有需要的时候,通过声明 {@link OperateLog} 注解来记录 + */ + GET(1), + /** + * 新增 + */ + CREATE(2), + /** + * 修改 + */ + UPDATE(3), + /** + * 删除 + */ + DELETE(4), + /** + * 导出 + */ + EXPORT(5), + /** + * 导入 + */ + IMPORT(6), + /** + * 其它 + * + * 在无法归类时,可以选择使用其它。因为还有操作名可以进一步标识 + */ + OTHER(0); + + /** + * 类型 + */ + private final Integer type; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java new file mode 100644 index 0000000..58aa3d5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.framework.operatelog.core; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLog.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLog.java new file mode 100644 index 0000000..1e3b8c8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLog.java @@ -0,0 +1,110 @@ +package cn.iocoder.yudao.framework.operatelog.core.service; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 操作日志 + * + * @author 芋道源码 + */ +@Data +public class OperateLog { + + /** + * 链路追踪编号 + */ + private String traceId; + + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + + /** + * 操作模块 + */ + private String module; + + /** + * 操作名 + */ + private String name; + + /** + * 操作分类 + */ + private Integer type; + + /** + * 操作明细 + */ + private String content; + + /** + * 拓展字段 + */ + private Map exts; + + /** + * 请求方法名 + */ + private String requestMethod; + + /** + * 请求地址 + */ + private String requestUrl; + + /** + * 用户 IP + */ + private String userIp; + + /** + * 浏览器 UserAgent + */ + private String userAgent; + + /** + * Java 方法名 + */ + private String javaMethod; + + /** + * Java 方法的参数 + */ + private String javaMethodArgs; + + /** + * 开始时间 + */ + private LocalDateTime startTime; + + /** + * 执行时长,单位:毫秒 + */ + private Integer duration; + + /** + * 结果码 + */ + private Integer resultCode; + + /** + * 结果提示 + */ + private String resultMsg; + + /** + * 结果数据 + */ + private String resultData; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkService.java new file mode 100644 index 0000000..2356162 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkService.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.framework.operatelog.core.service; + +/** + * 操作日志 Framework Service 接口 + * + * @author 芋道源码 + */ +public interface OperateLogFrameworkService { + + /** + * 记录操作日志 + * + * @param operateLog 操作日志请求 + */ + void createOperateLog(OperateLog operateLog); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java new file mode 100644 index 0000000..495193f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.operatelog.core.service; + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.system.api.logger.OperateLogApi; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; + +/** + * 操作日志 Framework Service 实现类 + * + * 基于 {@link OperateLogApi} 实现,记录操作日志 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class OperateLogFrameworkServiceImpl implements OperateLogFrameworkService { + + private final OperateLogApi operateLogApi; + + @Override + @Async + public void createOperateLog(OperateLog operateLog) { + OperateLogCreateReqDTO reqDTO = BeanUtil.toBean(operateLog, OperateLogCreateReqDTO.class); + operateLogApi.createOperateLog(reqDTO); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/util/OperateLogUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/util/OperateLogUtils.java new file mode 100644 index 0000000..a9801e5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/core/util/OperateLogUtils.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.operatelog.core.util; + +import cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect; + +/** + * 操作日志工具类 + * 目前主要的作用,是提供给业务代码,记录操作明细和拓展字段 + * + * @author 芋道源码 + */ +public class OperateLogUtils { + + public static void setContent(String content) { + OperateLogAspect.setContent(content); + } + + public static void addExt(String key, Object value) { + OperateLogAspect.addExt(key, value); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java new file mode 100644 index 0000000..d272b53 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java @@ -0,0 +1,6 @@ +/** + * 用户操作日志:记录用户的操作,用于对用户的操作的审计与追溯,永久保存。 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.operatelog; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..04ccab1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.operatelog.config.YudaoOperateLogAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-tenant/pom.xml new file mode 100644 index 0000000..f1376a6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/pom.xml @@ -0,0 +1,87 @@ + + + + yudao-framework + cn.iocoder.boot + ${revision} + + 4.0.0 + yudao-spring-boot-starter-biz-tenant + jar + + ${project.artifactId} + 多租户 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-job + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + true + + + org.springframework.kafka + spring-kafka + true + + + org.springframework.amqp + spring-rabbit + true + + + org.apache.rocketmq + rocketmq-spring-boot-starter + true + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + + com.google.guava + guava + + + com.jeelowcode + jeelowcode-global + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/TenantProperties.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/TenantProperties.java new file mode 100644 index 0000000..7cb813c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/TenantProperties.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.tenant.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.Collections; +import java.util.Set; + +/** + * 多租户配置 + * + * @author 芋道源码 + */ +@ConfigurationProperties(prefix = "yudao.tenant") +@Data +public class TenantProperties { + + /** + * 租户是否开启 + */ + private static final Boolean ENABLE_DEFAULT = true; + + /** + * 是否开启 + */ + private Boolean enable = ENABLE_DEFAULT; + + /** + * 需要忽略多租户的请求 + * + * 默认情况下,每个请求需要带上 tenant-id 的请求头。但是,部分请求是无需带上的,例如说短信回调、支付回调等 Open API! + */ + private Set ignoreUrls = Collections.emptySet(); + + /** + * 需要忽略多租户的表 + * + * 即默认所有表都开启多租户的功能,所以记得添加对应的 tenant_id 字段哟 + */ + private Set ignoreTables = Collections.emptySet(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java new file mode 100644 index 0000000..c3dd35c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java @@ -0,0 +1,132 @@ +package cn.iocoder.yudao.framework.tenant.config; + +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import cn.iocoder.yudao.framework.redis.config.YudaoCacheProperties; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnoreAspect; +import cn.iocoder.yudao.framework.tenant.core.db.TenantDatabaseInterceptor; +import cn.iocoder.yudao.framework.tenant.core.job.TenantJobAspect; +import cn.iocoder.yudao.framework.tenant.core.mq.rabbitmq.TenantRabbitMQInitializer; +import cn.iocoder.yudao.framework.tenant.core.mq.redis.TenantRedisMessageInterceptor; +import cn.iocoder.yudao.framework.tenant.core.mq.rocketmq.TenantRocketMQInitializer; +import cn.iocoder.yudao.framework.tenant.core.redis.TenantRedisCacheManager; +import cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter; +import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService; +import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkServiceImpl; +import cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; +import cn.iocoder.yudao.module.system.api.tenant.TenantApi; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.data.redis.cache.BatchStrategies; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; + +import java.util.Objects; + +@AutoConfiguration +@ConditionalOnProperty(prefix = "yudao.tenant", value = "enable", matchIfMissing = true) // 允许使用 yudao.tenant.enable=false 禁用多租户 +@EnableConfigurationProperties(TenantProperties.class) +public class YudaoTenantAutoConfiguration { + + @Bean + public TenantFrameworkService tenantFrameworkService(TenantApi tenantApi) { + return new TenantFrameworkServiceImpl(tenantApi); + } + + // ========== AOP ========== + + @Bean + public TenantIgnoreAspect tenantIgnoreAspect() { + return new TenantIgnoreAspect(); + } + + // ========== DB ========== + + @Bean + public TenantLineInnerInterceptor tenantLineInnerInterceptor(TenantProperties properties, + MybatisPlusInterceptor interceptor) { + TenantLineInnerInterceptor inner = new TenantLineInnerInterceptor(new TenantDatabaseInterceptor(properties)); + // 添加到 interceptor 中 + // 需要加在首个,主要是为了在分页插件前面。这个是 MyBatis Plus 的规定 + MyBatisUtils.addInterceptor(interceptor, inner, 0); + return inner; + } + + // ========== WEB ========== + + @Bean + public FilterRegistrationBean tenantContextWebFilter() { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new TenantContextWebFilter()); + registrationBean.setOrder(WebFilterOrderEnum.TENANT_CONTEXT_FILTER); + return registrationBean; + } + + // ========== Security ========== + + @Bean + public FilterRegistrationBean tenantSecurityWebFilter(TenantProperties tenantProperties, + WebProperties webProperties, + GlobalExceptionHandler globalExceptionHandler, + TenantFrameworkService tenantFrameworkService) { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new TenantSecurityWebFilter(tenantProperties, webProperties, + globalExceptionHandler, tenantFrameworkService)); + registrationBean.setOrder(WebFilterOrderEnum.TENANT_SECURITY_FILTER); + return registrationBean; + } + + // ========== MQ ========== + + @Bean + public TenantRedisMessageInterceptor tenantRedisMessageInterceptor() { + return new TenantRedisMessageInterceptor(); + } + + @Bean + @ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate") + public TenantRabbitMQInitializer tenantRabbitMQInitializer() { + return new TenantRabbitMQInitializer(); + } + + @Bean + @ConditionalOnClass(name = "org.apache.rocketmq.spring.core.RocketMQTemplate") + public TenantRocketMQInitializer tenantRocketMQInitializer() { + return new TenantRocketMQInitializer(); + } + + // ========== Job ========== + + @Bean + public TenantJobAspect tenantJobAspect(TenantFrameworkService tenantFrameworkService) { + return new TenantJobAspect(tenantFrameworkService); + } + + // ========== Redis ========== + + @Bean + @Primary // 引入租户时,tenantRedisCacheManager 为主 Bean + public RedisCacheManager tenantRedisCacheManager(RedisTemplate redisTemplate, + RedisCacheConfiguration redisCacheConfiguration, + YudaoCacheProperties yudaoCacheProperties) { + // 创建 RedisCacheWriter 对象 + RedisConnectionFactory connectionFactory = Objects.requireNonNull(redisTemplate.getConnectionFactory()); + RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory, + BatchStrategies.scan(yudaoCacheProperties.getRedisScanBatchSize())); + // 创建 TenantRedisCacheManager 对象 + return new TenantRedisCacheManager(cacheWriter, redisCacheConfiguration); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnore.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnore.java new file mode 100644 index 0000000..2266eb9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnore.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.framework.tenant.core.aop; + +import java.lang.annotation.*; + +/** + * 忽略租户,标记指定方法不进行租户的自动过滤 + * 可用于类和方法 + */ +@Target({ElementType.TYPE,ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface TenantIgnore { +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnoreAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnoreAspect.java new file mode 100644 index 0000000..b7d0fa3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/aop/TenantIgnoreAspect.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.tenant.core.aop; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +/** + * 忽略多租户的 Aspect,基于 {@link TenantIgnore} 注解实现,用于一些全局的逻辑。 + * 例如说,一个定时任务,读取所有数据,进行处理。 + * 又例如说,读取所有数据,进行缓存。 + * + * 整体逻辑的实现,和 {@link TenantUtils#executeIgnore(Runnable)} 需要保持一致 + * + * @author 芋道源码 + */ +@Aspect +@Slf4j +public class TenantIgnoreAspect { + + @Around("@annotation(tenantIgnore)") + public Object around(ProceedingJoinPoint joinPoint, TenantIgnore tenantIgnore) throws Throwable { + Boolean oldIgnore = TenantContextHolder.isIgnore(); + try { + TenantContextHolder.setIgnore(true); + // 执行逻辑 + return joinPoint.proceed(); + } finally { + TenantContextHolder.setIgnore(oldIgnore); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java new file mode 100644 index 0000000..a389bed --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/context/TenantContextHolder.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.framework.tenant.core.context; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.DocumentEnum; +import com.alibaba.ttl.TransmittableThreadLocal; + +/** + * 多租户上下文 Holder + * + * @author 芋道源码 + */ +public class TenantContextHolder { + + /** + * 当前租户编号 + */ + private static final ThreadLocal TENANT_ID = new TransmittableThreadLocal<>(); + + /** + * 是否忽略租户 + */ + private static final ThreadLocal IGNORE = new TransmittableThreadLocal<>(); + + /** + * 获得租户编号 + * + * @return 租户编号 + */ + public static Long getTenantId() { + return TENANT_ID.get(); + } + + /** + * 获得租户编号 String + * + * @return 租户编号 + */ + public static String getTenantIdStr() { + Long tenantId = getTenantId(); + return StrUtil.toStringOrNull(tenantId); + } + + /** + * 获得租户编号。如果不存在,则抛出 NullPointerException 异常 + * + * @return 租户编号 + */ + public static Long getRequiredTenantId() { + Long tenantId = getTenantId(); + if (tenantId == null) { + tenantId=-1L; + /*throw new NullPointerException("TenantContextHolder 不存在租户编号!可参考文档:" + + DocumentEnum.TENANT.getUrl());*/ + } + return tenantId; + } + + public static void setTenantId(Long tenantId) { + TENANT_ID.set(tenantId); + } + + public static void setIgnore(Boolean ignore) { + IGNORE.set(ignore); + } + + /** + * 当前是否忽略租户 + * + * @return 是否忽略 + */ + public static boolean isIgnore() { + return Boolean.TRUE.equals(IGNORE.get()); + } + + public static void clearIgnore() { + IGNORE.remove(); + } + + public static void clear() { + TENANT_ID.remove(); + IGNORE.remove(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantBaseDO.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantBaseDO.java new file mode 100644 index 0000000..f4f0ea5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantBaseDO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.tenant.core.db; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 拓展多租户的 BaseDO 基类 + * + * @author 芋道源码 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class TenantBaseDO extends BaseDO { + + /** + * 多租户编号 + */ + private Long tenantId; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java new file mode 100644 index 0000000..b97cf43 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.framework.tenant.core.db; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.tenant.config.TenantProperties; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.LongValue; + +import java.util.HashSet; +import java.util.Set; + +/** + * 基于 MyBatis Plus 多租户的功能,实现 DB 层面的多租户的功能 + * + * @author 芋道源码 + */ +public class TenantDatabaseInterceptor implements TenantLineHandler { + + private final Set ignoreTables = new HashSet<>(); + + //模糊-低代码 + private final Set ignoreLikeTables = new HashSet<>(); + + public TenantDatabaseInterceptor(TenantProperties properties) { + // 不同 DB 下,大小写的习惯不同,所以需要都添加进去 + properties.getIgnoreTables().forEach(table -> { + if(table.endsWith("*")){ + ignoreLikeTables.add(table.toLowerCase()); + ignoreLikeTables.add(table.toUpperCase()); + }else{ + ignoreTables.add(table.toLowerCase()); + ignoreTables.add(table.toUpperCase()); + } + + }); + // 在 OracleKeyGenerator 中,生成主键时,会查询这个表,查询这个表后,会自动拼接 TENANT_ID 导致报错 + ignoreTables.add("DUAL"); + } + + @Override + public Expression getTenantId() { + return new LongValue(TenantContextHolder.getRequiredTenantId()); + } + + @Override + public boolean ignoreTable(String tableName) { + //判断是否是模糊 + for(String likeTable:ignoreLikeTables){ + if(likeTable.endsWith("*")){// *结尾 -> tbl_* + likeTable = likeTable.substring(0, likeTable.length() - 1); + if(tableName.startsWith(likeTable)){//前缀开头 + return true;//不需要进行租户过滤 + } + }else if(likeTable.startsWith("*")){// *开头 -> *_seq + likeTable = likeTable.substring(1); + if(tableName.endsWith(likeTable)){//前缀开头 + return true;//不需要进行租户过滤 + } + } + } + + return TenantContextHolder.isIgnore() // 情况一,全局忽略多租户 + || CollUtil.contains(ignoreTables, tableName); // 情况二,忽略多租户的表 + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJob.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJob.java new file mode 100644 index 0000000..23474bb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJob.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.framework.tenant.core.job; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 多租户 Job 注解 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface TenantJob { +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java new file mode 100644 index 0000000..732a073 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.framework.tenant.core.job; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 多租户 JobHandler AOP + * 任务执行时,会按照租户逐个执行 Job 的逻辑 + * + * 注意,需要保证 JobHandler 的幂等性。因为 Job 因为某个租户执行失败重试时,之前执行成功的租户也会再次执行。 + * + * @author 芋道源码 + */ +@Aspect +@RequiredArgsConstructor +@Slf4j +public class TenantJobAspect { + + private final TenantFrameworkService tenantFrameworkService; + + @Around("@annotation(tenantJob)") + public String around(ProceedingJoinPoint joinPoint, TenantJob tenantJob) { + // 获得租户列表 + List tenantIds = tenantFrameworkService.getTenantIds(); + if (CollUtil.isEmpty(tenantIds)) { + return null; + } + + // 逐个租户,执行 Job + Map results = new ConcurrentHashMap<>(); + tenantIds.parallelStream().forEach(tenantId -> { + // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况 + TenantUtils.execute(tenantId, () -> { + try { + joinPoint.proceed(); + } catch (Throwable e) { + results.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); + } + }); + }); + return JsonUtils.toJsonString(results); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java new file mode 100644 index 0000000..8bf7cc1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaEnvironmentPostProcessor.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.kafka; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.env.EnvironmentPostProcessor; +import org.springframework.core.env.ConfigurableEnvironment; + +/** + * 多租户的 Kafka 的 {@link EnvironmentPostProcessor} 实现类 + * + * Kafka Producer 发送消息时,增加 {@link TenantKafkaProducerInterceptor} 拦截器 + * + * @author 芋道源码 + */ +@Slf4j +public class TenantKafkaEnvironmentPostProcessor implements EnvironmentPostProcessor { + + private static final String PROPERTY_KEY_INTERCEPTOR_CLASSES = "spring.kafka.producer.properties.interceptor.classes"; + + @Override + public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { + // 添加 TenantKafkaProducerInterceptor 拦截器 + try { + String value = environment.getProperty(PROPERTY_KEY_INTERCEPTOR_CLASSES); + if (StrUtil.isEmpty(value)) { + value = TenantKafkaProducerInterceptor.class.getName(); + } else { + value += "," + TenantKafkaProducerInterceptor.class.getName(); + } + environment.getSystemProperties().put(PROPERTY_KEY_INTERCEPTOR_CLASSES, value); + } catch (NoClassDefFoundError ignore) { + // 如果触发 NoClassDefFoundError 异常,说明 TenantKafkaProducerInterceptor 类不存在,即没引入 kafka-spring 依赖 + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java new file mode 100644 index 0000000..8ded801 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/kafka/TenantKafkaProducerInterceptor.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.kafka; + +import cn.hutool.core.util.ReflectUtil; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import org.apache.kafka.clients.producer.ProducerInterceptor; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.apache.kafka.common.header.Headers; +import org.springframework.messaging.handler.invocation.InvocableHandlerMethod; + +import java.util.Map; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * Kafka 消息队列的多租户 {@link ProducerInterceptor} 实现类 + * + * 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author 芋道源码 + */ +public class TenantKafkaProducerInterceptor implements ProducerInterceptor { + + @Override + public ProducerRecord onSend(ProducerRecord record) { + Long tenantId = TenantContextHolder.getTenantId(); + if (tenantId != null) { + Headers headers = (Headers) ReflectUtil.getFieldValue(record, "headers"); // private 属性,没有 get 方法,智能反射 + headers.add(HEADER_TENANT_ID, tenantId.toString().getBytes()); + } + return record; + } + + @Override + public void onAcknowledgement(RecordMetadata metadata, Exception exception) { + } + + @Override + public void close() { + } + + @Override + public void configure(Map configs) { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java new file mode 100644 index 0000000..b856ce9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQInitializer.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.rabbitmq; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; + +/** + * 多租户的 RabbitMQ 初始化器 + * + * @author 芋道源码 + */ +public class TenantRabbitMQInitializer implements BeanPostProcessor { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof RabbitTemplate) { + RabbitTemplate rabbitTemplate = (RabbitTemplate) bean; + rabbitTemplate.addBeforePublishPostProcessors(new TenantRabbitMQMessagePostProcessor()); + } + return bean; + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java new file mode 100644 index 0000000..3e6969c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rabbitmq/TenantRabbitMQMessagePostProcessor.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.rabbitmq; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import org.apache.kafka.clients.producer.ProducerInterceptor; +import org.springframework.amqp.AmqpException; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.core.MessagePostProcessor; +import org.springframework.messaging.handler.invocation.InvocableHandlerMethod; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RabbitMQ 消息队列的多租户 {@link ProducerInterceptor} 实现类 + * + * 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author 芋道源码 + */ +public class TenantRabbitMQMessagePostProcessor implements MessagePostProcessor { + + @Override + public Message postProcessMessage(Message message) throws AmqpException { + Long tenantId = TenantContextHolder.getTenantId(); + if (tenantId != null) { + message.getMessageProperties().getHeaders().put(HEADER_TENANT_ID, tenantId); + } + return message; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java new file mode 100644 index 0000000..f6b7747 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/redis/TenantRedisMessageInterceptor.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.redis; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * 多租户 {@link AbstractRedisMessage} 拦截器 + * + * 1. Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * 2. Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中 + * + * @author 芋道源码 + */ +public class TenantRedisMessageInterceptor implements RedisMessageInterceptor { + + @Override + public void sendMessageBefore(AbstractRedisMessage message) { + Long tenantId = TenantContextHolder.getTenantId(); + if (tenantId != null) { + message.addHeader(HEADER_TENANT_ID, tenantId.toString()); + } + } + + @Override + public void consumeMessageBefore(AbstractRedisMessage message) { + String tenantIdStr = message.getHeader(HEADER_TENANT_ID); + if (StrUtil.isNotEmpty(tenantIdStr)) { + TenantContextHolder.setTenantId(Long.valueOf(tenantIdStr)); + } + } + + @Override + public void consumeMessageAfter(AbstractRedisMessage message) { + // 注意,Consumer 是一个逻辑的入口,所以不考虑原本上下文就存在租户编号的情况 + TenantContextHolder.clear(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java new file mode 100644 index 0000000..d9d7334 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.rocketmq; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import org.apache.rocketmq.client.hook.ConsumeMessageContext; +import org.apache.rocketmq.client.hook.ConsumeMessageHook; +import org.apache.rocketmq.common.message.MessageExt; +import org.springframework.messaging.handler.invocation.InvocableHandlerMethod; + +import java.util.List; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RocketMQ 消息队列的多租户 {@link ConsumeMessageHook} 实现类 + * + * Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现 + * + * @author 芋道源码 + */ +public class TenantRocketMQConsumeMessageHook implements ConsumeMessageHook { + + @Override + public String hookName() { + return getClass().getSimpleName(); + } + + @Override + public void consumeMessageBefore(ConsumeMessageContext context) { + // 校验,消息必须是单条,不然设置租户可能不正确 + List messages = context.getMsgList(); + Assert.isTrue(messages.size() == 1, "消息条数({})不正确", messages.size()); + // 设置租户编号 + String tenantId = messages.get(0).getUserProperty(HEADER_TENANT_ID); + if (StrUtil.isNotEmpty(tenantId)) { + TenantContextHolder.setTenantId(Long.parseLong(tenantId)); + } + } + + @Override + public void consumeMessageAfter(ConsumeMessageContext context) { + TenantContextHolder.clear(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java new file mode 100644 index 0000000..7f12ac5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.rocketmq; + +import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; +import org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl; +import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl; +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; + +/** + * 多租户的 RocketMQ 初始化器 + * + * @author 芋道源码 + */ +public class TenantRocketMQInitializer implements BeanPostProcessor { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof DefaultRocketMQListenerContainer) { + DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean; + initTenantConsumer(container.getConsumer()); + } else if (bean instanceof RocketMQTemplate) { + RocketMQTemplate template = (RocketMQTemplate) bean; + initTenantProducer(template.getProducer()); + } + return bean; + } + + private void initTenantProducer(DefaultMQProducer producer) { + if (producer == null) { + return; + } + DefaultMQProducerImpl producerImpl = producer.getDefaultMQProducerImpl(); + if (producerImpl == null) { + return; + } + producerImpl.registerSendMessageHook(new TenantRocketMQSendMessageHook()); + } + + private void initTenantConsumer(DefaultMQPushConsumer consumer) { + if (consumer == null) { + return; + } + DefaultMQPushConsumerImpl consumerImpl = consumer.getDefaultMQPushConsumerImpl(); + if (consumerImpl == null) { + return; + } + consumerImpl.registerConsumeMessageHook(new TenantRocketMQConsumeMessageHook()); + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java new file mode 100644 index 0000000..4f03074 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.tenant.core.mq.rocketmq; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import org.apache.rocketmq.client.hook.SendMessageContext; +import org.apache.rocketmq.client.hook.SendMessageHook; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * RocketMQ 消息队列的多租户 {@link SendMessageHook} 实现类 + * + * Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中 + * + * @author 芋道源码 + */ +public class TenantRocketMQSendMessageHook implements SendMessageHook { + + @Override + public String hookName() { + return getClass().getSimpleName(); + } + + @Override + public void sendMessageBefore(SendMessageContext sendMessageContext) { + Long tenantId = TenantContextHolder.getTenantId(); + if (tenantId == null) { + return; + } + sendMessageContext.getMessage().putUserProperty(HEADER_TENANT_ID, tenantId.toString()); + } + + @Override + public void sendMessageAfter(SendMessageContext sendMessageContext) { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java new file mode 100644 index 0000000..240b920 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.framework.tenant.core.redis; + +import cn.iocoder.yudao.framework.redis.core.TimeoutRedisCacheManager; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; + +/** + * 多租户的 {@link RedisCacheManager} 实现类 + * + * 操作指定 name 的 {@link Cache} 时,自动拼接租户后缀,格式为 name + ":" + tenantId + 后缀 + * + * @author airhead + */ +@Slf4j +public class TenantRedisCacheManager extends TimeoutRedisCacheManager { + + public TenantRedisCacheManager(RedisCacheWriter cacheWriter, + RedisCacheConfiguration defaultCacheConfiguration) { + super(cacheWriter, defaultCacheConfiguration); + } + + @Override + public Cache getCache(String name) { + // 如果开启多租户,则 name 拼接租户后缀 + if (!TenantContextHolder.isIgnore() + && TenantContextHolder.getTenantId() != null) { + name = name + ":" + TenantContextHolder.getTenantId(); + } + + // 继续基于父方法 + return super.getCache(name); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/security/TenantSecurityWebFilter.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/security/TenantSecurityWebFilter.java new file mode 100644 index 0000000..2df028d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/security/TenantSecurityWebFilter.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.framework.tenant.core.security; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.config.TenantProperties; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.framework.web.core.filter.ApiRequestFilter; +import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * 多租户 Security Web 过滤器 + * 1. 如果是登陆的用户,校验是否有权限访问该租户,避免越权问题。 + * 2. 如果请求未带租户的编号,检查是否是忽略的 URL,否则也不允许访问。 + * 3. 校验租户是合法,例如说被禁用、到期 + * + * @author 芋道源码 + */ +@Slf4j +public class TenantSecurityWebFilter extends ApiRequestFilter { + + private final TenantProperties tenantProperties; + + private final AntPathMatcher pathMatcher; + + private final GlobalExceptionHandler globalExceptionHandler; + private final TenantFrameworkService tenantFrameworkService; + + public TenantSecurityWebFilter(TenantProperties tenantProperties, + WebProperties webProperties, + GlobalExceptionHandler globalExceptionHandler, + TenantFrameworkService tenantFrameworkService) { + super(webProperties); + this.tenantProperties = tenantProperties; + this.pathMatcher = new AntPathMatcher(); + this.globalExceptionHandler = globalExceptionHandler; + this.tenantFrameworkService = tenantFrameworkService; + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + Long tenantId = TenantContextHolder.getTenantId(); + // 1. 登陆的用户,校验是否有权限访问该租户,避免越权问题。 + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + if (user != null) { + // 如果获取不到租户编号,则尝试使用登陆用户的租户编号 + if (tenantId == null) { + tenantId = user.getTenantId(); + TenantContextHolder.setTenantId(tenantId); + // 如果传递了租户编号,则进行比对租户编号,避免越权问题 + } else if (!Objects.equals(user.getTenantId(), TenantContextHolder.getTenantId())) { + log.error("[doFilterInternal][租户({}) User({}/{}) 越权访问租户({}) URL({}/{})]", + user.getTenantId(), user.getId(), user.getUserType(), + TenantContextHolder.getTenantId(), request.getRequestURI(), request.getMethod()); + ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.FORBIDDEN.getCode(), + "您无权访问该租户的数据")); + return; + } + } + + // 如果非允许忽略租户的 URL,则校验租户是否合法 + if (!isIgnoreUrl(request)) { + // 2. 如果请求未带租户的编号,不允许访问。 + if (tenantId == null) { + log.error("[doFilterInternal][URL({}/{}) 未传递租户编号]", request.getRequestURI(), request.getMethod()); + ServletUtils.writeJSON(response, CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST.getCode(), + "请求的租户标识未传递,请进行排查")); + return; + } + // 3. 校验租户是合法,例如说被禁用、到期 + try { + tenantFrameworkService.validTenant(tenantId); + } catch (Throwable ex) { + CommonResult result = globalExceptionHandler.allExceptionHandler(request, ex); + ServletUtils.writeJSON(response, result); + return; + } + } else { // 如果是允许忽略租户的 URL,若未传递租户编号,则默认忽略租户编号,避免报错 + if(!isJeeLowCodeUrl(request)){//低代码平台有自己一套租户逻辑 + TenantContextHolder.setIgnore(true); + }else{ + if (tenantId == null) { + TenantContextHolder.setIgnore(true); + } + } + + } + + // 继续过滤 + chain.doFilter(request, response); + } + + private boolean isIgnoreUrl(HttpServletRequest request) { + // 快速匹配,保证性能 + if (CollUtil.contains(tenantProperties.getIgnoreUrls(), request.getRequestURI())) { + return true; + } + // 逐个 Ant 路径匹配 + for (String url : tenantProperties.getIgnoreUrls()) { + if (pathMatcher.match(url, request.getRequestURI())) { + return true; + } + } + return false; + } + + private boolean isJeeLowCodeUrl(HttpServletRequest request) { + List jeeLowCodeUrlList=new ArrayList<>(); + jeeLowCodeUrlList.add(JeeLowCodeBaseConstant.REQUEST_URL_START+"/** "); + // 快速匹配,保证性能 + if (CollUtil.contains(jeeLowCodeUrlList, request.getRequestURI())) { + return true; + } + // 逐个 Ant 路径匹配 + for (String url : jeeLowCodeUrlList) { + if (pathMatcher.match(url, request.getRequestURI())) { + return true; + } + } + return false; + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java new file mode 100644 index 0000000..2ca474d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.framework.tenant.core.service; + +import java.util.List; + +/** + * Tenant 框架 Service 接口,定义获取租户信息 + * + * @author 芋道源码 + */ +public interface TenantFrameworkService { + + /** + * 获得所有租户 + * + * @return 租户编号数组 + */ + List getTenantIds(); + + /** + * 校验租户是否合法 + * + * @param id 租户编号 + */ + void validTenant(Long id); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java new file mode 100644 index 0000000..f2b7b27 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.framework.tenant.core.service; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; +import cn.iocoder.yudao.module.system.api.tenant.TenantApi; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; + +import java.time.Duration; +import java.util.List; + +/** + * Tenant 框架 Service 实现类 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class TenantFrameworkServiceImpl implements TenantFrameworkService { + + private static final ServiceException SERVICE_EXCEPTION_NULL = new ServiceException(); + + private final TenantApi tenantApi; + + /** + * 针对 {@link #getTenantIds()} 的缓存 + */ + private final LoadingCache> getTenantIdsCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader>() { + + @Override + public List load(Object key) { + return tenantApi.getTenantIdList(); + } + + }); + + /** + * 针对 {@link #validTenant(Long)} 的缓存 + */ + private final LoadingCache validTenantCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofMinutes(1L), // 过期时间 1 分钟 + new CacheLoader() { + + @Override + public ServiceException load(Long id) { + try { + tenantApi.validateTenant(id); + return SERVICE_EXCEPTION_NULL; + } catch (ServiceException ex) { + return ex; + } + } + + }); + + @Override + @SneakyThrows + public List getTenantIds() { + return getTenantIdsCache.get(Boolean.TRUE); + } + + @Override + public void validTenant(Long id) { + ServiceException serviceException = validTenantCache.getUnchecked(id); + if (serviceException != SERVICE_EXCEPTION_NULL) { + throw serviceException; + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/util/TenantUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/util/TenantUtils.java new file mode 100644 index 0000000..7ec9c69 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/util/TenantUtils.java @@ -0,0 +1,93 @@ +package cn.iocoder.yudao.framework.tenant.core.util; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; + +import java.util.Map; +import java.util.concurrent.Callable; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * 多租户 Util + * + * @author 芋道源码 + */ +public class TenantUtils { + + /** + * 使用指定租户,执行对应的逻辑 + * + * 注意,如果当前是忽略租户的情况下,会被强制设置成不忽略租户 + * 当然,执行完成后,还是会恢复回去 + * + * @param tenantId 租户编号 + * @param runnable 逻辑 + */ + public static void execute(Long tenantId, Runnable runnable) { + Long oldTenantId = TenantContextHolder.getTenantId(); + Boolean oldIgnore = TenantContextHolder.isIgnore(); + try { + TenantContextHolder.setTenantId(tenantId); + TenantContextHolder.setIgnore(false); + // 执行逻辑 + runnable.run(); + } finally { + TenantContextHolder.setTenantId(oldTenantId); + TenantContextHolder.setIgnore(oldIgnore); + } + } + + /** + * 使用指定租户,执行对应的逻辑 + * + * 注意,如果当前是忽略租户的情况下,会被强制设置成不忽略租户 + * 当然,执行完成后,还是会恢复回去 + * + * @param tenantId 租户编号 + * @param callable 逻辑 + */ + public static V execute(Long tenantId, Callable callable) { + Long oldTenantId = TenantContextHolder.getTenantId(); + Boolean oldIgnore = TenantContextHolder.isIgnore(); + try { + TenantContextHolder.setTenantId(tenantId); + TenantContextHolder.setIgnore(false); + // 执行逻辑 + return callable.call(); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + TenantContextHolder.setTenantId(oldTenantId); + TenantContextHolder.setIgnore(oldIgnore); + } + } + + /** + * 忽略租户,执行对应的逻辑 + * + * @param runnable 逻辑 + */ + public static void executeIgnore(Runnable runnable) { + Boolean oldIgnore = TenantContextHolder.isIgnore(); + try { + TenantContextHolder.setIgnore(true); + // 执行逻辑 + runnable.run(); + } finally { + TenantContextHolder.setIgnore(oldIgnore); + } + } + + /** + * 将多租户编号,添加到 header 中 + * + * @param headers HTTP 请求 headers + * @param tenantId 租户编号 + */ + public static void addTenantHeader(Map headers, Long tenantId) { + if (tenantId != null) { + headers.put(HEADER_TENANT_ID, tenantId.toString()); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/web/TenantContextWebFilter.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/web/TenantContextWebFilter.java new file mode 100644 index 0000000..8e37727 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/web/TenantContextWebFilter.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.tenant.core.web; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 多租户 Context Web 过滤器 + * 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。 + * + * @author 芋道源码 + */ +public class TenantContextWebFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + // 设置 + Long tenantId = WebFrameworkUtils.getTenantId(request); + if (tenantId != null) { + TenantContextHolder.setTenantId(tenantId); + } + try { + chain.doFilter(request, response); + } finally { + // 清理 + TenantContextHolder.clear(); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/package-info.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/package-info.java new file mode 100644 index 0000000..aa22cdb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/package-info.java @@ -0,0 +1,17 @@ +/** + * 多租户,支持如下层面: + * 1. DB:基于 MyBatis Plus 多租户的功能实现。 + * 2. Redis:通过在 Redis Key 上拼接租户编号的方式,进行隔离。 + * 3. Web:请求 HTTP API 时,解析 Header 的 tenant-id 租户编号,添加到租户上下文。 + * 4. Security:校验当前登陆的用户,是否越权访问其它租户的数据。 + * 5. Job:在 JobHandler 执行任务时,会按照每个租户,都独立并行执行一次。 + * 6. MQ:在 Producer 发送消息时,Header 带上 tenant-id 租户编号;在 Consumer 消费消息时,将 Header 的 tenant-id 租户编号,添加到租户上下文。 + * 7. Async:异步需要保证 ThreadLocal 的传递性,通过使用阿里开源的 TransmittableThreadLocal 实现。相关的改造点,可见: + * 1)Spring Async: + * {@link cn.iocoder.yudao.framework.quartz.config.YudaoAsyncAutoConfiguration#threadPoolTaskExecutorBeanPostProcessor()} + * 2)Spring Security: + * TransmittableThreadLocalSecurityContextHolderStrategy + * 和 YudaoSecurityAutoConfiguration#securityContextHolderMethodInvokingFactoryBean() 方法 + * + */ +package cn.iocoder.yudao.framework.tenant; diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java new file mode 100644 index 0000000..059d8f9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/org/springframework/messaging/handler/invocation/InvocableHandlerMethod.java @@ -0,0 +1,269 @@ +/* + * Copyright 2002-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.messaging.handler.invocation; + +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.core.MethodParameter; +import org.springframework.core.ParameterNameDiscoverer; +import org.springframework.core.ResolvableType; +import org.springframework.lang.Nullable; +import org.springframework.messaging.Message; +import org.springframework.messaging.handler.HandlerMethod; +import org.springframework.util.ObjectUtils; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Type; +import java.util.Arrays; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * Extension of {@link HandlerMethod} that invokes the underlying method with + * argument values resolved from the current HTTP request through a list of + * {@link HandlerMethodArgumentResolver}. + * + * 针对 rabbitmq-spring 和 kafka-spring,不存在合适的拓展点,可以实现 Consumer 消费前,读取 Header 中的 tenant-id 设置到 {@link TenantContextHolder} 中 + * TODO 芋艿:持续跟进,看看有没新的拓展点 + * + * @author Rossen Stoyanchev + * @author Juergen Hoeller + * @since 4.0 + */ +public class InvocableHandlerMethod extends HandlerMethod { + + private static final Object[] EMPTY_ARGS = new Object[0]; + + private HandlerMethodArgumentResolverComposite resolvers = new HandlerMethodArgumentResolverComposite(); + + private ParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer(); + + /** + * Create an instance from a {@code HandlerMethod}. + */ + public InvocableHandlerMethod(HandlerMethod handlerMethod) { + super(handlerMethod); + } + + /** + * Create an instance from a bean instance and a method. + */ + public InvocableHandlerMethod(Object bean, Method method) { + super(bean, method); + } + + /** + * Construct a new handler method with the given bean instance, method name and parameters. + * @param bean the object bean + * @param methodName the method name + * @param parameterTypes the method parameter types + * @throws NoSuchMethodException when the method cannot be found + */ + public InvocableHandlerMethod(Object bean, String methodName, Class... parameterTypes) + throws NoSuchMethodException { + + super(bean, methodName, parameterTypes); + } + + /** + * Set {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers} to use for resolving method argument values. + */ + public void setMessageMethodArgumentResolvers(HandlerMethodArgumentResolverComposite argumentResolvers) { + this.resolvers = argumentResolvers; + } + + /** + * Set the ParameterNameDiscoverer for resolving parameter names when needed + * (e.g. default request attribute name). + *

    Default is a {@link DefaultParameterNameDiscoverer}. + */ + public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer) { + this.parameterNameDiscoverer = parameterNameDiscoverer; + } + + /** + * Invoke the method after resolving its argument values in the context of the given message. + *

    Argument values are commonly resolved through + * {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}. + * The {@code providedArgs} parameter however may supply argument values to be used directly, + * i.e. without argument resolution. + *

    Delegates to {@link #getMethodArgumentValues} and calls {@link #doInvoke} with the + * resolved arguments. + * @param message the current message being processed + * @param providedArgs "given" arguments matched by type, not resolved + * @return the raw value returned by the invoked method + * @throws Exception raised if no suitable argument resolver can be found, + * or if the method raised an exception + * @see #getMethodArgumentValues + * @see #doInvoke + */ + @Nullable + public Object invoke(Message message, Object... providedArgs) throws Exception { + Object[] args = getMethodArgumentValues(message, providedArgs); + if (logger.isTraceEnabled()) { + logger.trace("Arguments: " + Arrays.toString(args)); + } + // 注意:如下是本类的改动点!!! + // 情况一:无租户编号的情况 + Long tenantId= parseTenantId(message); + if (tenantId == null) { + return doInvoke(args); + } + // 情况二:有租户的情况下 + return TenantUtils.execute(tenantId, () -> doInvoke(args)); + } + + private Long parseTenantId(Message message) { + Object tenantId = message.getHeaders().get(HEADER_TENANT_ID); + if (tenantId == null) { + return null; + } + if (tenantId instanceof Long) { + return (Long) tenantId; + } + if (tenantId instanceof Number) { + return ((Number) tenantId).longValue(); + } + if (tenantId instanceof String) { + return Long.parseLong((String) tenantId); + } + if (tenantId instanceof byte[]) { + return Long.parseLong(new String((byte[]) tenantId)); + } + throw new IllegalArgumentException("未知的数据类型:" + tenantId); + } + + /** + * Get the method argument values for the current message, checking the provided + * argument values and falling back to the configured argument resolvers. + *

    The resulting array will be passed into {@link #doInvoke}. + * @since 5.1.2 + */ + protected Object[] getMethodArgumentValues(Message message, Object... providedArgs) throws Exception { + MethodParameter[] parameters = getMethodParameters(); + if (ObjectUtils.isEmpty(parameters)) { + return EMPTY_ARGS; + } + + Object[] args = new Object[parameters.length]; + for (int i = 0; i < parameters.length; i++) { + MethodParameter parameter = parameters[i]; + parameter.initParameterNameDiscovery(this.parameterNameDiscoverer); + args[i] = findProvidedArgument(parameter, providedArgs); + if (args[i] != null) { + continue; + } + if (!this.resolvers.supportsParameter(parameter)) { + throw new MethodArgumentResolutionException( + message, parameter, formatArgumentError(parameter, "No suitable resolver")); + } + try { + args[i] = this.resolvers.resolveArgument(parameter, message); + } + catch (Exception ex) { + // Leave stack trace for later, exception may actually be resolved and handled... + if (logger.isDebugEnabled()) { + String exMsg = ex.getMessage(); + if (exMsg != null && !exMsg.contains(parameter.getExecutable().toGenericString())) { + logger.debug(formatArgumentError(parameter, exMsg)); + } + } + throw ex; + } + } + return args; + } + + /** + * Invoke the handler method with the given argument values. + */ + @Nullable + protected Object doInvoke(Object... args) throws Exception { + try { + return getBridgedMethod().invoke(getBean(), args); + } + catch (IllegalArgumentException ex) { + assertTargetBean(getBridgedMethod(), getBean(), args); + String text = (ex.getMessage() != null ? ex.getMessage() : "Illegal argument"); + throw new IllegalStateException(formatInvokeError(text, args), ex); + } + catch (InvocationTargetException ex) { + // Unwrap for HandlerExceptionResolvers ... + Throwable targetException = ex.getTargetException(); + if (targetException instanceof RuntimeException) { + throw (RuntimeException) targetException; + } + else if (targetException instanceof Error) { + throw (Error) targetException; + } + else if (targetException instanceof Exception) { + throw (Exception) targetException; + } + else { + throw new IllegalStateException(formatInvokeError("Invocation failure", args), targetException); + } + } + } + + MethodParameter getAsyncReturnValueType(@Nullable Object returnValue) { + return new AsyncResultMethodParameter(returnValue); + } + + private class AsyncResultMethodParameter extends HandlerMethodParameter { + + @Nullable + private final Object returnValue; + + private final ResolvableType returnType; + + public AsyncResultMethodParameter(@Nullable Object returnValue) { + super(-1); + this.returnValue = returnValue; + this.returnType = ResolvableType.forType(super.getGenericParameterType()).getGeneric(); + } + + protected AsyncResultMethodParameter(AsyncResultMethodParameter original) { + super(original); + this.returnValue = original.returnValue; + this.returnType = original.returnType; + } + + @Override + public Class getParameterType() { + if (this.returnValue != null) { + return this.returnValue.getClass(); + } + if (!ResolvableType.NONE.equals(this.returnType)) { + return this.returnType.toClass(); + } + return super.getParameterType(); + } + + @Override + public Type getGenericParameterType() { + return this.returnType.getType(); + } + + @Override + public AsyncResultMethodParameter clone() { + return new AsyncResultMethodParameter(this); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..a495842 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.env.EnvironmentPostProcessor=\ + cn.iocoder.yudao.framework.tenant.core.mq.kafka.TenantKafkaEnvironmentPostProcessor diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..603831e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.tenant.config.YudaoTenantAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/pom.xml b/yudao-framework/yudao-spring-boot-starter-captcha/pom.xml new file mode 100644 index 0000000..654d756 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/pom.xml @@ -0,0 +1,38 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-captcha + jar + + ${project.artifactId} + 验证码拓展 + 1. 基于 aj-captcha 实现滑块验证码,文档:https://ajcaptcha.beliefteam.cn/captcha-doc/ + + + + + com.xingyuv + spring-boot-starter-captcha-plus + + + + org.springframework.boot + spring-boot-starter + + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/config/YudaoCaptchaConfiguration.java b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/config/YudaoCaptchaConfiguration.java new file mode 100644 index 0000000..21f19ef --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/config/YudaoCaptchaConfiguration.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.captcha.config; + +import cn.iocoder.yudao.framework.captcha.core.service.RedisCaptchaServiceImpl; +import com.xingyuv.captcha.properties.AjCaptchaProperties; +import com.xingyuv.captcha.service.CaptchaCacheService; +import com.xingyuv.captcha.service.impl.CaptchaServiceFactory; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.core.StringRedisTemplate; + +import javax.annotation.Resource; + +@AutoConfiguration +public class YudaoCaptchaConfiguration { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @Bean + public CaptchaCacheService captchaCacheService(AjCaptchaProperties config) { + // 缓存类型 redis/local/.... + CaptchaCacheService ret = CaptchaServiceFactory.getCache(config.getCacheType().name()); + if (ret instanceof RedisCaptchaServiceImpl) { + ((RedisCaptchaServiceImpl) ret).setStringRedisTemplate(stringRedisTemplate); + } + return ret; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/enums/CaptchaRedisKeyConstants.java b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/enums/CaptchaRedisKeyConstants.java new file mode 100644 index 0000000..5fa5b58 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/enums/CaptchaRedisKeyConstants.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.captcha.core.enums; + +/** + * 验证码 Redis Key 枚举类 + * + * @author 芋道源码 + */ +public interface CaptchaRedisKeyConstants { + + /** + * 验证码的请求限流 + * + * KEY 格式:AJ.CAPTCHA.REQ.LIMIT-%s-%s + * VALUE 数据类型:String // 例如说:验证失败 5 次,get 接口锁定 + * 过期时间:60 秒 + */ + String AJ_CAPTCHA_REQ_LIMIT = "AJ.CAPTCHA.REQ.LIMIT-%s-%s"; + + /** + * 验证码的坐标 + * + * KEY 格式:RUNNING:CAPTCHA:%s // AbstractCaptchaService.REDIS_CAPTCHA_KEY + * VALUE 数据类型:String // PointVO.class {"secretKey":"PP1w2Frr2KEejD2m","x":162,"y":5} + * 过期时间:120 秒 + */ + String AJ_CAPTCHA_RUNNING = "RUNNING:CAPTCHA:%s"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/service/RedisCaptchaServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/service/RedisCaptchaServiceImpl.java new file mode 100644 index 0000000..95c9ec4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/service/RedisCaptchaServiceImpl.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.framework.captcha.core.service; + +import com.xingyuv.captcha.service.CaptchaCacheService; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import org.springframework.data.redis.core.StringRedisTemplate; + +import javax.annotation.Resource; +import java.util.concurrent.TimeUnit; + +/** + * 基于 Redis 实现验证码的存储 + * + * @author 星语 + */ +@NoArgsConstructor // 保证 aj-captcha 的 SPI 创建 +@AllArgsConstructor +public class RedisCaptchaServiceImpl implements CaptchaCacheService { + + @Resource // 保证 aj-captcha 的 SPI 创建时的注入 + private StringRedisTemplate stringRedisTemplate; + + @Override + public String type() { + return "redis"; + } + + public void setStringRedisTemplate(StringRedisTemplate stringRedisTemplate) { + this.stringRedisTemplate = stringRedisTemplate; + } + + @Override + public void set(String key, String value, long expiresInSeconds) { + stringRedisTemplate.opsForValue().set(key, value, expiresInSeconds, TimeUnit.SECONDS); + } + + @Override + public boolean exists(String key) { + return Boolean.TRUE.equals(stringRedisTemplate.hasKey(key)); + } + + @Override + public void delete(String key) { + stringRedisTemplate.delete(key); + } + + @Override + public String get(String key) { + return stringRedisTemplate.opsForValue().get(key); + } + + @Override + public Long increment(String key, long val) { + return stringRedisTemplate.opsForValue().increment(key,val); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/package-info.java b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/package-info.java new file mode 100644 index 0000000..e78d9ea --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/package-info.java @@ -0,0 +1,7 @@ +/** + * 验证码拓展 + * 1. 基于 aj-captcha 实现滑块验证码,文档:https://ajcaptcha.beliefteam.cn/captcha-doc/ + * + * @author 星语 + */ +package cn.iocoder.yudao.framework.captcha; diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService new file mode 100644 index 0000000..afede97 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.captcha.core.service.RedisCaptchaServiceImpl diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8411d2c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.captcha.config.YudaoCaptchaConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png new file mode 100644 index 0000000..c481457 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png new file mode 100644 index 0000000..bf8fb38 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png new file mode 100644 index 0000000..f871d3d Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png new file mode 100644 index 0000000..2e3d871 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png new file mode 100644 index 0000000..fe383b7 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png new file mode 100644 index 0000000..5024ceb Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png new file mode 100644 index 0000000..efe76f8 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png new file mode 100644 index 0000000..2727aa3 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png new file mode 100644 index 0000000..4463aa2 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png new file mode 100644 index 0000000..ef11324 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png new file mode 100644 index 0000000..297e44c Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png new file mode 100644 index 0000000..d9b1da8 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png new file mode 100644 index 0000000..07e7313 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png new file mode 100644 index 0000000..82c3dd9 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png new file mode 100644 index 0000000..0b9a866 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png new file mode 100644 index 0000000..86b0d1c Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png new file mode 100644 index 0000000..e90a6e2 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png new file mode 100644 index 0000000..a82cbc7 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png new file mode 100644 index 0000000..d3f3cfd Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png new file mode 100644 index 0000000..eb2855b Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png new file mode 100644 index 0000000..3cb5ce1 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png new file mode 100644 index 0000000..384d354 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png new file mode 100644 index 0000000..baf3f06 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png new file mode 100644 index 0000000..ccaf617 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png new file mode 100644 index 0000000..7dab162 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png new file mode 100644 index 0000000..14e7345 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png new file mode 100644 index 0000000..1ea1d6d Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png new file mode 100644 index 0000000..0edb329 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png new file mode 100644 index 0000000..9167996 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png new file mode 100644 index 0000000..e8e8e6c Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png new file mode 100644 index 0000000..66a3181 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png new file mode 100644 index 0000000..9b0f5d8 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png new file mode 100644 index 0000000..db41c74 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png new file mode 100644 index 0000000..3496813 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png new file mode 100644 index 0000000..4e7b477 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png differ diff --git a/yudao-framework/yudao-spring-boot-starter-excel/pom.xml b/yudao-framework/yudao-spring-boot-starter-excel/pom.xml new file mode 100644 index 0000000..5280f72 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/pom.xml @@ -0,0 +1,51 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-excel + jar + + ${project.artifactId} + Excel 拓展 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-dict + true + + + + + org.springframework + spring-web + provided + + + + jakarta.servlet + jakarta.servlet-api + provided + + + + + com.alibaba + easyexcel + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/annotations/DictFormat.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/annotations/DictFormat.java new file mode 100644 index 0000000..0d898b4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/annotations/DictFormat.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.excel.core.annotations; + +import java.lang.annotation.*; + +/** + * 字典格式化 + * + * 实现将字典数据的值,格式化成字典数据的标签 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface DictFormat { + + /** + * 例如说,SysDictTypeConstants、InfDictTypeConstants + * + * @return 字典类型 + */ + String value(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/DictConvert.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/DictConvert.java new file mode 100644 index 0000000..182c83a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/DictConvert.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.framework.excel.core.convert; + +import cn.hutool.core.convert.Convert; +import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; +import lombok.extern.slf4j.Slf4j; + +/** + * Excel 数据字典转换器 + * + * @author 芋道源码 + */ +@Slf4j +public class DictConvert implements Converter { + + @Override + public Class supportJavaTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public Object convertToJavaData(ReadCellData readCellData, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + // 使用字典解析 + String type = getType(contentProperty); + String label = readCellData.getStringValue(); + String value = DictFrameworkUtils.parseDictDataValue(type, label); + if (value == null) { + log.error("[convertToJavaData][type({}) 解析不掉 label({})]", type, label); + return null; + } + // 将 String 的 value 转换成对应的属性 + Class fieldClazz = contentProperty.getField().getType(); + return Convert.convert(fieldClazz, value); + } + + @Override + public WriteCellData convertToExcelData(Object object, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + // 空时,返回空 + if (object == null) { + return new WriteCellData<>(""); + } + + // 使用字典格式化 + String type = getType(contentProperty); + String value = String.valueOf(object); + String label = DictFrameworkUtils.getDictDataLabel(type, value); + if (label == null) { + log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value); + return new WriteCellData<>(""); + } + // 生成 Excel 小表格 + return new WriteCellData<>(label); + } + + private static String getType(ExcelContentProperty contentProperty) { + return contentProperty.getField().getAnnotation(DictFormat.class).value(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/JsonConvert.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/JsonConvert.java new file mode 100644 index 0000000..0d4794e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/JsonConvert.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.excel.core.convert; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +/** + * Excel Json 转换器 + * + * @author 芋道源码 + */ +public class JsonConvert implements Converter { + + @Override + public Class supportJavaTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public WriteCellData convertToExcelData(Object value, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + // 生成 Excel 小表格 + return new WriteCellData<>(JsonUtils.toJsonString(value)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/MoneyConvert.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/MoneyConvert.java new file mode 100644 index 0000000..ee66fe7 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/MoneyConvert.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.excel.core.convert; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.enums.CellDataTypeEnum; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 金额转换器 + * + * 金额单位:分 + * + * @author 芋道源码 + */ +public class MoneyConvert implements Converter { + + @Override + public Class supportJavaTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + throw new UnsupportedOperationException("暂不支持,也不需要"); + } + + @Override + public WriteCellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + BigDecimal result = BigDecimal.valueOf(value) + .divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); + return new WriteCellData<>(result.toString()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java new file mode 100644 index 0000000..7fbf0e7 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.framework.excel.core.util; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.converters.longconverter.LongStringConverter; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.List; + +/** + * Excel 工具类 + * + * @author 芋道源码 + */ +public class ExcelUtils { + + /** + * 将列表以 Excel 响应给前端 + * + * @param response 响应 + * @param filename 文件名 + * @param sheetName Excel sheet 名 + * @param head Excel head 头 + * @param data 数据列表哦 + * @param 泛型,保证 head 和 data 类型的一致性 + * @throws IOException 写入失败的情况 + */ + public static void write(HttpServletResponse response, String filename, String sheetName, + Class head, List data) throws IOException { + // 输出 Excel + EasyExcel.write(response.getOutputStream(), head) + .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 + .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 + .sheet(sheetName).doWrite(data); + // 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了 + response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8.name())); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + } + + public static List read(MultipartFile file, Class head) throws IOException { + return EasyExcel.read(file.getInputStream(), head, null) + .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 + .doReadAllSync(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/package-info.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/package-info.java new file mode 100644 index 0000000..53bc5c0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/package-info.java @@ -0,0 +1,4 @@ +/** + * 基于 EasyExcel 实现 Excel 相关的操作 + */ +package cn.iocoder.yudao.framework.excel; diff --git a/yudao-framework/yudao-spring-boot-starter-file/pom.xml b/yudao-framework/yudao-spring-boot-starter-file/pom.xml new file mode 100644 index 0000000..5ce48a8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/pom.xml @@ -0,0 +1,83 @@ + + + + yudao-framework + cn.iocoder.boot + ${revision} + + 4.0.0 + yudao-spring-boot-starter-file + + ${project.artifactId} + 文件客户端,支持多种存储器 + 1. file:本地磁盘 + 2. ftp:FTP 服务器 + 2. sftp:SFTP 服务器 + 4. db:数据库 + 5. s3:支持 S3 协议的云存储服务,例如说 MinIO、阿里云、华为云、腾讯云、七牛云等等 + + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter + + + + + org.springframework.boot + spring-boot-starter-validation + + + + org.slf4j + slf4j-api + + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-core + + + + commons-net + commons-net + + + com.jcraft + jsch + + + + org.apache.tika + tika-core + + + + + io.minio + minio + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/config/YudaoFileAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/config/YudaoFileAutoConfiguration.java new file mode 100644 index 0000000..e22ee3d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/config/YudaoFileAutoConfiguration.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.file.config; + +import cn.iocoder.yudao.framework.file.core.client.FileClientFactory; +import cn.iocoder.yudao.framework.file.core.client.FileClientFactoryImpl; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +/** + * 文件配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +public class YudaoFileAutoConfiguration { + + @Bean + public FileClientFactory fileClientFactory() { + return new FileClientFactoryImpl(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/AbstractFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/AbstractFileClient.java new file mode 100644 index 0000000..b21ccc0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/AbstractFileClient.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.framework.file.core.client; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; + +/** + * 文件客户端的抽象类,提供模板方法,减少子类的冗余代码 + * + * @author 芋道源码 + */ +@Slf4j +public abstract class AbstractFileClient implements FileClient { + + /** + * 配置编号 + */ + private final Long id; + /** + * 文件配置 + */ + protected Config config; + + public AbstractFileClient(Long id, Config config) { + this.id = id; + this.config = config; + } + + /** + * 初始化 + */ + public final void init() { + doInit(); + log.debug("[init][配置({}) 初始化完成]", config); + } + + /** + * 自定义初始化 + */ + protected abstract void doInit(); + + public final void refresh(Config config) { + // 判断是否更新 + if (config.equals(this.config)) { + return; + } + log.info("[refresh][配置({})发生变化,重新初始化]", config); + this.config = config; + // 初始化 + this.init(); + } + + @Override + public Long getId() { + return id; + } + + /** + * 格式化文件的 URL 访问地址 + * 使用场景:local、ftp、db,通过 FileController 的 getFile 来获取文件内容 + * + * @param domain 自定义域名 + * @param path 文件路径 + * @return URL 访问地址 + */ + protected String formatFileUrl(String domain, String path) { + return StrUtil.format("{}/admin-api/infra/file/{}/get/{}", domain, getId(), path); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClient.java new file mode 100644 index 0000000..2944ca7 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClient.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.file.core.client; + +import cn.iocoder.yudao.framework.file.core.client.s3.FilePresignedUrlRespDTO; + +/** + * 文件客户端 + * + * @author 芋道源码 + */ +public interface FileClient { + + /** + * 获得客户端编号 + * + * @return 客户端编号 + */ + Long getId(); + + /** + * 上传文件 + * + * @param content 文件流 + * @param path 相对路径 + * @return 完整路径,即 HTTP 访问地址 + * @throws Exception 上传文件时,抛出 Exception 异常 + */ + String upload(byte[] content, String path, String type) throws Exception; + + /** + * 删除文件 + * + * @param path 相对路径 + * @throws Exception 删除文件时,抛出 Exception 异常 + */ + void delete(String path) throws Exception; + + /** + * 获得文件的内容 + * + * @param path 相对路径 + * @return 文件的内容 + */ + byte[] getContent(String path) throws Exception; + + /** + * 获得文件预签名地址 + * + * @param path 相对路径 + * @return 文件预签名地址 + */ + default FilePresignedUrlRespDTO getPresignedObjectUrl(String path) throws Exception { + throw new UnsupportedOperationException("不支持的操作"); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientConfig.java new file mode 100644 index 0000000..9461c05 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientConfig.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.framework.file.core.client; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +/** + * 文件客户端的配置 + * 不同实现的客户端,需要不同的配置,通过子类来定义 + * + * @author 芋道源码 + */ +@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) +// @JsonTypeInfo 注解的作用,Jackson 多态 +// 1. 序列化到时数据库时,增加 @class 属性。 +// 2. 反序列化到内存对象时,通过 @class 属性,可以创建出正确的类型 +public interface FileClientConfig { +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactory.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactory.java new file mode 100644 index 0000000..db90f48 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactory.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.file.core.client; + +public interface FileClientFactory { + + /** + * 获得文件客户端 + * + * @param configId 配置编号 + * @return 文件客户端 + */ + FileClient getFileClient(Long configId); + + /** + * 创建文件客户端 + * + * @param configId 配置编号 + * @param storage 存储器的枚举 {@link cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum} + * @param config 文件配置 + */ + void createOrUpdateFileClient(Long configId, Integer storage, Config config); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactoryImpl.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactoryImpl.java new file mode 100644 index 0000000..980f8a3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/FileClientFactoryImpl.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.framework.file.core.client; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ReflectUtil; +import cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum; +import lombok.extern.slf4j.Slf4j; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * 文件客户端的工厂实现类 + * + * @author 芋道源码 + */ +@Slf4j +public class FileClientFactoryImpl implements FileClientFactory { + + /** + * 文件客户端 Map + * key:配置编号 + */ + private final ConcurrentMap> clients = new ConcurrentHashMap<>(); + + @Override + public FileClient getFileClient(Long configId) { + AbstractFileClient client = clients.get(configId); + if (client == null) { + log.error("[getFileClient][配置编号({}) 找不到客户端]", configId); + } + return client; + } + + @Override + @SuppressWarnings("unchecked") + public void createOrUpdateFileClient(Long configId, Integer storage, Config config) { + AbstractFileClient client = (AbstractFileClient) clients.get(configId); + if (client == null) { + client = this.createFileClient(configId, storage, config); + client.init(); + clients.put(client.getId(), client); + } else { + client.refresh(config); + } + } + + @SuppressWarnings("unchecked") + private AbstractFileClient createFileClient( + Long configId, Integer storage, Config config) { + FileStorageEnum storageEnum = FileStorageEnum.getByStorage(storage); + Assert.notNull(storageEnum, String.format("文件配置(%s) 为空", storageEnum)); + // 创建客户端 + return (AbstractFileClient) ReflectUtil.newInstance(storageEnum.getClientClass(), configId, config); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClient.java new file mode 100644 index 0000000..1e2c082 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClient.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.framework.file.core.client.db; + +import cn.hutool.extra.spring.SpringUtil; +import cn.iocoder.yudao.framework.file.core.client.AbstractFileClient; + +/** + * 基于 DB 存储的文件客户端的配置类 + * + * @author 芋道源码 + */ +public class DBFileClient extends AbstractFileClient { + + private DBFileContentFrameworkDAO dao; + + public DBFileClient(Long id, DBFileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + } + + @Override + public String upload(byte[] content, String path, String type) { + getDao().insert(getId(), path, content); + // 拼接返回路径 + return super.formatFileUrl(config.getDomain(), path); + } + + @Override + public void delete(String path) { + getDao().delete(getId(), path); + } + + @Override + public byte[] getContent(String path) { + return getDao().selectContent(getId(), path); + } + + private DBFileContentFrameworkDAO getDao() { + // 延迟获取,因为 SpringUtil 初始化太慢 + if (dao == null) { + dao = SpringUtil.getBean(DBFileContentFrameworkDAO.class); + } + return dao; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClientConfig.java new file mode 100644 index 0000000..65d837b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileClientConfig.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.framework.file.core.client.db; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotEmpty; + +/** + * 基于 DB 存储的文件客户端的配置类 + * + * @author 芋道源码 + */ +@Data +public class DBFileClientConfig implements FileClientConfig { + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileContentFrameworkDAO.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileContentFrameworkDAO.java new file mode 100644 index 0000000..9423e06 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/db/DBFileContentFrameworkDAO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.file.core.client.db; + +/** + * 文件内容 Framework DAO 接口 + * + * @author 芋道源码 + */ +public interface DBFileContentFrameworkDAO { + + /** + * 插入文件内容 + * + * @param configId 配置编号 + * @param path 路径 + * @param content 内容 + */ + void insert(Long configId, String path, byte[] content); + + /** + * 删除文件内容 + * + * @param configId 配置编号 + * @param path 路径 + */ + void delete(Long configId, String path); + + /** + * 获得文件内容 + * + * @param configId 配置编号 + * @param path 路径 + * @return 内容 + */ + byte[] selectContent(Long configId, String path); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java new file mode 100644 index 0000000..796044f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.framework.file.core.client.ftp; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.ftp.Ftp; +import cn.hutool.extra.ftp.FtpException; +import cn.hutool.extra.ftp.FtpMode; +import cn.iocoder.yudao.framework.file.core.client.AbstractFileClient; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +/** + * Ftp 文件客户端 + * + * @author 芋道源码 + */ +public class FtpFileClient extends AbstractFileClient { + + private Ftp ftp; + + public FtpFileClient(Long id, FtpFileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + // 把配置的 \ 替换成 /, 如果路径配置 \a\test, 替换成 /a/test, 替换方法已经处理 null 情况 + config.setBasePath(StrUtil.replace(config.getBasePath(), StrUtil.BACKSLASH, StrUtil.SLASH)); + // ftp的路径是 / 结尾 + if (!config.getBasePath().endsWith(StrUtil.SLASH)) { + config.setBasePath(config.getBasePath() + StrUtil.SLASH); + } + // 初始化 Ftp 对象 + this.ftp = new Ftp(config.getHost(), config.getPort(), config.getUsername(), config.getPassword(), + CharsetUtil.CHARSET_UTF_8, null, null, FtpMode.valueOf(config.getMode())); + } + + @Override + public String upload(byte[] content, String path, String type) { + // 执行写入 + String filePath = getFilePath(path); + String fileName = FileUtil.getName(filePath); + String dir = StrUtil.removeSuffix(filePath, fileName); + ftp.reconnectIfTimeout(); + boolean success = ftp.upload(dir, fileName, new ByteArrayInputStream(content)); + if (!success) { + throw new FtpException(StrUtil.format("上传文件到目标目录 ({}) 失败", filePath)); + } + // 拼接返回路径 + return super.formatFileUrl(config.getDomain(), path); + } + + @Override + public void delete(String path) { + String filePath = getFilePath(path); + ftp.reconnectIfTimeout(); + ftp.delFile(filePath); + } + + @Override + public byte[] getContent(String path) { + String filePath = getFilePath(path); + String fileName = FileUtil.getName(filePath); + String dir = StrUtil.removeSuffix(filePath, fileName); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + ftp.reconnectIfTimeout(); + ftp.download(dir, fileName, out); + return out.toByteArray(); + } + + private String getFilePath(String path) { + return config.getBasePath() + path; + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientConfig.java new file mode 100644 index 0000000..5ccf86c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientConfig.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.framework.file.core.client.ftp; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * Ftp 文件客户端的配置类 + * + * @author 芋道源码 + */ +@Data +public class FtpFileClientConfig implements FileClientConfig { + + /** + * 基础路径 + */ + @NotEmpty(message = "基础路径不能为空") + private String basePath; + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + + /** + * 主机地址 + */ + @NotEmpty(message = "host 不能为空") + private String host; + /** + * 主机端口 + */ + @NotNull(message = "port 不能为空") + private Integer port; + /** + * 用户名 + */ + @NotEmpty(message = "用户名不能为空") + private String username; + /** + * 密码 + */ + @NotEmpty(message = "密码不能为空") + private String password; + /** + * 连接模式 + * + * 使用 {@link cn.hutool.extra.ftp.FtpMode} 对应的字符串 + */ + @NotEmpty(message = "连接模式不能为空") + private String mode; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClient.java new file mode 100644 index 0000000..cac13f1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClient.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.file.core.client.local; + +import cn.hutool.core.io.FileUtil; +import cn.iocoder.yudao.framework.file.core.client.AbstractFileClient; + +import java.io.File; + +/** + * 本地文件客户端 + * + * @author 芋道源码 + */ +public class LocalFileClient extends AbstractFileClient { + + public LocalFileClient(Long id, LocalFileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + // 补全风格。例如说 Linux 是 /,Windows 是 \ + if (!config.getBasePath().endsWith(File.separator)) { + config.setBasePath(config.getBasePath() + File.separator); + } + } + + @Override + public String upload(byte[] content, String path, String type) { + // 执行写入 + String filePath = getFilePath(path); + FileUtil.writeBytes(content, filePath); + // 拼接返回路径 + return super.formatFileUrl(config.getDomain(), path); + } + + @Override + public void delete(String path) { + String filePath = getFilePath(path); + FileUtil.del(filePath); + } + + @Override + public byte[] getContent(String path) { + String filePath = getFilePath(path); + return FileUtil.readBytes(filePath); + } + + private String getFilePath(String path) { + return config.getBasePath() + path; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientConfig.java new file mode 100644 index 0000000..1f595ed --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientConfig.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.framework.file.core.client.local; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotEmpty; + +/** + * 本地文件客户端的配置类 + * + * @author 芋道源码 + */ +@Data +public class LocalFileClientConfig implements FileClientConfig { + + /** + * 基础路径 + */ + @NotEmpty(message = "基础路径不能为空") + private String basePath; + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/FilePresignedUrlRespDTO.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/FilePresignedUrlRespDTO.java new file mode 100644 index 0000000..6048494 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/FilePresignedUrlRespDTO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.file.core.client.s3; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 文件预签名地址 Response DTO + * + * @author owen + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class FilePresignedUrlRespDTO { + + /** + * 文件上传 URL(用于上传) + * + * 例如说: + */ + private String uploadUrl; + + /** + * 文件 URL(用于读取、下载等) + */ + private String url; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java new file mode 100644 index 0000000..e7b470b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClient.java @@ -0,0 +1,134 @@ +package cn.iocoder.yudao.framework.file.core.client.s3; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; +import cn.iocoder.yudao.framework.file.core.client.AbstractFileClient; +import io.minio.*; +import io.minio.http.Method; + +import java.io.ByteArrayInputStream; +import java.util.concurrent.TimeUnit; + +import static cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig.ENDPOINT_ALIYUN; +import static cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig.ENDPOINT_TENCENT; + +/** + * 基于 S3 协议的文件客户端,实现 MinIO、阿里云、腾讯云、七牛云、华为云等云服务 + *

    + * S3 协议的客户端,采用亚马逊提供的 software.amazon.awssdk.s3 库 + * + * @author 芋道源码 + */ +public class S3FileClient extends AbstractFileClient { + + private MinioClient client; + + public S3FileClient(Long id, S3FileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + // 补全 domain + if (StrUtil.isEmpty(config.getDomain())) { + config.setDomain(buildDomain()); + } + // 初始化客户端 + client = MinioClient.builder() + .endpoint(buildEndpointURL()) // Endpoint URL + .region(buildRegion()) // Region + .credentials(config.getAccessKey(), config.getAccessSecret()) // 认证密钥 + .build(); + } + + /** + * 基于 endpoint 构建调用云服务的 URL 地址 + * + * @return URI 地址 + */ + private String buildEndpointURL() { + // 如果已经是 http 或者 https,则不进行拼接.主要适配 MinIO + if (HttpUtil.isHttp(config.getEndpoint()) || HttpUtil.isHttps(config.getEndpoint())) { + return config.getEndpoint(); + } + return StrUtil.format("https://{}", config.getEndpoint()); + } + + /** + * 基于 bucket + endpoint 构建访问的 Domain 地址 + * + * @return Domain 地址 + */ + private String buildDomain() { + // 如果已经是 http 或者 https,则不进行拼接.主要适配 MinIO + if (HttpUtil.isHttp(config.getEndpoint()) || HttpUtil.isHttps(config.getEndpoint())) { + return StrUtil.format("{}/{}", config.getEndpoint(), config.getBucket()); + } + // 阿里云、腾讯云、华为云都适合。七牛云比较特殊,必须有自定义域名 + return StrUtil.format("https://{}.{}", config.getBucket(), config.getEndpoint()); + } + + /** + * 基于 bucket 构建 region 地区 + * + * @return region 地区 + */ + private String buildRegion() { + // 阿里云必须有 region,否则会报错 + if (config.getEndpoint().contains(ENDPOINT_ALIYUN)) { + return StrUtil.subBefore(config.getEndpoint(), '.', false) + .replaceAll("-internal", "")// 去除内网 Endpoint 的后缀 + .replaceAll("https://", ""); + } + // 腾讯云必须有 region,否则会报错 + if (config.getEndpoint().contains(ENDPOINT_TENCENT)) { + return StrUtil.subAfter(config.getEndpoint(), "cos.", false) + .replaceAll("." + ENDPOINT_TENCENT, ""); // 去除 Endpoint + } + return null; + } + + @Override + public String upload(byte[] content, String path, String type) throws Exception { + // 执行上传 + client.putObject(PutObjectArgs.builder() + .bucket(config.getBucket()) // bucket 必须传递 + .contentType(type) + .object(path) // 相对路径作为 key + .stream(new ByteArrayInputStream(content), content.length, -1) // 文件内容 + .build()); + // 拼接返回路径 + return config.getDomain() + "/" + path; + } + + @Override + public void delete(String path) throws Exception { + client.removeObject(RemoveObjectArgs.builder() + .bucket(config.getBucket()) // bucket 必须传递 + .object(path) // 相对路径作为 key + .build()); + } + + @Override + public byte[] getContent(String path) throws Exception { + GetObjectResponse response = client.getObject(GetObjectArgs.builder() + .bucket(config.getBucket()) // bucket 必须传递 + .object(path) // 相对路径作为 key + .build()); + return IoUtil.readBytes(response); + } + + @Override + public FilePresignedUrlRespDTO getPresignedObjectUrl(String path) throws Exception { + String uploadUrl = client.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder() + .method(Method.PUT) + .bucket(config.getBucket()) + .object(path) + .expiry(10, TimeUnit.MINUTES) // 过期时间(秒数)取值范围:1 秒 ~ 7 天 + .build() + ); + return new FilePresignedUrlRespDTO(uploadUrl, config.getDomain() + "/" + path); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientConfig.java new file mode 100644 index 0000000..0c46e8a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientConfig.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.framework.file.core.client.s3; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotNull; + +/** + * S3 文件客户端的配置类 + * + * @author 芋道源码 + */ +@Data +public class S3FileClientConfig implements FileClientConfig { + + public static final String ENDPOINT_QINIU = "qiniucs.com"; + public static final String ENDPOINT_ALIYUN = "aliyuncs.com"; + public static final String ENDPOINT_TENCENT = "myqcloud.com"; + + /** + * 节点地址 + * 1. MinIO:https://www.iocoder.cn/Spring-Boot/MinIO 。例如说,http://127.0.0.1:9000 + * 2. 阿里云:https://help.aliyun.com/document_detail/31837.html + * 3. 腾讯云:https://cloud.tencent.com/document/product/436/6224 + * 4. 七牛云:https://developer.qiniu.com/kodo/4088/s3-access-domainname + * 5. 华为云:https://developer.huaweicloud.com/endpoint?OBS + */ + @NotNull(message = "endpoint 不能为空") + private String endpoint; + /** + * 自定义域名 + * 1. MinIO:通过 Nginx 配置 + * 2. 阿里云:https://help.aliyun.com/document_detail/31836.html + * 3. 腾讯云:https://cloud.tencent.com/document/product/436/11142 + * 4. 七牛云:https://developer.qiniu.com/kodo/8556/set-the-custom-source-domain-name + * 5. 华为云:https://support.huaweicloud.com/usermanual-obs/obs_03_0032.html + */ + @URL(message = "domain 必须是 URL 格式") + private String domain; + /** + * 存储 Bucket + */ + @NotNull(message = "bucket 不能为空") + private String bucket; + + /** + * 访问 Key + * 1. MinIO:https://www.iocoder.cn/Spring-Boot/MinIO + * 2. 阿里云:https://ram.console.aliyun.com/manage/ak + * 3. 腾讯云:https://console.cloud.tencent.com/cam/capi + * 4. 七牛云:https://portal.qiniu.com/user/key + * 5. 华为云:https://support.huaweicloud.com/qs-obs/obs_qs_0005.html + */ + @NotNull(message = "accessKey 不能为空") + private String accessKey; + /** + * 访问 Secret + */ + @NotNull(message = "accessSecret 不能为空") + private String accessSecret; + + @SuppressWarnings("RedundantIfStatement") + @AssertTrue(message = "domain 不能为空") + @JsonIgnore + public boolean isDomainValid() { + // 如果是七牛,必须带有 domain + if (StrUtil.contains(endpoint, ENDPOINT_QINIU) && StrUtil.isEmpty(domain)) { + return false; + } + return true; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClient.java new file mode 100644 index 0000000..facddce --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClient.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.framework.file.core.client.sftp; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.extra.ssh.Sftp; +import cn.iocoder.yudao.framework.common.util.io.FileUtils; +import cn.iocoder.yudao.framework.file.core.client.AbstractFileClient; + +import java.io.File; + +/** + * Sftp 文件客户端 + * + * @author 芋道源码 + */ +public class SftpFileClient extends AbstractFileClient { + + private Sftp sftp; + + public SftpFileClient(Long id, SftpFileClientConfig config) { + super(id, config); + } + + @Override + protected void doInit() { + // 补全风格。例如说 Linux 是 /,Windows 是 \ + if (!config.getBasePath().endsWith(File.separator)) { + config.setBasePath(config.getBasePath() + File.separator); + } + // 初始化 Ftp 对象 + this.sftp = new Sftp(config.getHost(), config.getPort(), config.getUsername(), config.getPassword()); + } + + @Override + public String upload(byte[] content, String path, String type) { + // 执行写入 + String filePath = getFilePath(path); + File file = FileUtils.createTempFile(content); + sftp.upload(filePath, file); + // 拼接返回路径 + return super.formatFileUrl(config.getDomain(), path); + } + + @Override + public void delete(String path) { + String filePath = getFilePath(path); + sftp.delFile(filePath); + } + + @Override + public byte[] getContent(String path) { + String filePath = getFilePath(path); + File destFile = FileUtils.createTempFile(); + sftp.download(filePath, destFile); + return FileUtil.readBytes(destFile); + } + + private String getFilePath(String path) { + return config.getBasePath() + path; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientConfig.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientConfig.java new file mode 100644 index 0000000..1a976f5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientConfig.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.file.core.client.sftp; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * Sftp 文件客户端的配置类 + * + * @author 芋道源码 + */ +@Data +public class SftpFileClientConfig implements FileClientConfig { + + /** + * 基础路径 + */ + @NotEmpty(message = "基础路径不能为空") + private String basePath; + + /** + * 自定义域名 + */ + @NotEmpty(message = "domain 不能为空") + @URL(message = "domain 必须是 URL 格式") + private String domain; + + /** + * 主机地址 + */ + @NotEmpty(message = "host 不能为空") + private String host; + /** + * 主机端口 + */ + @NotNull(message = "port 不能为空") + private Integer port; + /** + * 用户名 + */ + @NotEmpty(message = "用户名不能为空") + private String username; + /** + * 密码 + */ + @NotEmpty(message = "密码不能为空") + private String password; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/enums/FileStorageEnum.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/enums/FileStorageEnum.java new file mode 100644 index 0000000..03c6ed8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/enums/FileStorageEnum.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.file.core.enums; + +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.file.core.client.FileClient; +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.db.DBFileClient; +import cn.iocoder.yudao.framework.file.core.client.db.DBFileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.ftp.FtpFileClient; +import cn.iocoder.yudao.framework.file.core.client.ftp.FtpFileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.local.LocalFileClient; +import cn.iocoder.yudao.framework.file.core.client.local.LocalFileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.s3.S3FileClient; +import cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.sftp.SftpFileClient; +import cn.iocoder.yudao.framework.file.core.client.sftp.SftpFileClientConfig; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件存储器枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum FileStorageEnum { + + DB(1, DBFileClientConfig.class, DBFileClient.class), + + LOCAL(10, LocalFileClientConfig.class, LocalFileClient.class), + FTP(11, FtpFileClientConfig.class, FtpFileClient.class), + SFTP(12, SftpFileClientConfig.class, SftpFileClient.class), + + S3(20, S3FileClientConfig.class, S3FileClient.class), + ; + + /** + * 存储器 + */ + private final Integer storage; + + /** + * 配置类 + */ + private final Class configClass; + /** + * 客户端类 + */ + private final Class clientClass; + + public static FileStorageEnum getByStorage(Integer storage) { + return ArrayUtil.firstMatch(o -> o.getStorage().equals(storage), values()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/utils/FileTypeUtils.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/utils/FileTypeUtils.java new file mode 100644 index 0000000..8b99227 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/utils/FileTypeUtils.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.framework.file.core.utils; + +import com.alibaba.ttl.TransmittableThreadLocal; +import lombok.SneakyThrows; +import org.apache.tika.Tika; + +/** + * 文件类型 Utils + * + * @author 芋道源码 + */ +public class FileTypeUtils { + + private static final ThreadLocal TIKA = TransmittableThreadLocal.withInitial(Tika::new); + + /** + * 获得文件的 mineType,对于doc,jar等文件会有误差 + * + * @param data 文件内容 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + @SneakyThrows + public static String getMineType(byte[] data) { + return TIKA.get().detect(data); + } + + /** + * 已知文件名,获取文件类型,在某些情况下比通过字节数组准确,例如使用jar文件时,通过名字更为准确 + * + * @param name 文件名 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + public static String getMineType(String name) { + return TIKA.get().detect(name); + } + + /** + * 在拥有文件和数据的情况下,最好使用此方法,最为准确 + * + * @param data 文件内容 + * @param name 文件名 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + public static String getMineType(byte[] data, String name) { + return TIKA.get().detect(data, name); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..9e5f422 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.file.config.YudaoFileAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/config/package-info.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/config/package-info.java new file mode 100644 index 0000000..113f3e5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/config/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位,避免 package 无法提交到 Git 仓库 + */ +package cn.iocoder.yudao.framework.file.config; diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientTest.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientTest.java new file mode 100644 index 0000000..619e52d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClientTest.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.file.core.client.ftp; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.extra.ftp.FtpMode; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class FtpFileClientTest { + + @Test + @Disabled + public void test() { + // 创建客户端 + FtpFileClientConfig config = new FtpFileClientConfig(); + config.setDomain("http://127.0.0.1:48080"); + config.setBasePath("/home/ftp"); + config.setHost("kanchai.club"); + config.setPort(221); + config.setUsername(""); + config.setPassword(""); + config.setMode(FtpMode.Passive.name()); + FtpFileClient client = new FtpFileClient(0L, config); + client.init(); + // 上传文件 + String path = IdUtil.fastSimpleUUID() + ".jpg"; + byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); + String fullPath = client.upload(content, path, "image/jpeg"); + System.out.println("访问地址:" + fullPath); + if (false) { + byte[] bytes = client.getContent(path); + System.out.println("文件内容:" + bytes); + } + if (false) { + client.delete(path); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientTest.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientTest.java new file mode 100644 index 0000000..d48609b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/local/LocalFileClientTest.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.file.core.client.local; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class LocalFileClientTest { + + @Test + @Disabled + public void test() { + // 创建客户端 + LocalFileClientConfig config = new LocalFileClientConfig(); + config.setDomain("http://127.0.0.1:48080"); + config.setBasePath("/Users/yunai/file_test"); + LocalFileClient client = new LocalFileClient(0L, config); + client.init(); + // 上传文件 + String path = IdUtil.fastSimpleUUID() + ".jpg"; + byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); + String fullPath = client.upload(content, path, "image/jpeg"); + System.out.println("访问地址:" + fullPath); + client.delete(path); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientTest.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientTest.java new file mode 100644 index 0000000..1d0ed20 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/s3/S3FileClientTest.java @@ -0,0 +1,117 @@ +package cn.iocoder.yudao.framework.file.core.client.s3; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import javax.validation.Validation; + +public class S3FileClientTest { + + @Test + @Disabled // MinIO,如果要集成测试,可以注释本行 + public void testMinIO() throws Exception { + S3FileClientConfig config = new S3FileClientConfig(); + // 配置成你自己的 + config.setAccessKey("admin"); + config.setAccessSecret("password"); + config.setBucket("yudaoyuanma"); + config.setDomain(null); + // 默认 9000 endpoint + config.setEndpoint("http://127.0.0.1:9000"); + + // 执行上传 + testExecuteUpload(config); + } + + @Test + @Disabled // 阿里云 OSS,如果要集成测试,可以注释本行 + public void testAliyun() throws Exception { + S3FileClientConfig config = new S3FileClientConfig(); + // 配置成你自己的 + config.setAccessKey(System.getenv("ALIYUN_ACCESS_KEY")); + config.setAccessSecret(System.getenv("ALIYUN_SECRET_KEY")); + config.setBucket("yunai-aoteman"); + config.setDomain(null); // 如果有自定义域名,则可以设置。http://ali-oss.iocoder.cn + // 默认北京的 endpoint + config.setEndpoint("oss-cn-beijing.aliyuncs.com"); + + // 执行上传 + testExecuteUpload(config); + } + + @Test + @Disabled // 腾讯云 COS,如果要集成测试,可以注释本行 + public void testQCloud() throws Exception { + S3FileClientConfig config = new S3FileClientConfig(); + // 配置成你自己的 + config.setAccessKey(System.getenv("QCLOUD_ACCESS_KEY")); + config.setAccessSecret(System.getenv("QCLOUD_SECRET_KEY")); + config.setBucket("aoteman-1255880240"); + config.setDomain(null); // 如果有自定义域名,则可以设置。http://tengxun-oss.iocoder.cn + // 默认上海的 endpoint + config.setEndpoint("cos.ap-shanghai.myqcloud.com"); + + // 执行上传 + testExecuteUpload(config); + } + + @Test + @Disabled // 七牛云存储,如果要集成测试,可以注释本行 + public void testQiniu() throws Exception { + S3FileClientConfig config = new S3FileClientConfig(); + // 配置成你自己的 +// config.setAccessKey(System.getenv("QINIU_ACCESS_KEY")); +// config.setAccessSecret(System.getenv("QINIU_SECRET_KEY")); + config.setAccessKey("b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8"); + config.setAccessSecret("kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP"); + config.setBucket("ruoyi-vue-pro"); + config.setDomain("http://test.yudao.iocoder.cn"); // 如果有自定义域名,则可以设置。http://static.yudao.iocoder.cn + // 默认上海的 endpoint + config.setEndpoint("s3-cn-south-1.qiniucs.com"); + + // 执行上传 + testExecuteUpload(config); + } + + @Test + @Disabled // 华为云存储,如果要集成测试,可以注释本行 + public void testHuaweiCloud() throws Exception { + S3FileClientConfig config = new S3FileClientConfig(); + // 配置成你自己的 +// config.setAccessKey(System.getenv("HUAWEI_CLOUD_ACCESS_KEY")); +// config.setAccessSecret(System.getenv("HUAWEI_CLOUD_SECRET_KEY")); + config.setBucket("yudao"); + config.setDomain(null); // 如果有自定义域名,则可以设置。 + // 默认上海的 endpoint + config.setEndpoint("obs.cn-east-3.myhuaweicloud.com"); + + // 执行上传 + testExecuteUpload(config); + } + + private void testExecuteUpload(S3FileClientConfig config) throws Exception { + // 校验配置 + ValidationUtils.validate(Validation.buildDefaultValidatorFactory().getValidator(), config); + // 创建 Client + S3FileClient client = new S3FileClient(0L, config); + client.init(); + // 上传文件 + String path = IdUtil.fastSimpleUUID() + ".jpg"; + byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); + String fullPath = client.upload(content, path, "image/jpeg"); + System.out.println("访问地址:" + fullPath); + // 读取文件 + if (true) { + byte[] bytes = client.getContent(path); + System.out.println("文件内容:" + bytes.length); + } + // 删除文件 + if (false) { + client.delete(path); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientTest.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientTest.java new file mode 100644 index 0000000..4785c0d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/client/sftp/SftpFileClientTest.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.file.core.client.sftp; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class SftpFileClientTest { + + @Test + @Disabled + public void test() { + // 创建客户端 + SftpFileClientConfig config = new SftpFileClientConfig(); + config.setDomain("http://127.0.0.1:48080"); + config.setBasePath("/home/ftp"); + config.setHost("kanchai.club"); + config.setPort(222); + config.setUsername(""); + config.setPassword(""); + SftpFileClient client = new SftpFileClient(0L, config); + client.init(); + // 上传文件 + String path = IdUtil.fastSimpleUUID() + ".jpg"; + byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); + String fullPath = client.upload(content, path, "image/jpeg"); + System.out.println("访问地址:" + fullPath); + if (false) { + byte[] bytes = client.getContent(path); + System.out.println("文件内容:" + bytes); + } + if (false) { + client.delete(path); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/enums/package-info.java b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/enums/package-info.java new file mode 100644 index 0000000..e1da5db --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-file/src/test/java/cn/iocoder/yudao/framework/file/core/enums/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位,避免 package 无法提交到 Git 仓库 + */ +package cn.iocoder.yudao.framework.file.core.enums; diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/test/resources/file/erweima.jpg b/yudao-framework/yudao-spring-boot-starter-file/src/test/resources/file/erweima.jpg new file mode 100644 index 0000000..1447283 Binary files /dev/null and b/yudao-framework/yudao-spring-boot-starter-file/src/test/resources/file/erweima.jpg differ diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/pom.xml b/yudao-framework/yudao-spring-boot-starter-flowable/pom.xml new file mode 100644 index 0000000..ac24f27 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/pom.xml @@ -0,0 +1,37 @@ + + + + yudao-framework + cn.iocoder.boot + ${revision} + + 4.0.0 + + yudao-spring-boot-starter-flowable + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + + org.flowable + flowable-spring-boot-starter-process + + + org.flowable + flowable-spring-boot-starter-actuator + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java new file mode 100644 index 0000000..859eca5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/config/YudaoFlowableConfiguration.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.flowable.config; + +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.core.task.AsyncListenableTaskExecutor; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +@AutoConfiguration +public class YudaoFlowableConfiguration { + + /** + * 参考 {@link org.flowable.spring.boot.FlowableJobConfiguration} 类,创建对应的 AsyncListenableTaskExecutor Bean + * + * 如果不创建,会导致项目启动时,Flowable 报错的问题 + */ + @Bean(name = "applicationTaskExecutor") + @ConditionalOnMissingBean(name = "applicationTaskExecutor") + public AsyncListenableTaskExecutor taskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(8); + executor.setMaxPoolSize(8); + executor.setQueueCapacity(100); + executor.setThreadNamePrefix("flowable-task-Executor-"); + executor.setAwaitTerminationSeconds(30); + executor.setWaitForTasksToCompleteOnShutdown(true); + executor.setAllowCoreThreadTimeOut(true); + executor.initialize(); + return executor; + } + + /** + * 配置 flowable Web 过滤器 + */ + @Bean + public FilterRegistrationBean flowableWebFilter() { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new FlowableWebFilter()); + registrationBean.setOrder(WebFilterOrderEnum.FLOWABLE_FILTER); + return registrationBean; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/context/FlowableContextHolder.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/context/FlowableContextHolder.java new file mode 100644 index 0000000..efc6d53 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/context/FlowableContextHolder.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.flowable.core.context; + +import cn.hutool.core.collection.CollUtil; +import com.alibaba.ttl.TransmittableThreadLocal; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 工作流--用户用到的上下文相关信息 + */ +public class FlowableContextHolder { + + private static final ThreadLocal>> ASSIGNEE = new TransmittableThreadLocal<>(); + + /** + * 通过流程任务的定义 key ,拿到提前选好的审批人 + * 此方法目的:首次创建流程实例时,数据库中还查询不到 assignee 字段,所以存入上下文中获取 + * + * @param taskDefinitionKey 流程任务 key + * @return 审批人 ID 集合 + */ + public static List getAssigneeByTaskDefinitionKey(String taskDefinitionKey) { + if (CollUtil.isNotEmpty(ASSIGNEE.get())) { + return ASSIGNEE.get().get(taskDefinitionKey); + } + return Collections.emptyList(); + } + + /** + * 存入提前选好的审批人到上下文线程变量中 + * + * @param assignee 流程任务 key -> 审批人 ID 炅和 + */ + public static void setAssignee(Map> assignee) { + ASSIGNEE.set(assignee); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/enums/BpmnModelConstants.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/enums/BpmnModelConstants.java new file mode 100644 index 0000000..c3cce42 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/enums/BpmnModelConstants.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.flowable.core.enums; + +/** + * 流程常量信息 + */ +public interface BpmnModelConstants { + + String BPMN_FILE_SUFFIX = ".bpmn"; + + /** + * BPMN 中的命名空间 + * + * 这个东西有可能导致无法切换工作流程的实现 + */ + String NAMESPACE = "http://flowable.org/bpmn"; + + /** + * 自定义属性 dataType + */ + String PROCESS_CUSTOM_DATA_TYPE = "dataType"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/package-info.java new file mode 100644 index 0000000..de8d627 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.framework.flowable.core; diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/BpmnModelUtils.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/BpmnModelUtils.java new file mode 100644 index 0000000..7b23a46 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/BpmnModelUtils.java @@ -0,0 +1,309 @@ +package cn.iocoder.yudao.framework.flowable.core.util; + +import cn.hutool.core.collection.CollUtil; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.Process; +import org.flowable.bpmn.model.*; + +import java.util.*; + +/** + * 流程模型转操作工具类 + */ +public class BpmnModelUtils { + + /** + * 根据节点,获取入口连线 + * + * @param source 起始节点 + * @return 入口连线列表 + */ + public static List getElementIncomingFlows(FlowElement source) { + if (source instanceof FlowNode) { + return ((FlowNode) source).getIncomingFlows(); + } + return new ArrayList<>(); + } + + /** + * 根据节点,获取出口连线 + * + * @param source 起始节点 + * @return 出口连线列表 + */ + public static List getElementOutgoingFlows(FlowElement source) { + if (source instanceof FlowNode) { + return ((FlowNode) source).getOutgoingFlows(); + } + return new ArrayList<>(); + } + + /** + * 获取流程元素信息 + * + * @param model bpmnModel 对象 + * @param flowElementId 元素 ID + * @return 元素信息 + */ + public static FlowElement getFlowElementById(BpmnModel model, String flowElementId) { + Process process = model.getMainProcess(); + return process.getFlowElement(flowElementId); + } + + /** + * 获得 BPMN 流程中,指定的元素们 + * + * @param model + * @param clazz 指定元素。例如说,{@link UserTask}、{@link Gateway} 等等 + * @return 元素们 + */ + public static List getBpmnModelElements(BpmnModel model, Class clazz) { + List result = new ArrayList<>(); + model.getProcesses().forEach(process -> { + process.getFlowElements().forEach(flowElement -> { + if (flowElement.getClass().isAssignableFrom(clazz)) { + result.add((T) flowElement); + } + }); + }); + return result; + } + + /** + * 比较 两个bpmnModel 是否相同 + * @param oldModel 老的bpmn model + * @param newModel 新的bpmn model + */ + public static boolean equals(BpmnModel oldModel, BpmnModel newModel) { + // 由于 BpmnModel 未提供 equals 方法,所以只能转成字节数组,进行比较 + return Arrays.equals(getBpmnBytes(oldModel), getBpmnBytes(newModel)); + } + + /** + * 把 bpmnModel 转换成 byte[] + * @param model bpmnModel + */ + public static byte[] getBpmnBytes(BpmnModel model) { + if (model == null) { + return new byte[0]; + } + BpmnXMLConverter converter = new BpmnXMLConverter(); + return converter.convertToXML(model); + } + + // ========== 遍历相关的方法 ========== + + /** + * 找到 source 节点之前的所有用户任务节点 + * + * @param source 起始节点 + * @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复 + * @param userTaskList 已找到的用户任务节点 + * @return 用户任务节点 数组 + */ + public static List getPreviousUserTaskList(FlowElement source, Set hasSequenceFlow, List userTaskList) { + userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList; + hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow; + // 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代 + if (source instanceof StartEvent && source.getSubProcess() != null) { + userTaskList = getPreviousUserTaskList(source.getSubProcess(), hasSequenceFlow, userTaskList); + } + + // 根据类型,获取入口连线 + List sequenceFlows = getElementIncomingFlows(source); + if (sequenceFlows == null) { + return userTaskList; + } + // 循环找到目标元素 + for (SequenceFlow sequenceFlow : sequenceFlows) { + // 如果发现连线重复,说明循环了,跳过这个循环 + if (hasSequenceFlow.contains(sequenceFlow.getId())) { + continue; + } + // 添加已经走过的连线 + hasSequenceFlow.add(sequenceFlow.getId()); + // 类型为用户节点,则新增父级节点 + if (sequenceFlow.getSourceFlowElement() instanceof UserTask) { + userTaskList.add((UserTask) sequenceFlow.getSourceFlowElement()); + } + // 类型为子流程,则添加子流程开始节点出口处相连的节点 + if (sequenceFlow.getSourceFlowElement() instanceof SubProcess) { + // 获取子流程用户任务节点 + List childUserTaskList = findChildProcessUserTaskList((StartEvent) ((SubProcess) sequenceFlow.getSourceFlowElement()).getFlowElements().toArray()[0], null, null); + // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 + if (CollUtil.isNotEmpty(childUserTaskList)) { + userTaskList.addAll(childUserTaskList); + } + } + // 继续迭代 + userTaskList = getPreviousUserTaskList(sequenceFlow.getSourceFlowElement(), hasSequenceFlow, userTaskList); + } + return userTaskList; + } + + /** + * 迭代获取子流程用户任务节点 + * + * @param source 起始节点 + * @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复 + * @param userTaskList 需要撤回的用户任务列表 + * @return 用户任务节点 + */ + public static List findChildProcessUserTaskList(FlowElement source, Set hasSequenceFlow, List userTaskList) { + hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow; + userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList; + + // 根据类型,获取出口连线 + List sequenceFlows = getElementOutgoingFlows(source); + if (sequenceFlows == null) { + return userTaskList; + } + // 循环找到目标元素 + for (SequenceFlow sequenceFlow : sequenceFlows) { + // 如果发现连线重复,说明循环了,跳过这个循环 + if (hasSequenceFlow.contains(sequenceFlow.getId())) { + continue; + } + // 添加已经走过的连线 + hasSequenceFlow.add(sequenceFlow.getId()); + // 如果为用户任务类型,且任务节点的 Key 正在运行的任务中存在,添加 + if (sequenceFlow.getTargetFlowElement() instanceof UserTask) { + userTaskList.add((UserTask) sequenceFlow.getTargetFlowElement()); + continue; + } + // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 + if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { + List childUserTaskList = findChildProcessUserTaskList((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), hasSequenceFlow, null); + // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 + if (CollUtil.isNotEmpty(childUserTaskList)) { + userTaskList.addAll(childUserTaskList); + continue; + } + } + // 继续迭代 + userTaskList = findChildProcessUserTaskList(sequenceFlow.getTargetFlowElement(), hasSequenceFlow, userTaskList); + } + return userTaskList; + } + + + /** + * 迭代从后向前扫描,判断目标节点相对于当前节点是否是串行 + * 不存在直接回退到子流程中的情况,但存在从子流程出去到父流程情况 + * + * @param source 起始节点 + * @param target 目标节点 + * @param visitedElements 已经经过的连线的 ID,用于判断线路是否重复 + * @return 结果 + */ + public static boolean isSequentialReachable(FlowElement source, FlowElement target, Set visitedElements) { + visitedElements = visitedElements == null ? new HashSet<>() : visitedElements; + // 不能是开始事件和子流程 + if (source instanceof StartEvent && isInEventSubprocess(source)) { + return false; + } + + // 根据类型,获取入口连线 + List sequenceFlows = getElementIncomingFlows(source); + if (CollUtil.isEmpty(sequenceFlows)) { + return true; + } + // 循环找到目标元素 + for (SequenceFlow sequenceFlow : sequenceFlows) { + // 如果发现连线重复,说明循环了,跳过这个循环 + if (visitedElements.contains(sequenceFlow.getId())) { + continue; + } + // 添加已经走过的连线 + visitedElements.add(sequenceFlow.getId()); + // 这条线路存在目标节点,这条线路完成,进入下个线路 + FlowElement sourceFlowElement = sequenceFlow.getSourceFlowElement(); + if (target.getId().equals(sourceFlowElement.getId())) { + continue; + } + // 如果目标节点为并行网关,则不继续 + if (sourceFlowElement instanceof ParallelGateway) { + return false; + } + // 否则就继续迭代 + if (!isSequentialReachable(sourceFlowElement, target, visitedElements)) { + return false; + } + } + return true; + } + + /** + * 判断当前节点是否属于不同的子流程 + * + * @param flowElement 被判断的节点 + * @return true 表示属于子流程 + */ + private static boolean isInEventSubprocess(FlowElement flowElement) { + FlowElementsContainer flowElementsContainer = flowElement.getParentContainer(); + while (flowElementsContainer != null) { + if (flowElementsContainer instanceof EventSubProcess) { + return true; + } + + if (flowElementsContainer instanceof FlowElement) { + flowElementsContainer = ((FlowElement) flowElementsContainer).getParentContainer(); + } else { + flowElementsContainer = null; + } + } + return false; + } + + /** + * 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找 + * + * @param source 起始节点 + * @param runTaskKeyList 正在运行的任务 Key,用于校验任务节点是否是正在运行的节点 + * @param hasSequenceFlow 已经经过的连线的 ID,用于判断线路是否重复 + * @param userTaskList 需要撤回的用户任务列表 + * @return 子级任务节点列表 + */ + public static List iteratorFindChildUserTasks(FlowElement source, List runTaskKeyList, + Set hasSequenceFlow, List userTaskList) { + hasSequenceFlow = hasSequenceFlow == null ? new HashSet<>() : hasSequenceFlow; + userTaskList = userTaskList == null ? new ArrayList<>() : userTaskList; + // 如果该节点为开始节点,且存在上级子节点,则顺着上级子节点继续迭代 + if (source instanceof StartEvent && source.getSubProcess() != null) { + userTaskList = iteratorFindChildUserTasks(source.getSubProcess(), runTaskKeyList, hasSequenceFlow, userTaskList); + } + + // 根据类型,获取出口连线 + List sequenceFlows = getElementOutgoingFlows(source); + if (sequenceFlows == null) { + return userTaskList; + } + // 循环找到目标元素 + for (SequenceFlow sequenceFlow : sequenceFlows) { + // 如果发现连线重复,说明循环了,跳过这个循环 + if (hasSequenceFlow.contains(sequenceFlow.getId())) { + continue; + } + // 添加已经走过的连线 + hasSequenceFlow.add(sequenceFlow.getId()); + // 如果为用户任务类型,且任务节点的 Key 正在运行的任务中存在,添加 + if (sequenceFlow.getTargetFlowElement() instanceof UserTask && runTaskKeyList.contains((sequenceFlow.getTargetFlowElement()).getId())) { + userTaskList.add((UserTask) sequenceFlow.getTargetFlowElement()); + continue; + } + // 如果节点为子流程节点情况,则从节点中的第一个节点开始获取 + if (sequenceFlow.getTargetFlowElement() instanceof SubProcess) { + List childUserTaskList = iteratorFindChildUserTasks((FlowElement) (((SubProcess) sequenceFlow.getTargetFlowElement()).getFlowElements().toArray()[0]), runTaskKeyList, hasSequenceFlow, null); + // 如果找到节点,则说明该线路找到节点,不继续向下找,反之继续 + if (CollUtil.isNotEmpty(childUserTaskList)) { + userTaskList.addAll(childUserTaskList); + continue; + } + } + // 继续迭代 + userTaskList = iteratorFindChildUserTasks(sequenceFlow.getTargetFlowElement(), runTaskKeyList, hasSequenceFlow, userTaskList); + } + return userTaskList; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/FlowableUtils.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/FlowableUtils.java new file mode 100644 index 0000000..2a0fc38 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/util/FlowableUtils.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.framework.flowable.core.util; + +import org.flowable.common.engine.impl.identity.Authentication; + +/** + * Flowable 相关的工具方法 + * + * @author 芋道源码 + */ +public class FlowableUtils { + + // ========== User 相关的工具方法 ========== + + public static void setAuthenticatedUserId(Long userId) { + Authentication.setAuthenticatedUserId(String.valueOf(userId)); + } + + public static void clearAuthenticatedUserId() { + Authentication.setAuthenticatedUserId(null); + } + + // ========== Execution 相关的工具方法 ========== + + public static String formatCollectionVariable(String activityId) { + return activityId + "_assignees"; + } + + public static String formatCollectionElementVariable(String activityId) { + return activityId + "_assignee"; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/web/FlowableWebFilter.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/web/FlowableWebFilter.java new file mode 100644 index 0000000..d9845a3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/core/web/FlowableWebFilter.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.flowable.core.web; + +import cn.iocoder.yudao.framework.flowable.core.util.FlowableUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +/** + * flowable Web 过滤器,将 userId 设置到 {@link org.flowable.common.engine.impl.identity.Authentication} 中 + * + * @author jason + */ +public class FlowableWebFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + try { + // 设置工作流的用户 + Long userId = SecurityFrameworkUtils.getLoginUserId(); + if (userId != null) { + FlowableUtils.setAuthenticatedUserId(userId); + } + // 过滤 + chain.doFilter(request, response); + } finally { + // 清理 + FlowableUtils.clearAuthenticatedUserId(); + } + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/package-info.java b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/package-info.java new file mode 100644 index 0000000..324d3de --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/java/cn/iocoder/yudao/framework/flowable/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.framework.flowable; diff --git a/yudao-framework/yudao-spring-boot-starter-flowable/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..1df6159 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-flowable/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.flowable.config.YudaoFlowableConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-job/pom.xml b/yudao-framework/yudao-spring-boot-starter-job/pom.xml new file mode 100644 index 0000000..c17baf4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/pom.xml @@ -0,0 +1,41 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-job + jar + + ${project.artifactId} + 任务拓展 + 1. 定时任务,基于 Quartz 拓展 + 2. 异步任务,基于 Spring Async 拓展 + + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-quartz + + + + + jakarta.validation + jakarta.validation-api + + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoAsyncAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoAsyncAutoConfiguration.java new file mode 100644 index 0000000..6d517e5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoAsyncAutoConfiguration.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.quartz.config; + +import com.alibaba.ttl.TtlRunnable; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +/** + * 异步任务 Configuration + */ +@AutoConfiguration +@EnableAsync +public class YudaoAsyncAutoConfiguration { + + @Bean + public BeanPostProcessor threadPoolTaskExecutorBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { + if (!(bean instanceof ThreadPoolTaskExecutor)) { + return bean; + } + // 修改提交的任务,接入 TransmittableThreadLocal + ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) bean; + executor.setTaskDecorator(TtlRunnable::get); + return executor; + } + + }; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoQuartzAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoQuartzAutoConfiguration.java new file mode 100644 index 0000000..aaf4fe5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/config/YudaoQuartzAutoConfiguration.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.quartz.config; + +import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; +import lombok.extern.slf4j.Slf4j; +import org.quartz.Scheduler; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.util.Optional; + +/** + * 定时任务 Configuration + */ +@AutoConfiguration +@EnableScheduling // 开启 Spring 自带的定时任务 +@Slf4j +public class YudaoQuartzAutoConfiguration { + + @Bean + public SchedulerManager schedulerManager(Optional scheduler) { + if (!scheduler.isPresent()) { + log.info("[定时任务 - 已禁用][参考 https://doc.iocoder.cn/job/ 开启]"); + return new SchedulerManager(null); + } + return new SchedulerManager(scheduler.get()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/enums/JobDataKeyEnum.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/enums/JobDataKeyEnum.java new file mode 100644 index 0000000..3154c40 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/enums/JobDataKeyEnum.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.framework.quartz.core.enums; + +/** + * Quartz Job Data 的 key 枚举 + */ +public enum JobDataKeyEnum { + + JOB_ID, + JOB_HANDLER_NAME, + JOB_HANDLER_PARAM, + JOB_RETRY_COUNT, // 最大重试次数 + JOB_RETRY_INTERVAL, // 每次重试间隔 + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandler.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandler.java new file mode 100644 index 0000000..381e132 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandler.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.framework.quartz.core.handler; + +/** + * 任务处理器 + * + * @author 芋道源码 + */ +public interface JobHandler { + + /** + * 执行任务 + * + * @param param 参数 + * @return 结果 + * @throws Exception 异常 + */ + String execute(String param) throws Exception; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandlerInvoker.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandlerInvoker.java new file mode 100644 index 0000000..736126f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/handler/JobHandlerInvoker.java @@ -0,0 +1,114 @@ +package cn.iocoder.yudao.framework.quartz.core.handler; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.thread.ThreadUtil; +import cn.iocoder.yudao.framework.quartz.core.enums.JobDataKeyEnum; +import cn.iocoder.yudao.framework.quartz.core.service.JobLogFrameworkService; +import lombok.extern.slf4j.Slf4j; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; +import org.springframework.context.ApplicationContext; +import org.springframework.scheduling.quartz.QuartzJobBean; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; + +import static cn.hutool.core.exceptions.ExceptionUtil.getRootCauseMessage; + +/** + * 基础 Job 调用者,负责调用 {@link JobHandler#execute(String)} 执行任务 + * + * @author 芋道源码 + */ +@DisallowConcurrentExecution +@PersistJobDataAfterExecution +@Slf4j +public class JobHandlerInvoker extends QuartzJobBean { + + @Resource + private ApplicationContext applicationContext; + + @Resource + private JobLogFrameworkService jobLogFrameworkService; + + @Override + protected void executeInternal(JobExecutionContext executionContext) throws JobExecutionException { + // 第一步,获得 Job 数据 + Long jobId = executionContext.getMergedJobDataMap().getLong(JobDataKeyEnum.JOB_ID.name()); + String jobHandlerName = executionContext.getMergedJobDataMap().getString(JobDataKeyEnum.JOB_HANDLER_NAME.name()); + String jobHandlerParam = executionContext.getMergedJobDataMap().getString(JobDataKeyEnum.JOB_HANDLER_PARAM.name()); + int refireCount = executionContext.getRefireCount(); + int retryCount = (Integer) executionContext.getMergedJobDataMap().getOrDefault(JobDataKeyEnum.JOB_RETRY_COUNT.name(), 0); + int retryInterval = (Integer) executionContext.getMergedJobDataMap().getOrDefault(JobDataKeyEnum.JOB_RETRY_INTERVAL.name(), 0); + + // 第二步,执行任务 + Long jobLogId = null; + LocalDateTime startTime = LocalDateTime.now(); + String data = null; + Throwable exception = null; + try { + // 记录 Job 日志(初始) + jobLogId = jobLogFrameworkService.createJobLog(jobId, startTime, jobHandlerName, jobHandlerParam, refireCount + 1); + // 执行任务 + data = this.executeInternal(jobHandlerName, jobHandlerParam); + } catch (Throwable ex) { + exception = ex; + } + + // 第三步,记录执行日志 + this.updateJobLogResultAsync(jobLogId, startTime, data, exception, executionContext); + + // 第四步,处理有异常的情况 + handleException(exception, refireCount, retryCount, retryInterval); + } + + private String executeInternal(String jobHandlerName, String jobHandlerParam) throws Exception { + // 获得 JobHandler 对象 + JobHandler jobHandler = applicationContext.getBean(jobHandlerName, JobHandler.class); + Assert.notNull(jobHandler, "JobHandler 不会为空"); + // 执行任务 + return jobHandler.execute(jobHandlerParam); + } + + private void updateJobLogResultAsync(Long jobLogId, LocalDateTime startTime, String data, Throwable exception, + JobExecutionContext executionContext) { + LocalDateTime endTime = LocalDateTime.now(); + // 处理是否成功 + boolean success = exception == null; + if (!success) { + data = getRootCauseMessage(exception); + } + // 更新日志 + try { + jobLogFrameworkService.updateJobLogResultAsync(jobLogId, endTime, (int) LocalDateTimeUtil.between(startTime, endTime).toMillis(), success, data); + } catch (Exception ex) { + log.error("[executeInternal][Job({}) logId({}) 记录执行日志失败({}/{})]", + executionContext.getJobDetail().getKey(), jobLogId, success, data); + } + } + + private void handleException(Throwable exception, + int refireCount, int retryCount, int retryInterval) throws JobExecutionException { + // 如果有异常,则进行重试 + if (exception == null) { + return; + } + // 情况一:如果到达重试上限,则直接抛出异常即可 + if (refireCount >= retryCount) { + throw new JobExecutionException(exception); + } + + // 情况二:如果未到达重试上限,则 sleep 一定间隔时间,然后重试 + // 这里使用 sleep 来实现,主要还是希望实现比较简单。因为,同一时间,不会存在大量失败的 Job。 + if (retryInterval > 0) { + ThreadUtil.sleep(retryInterval); + } + // 第二个参数,refireImmediately = true,表示立即重试 + throw new JobExecutionException(exception, true); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/scheduler/SchedulerManager.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/scheduler/SchedulerManager.java new file mode 100644 index 0000000..cb2dad4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/scheduler/SchedulerManager.java @@ -0,0 +1,146 @@ +package cn.iocoder.yudao.framework.quartz.core.scheduler; + +import cn.iocoder.yudao.framework.quartz.core.enums.JobDataKeyEnum; +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandlerInvoker; +import org.quartz.*; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.NOT_IMPLEMENTED; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; + +/** + * {@link org.quartz.Scheduler} 的管理器,负责创建任务 + * + * 考虑到实现的简洁性,我们使用 jobHandlerName 作为唯一标识,即: + * 1. Job 的 {@link JobDetail#getKey()} + * 2. Trigger 的 {@link Trigger#getKey()} + * + * 另外,jobHandlerName 对应到 Spring Bean 的名字,直接调用 + * + * @author 芋道源码 + */ +public class SchedulerManager { + + private final Scheduler scheduler; + + public SchedulerManager(Scheduler scheduler) { + this.scheduler = scheduler; + } + + /** + * 添加 Job 到 Quartz 中 + * + * @param jobId 任务编号 + * @param jobHandlerName 任务处理器的名字 + * @param jobHandlerParam 任务处理器的参数 + * @param cronExpression CRON 表达式 + * @param retryCount 重试次数 + * @param retryInterval 重试间隔 + * @throws SchedulerException 添加异常 + */ + public void addJob(Long jobId, String jobHandlerName, String jobHandlerParam, String cronExpression, + Integer retryCount, Integer retryInterval) + throws SchedulerException { + validateScheduler(); + // 创建 JobDetail 对象 + JobDetail jobDetail = JobBuilder.newJob(JobHandlerInvoker.class) + .usingJobData(JobDataKeyEnum.JOB_ID.name(), jobId) + .usingJobData(JobDataKeyEnum.JOB_HANDLER_NAME.name(), jobHandlerName) + .withIdentity(jobHandlerName).build(); + // 创建 Trigger 对象 + Trigger trigger = this.buildTrigger(jobHandlerName, jobHandlerParam, cronExpression, retryCount, retryInterval); + // 新增调度 + scheduler.scheduleJob(jobDetail, trigger); + } + + /** + * 更新 Job 到 Quartz + * + * @param jobHandlerName 任务处理器的名字 + * @param jobHandlerParam 任务处理器的参数 + * @param cronExpression CRON 表达式 + * @param retryCount 重试次数 + * @param retryInterval 重试间隔 + * @throws SchedulerException 更新异常 + */ + public void updateJob(String jobHandlerName, String jobHandlerParam, String cronExpression, + Integer retryCount, Integer retryInterval) + throws SchedulerException { + validateScheduler(); + // 创建新 Trigger 对象 + Trigger newTrigger = this.buildTrigger(jobHandlerName, jobHandlerParam, cronExpression, retryCount, retryInterval); + // 修改调度 + scheduler.rescheduleJob(new TriggerKey(jobHandlerName), newTrigger); + } + + /** + * 删除 Quartz 中的 Job + * + * @param jobHandlerName 任务处理器的名字 + * @throws SchedulerException 删除异常 + */ + public void deleteJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); + scheduler.deleteJob(new JobKey(jobHandlerName)); + } + + /** + * 暂停 Quartz 中的 Job + * + * @param jobHandlerName 任务处理器的名字 + * @throws SchedulerException 暂停异常 + */ + public void pauseJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); + scheduler.pauseJob(new JobKey(jobHandlerName)); + } + + /** + * 启动 Quartz 中的 Job + * + * @param jobHandlerName 任务处理器的名字 + * @throws SchedulerException 启动异常 + */ + public void resumeJob(String jobHandlerName) throws SchedulerException { + validateScheduler(); + scheduler.resumeJob(new JobKey(jobHandlerName)); + scheduler.resumeTrigger(new TriggerKey(jobHandlerName)); + } + + /** + * 立即触发一次 Quartz 中的 Job + * + * @param jobId 任务编号 + * @param jobHandlerName 任务处理器的名字 + * @param jobHandlerParam 任务处理器的参数 + * @throws SchedulerException 触发异常 + */ + public void triggerJob(Long jobId, String jobHandlerName, String jobHandlerParam) + throws SchedulerException { + validateScheduler(); + // 触发任务 + JobDataMap data = new JobDataMap(); // 无需重试,所以不设置 retryCount 和 retryInterval + data.put(JobDataKeyEnum.JOB_ID.name(), jobId); + data.put(JobDataKeyEnum.JOB_HANDLER_NAME.name(), jobHandlerName); + data.put(JobDataKeyEnum.JOB_HANDLER_PARAM.name(), jobHandlerParam); + scheduler.triggerJob(new JobKey(jobHandlerName), data); + } + + private Trigger buildTrigger(String jobHandlerName, String jobHandlerParam, String cronExpression, + Integer retryCount, Integer retryInterval) { + return TriggerBuilder.newTrigger() + .withIdentity(jobHandlerName) + .withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)) + .usingJobData(JobDataKeyEnum.JOB_HANDLER_PARAM.name(), jobHandlerParam) + .usingJobData(JobDataKeyEnum.JOB_RETRY_COUNT.name(), retryCount) + .usingJobData(JobDataKeyEnum.JOB_RETRY_INTERVAL.name(), retryInterval) + .build(); + } + + private void validateScheduler() { + if (scheduler == null) { + throw exception0(NOT_IMPLEMENTED.getCode(), + "[定时任务 - 已禁用][参考 https://doc.iocoder.cn/job/ 开启]"); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/service/JobLogFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/service/JobLogFrameworkService.java new file mode 100644 index 0000000..418dbfc --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/service/JobLogFrameworkService.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.framework.quartz.core.service; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * Job 日志 Framework Service 接口 + * + * @author 芋道源码 + */ +public interface JobLogFrameworkService { + + /** + * 创建 Job 日志 + * + * @param jobId 任务编号 + * @param beginTime 开始时间 + * @param jobHandlerName Job 处理器的名字 + * @param jobHandlerParam Job 处理器的参数 + * @param executeIndex 第几次执行 + * @return Job 日志的编号 + */ + Long createJobLog(@NotNull(message = "任务编号不能为空") Long jobId, + @NotNull(message = "开始时间") LocalDateTime beginTime, + @NotEmpty(message = "Job 处理器的名字不能为空") String jobHandlerName, + String jobHandlerParam, + @NotNull(message = "第几次执行不能为空") Integer executeIndex); + + /** + * 更新 Job 日志的执行结果 + * + * @param logId 日志编号 + * @param endTime 结束时间。因为是异步,避免记录时间不准去 + * @param duration 运行时长,单位:毫秒 + * @param success 是否成功 + * @param result 成功数据 + */ + void updateJobLogResultAsync(@NotNull(message = "日志编号不能为空") Long logId, + @NotNull(message = "结束时间不能为空") LocalDateTime endTime, + @NotNull(message = "运行时长不能为空") Integer duration, + boolean success, String result); +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java new file mode 100644 index 0000000..9b5a2bf --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.framework.quartz.core.util; + +import cn.hutool.core.date.LocalDateTimeUtil; +import org.quartz.CronExpression; + +import java.text.ParseException; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Quartz Cron 表达式的工具类 + * + * @author 芋道源码 + */ +public class CronUtils { + + /** + * 校验 CRON 表达式是否有效 + * + * @param cronExpression CRON 表达式 + * @return 是否有效 + */ + public static boolean isValid(String cronExpression) { + return CronExpression.isValidExpression(cronExpression); + } + + /** + * 基于 CRON 表达式,获得下 n 个满足执行的时间 + * + * @param cronExpression CRON 表达式 + * @param n 数量 + * @return 满足条件的执行时间 + */ + public static List getNextTimes(String cronExpression, int n) { + // 获得 CronExpression 对象 + CronExpression cron; + try { + cron = new CronExpression(cronExpression); + } catch (ParseException e) { + throw new IllegalArgumentException(e.getMessage()); + } + // 从当前开始计算,n 个满足条件的 + Date now = new Date(); + List nextTimes = new ArrayList<>(n); + for (int i = 0; i < n; i++) { + Date nextTime = cron.getNextValidTimeAfter(now); + nextTimes.add(LocalDateTimeUtil.of(nextTime)); + // 切换现在,为下一个触发时间; + now = nextTime; + } + return nextTimes; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/package-info.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/package-info.java new file mode 100644 index 0000000..cfd237b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/package-info.java @@ -0,0 +1,7 @@ +/** + * 1. 定时任务,采用 Quartz 实现进程内的任务执行。 + * 考虑到高可用,使用 Quartz 自带的 MySQL 集群方案。 + * + * 2. 异步任务,采用 Spring Async 异步执行。 + */ +package cn.iocoder.yudao.framework.quartz; diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..4086f7a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.quartz.config.YudaoQuartzAutoConfiguration +cn.iocoder.yudao.framework.quartz.config.YudaoAsyncAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/pom.xml b/yudao-framework/yudao-spring-boot-starter-monitor/pom.xml new file mode 100644 index 0000000..ebd1210 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/pom.xml @@ -0,0 +1,73 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-monitor + jar + + ${project.artifactId} + 服务监控,提供链路追踪、日志服务、指标收集等等功能 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.springframework + spring-web + provided + + + + jakarta.servlet + jakarta.servlet-api + provided + + + + + io.opentracing + opentracing-util + + + org.apache.skywalking + apm-toolkit-trace + + + org.apache.skywalking + apm-toolkit-logback-1.x + + + org.apache.skywalking + apm-toolkit-opentracing + + + + + io.micrometer + micrometer-registry-prometheus + + + + de.codecentric + spring-boot-admin-starter-client + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/TracerProperties.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/TracerProperties.java new file mode 100644 index 0000000..11d25a8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/TracerProperties.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.framework.tracer.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * BizTracer配置类 + * + * @author 麻薯 + */ +@ConfigurationProperties("yudao.tracer") +@Data +public class TracerProperties { +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoMetricsAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoMetricsAutoConfiguration.java new file mode 100644 index 0000000..cc2a0df --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoMetricsAutoConfiguration.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.tracer.config; + +import io.micrometer.core.instrument.MeterRegistry; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; + +/** + * Metrics 配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +@ConditionalOnClass({MeterRegistryCustomizer.class}) +@ConditionalOnProperty(prefix = "yudao.metrics", value = "enable", matchIfMissing = true) // 允许使用 yudao.metrics.enable=false 禁用 Metrics +public class YudaoMetricsAutoConfiguration { + + @Bean + public MeterRegistryCustomizer metricsCommonTags( + @Value("${spring.application.name}") String applicationName) { + return registry -> registry.config().commonTags("application", applicationName); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoTracerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoTracerAutoConfiguration.java new file mode 100644 index 0000000..c7d9e2c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/config/YudaoTracerAutoConfiguration.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.framework.tracer.config; + +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.tracer.core.aop.BizTraceAspect; +import cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; + +/** + * Tracer 配置类 + * + * @author mashu + */ +@AutoConfiguration +@ConditionalOnClass({BizTraceAspect.class}) +@EnableConfigurationProperties(TracerProperties.class) +@ConditionalOnProperty(prefix = "yudao.tracer", value = "enable", matchIfMissing = true) +public class YudaoTracerAutoConfiguration { + + // TODO @芋艿:重要。目前 opentracing 版本存在冲突,要么保证 skywalking,要么保证阿里云短信 sdk +// @Bean +// public TracerProperties bizTracerProperties() { +// return new TracerProperties(); +// } +// +// @Bean +// public BizTraceAspect bizTracingAop() { +// return new BizTraceAspect(tracer()); +// } +// +// @Bean +// public Tracer tracer() { +// // 创建 SkywalkingTracer 对象 +// SkywalkingTracer tracer = new SkywalkingTracer(); +// // 设置为 GlobalTracer 的追踪器 +// GlobalTracer.register(tracer); +// return tracer; +// } + + /** + * 创建 TraceFilter 过滤器,响应 header 设置 traceId + */ + @Bean + public FilterRegistrationBean traceFilter() { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new TraceFilter()); + registrationBean.setOrder(WebFilterOrderEnum.TRACE_FILTER); + return registrationBean; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/annotation/BizTrace.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/annotation/BizTrace.java new file mode 100644 index 0000000..8b12140 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/annotation/BizTrace.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.tracer.core.annotation; + +import java.lang.annotation.*; + +/** + * 打印业务编号 / 业务类型注解 + * + * 使用时,需要设置 SkyWalking OAP Server 的 application.yaml 配置文件,修改 SW_SEARCHABLE_TAG_KEYS 配置项, + * 增加 biz.type 和 biz.id 两值,然后重启 SkyWalking OAP Server 服务器。 + * + * @author 麻薯 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface BizTrace { + + /** + * 业务编号 tag 名 + */ + String ID_TAG = "biz.id"; + /** + * 业务类型 tag 名 + */ + String TYPE_TAG = "biz.type"; + + /** + * @return 操作名 + */ + String operationName() default ""; + + /** + * @return 业务编号 + */ + String id(); + + /** + * @return 业务类型 + */ + String type(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/aop/BizTraceAspect.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/aop/BizTraceAspect.java new file mode 100644 index 0000000..3c3b9f3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/aop/BizTraceAspect.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.framework.tracer.core.aop; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.tracer.core.annotation.BizTrace; +import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils; +import cn.iocoder.yudao.framework.tracer.core.util.TracerFrameworkUtils; +import io.opentracing.Span; +import io.opentracing.Tracer; +import io.opentracing.tag.Tags; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +import java.util.Map; + +import static java.util.Arrays.asList; + +/** + * {@link BizTrace} 切面,记录业务链路 + * + * @author mashu + */ +@Aspect +@AllArgsConstructor +@Slf4j +public class BizTraceAspect { + + private static final String BIZ_OPERATION_NAME_PREFIX = "Biz/"; + + private final Tracer tracer; + + @Around(value = "@annotation(trace)") + public Object around(ProceedingJoinPoint joinPoint, BizTrace trace) throws Throwable { + // 创建 span + String operationName = getOperationName(joinPoint, trace); + Span span = tracer.buildSpan(operationName) + .withTag(Tags.COMPONENT.getKey(), "biz") + .start(); + try { + // 执行原有方法 + return joinPoint.proceed(); + } catch (Throwable throwable) { + TracerFrameworkUtils.onError(throwable, span); + throw throwable; + } finally { + // 设置 Span 的 biz 属性 + setBizTag(span, joinPoint, trace); + // 完成 Span + span.finish(); + } + } + + private String getOperationName(ProceedingJoinPoint joinPoint, BizTrace trace) { + // 自定义操作名 + if (StrUtil.isNotEmpty(trace.operationName())) { + return BIZ_OPERATION_NAME_PREFIX + trace.operationName(); + } + // 默认操作名,使用方法名 + return BIZ_OPERATION_NAME_PREFIX + + joinPoint.getSignature().getDeclaringType().getSimpleName() + + "/" + joinPoint.getSignature().getName(); + } + + private void setBizTag(Span span, ProceedingJoinPoint joinPoint, BizTrace trace) { + try { + Map result = SpringExpressionUtils.parseExpressions(joinPoint, asList(trace.type(), trace.id())); + span.setTag(BizTrace.TYPE_TAG, MapUtil.getStr(result, trace.type())); + span.setTag(BizTrace.ID_TAG, MapUtil.getStr(result, trace.id())); + } catch (Exception ex) { + log.error("[setBizTag][解析 bizType 与 bizId 发生异常]", ex); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/filter/TraceFilter.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/filter/TraceFilter.java new file mode 100644 index 0000000..91ac30f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/filter/TraceFilter.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.framework.tracer.core.filter; + +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Trace 过滤器,打印 traceId 到 header 中返回 + * + * @author 芋道源码 + */ +public class TraceFilter extends OncePerRequestFilter { + + /** + * Header 名 - 链路追踪编号 + */ + private static final String HEADER_NAME_TRACE_ID = "trace-id"; + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws IOException, ServletException { + // 设置响应 traceId + response.addHeader(HEADER_NAME_TRACE_ID, TracerUtils.getTraceId()); + // 继续过滤 + chain.doFilter(request, response); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/util/TracerFrameworkUtils.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/util/TracerFrameworkUtils.java new file mode 100644 index 0000000..51323e7 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/core/util/TracerFrameworkUtils.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.tracer.core.util; + +import io.opentracing.Span; +import io.opentracing.tag.Tags; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.HashMap; +import java.util.Map; + +/** + * 链路追踪 Util + * + * @author 芋道源码 + */ +public class TracerFrameworkUtils { + + /** + * 将异常记录到 Span 中,参考自 com.aliyuncs.utils.TraceUtils + * + * @param throwable 异常 + * @param span Span + */ + public static void onError(Throwable throwable, Span span) { + Tags.ERROR.set(span, Boolean.TRUE); + if (throwable != null) { + span.log(errorLogs(throwable)); + } + } + + private static Map errorLogs(Throwable throwable) { + Map errorLogs = new HashMap(10); + errorLogs.put("event", Tags.ERROR.getKey()); + errorLogs.put("error.object", throwable); + errorLogs.put("error.kind", throwable.getClass().getName()); + String message = throwable.getCause() != null ? throwable.getCause().getMessage() : throwable.getMessage(); + if (message != null) { + errorLogs.put("message", message); + } + StringWriter sw = new StringWriter(); + throwable.printStackTrace(new PrintWriter(sw)); + errorLogs.put("stack", sw.toString()); + return errorLogs; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/package-info.java b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/package-info.java new file mode 100644 index 0000000..43ee5e4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/java/cn/iocoder/yudao/framework/tracer/package-info.java @@ -0,0 +1,6 @@ +/** + * 使用 SkyWalking 组件,作为链路追踪、日志中心。 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.tracer; diff --git a/yudao-framework/yudao-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..218ee31 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.tracer.config.YudaoTracerAutoConfiguration +cn.iocoder.yudao.framework.tracer.config.YudaoMetricsAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-mq/pom.xml b/yudao-framework/yudao-spring-boot-starter-mq/pom.xml new file mode 100644 index 0000000..c8972f1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/pom.xml @@ -0,0 +1,43 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-mq + jar + + ${project.artifactId} + 消息队列,支持 Redis、RocketMQ、RabbitMQ、Kafka 四种 + https://github.com/YunaiV/ruoyi-vue-pro + + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + org.springframework.kafka + spring-kafka + true + + + org.springframework.amqp + spring-rabbit + true + + + org.apache.rocketmq + rocketmq-spring-boot-starter + true + + + + \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/package-info.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/package-info.java new file mode 100644 index 0000000..3b716cb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/package-info.java @@ -0,0 +1,4 @@ +/** + * 消息队列,支持 Redis、RocketMQ、RabbitMQ、Kafka 四种 + */ +package cn.iocoder.yudao.framework.mq; diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java new file mode 100644 index 0000000..770c50f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.mq.rabbitmq.config; + +import cn.hutool.core.util.ReflectUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.utils.SerializationUtils; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; + +import java.lang.reflect.Field; + +/** + * RabbitMQ 消息队列配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +@Slf4j +@ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate") +public class YudaoRabbitMQAutoConfiguration { + + static { + // 强制设置 SerializationUtils 的 TRUST_ALL 为 true,避免 RabbitMQ Consumer 反序列化消息报错 + // 为什么不通过设置 spring.amqp.deserialization.trust.all 呢?因为可能在 SerializationUtils static 初始化后 + Field trustAllField = ReflectUtil.getField(SerializationUtils.class, "TRUST_ALL"); + ReflectUtil.removeFinalModify(trustAllField); + ReflectUtil.setFieldValue(SerializationUtils.class, trustAllField, true); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/core/package-info.java new file mode 100644 index 0000000..2773b58 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位符,无特殊逻辑 + */ +package cn.iocoder.yudao.framework.mq.rabbitmq.core; \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/package-info.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/package-info.java new file mode 100644 index 0000000..9f6032c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/package-info.java @@ -0,0 +1,4 @@ +/** + * 消息队列,基于 RabbitMQ 提供 + */ +package cn.iocoder.yudao.framework.mq.rabbitmq; diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQConsumerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQConsumerAutoConfiguration.java new file mode 100644 index 0000000..d02e84b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQConsumerAutoConfiguration.java @@ -0,0 +1,151 @@ +package cn.iocoder.yudao.framework.mq.redis.config; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.system.SystemUtil; +import cn.iocoder.yudao.framework.common.enums.DocumentEnum; +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.mq.redis.core.job.RedisPendingMessageResendJob; +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener; +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.RedisServerCommands; +import org.springframework.data.redis.connection.stream.Consumer; +import org.springframework.data.redis.connection.stream.ObjectRecord; +import org.springframework.data.redis.connection.stream.ReadOffset; +import org.springframework.data.redis.connection.stream.StreamOffset; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.listener.ChannelTopic; +import org.springframework.data.redis.listener.RedisMessageListenerContainer; +import org.springframework.data.redis.stream.StreamMessageListenerContainer; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.util.List; +import java.util.Properties; + +/** + * Redis 消息队列 Consumer 配置类 + * + * @author 芋道源码 + */ +@Slf4j +@EnableScheduling // 启用定时任务,用于 RedisPendingMessageResendJob 重发消息 +@AutoConfiguration(after = YudaoRedisAutoConfiguration.class) +public class YudaoRedisMQConsumerAutoConfiguration { + + /** + * 创建 Redis Pub/Sub 广播消费的容器 + */ + @Bean + @ConditionalOnBean(AbstractRedisChannelMessageListener.class) // 只有 AbstractChannelMessageListener 存在的时候,才需要注册 Redis pubsub 监听 + public RedisMessageListenerContainer redisMessageListenerContainer( + RedisMQTemplate redisMQTemplate, List> listeners) { + // 创建 RedisMessageListenerContainer 对象 + RedisMessageListenerContainer container = new RedisMessageListenerContainer(); + // 设置 RedisConnection 工厂。 + container.setConnectionFactory(redisMQTemplate.getRedisTemplate().getRequiredConnectionFactory()); + // 添加监听器 + listeners.forEach(listener -> { + listener.setRedisMQTemplate(redisMQTemplate); + container.addMessageListener(listener, new ChannelTopic(listener.getChannel())); + log.info("[redisMessageListenerContainer][注册 Channel({}) 对应的监听器({})]", + listener.getChannel(), listener.getClass().getName()); + }); + return container; + } + + /** + * 创建 Redis Stream 重新消费的任务 + */ + @Bean + @ConditionalOnBean(AbstractRedisStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 + public RedisPendingMessageResendJob redisPendingMessageResendJob(List> listeners, + RedisMQTemplate redisTemplate, + @Value("${spring.application.name}") String groupName, + RedissonClient redissonClient) { + return new RedisPendingMessageResendJob(listeners, redisTemplate, groupName, redissonClient); + } + + /** + * 创建 Redis Stream 集群消费的容器 + * + * 基础知识:Redis Stream 的 xreadgroup 命令 + */ + @Bean(initMethod = "start", destroyMethod = "stop") + @ConditionalOnBean(AbstractRedisStreamMessageListener.class) // 只有 AbstractStreamMessageListener 存在的时候,才需要注册 Redis pubsub 监听 + public StreamMessageListenerContainer> redisStreamMessageListenerContainer( + RedisMQTemplate redisMQTemplate, List> listeners) { + RedisTemplate redisTemplate = redisMQTemplate.getRedisTemplate(); + checkRedisVersion(redisTemplate); + // 第一步,创建 StreamMessageListenerContainer 容器 + // 创建 options 配置 + StreamMessageListenerContainer.StreamMessageListenerContainerOptions> containerOptions = + StreamMessageListenerContainer.StreamMessageListenerContainerOptions.builder() + .batchSize(10) // 一次性最多拉取多少条消息 + .targetType(String.class) // 目标类型。统一使用 String,通过自己封装的 AbstractStreamMessageListener 去反序列化 + .build(); + // 创建 container 对象 + StreamMessageListenerContainer> container = + StreamMessageListenerContainer.create(redisMQTemplate.getRedisTemplate().getRequiredConnectionFactory(), containerOptions); + + // 第二步,注册监听器,消费对应的 Stream 主题 + String consumerName = buildConsumerName(); + listeners.parallelStream().forEach(listener -> { + log.info("[redisStreamMessageListenerContainer][开始注册 StreamKey({}) 对应的监听器({})]", + listener.getStreamKey(), listener.getClass().getName()); + // 创建 listener 对应的消费者分组 + try { + redisTemplate.opsForStream().createGroup(listener.getStreamKey(), listener.getGroup()); + } catch (Exception ignore) { + } + // 设置 listener 对应的 redisTemplate + listener.setRedisMQTemplate(redisMQTemplate); + // 创建 Consumer 对象 + Consumer consumer = Consumer.from(listener.getGroup(), consumerName); + // 设置 Consumer 消费进度,以最小消费进度为准 + StreamOffset streamOffset = StreamOffset.create(listener.getStreamKey(), ReadOffset.lastConsumed()); + // 设置 Consumer 监听 + StreamMessageListenerContainer.StreamReadRequestBuilder builder = StreamMessageListenerContainer.StreamReadRequest + .builder(streamOffset).consumer(consumer) + .autoAcknowledge(false) // 不自动 ack + .cancelOnError(throwable -> false); // 默认配置,发生异常就取消消费,显然不符合预期;因此,我们设置为 false + container.register(builder.build(), listener); + log.info("[redisStreamMessageListenerContainer][完成注册 StreamKey({}) 对应的监听器({})]", + listener.getStreamKey(), listener.getClass().getName()); + }); + return container; + } + + /** + * 构建消费者名字,使用本地 IP + 进程编号的方式。 + * 参考自 RocketMQ clientId 的实现 + * + * @return 消费者名字 + */ + private static String buildConsumerName() { + return String.format("%s@%d", SystemUtil.getHostInfo().getAddress(), SystemUtil.getCurrentPID()); + } + + /** + * 校验 Redis 版本号,是否满足最低的版本号要求! + */ + private static void checkRedisVersion(RedisTemplate redisTemplate) { + // 获得 Redis 版本 + Properties info = redisTemplate.execute((RedisCallback) RedisServerCommands::info); + String version = MapUtil.getStr(info, "redis_version"); + // 校验最低版本必须大于等于 5.0.0 + int majorVersion = Integer.parseInt(StrUtil.subBefore(version, '.', false)); + if (majorVersion < 5) { + throw new IllegalStateException(StrUtil.format("您当前的 Redis 版本为 {},小于最低要求的 5.0.0 版本!" + + "请参考 {} 文档进行安装。", version, DocumentEnum.REDIS_INSTALL.getUrl())); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQProducerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQProducerAutoConfiguration.java new file mode 100644 index 0000000..c1950c4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/config/YudaoRedisMQProducerAutoConfiguration.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.framework.mq.redis.config; + +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.List; + +/** + * Redis 消息队列 Producer 配置类 + * + * @author 芋道源码 + */ +@Slf4j +@AutoConfiguration(after = YudaoRedisAutoConfiguration.class) +public class YudaoRedisMQProducerAutoConfiguration { + + @Bean + public RedisMQTemplate redisMQTemplate(StringRedisTemplate redisTemplate, + List interceptors) { + RedisMQTemplate redisMQTemplate = new RedisMQTemplate(redisTemplate); + // 添加拦截器 + interceptors.forEach(redisMQTemplate::addInterceptor); + return redisMQTemplate; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/RedisMQTemplate.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/RedisMQTemplate.java new file mode 100644 index 0000000..5755ffa --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/RedisMQTemplate.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.framework.mq.redis.core; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessage; +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessage; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.springframework.data.redis.connection.stream.RecordId; +import org.springframework.data.redis.connection.stream.StreamRecords; +import org.springframework.data.redis.core.RedisTemplate; + +import java.util.ArrayList; +import java.util.List; + +/** + * Redis MQ 操作模板类 + * + * @author 芋道源码 + */ +@AllArgsConstructor +public class RedisMQTemplate { + + @Getter + private final RedisTemplate redisTemplate; + /** + * 拦截器数组 + */ + @Getter + private final List interceptors = new ArrayList<>(); + + /** + * 发送 Redis 消息,基于 Redis pub/sub 实现 + * + * @param message 消息 + */ + public void send(T message) { + try { + sendMessageBefore(message); + // 发送消息 + redisTemplate.convertAndSend(message.getChannel(), JsonUtils.toJsonString(message)); + } finally { + sendMessageAfter(message); + } + } + + /** + * 发送 Redis 消息,基于 Redis Stream 实现 + * + * @param message 消息 + * @return 消息记录的编号对象 + */ + public RecordId send(T message) { + try { + sendMessageBefore(message); + // 发送消息 + return redisTemplate.opsForStream().add(StreamRecords.newRecord() + .ofObject(JsonUtils.toJsonString(message)) // 设置内容 + .withStreamKey(message.getStreamKey())); // 设置 stream key + } finally { + sendMessageAfter(message); + } + } + + /** + * 添加拦截器 + * + * @param interceptor 拦截器 + */ + public void addInterceptor(RedisMessageInterceptor interceptor) { + interceptors.add(interceptor); + } + + private void sendMessageBefore(AbstractRedisMessage message) { + // 正序 + interceptors.forEach(interceptor -> interceptor.sendMessageBefore(message)); + } + + private void sendMessageAfter(AbstractRedisMessage message) { + // 倒序 + for (int i = interceptors.size() - 1; i >= 0; i--) { + interceptors.get(i).sendMessageAfter(message); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java new file mode 100644 index 0000000..dbcee7f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/interceptor/RedisMessageInterceptor.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.framework.mq.redis.core.interceptor; + +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; + +/** + * {@link AbstractRedisMessage} 消息拦截器 + * 通过拦截器,作为插件机制,实现拓展。 + * 例如说,多租户场景下的 MQ 消息处理 + * + * @author 芋道源码 + */ +public interface RedisMessageInterceptor { + + default void sendMessageBefore(AbstractRedisMessage message) { + } + + default void sendMessageAfter(AbstractRedisMessage message) { + } + + default void consumeMessageBefore(AbstractRedisMessage message) { + } + + default void consumeMessageAfter(AbstractRedisMessage message) { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/job/RedisPendingMessageResendJob.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/job/RedisPendingMessageResendJob.java new file mode 100644 index 0000000..b84f17c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/job/RedisPendingMessageResendJob.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.framework.mq.redis.core.job; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.data.domain.Range; +import org.springframework.data.redis.connection.stream.*; +import org.springframework.data.redis.core.StreamOperations; +import org.springframework.scheduling.annotation.Scheduled; + +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 这个任务用于处理,crash 之后的消费者未消费完的消息 + */ +@Slf4j +@AllArgsConstructor +public class RedisPendingMessageResendJob { + + private static final String LOCK_KEY = "redis:pending:msg:lock"; + + /** + * 消息超时时间,默认 5 分钟 + * + * 1. 超时的消息才会被重新投递 + * 2. 由于定时任务 1 分钟一次,消息超时后不会被立即重投,极端情况下消息5分钟过期后,再等 1 分钟才会被扫瞄到 + */ + private static final int EXPIRE_TIME = 5 * 60; + + private final List> listeners; + private final RedisMQTemplate redisTemplate; + private final String groupName; + private final RedissonClient redissonClient; + + /** + * 一分钟执行一次,这里选择每分钟的35秒执行,是为了避免整点任务过多的问题 + */ + @Scheduled(cron = "35 * * * * ?") + public void messageResend() { + RLock lock = redissonClient.getLock(LOCK_KEY); + // 尝试加锁 + if (lock.tryLock()) { + try { + execute(); + } catch (Exception ex) { + log.error("[messageResend][执行异常]", ex); + } finally { + lock.unlock(); + } + } + } + + /** + * 执行清理逻辑 + * + * @see 讨论 + */ + private void execute() { + StreamOperations ops = redisTemplate.getRedisTemplate().opsForStream(); + listeners.forEach(listener -> { + PendingMessagesSummary pendingMessagesSummary = Objects.requireNonNull(ops.pending(listener.getStreamKey(), groupName)); + // 每个消费者的 pending 队列消息数量 + Map pendingMessagesPerConsumer = pendingMessagesSummary.getPendingMessagesPerConsumer(); + pendingMessagesPerConsumer.forEach((consumerName, pendingMessageCount) -> { + log.info("[processPendingMessage][消费者({}) 消息数量({})]", consumerName, pendingMessageCount); + // 每个消费者的 pending消息的详情信息 + PendingMessages pendingMessages = ops.pending(listener.getStreamKey(), Consumer.from(groupName, consumerName), Range.unbounded(), pendingMessageCount); + if (pendingMessages.isEmpty()) { + return; + } + pendingMessages.forEach(pendingMessage -> { + // 获取消息上一次传递到 consumer 的时间, + long lastDelivery = pendingMessage.getElapsedTimeSinceLastDelivery().getSeconds(); + if (lastDelivery < EXPIRE_TIME){ + return; + } + // 获取指定 id 的消息体 + List> records = ops.range(listener.getStreamKey(), + Range.of(Range.Bound.inclusive(pendingMessage.getIdAsString()), Range.Bound.inclusive(pendingMessage.getIdAsString()))); + if (CollUtil.isEmpty(records)) { + return; + } + // 重新投递消息 + redisTemplate.getRedisTemplate().opsForStream().add(StreamRecords.newRecord() + .ofObject(records.get(0).getValue()) // 设置内容 + .withStreamKey(listener.getStreamKey())); + // ack 消息消费完成 + redisTemplate.getRedisTemplate().opsForStream().acknowledge(groupName, records.get(0)); + log.info("[processPendingMessage][消息({})重新投递成功]", records.get(0).getId()); + }); + }); + }); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/message/AbstractRedisMessage.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/message/AbstractRedisMessage.java new file mode 100644 index 0000000..ee40814 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/message/AbstractRedisMessage.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.mq.redis.core.message; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * Redis 消息抽象基类 + * + * @author 芋道源码 + */ +@Data +public abstract class AbstractRedisMessage { + + /** + * 头 + */ + private Map headers = new HashMap<>(); + + public String getHeader(String key) { + return headers.get(key); + } + + public void addHeader(String key, String value) { + headers.put(key, value); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java new file mode 100644 index 0000000..d5ea5b9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.framework.mq.redis.core.pubsub; + +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import com.fasterxml.jackson.annotation.JsonIgnore; + +/** + * Redis Channel Message 抽象类 + * + * @author 芋道源码 + */ +public abstract class AbstractRedisChannelMessage extends AbstractRedisMessage { + + /** + * 获得 Redis Channel,默认使用类名 + * + * @return Channel + */ + @JsonIgnore // 避免序列化。原因是,Redis 发布 Channel 消息的时候,已经会指定。 + public String getChannel() { + return getClass().getSimpleName(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java new file mode 100644 index 0000000..fd7c910 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/pubsub/AbstractRedisChannelMessageListener.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.framework.mq.redis.core.pubsub; + +import cn.hutool.core.util.TypeUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import lombok.Setter; +import lombok.SneakyThrows; +import org.springframework.data.redis.connection.Message; +import org.springframework.data.redis.connection.MessageListener; + +import java.lang.reflect.Type; +import java.util.List; + +/** + * Redis Pub/Sub 监听器抽象类,用于实现广播消费 + * + * @param 消息类型。一定要填写噢,不然会报错 + * + * @author 芋道源码 + */ +public abstract class AbstractRedisChannelMessageListener implements MessageListener { + + /** + * 消息类型 + */ + private final Class messageType; + /** + * Redis Channel + */ + private final String channel; + /** + * RedisMQTemplate + */ + @Setter + private RedisMQTemplate redisMQTemplate; + + @SneakyThrows + protected AbstractRedisChannelMessageListener() { + this.messageType = getMessageClass(); + this.channel = messageType.getDeclaredConstructor().newInstance().getChannel(); + } + + /** + * 获得 Sub 订阅的 Redis Channel 通道 + * + * @return channel + */ + public final String getChannel() { + return channel; + } + + @Override + public final void onMessage(Message message, byte[] bytes) { + T messageObj = JsonUtils.parseObject(message.getBody(), messageType); + try { + consumeMessageBefore(messageObj); + // 消费消息 + this.onMessage(messageObj); + } finally { + consumeMessageAfter(messageObj); + } + } + + /** + * 处理消息 + * + * @param message 消息 + */ + public abstract void onMessage(T message); + + /** + * 通过解析类上的泛型,获得消息类型 + * + * @return 消息类型 + */ + @SuppressWarnings("unchecked") + private Class getMessageClass() { + Type type = TypeUtil.getTypeArgument(getClass(), 0); + if (type == null) { + throw new IllegalStateException(String.format("类型(%s) 需要设置消息类型", getClass().getName())); + } + return (Class) type; + } + + private void consumeMessageBefore(AbstractRedisMessage message) { + assert redisMQTemplate != null; + List interceptors = redisMQTemplate.getInterceptors(); + // 正序 + interceptors.forEach(interceptor -> interceptor.consumeMessageBefore(message)); + } + + private void consumeMessageAfter(AbstractRedisMessage message) { + assert redisMQTemplate != null; + List interceptors = redisMQTemplate.getInterceptors(); + // 倒序 + for (int i = interceptors.size() - 1; i >= 0; i--) { + interceptors.get(i).consumeMessageAfter(message); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java new file mode 100644 index 0000000..9017e08 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.framework.mq.redis.core.stream; + +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import com.fasterxml.jackson.annotation.JsonIgnore; + +/** + * Redis Stream Message 抽象类 + * + * @author 芋道源码 + */ +public abstract class AbstractRedisStreamMessage extends AbstractRedisMessage { + + /** + * 获得 Redis Stream Key,默认使用类名 + * + * @return Channel + */ + @JsonIgnore // 避免序列化 + public String getStreamKey() { + return getClass().getSimpleName(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java new file mode 100644 index 0000000..3e656af --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/core/stream/AbstractRedisStreamMessageListener.java @@ -0,0 +1,113 @@ +package cn.iocoder.yudao.framework.mq.redis.core.stream; + +import cn.hutool.core.util.TypeUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.mq.redis.core.interceptor.RedisMessageInterceptor; +import cn.iocoder.yudao.framework.mq.redis.core.message.AbstractRedisMessage; +import lombok.Getter; +import lombok.Setter; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.connection.stream.ObjectRecord; +import org.springframework.data.redis.stream.StreamListener; + +import java.lang.reflect.Type; +import java.util.List; + +/** + * Redis Stream 监听器抽象类,用于实现集群消费 + * + * @param 消息类型。一定要填写噢,不然会报错 + * + * @author 芋道源码 + */ +public abstract class AbstractRedisStreamMessageListener + implements StreamListener> { + + /** + * 消息类型 + */ + private final Class messageType; + /** + * Redis Channel + */ + @Getter + private final String streamKey; + + /** + * Redis 消费者分组,默认使用 spring.application.name 名字 + */ + @Value("${spring.application.name}") + @Getter + private String group; + /** + * RedisMQTemplate + */ + @Setter + private RedisMQTemplate redisMQTemplate; + + @SneakyThrows + protected AbstractRedisStreamMessageListener() { + this.messageType = getMessageClass(); + this.streamKey = messageType.getDeclaredConstructor().newInstance().getStreamKey(); + } + + @Override + public void onMessage(ObjectRecord message) { + // 消费消息 + T messageObj = JsonUtils.parseObject(message.getValue(), messageType); + try { + consumeMessageBefore(messageObj); + // 消费消息 + this.onMessage(messageObj); + // ack 消息消费完成 + redisMQTemplate.getRedisTemplate().opsForStream().acknowledge(group, message); + // TODO 芋艿:需要额外考虑以下几个点: + // 1. 处理异常的情况 + // 2. 发送日志;以及事务的结合 + // 3. 消费日志;以及通用的幂等性 + // 4. 消费失败的重试,https://zhuanlan.zhihu.com/p/60501638 + } finally { + consumeMessageAfter(messageObj); + } + } + + /** + * 处理消息 + * + * @param message 消息 + */ + public abstract void onMessage(T message); + + /** + * 通过解析类上的泛型,获得消息类型 + * + * @return 消息类型 + */ + @SuppressWarnings("unchecked") + private Class getMessageClass() { + Type type = TypeUtil.getTypeArgument(getClass(), 0); + if (type == null) { + throw new IllegalStateException(String.format("类型(%s) 需要设置消息类型", getClass().getName())); + } + return (Class) type; + } + + private void consumeMessageBefore(AbstractRedisMessage message) { + assert redisMQTemplate != null; + List interceptors = redisMQTemplate.getInterceptors(); + // 正序 + interceptors.forEach(interceptor -> interceptor.consumeMessageBefore(message)); + } + + private void consumeMessageAfter(AbstractRedisMessage message) { + assert redisMQTemplate != null; + List interceptors = redisMQTemplate.getInterceptors(); + // 倒序 + for (int i = interceptors.size() - 1; i >= 0; i--) { + interceptors.get(i).consumeMessageAfter(message); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/package-info.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/package-info.java new file mode 100644 index 0000000..6621fc1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/redis/package-info.java @@ -0,0 +1,6 @@ +/** + * 消息队列,基于 Redis 提供: + * 1. 基于 Pub/Sub 实现广播消费 + * 2. 基于 Stream 实现集群消费 + */ +package cn.iocoder.yudao.framework.mq.redis; diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..213850b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +cn.iocoder.yudao.framework.mq.redis.config.YudaoRedisMQProducerAutoConfiguration +cn.iocoder.yudao.framework.mq.redis.config.YudaoRedisMQConsumerAutoConfiguration +cn.iocoder.yudao.framework.mq.rabbitmq.config.YudaoRabbitMQAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml b/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml new file mode 100644 index 0000000..e8fd6d1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml @@ -0,0 +1,77 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-mybatis + jar + + ${project.artifactId} + 数据库连接池、多数据源、事务、MyBatis 拓展 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + provided + + + + + com.mysql + mysql-connector-j + + + + com.oracle.database.jdbc + ojdbc8 + true + + + org.postgresql + postgresql + true + + + com.microsoft.sqlserver + mssql-jdbc + true + + + com.dameng + DmJdbcDriver18 + true + + + + com.alibaba + druid-spring-boot-starter + + + com.baomidou + mybatis-plus-boot-starter + + + com.baomidou + dynamic-datasource-spring-boot-starter + + + + com.github.yulichang + mybatis-plus-join-boot-starter + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/config/YudaoDataSourceAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/config/YudaoDataSourceAutoConfiguration.java new file mode 100644 index 0000000..71d4ea4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/config/YudaoDataSourceAutoConfiguration.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.datasource.config; + +import cn.iocoder.yudao.framework.datasource.core.filter.DruidAdRemoveFilter; +import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * 数据库配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +@EnableTransactionManagement(proxyTargetClass = true) // 启动事务管理 +@EnableConfigurationProperties(DruidStatProperties.class) +public class YudaoDataSourceAutoConfiguration { + + /** + * 创建 DruidAdRemoveFilter 过滤器,过滤 common.js 的广告 + */ + @Bean + @ConditionalOnProperty(name = "spring.datasource.druid.web-stat-filter.enabled", havingValue = "true") + public FilterRegistrationBean druidAdRemoveFilterFilter(DruidStatProperties properties) { + // 获取 druid web 监控页面的参数 + DruidStatProperties.StatViewServlet config = properties.getStatViewServlet(); + // 提取 common.js 的配置路径 + String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*"; + String commonJsPattern = pattern.replaceAll("\\*", "js/common.js"); + // 创建 DruidAdRemoveFilter Bean + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new DruidAdRemoveFilter()); + registrationBean.addUrlPatterns(commonJsPattern); + return registrationBean; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/enums/DataSourceEnum.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/enums/DataSourceEnum.java new file mode 100644 index 0000000..c99a256 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/enums/DataSourceEnum.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.datasource.core.enums; + +/** + * 对应于多数据源中不同数据源配置 + * + * 通过在方法上,使用 {@link com.baomidou.dynamic.datasource.annotation.DS} 注解,设置使用的数据源。 + * 注意,默认是 {@link #MASTER} 数据源 + * + * 对应官方文档为 http://dynamic-datasource.com/guide/customize/Annotation.html + */ +public interface DataSourceEnum { + + /** + * 主库,推荐使用 {@link com.baomidou.dynamic.datasource.annotation.Master} 注解 + */ + String MASTER = "master"; + /** + * 从库,推荐使用 {@link com.baomidou.dynamic.datasource.annotation.Slave} 注解 + */ + String SLAVE = "slave"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/filter/DruidAdRemoveFilter.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/filter/DruidAdRemoveFilter.java new file mode 100644 index 0000000..78e8a3e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/core/filter/DruidAdRemoveFilter.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.framework.datasource.core.filter; + +import com.alibaba.druid.util.Utils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Druid 底部广告过滤器 + * + * @author 芋道源码 + */ +public class DruidAdRemoveFilter extends OncePerRequestFilter { + + /** + * common.js 的路径 + */ + private static final String COMMON_JS_ILE_PATH = "support/http/resources/js/common.js"; + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + chain.doFilter(request, response); + // 重置缓冲区,响应头不会被重置 + response.resetBuffer(); + // 获取 common.js + String text = Utils.readFromResource(COMMON_JS_ILE_PATH); + // 正则替换 banner, 除去底部的广告信息 + text = text.replaceAll("
    ", ""); + text = text.replaceAll("powered.*?shrek.wang", ""); + response.getWriter().write(text); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/package-info.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/package-info.java new file mode 100644 index 0000000..8512891 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/datasource/package-info.java @@ -0,0 +1,5 @@ +/** + * 数据库连接池,采用 Druid + * 多数据源,采用爆米花 + */ +package cn.iocoder.yudao.framework.datasource; diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java new file mode 100644 index 0000000..b8c8e0b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java @@ -0,0 +1,108 @@ +package cn.iocoder.yudao.framework.mybatis.config; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants; +import cn.iocoder.yudao.framework.mybatis.core.util.JdbcUtils; +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.annotation.IdType; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.env.EnvironmentPostProcessor; +import org.springframework.core.env.ConfigurableEnvironment; + +import java.util.Set; + +/** + * 当 IdType 为 {@link IdType#NONE} 时,根据 PRIMARY 数据源所使用的数据库,自动设置 + * + * @author 芋道源码 + */ +@Slf4j +public class IdTypeEnvironmentPostProcessor implements EnvironmentPostProcessor { + + private static final String ID_TYPE_KEY = "mybatis-plus.global-config.db-config.id-type"; + + private static final String DATASOURCE_DYNAMIC_KEY = "spring.datasource.dynamic"; + + private static final String QUARTZ_JOB_STORE_DRIVER_KEY = "spring.quartz.properties.org.quartz.jobStore.driverDelegateClass"; + + private static final Set INPUT_ID_TYPES = SetUtils.asSet(DbType.ORACLE, DbType.ORACLE_12C, + DbType.POSTGRE_SQL, DbType.KINGBASE_ES, DbType.DB2, DbType.H2); + + @Override + public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { + // 如果获取不到 DbType,则不进行处理 + DbType dbType = getDbType(environment); + if (dbType == null) { + return; + } + + // 设置 Quartz JobStore 对应的 Driver + // TODO 芋艿:暂时没有找到特别合适的地方,先放在这里 + setJobStoreDriverIfPresent(environment, dbType); + + // 初始化 SQL 静态变量 + SqlConstants.init(dbType); + + // 如果非 NONE,则不进行处理 + IdType idType = getIdType(environment); + if (idType != IdType.NONE) { + return; + } + // 情况一,用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 + if (INPUT_ID_TYPES.contains(dbType)) { + setIdType(environment, IdType.INPUT); + return; + } + // 情况二,自增 ID,适合 MySQL 等直接自增的数据库 + setIdType(environment, IdType.AUTO); + } + + public IdType getIdType(ConfigurableEnvironment environment) { + return environment.getProperty(ID_TYPE_KEY, IdType.class); + } + + public void setIdType(ConfigurableEnvironment environment, IdType idType) { + environment.getSystemProperties().put(ID_TYPE_KEY, idType); + log.info("[setIdType][修改 MyBatis Plus 的 idType 为({})]", idType); + } + + public void setJobStoreDriverIfPresent(ConfigurableEnvironment environment, DbType dbType) { + String driverClass = environment.getProperty(QUARTZ_JOB_STORE_DRIVER_KEY); + if (StrUtil.isNotEmpty(driverClass)) { + return; + } + // 根据 dbType 类型,获取对应的 driverClass + switch (dbType) { + case POSTGRE_SQL: + driverClass = "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"; + break; + case ORACLE: + case ORACLE_12C: + driverClass = "org.quartz.impl.jdbcjobstore.oracle.OracleDelegate"; + break; + case SQL_SERVER: + case SQL_SERVER2005: + driverClass = "org.quartz.impl.jdbcjobstore.MSSQLDelegate"; + break; + } + // 设置 driverClass 变量 + if (StrUtil.isNotEmpty(driverClass)) { + environment.getSystemProperties().put(QUARTZ_JOB_STORE_DRIVER_KEY, driverClass); + } + } + + public static DbType getDbType(ConfigurableEnvironment environment) { + String primary = environment.getProperty(DATASOURCE_DYNAMIC_KEY + "." + "primary"); + if (StrUtil.isEmpty(primary)) { + return null; + } + String url = environment.getProperty(DATASOURCE_DYNAMIC_KEY + ".datasource." + primary + ".url"); + if (StrUtil.isEmpty(url)) { + return null; + } + return JdbcUtils.getDbType(url); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java new file mode 100644 index 0000000..d5ea306 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.framework.mybatis.config; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler; +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; +import com.baomidou.mybatisplus.extension.incrementer.*; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.apache.ibatis.annotations.Mapper; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.core.env.ConfigurableEnvironment; + +/** + * MyBaits 配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +@MapperScan(value = "${yudao.info.base-package}", annotationClass = Mapper.class, + lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试 +public class YudaoMybatisAutoConfiguration { + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); + mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 分页插件 + return mybatisPlusInterceptor; + } + + @Bean + public MetaObjectHandler defaultMetaObjectHandler(){ + return new DefaultDBFieldHandler(); // 自动填充参数类 + } + + @Bean + @ConditionalOnProperty(prefix = "mybatis-plus.global-config.db-config", name = "id-type", havingValue = "INPUT") + public IKeyGenerator keyGenerator(ConfigurableEnvironment environment) { + DbType dbType = IdTypeEnvironmentPostProcessor.getDbType(environment); + if (dbType != null) { + switch (dbType) { + case POSTGRE_SQL: + return new PostgreKeyGenerator(); + case ORACLE: + case ORACLE_12C: + return new OracleKeyGenerator(); + case H2: + return new H2KeyGenerator(); + case KINGBASE_ES: + return new KingbaseKeyGenerator(); + case DM: + return new DmKeyGenerator(); + } + } + // 找不到合适的 IKeyGenerator 实现类 + throw new IllegalArgumentException(StrUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java new file mode 100644 index 0000000..19abaa6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.framework.mybatis.core.dataobject; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 基础实体对象 + * + * @author 芋道源码 + */ +@Data +public abstract class BaseDO implements Serializable { + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + /** + * 最后更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + /** + * 创建者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR) + private String creator; + /** + * 更新者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR) + private String updater; + /** + * 是否删除 + */ + @TableLogic + private Boolean deleted; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java new file mode 100644 index 0000000..d775f17 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.mybatis.core.enums; + +import com.baomidou.mybatisplus.annotation.DbType; + +/** + * SQL相关常量类 + * + * @author 芋道源码 + */ +public class SqlConstants { + + /** + * 数据库的类型 + */ + public static DbType DB_TYPE; + + public static void init(DbType dbType) { + DB_TYPE = dbType; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/handler/DefaultDBFieldHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/handler/DefaultDBFieldHandler.java new file mode 100644 index 0000000..94dada1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/handler/DefaultDBFieldHandler.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.framework.mybatis.core.handler; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; + +import java.time.LocalDateTime; +import java.util.Objects; + +/** + * 通用参数填充实现类 + * + * 如果没有显式的对通用参数进行赋值,这里会对通用参数进行填充、赋值 + * + * @author hexiaowu + */ +public class DefaultDBFieldHandler implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) { + BaseDO baseDO = (BaseDO) metaObject.getOriginalObject(); + + LocalDateTime current = LocalDateTime.now(); + // 创建时间为空,则以当前时间为插入时间 + if (Objects.isNull(baseDO.getCreateTime())) { + baseDO.setCreateTime(current); + } + // 更新时间为空,则以当前时间为更新时间 + if (Objects.isNull(baseDO.getUpdateTime())) { + baseDO.setUpdateTime(current); + } + + Long userId = WebFrameworkUtils.getLoginUserId(); + // 当前登录用户不为空,创建人为空,则当前登录用户为创建人 + if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) { + baseDO.setCreator(userId.toString()); + } + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) { + baseDO.setUpdater(userId.toString()); + } + } + } + + @Override + public void updateFill(MetaObject metaObject) { + // 更新时间为空,则以当前时间为更新时间 + Object modifyTime = getFieldValByName("updateTime", metaObject); + if (Objects.isNull(modifyTime)) { + setFieldValByName("updateTime", LocalDateTime.now(), metaObject); + } + + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + Object modifier = getFieldValByName("updater", metaObject); + Long userId = WebFrameworkUtils.getLoginUserId(); + if (Objects.nonNull(userId) && Objects.isNull(modifier)) { + setFieldValByName("updater", userId.toString(), metaObject); + } + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java new file mode 100644 index 0000000..d6bbe92 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java @@ -0,0 +1,191 @@ +package cn.iocoder.yudao.framework.mybatis.core.mapper; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.SortablePageParam; +import cn.iocoder.yudao.framework.common.pojo.SortingField; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.baomidou.mybatisplus.extension.toolkit.Db; +import com.github.yulichang.base.MPJBaseMapper; +import com.github.yulichang.interfaces.MPJBaseJoin; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * 在 MyBatis Plus 的 BaseMapper 的基础上拓展,提供更多的能力 + * + * 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力 + * 2. {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力 + */ +public interface BaseMapperX extends MPJBaseMapper { + + default PageResult selectPage(SortablePageParam pageParam, @Param("ew") Wrapper queryWrapper) { + return selectPage(pageParam, pageParam.getSortingFields(), queryWrapper); + } + + default PageResult selectPage(PageParam pageParam, @Param("ew") Wrapper queryWrapper) { + return selectPage(pageParam, null, queryWrapper); + } + + default PageResult selectPage(PageParam pageParam, Collection sortingFields, @Param("ew") Wrapper queryWrapper) { + // 特殊:不分页,直接查询全部 + if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageSize())) { + List list = selectList(queryWrapper); + return new PageResult<>(list, (long) list.size()); + } + + // MyBatis Plus 查询 + IPage mpPage = MyBatisUtils.buildPage(pageParam, sortingFields); + selectPage(mpPage, queryWrapper); + // 转换返回 + return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); + } + + default PageResult selectJoinPage(PageParam pageParam, Class clazz, MPJLambdaWrapper lambdaWrapper) { + // 特殊:不分页,直接查询全部 + if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageNo())) { + List list = selectJoinList(clazz, lambdaWrapper); + return new PageResult<>(list, (long) list.size()); + } + + // MyBatis Plus Join 查询 + IPage mpPage = MyBatisUtils.buildPage(pageParam); + mpPage = selectJoinPage(mpPage, clazz, lambdaWrapper); + // 转换返回 + return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); + } + + default PageResult selectJoinPage(PageParam pageParam, Class resultTypeClass, MPJBaseJoin joinQueryWrapper) { + IPage mpPage = MyBatisUtils.buildPage(pageParam); + selectJoinPage(mpPage, resultTypeClass, joinQueryWrapper); + // 转换返回 + return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); + } + + default T selectOne(String field, Object value) { + return selectOne(new QueryWrapper().eq(field, value)); + } + + default T selectOne(SFunction field, Object value) { + return selectOne(new LambdaQueryWrapper().eq(field, value)); + } + + default T selectOne(String field1, Object value1, String field2, Object value2) { + return selectOne(new QueryWrapper().eq(field1, value1).eq(field2, value2)); + } + + default T selectOne(SFunction field1, Object value1, SFunction field2, Object value2) { + return selectOne(new LambdaQueryWrapper().eq(field1, value1).eq(field2, value2)); + } + + default T selectOne(SFunction field1, Object value1, SFunction field2, Object value2, + SFunction field3, Object value3) { + return selectOne(new LambdaQueryWrapper().eq(field1, value1).eq(field2, value2) + .eq(field3, value3)); + } + + default Long selectCount() { + return selectCount(new QueryWrapper<>()); + } + + default Long selectCount(String field, Object value) { + return selectCount(new QueryWrapper().eq(field, value)); + } + + default Long selectCount(SFunction field, Object value) { + return selectCount(new LambdaQueryWrapper().eq(field, value)); + } + + default List selectList() { + return selectList(new QueryWrapper<>()); + } + + default List selectList(String field, Object value) { + return selectList(new QueryWrapper().eq(field, value)); + } + + default List selectList(SFunction field, Object value) { + return selectList(new LambdaQueryWrapper().eq(field, value)); + } + + default List selectList(String field, Collection values) { + if (CollUtil.isEmpty(values)) { + return CollUtil.newArrayList(); + } + return selectList(new QueryWrapper().in(field, values)); + } + + default List selectList(SFunction field, Collection values) { + if (CollUtil.isEmpty(values)) { + return CollUtil.newArrayList(); + } + return selectList(new LambdaQueryWrapper().in(field, values)); + } + + @Deprecated + default List selectList(SFunction leField, SFunction geField, Object value) { + return selectList(new LambdaQueryWrapper().le(leField, value).ge(geField, value)); + } + + default List selectList(SFunction field1, Object value1, SFunction field2, Object value2) { + return selectList(new LambdaQueryWrapper().eq(field1, value1).eq(field2, value2)); + } + + /** + * 批量插入,适合大量数据插入 + * + * @param entities 实体们 + */ + default Boolean insertBatch(Collection entities) { + return Db.saveBatch(entities); + } + + /** + * 批量插入,适合大量数据插入 + * + * @param entities 实体们 + * @param size 插入数量 Db.saveBatch 默认为 1000 + */ + default Boolean insertBatch(Collection entities, int size) { + return Db.saveBatch(entities, size); + } + + default int updateBatch(T update) { + return update(update, new QueryWrapper<>()); + } + + default Boolean updateBatch(Collection entities) { + return Db.updateBatchById(entities); + } + + default Boolean updateBatch(Collection entities, int size) { + return Db.updateBatchById(entities, size); + } + + default Boolean insertOrUpdate(T entity) { + return Db.saveOrUpdate(entity); + } + + default Boolean insertOrUpdateBatch(Collection collection) { + return Db.saveOrUpdateBatch(collection); + } + + default int delete(String field, String value) { + return delete(new QueryWrapper().eq(field, value)); + } + + default int delete(SFunction field, Object value) { + return delete(new LambdaQueryWrapper().eq(field, value)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java new file mode 100644 index 0000000..a728365 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java @@ -0,0 +1,135 @@ +package cn.iocoder.yudao.framework.mybatis.core.query; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import org.springframework.util.StringUtils; + +import java.util.Collection; + +/** + * 拓展 MyBatis Plus QueryWrapper 类,主要增加如下功能: + *

    + * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。 + * + * @param 数据类型 + */ +public class LambdaQueryWrapperX extends LambdaQueryWrapper { + + public LambdaQueryWrapperX likeIfPresent(SFunction column, String val) { + if (StringUtils.hasText(val)) { + return (LambdaQueryWrapperX) super.like(column, val); + } + return this; + } + + public LambdaQueryWrapperX inIfPresent(SFunction column, Collection values) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { + return (LambdaQueryWrapperX) super.in(column, values); + } + return this; + } + + public LambdaQueryWrapperX inIfPresent(SFunction column, Object... values) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { + return (LambdaQueryWrapperX) super.in(column, values); + } + return this; + } + + public LambdaQueryWrapperX eqIfPresent(SFunction column, Object val) { + if (ObjectUtil.isNotEmpty(val)) { + return (LambdaQueryWrapperX) super.eq(column, val); + } + return this; + } + + public LambdaQueryWrapperX neIfPresent(SFunction column, Object val) { + if (ObjectUtil.isNotEmpty(val)) { + return (LambdaQueryWrapperX) super.ne(column, val); + } + return this; + } + + public LambdaQueryWrapperX gtIfPresent(SFunction column, Object val) { + if (val != null) { + return (LambdaQueryWrapperX) super.gt(column, val); + } + return this; + } + + public LambdaQueryWrapperX geIfPresent(SFunction column, Object val) { + if (val != null) { + return (LambdaQueryWrapperX) super.ge(column, val); + } + return this; + } + + public LambdaQueryWrapperX ltIfPresent(SFunction column, Object val) { + if (val != null) { + return (LambdaQueryWrapperX) super.lt(column, val); + } + return this; + } + + public LambdaQueryWrapperX leIfPresent(SFunction column, Object val) { + if (val != null) { + return (LambdaQueryWrapperX) super.le(column, val); + } + return this; + } + + public LambdaQueryWrapperX betweenIfPresent(SFunction column, Object val1, Object val2) { + if (val1 != null && val2 != null) { + return (LambdaQueryWrapperX) super.between(column, val1, val2); + } + if (val1 != null) { + return (LambdaQueryWrapperX) ge(column, val1); + } + if (val2 != null) { + return (LambdaQueryWrapperX) le(column, val2); + } + return this; + } + + public LambdaQueryWrapperX betweenIfPresent(SFunction column, Object[] values) { + Object val1 = ArrayUtils.get(values, 0); + Object val2 = ArrayUtils.get(values, 1); + return betweenIfPresent(column, val1, val2); + } + + // ========== 重写父类方法,方便链式调用 ========== + + @Override + public LambdaQueryWrapperX eq(boolean condition, SFunction column, Object val) { + super.eq(condition, column, val); + return this; + } + + @Override + public LambdaQueryWrapperX eq(SFunction column, Object val) { + super.eq(column, val); + return this; + } + + @Override + public LambdaQueryWrapperX orderByDesc(SFunction column) { + super.orderByDesc(true, column); + return this; + } + + @Override + public LambdaQueryWrapperX last(String lastSql) { + super.last(lastSql); + return this; + } + + @Override + public LambdaQueryWrapperX in(SFunction column, Collection coll) { + super.in(column, coll); + return this; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/MPJLambdaWrapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/MPJLambdaWrapperX.java new file mode 100644 index 0000000..7950a2f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/MPJLambdaWrapperX.java @@ -0,0 +1,313 @@ +package cn.iocoder.yudao.framework.mybatis.core.query; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.github.yulichang.toolkit.MPJWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.springframework.util.StringUtils; + +import java.util.Collection; +import java.util.function.Consumer; + +/** + * 拓展 MyBatis Plus Join QueryWrapper 类,主要增加如下功能: + *

    + * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。 + * + * @param 数据类型 + */ +public class MPJLambdaWrapperX extends MPJLambdaWrapper { + + public MPJLambdaWrapperX likeIfPresent(SFunction column, String val) { + MPJWrappers.lambdaJoin().like(column, val); + if (StringUtils.hasText(val)) { + return (MPJLambdaWrapperX) super.like(column, val); + } + return this; + } + + public MPJLambdaWrapperX inIfPresent(SFunction column, Collection values) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { + return (MPJLambdaWrapperX) super.in(column, values); + } + return this; + } + + public MPJLambdaWrapperX inIfPresent(SFunction column, Object... values) { + if (ObjectUtil.isAllNotEmpty(values) && !ArrayUtil.isEmpty(values)) { + return (MPJLambdaWrapperX) super.in(column, values); + } + return this; + } + + public MPJLambdaWrapperX eqIfPresent(SFunction column, Object val) { + if (ObjectUtil.isNotEmpty(val)) { + return (MPJLambdaWrapperX) super.eq(column, val); + } + return this; + } + + public MPJLambdaWrapperX neIfPresent(SFunction column, Object val) { + if (ObjectUtil.isNotEmpty(val)) { + return (MPJLambdaWrapperX) super.ne(column, val); + } + return this; + } + + public MPJLambdaWrapperX gtIfPresent(SFunction column, Object val) { + if (val != null) { + return (MPJLambdaWrapperX) super.gt(column, val); + } + return this; + } + + public MPJLambdaWrapperX geIfPresent(SFunction column, Object val) { + if (val != null) { + return (MPJLambdaWrapperX) super.ge(column, val); + } + return this; + } + + public MPJLambdaWrapperX ltIfPresent(SFunction column, Object val) { + if (val != null) { + return (MPJLambdaWrapperX) super.lt(column, val); + } + return this; + } + + public MPJLambdaWrapperX leIfPresent(SFunction column, Object val) { + if (val != null) { + return (MPJLambdaWrapperX) super.le(column, val); + } + return this; + } + + public MPJLambdaWrapperX betweenIfPresent(SFunction column, Object val1, Object val2) { + if (val1 != null && val2 != null) { + return (MPJLambdaWrapperX) super.between(column, val1, val2); + } + if (val1 != null) { + return (MPJLambdaWrapperX) ge(column, val1); + } + if (val2 != null) { + return (MPJLambdaWrapperX) le(column, val2); + } + return this; + } + + public MPJLambdaWrapperX betweenIfPresent(SFunction column, Object[] values) { + Object val1 = ArrayUtils.get(values, 0); + Object val2 = ArrayUtils.get(values, 1); + return betweenIfPresent(column, val1, val2); + } + + // ========== 重写父类方法,方便链式调用 ========== + + @Override + public MPJLambdaWrapperX eq(boolean condition, SFunction column, Object val) { + super.eq(condition, column, val); + return this; + } + + @Override + public MPJLambdaWrapperX eq(SFunction column, Object val) { + super.eq(column, val); + return this; + } + + @Override + public MPJLambdaWrapperX orderByDesc(SFunction column) { + //noinspection unchecked + super.orderByDesc(true, column); + return this; + } + + @Override + public MPJLambdaWrapperX last(String lastSql) { + super.last(lastSql); + return this; + } + + @Override + public MPJLambdaWrapperX in(SFunction column, Collection coll) { + super.in(column, coll); + return this; + } + + @Override + public MPJLambdaWrapperX selectAll(Class clazz) { + super.selectAll(clazz); + return this; + } + + @Override + public MPJLambdaWrapperX selectAll(Class clazz, String prefix) { + super.selectAll(clazz, prefix); + return this; + } + + @Override + public MPJLambdaWrapperX selectAs(SFunction column, String alias) { + super.selectAs(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAs(String column, SFunction alias) { + super.selectAs(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAs(SFunction column, SFunction alias) { + super.selectAs(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAs(String index, SFunction column, SFunction alias) { + super.selectAs(index, column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAsClass(Class source, Class tag) { + super.selectAsClass(source, tag); + return this; + } + + @Override + public MPJLambdaWrapperX selectSub(Class clazz, Consumer> consumer, SFunction alias) { + super.selectSub(clazz, consumer, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectSub(Class clazz, String st, Consumer> consumer, SFunction alias) { + super.selectSub(clazz, st, consumer, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectCount(SFunction column) { + super.selectCount(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectCount(Object column, String alias) { + super.selectCount(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectCount(Object column, SFunction alias) { + super.selectCount(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectCount(SFunction column, String alias) { + super.selectCount(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectCount(SFunction column, SFunction alias) { + super.selectCount(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectSum(SFunction column) { + super.selectSum(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectSum(SFunction column, String alias) { + super.selectSum(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectSum(SFunction column, SFunction alias) { + super.selectSum(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectMax(SFunction column) { + super.selectMax(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectMax(SFunction column, String alias) { + super.selectMax(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectMax(SFunction column, SFunction alias) { + super.selectMax(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectMin(SFunction column) { + super.selectMin(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectMin(SFunction column, String alias) { + super.selectMin(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectMin(SFunction column, SFunction alias) { + super.selectMin(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAvg(SFunction column) { + super.selectAvg(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectAvg(SFunction column, String alias) { + super.selectAvg(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectAvg(SFunction column, SFunction alias) { + super.selectAvg(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectLen(SFunction column) { + super.selectLen(column); + return this; + } + + @Override + public MPJLambdaWrapperX selectLen(SFunction column, String alias) { + super.selectLen(column, alias); + return this; + } + + @Override + public MPJLambdaWrapperX selectLen(SFunction column, SFunction alias) { + super.selectLen(column, alias); + return this; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/QueryWrapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/QueryWrapperX.java new file mode 100644 index 0000000..eec4172 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/QueryWrapperX.java @@ -0,0 +1,166 @@ +package cn.iocoder.yudao.framework.mybatis.core.query; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ArrayUtils; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.Collection; + +/** + * 拓展 MyBatis Plus QueryWrapper 类,主要增加如下功能: + * + * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。 + * + * @param 数据类型 + */ +public class QueryWrapperX extends QueryWrapper { + + public QueryWrapperX likeIfPresent(String column, String val) { + if (StringUtils.hasText(val)) { + return (QueryWrapperX) super.like(column, val); + } + return this; + } + + public QueryWrapperX inIfPresent(String column, Collection values) { + if (!CollectionUtils.isEmpty(values)) { + return (QueryWrapperX) super.in(column, values); + } + return this; + } + + public QueryWrapperX inIfPresent(String column, Object... values) { + if (!ArrayUtils.isEmpty(values)) { + return (QueryWrapperX) super.in(column, values); + } + return this; + } + + public QueryWrapperX eqIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.eq(column, val); + } + return this; + } + + public QueryWrapperX neIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.ne(column, val); + } + return this; + } + + public QueryWrapperX gtIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.gt(column, val); + } + return this; + } + + public QueryWrapperX geIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.ge(column, val); + } + return this; + } + + public QueryWrapperX ltIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.lt(column, val); + } + return this; + } + + public QueryWrapperX leIfPresent(String column, Object val) { + if (val != null) { + return (QueryWrapperX) super.le(column, val); + } + return this; + } + + public QueryWrapperX betweenIfPresent(String column, Object val1, Object val2) { + if (val1 != null && val2 != null) { + return (QueryWrapperX) super.between(column, val1, val2); + } + if (val1 != null) { + return (QueryWrapperX) ge(column, val1); + } + if (val2 != null) { + return (QueryWrapperX) le(column, val2); + } + return this; + } + + public QueryWrapperX betweenIfPresent(String column, Object[] values) { + if (values!= null && values.length != 0 && values[0] != null && values[1] != null) { + return (QueryWrapperX) super.between(column, values[0], values[1]); + } + if (values!= null && values.length != 0 && values[0] != null) { + return (QueryWrapperX) ge(column, values[0]); + } + if (values!= null && values.length != 0 && values[1] != null) { + return (QueryWrapperX) le(column, values[1]); + } + return this; + } + + // ========== 重写父类方法,方便链式调用 ========== + + @Override + public QueryWrapperX eq(boolean condition, String column, Object val) { + super.eq(condition, column, val); + return this; + } + + @Override + public QueryWrapperX eq(String column, Object val) { + super.eq(column, val); + return this; + } + + @Override + public QueryWrapperX orderByDesc(String column) { + super.orderByDesc(true, column); + return this; + } + + @Override + public QueryWrapperX last(String lastSql) { + super.last(lastSql); + return this; + } + + @Override + public QueryWrapperX in(String column, Collection coll) { + super.in(column, coll); + return this; + } + + /** + * 设置只返回最后一条 + * + * TODO 芋艿:不是完美解,需要在思考下。如果使用多数据源,并且数据源是多种类型时,可能会存在问题:实现之返回一条的语法不同 + * + * @return this + */ + public QueryWrapperX limitN(int n) { + Assert.notNull(SqlConstants.DB_TYPE, "获取不到数据库的类型"); + switch (SqlConstants.DB_TYPE) { + case ORACLE: + case ORACLE_12C: + super.le("ROWNUM", n); + break; + case SQL_SERVER: + case SQL_SERVER2005: + super.select("TOP " + n + " *"); // 由于 SQL Server 是通过 SELECT TOP 1 实现限制一条,所以只好使用 * 查询剩余字段 + break; + default: + super.last("LIMIT " + n); + } + return this; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/EncryptTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/EncryptTypeHandler.java new file mode 100644 index 0000000..7ef0f4e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/EncryptTypeHandler.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.hutool.core.lang.Assert; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.AES; +import cn.hutool.extra.spring.SpringUtil; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * 字段字段的 TypeHandler 实现类,基于 {@link cn.hutool.crypto.symmetric.AES} 实现 + * 可通过 jasypt.encryptor.password 配置项,设置密钥 + * + * @author 芋道源码 + */ +public class EncryptTypeHandler extends BaseTypeHandler { + + private static final String ENCRYPTOR_PROPERTY_NAME = "mybatis-plus.encryptor.password"; + + private static AES aes; + + @Override + public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { + ps.setString(i, encrypt(parameter)); + } + + @Override + public String getNullableResult(ResultSet rs, String columnName) throws SQLException { + String value = rs.getString(columnName); + return decrypt(value); + } + + @Override + public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + String value = rs.getString(columnIndex); + return decrypt(value); + } + + @Override + public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + String value = cs.getString(columnIndex); + return decrypt(value); + } + + private static String decrypt(String value) { + if (value == null) { + return null; + } + return getEncryptor().decryptStr(value); + } + + public static String encrypt(String rawValue) { + if (rawValue == null) { + return null; + } + return getEncryptor().encryptBase64(rawValue); + } + + private static AES getEncryptor() { + if (aes != null) { + return aes; + } + // 构建 AES + String password = SpringUtil.getProperty(ENCRYPTOR_PROPERTY_NAME); + Assert.notEmpty(password, "配置项({}) 不能为空", ENCRYPTOR_PROPERTY_NAME); + aes = SecureUtil.aes(password.getBytes()); + return aes; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/IntegerListTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/IntegerListTypeHandler.java new file mode 100644 index 0000000..18455ba --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/IntegerListTypeHandler.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.string.StrUtils; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; +import org.apache.ibatis.type.TypeHandler; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +/** + * List 的类型转换器实现类,对应数据库的 varchar 类型 + * + * @author jason + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes(List.class) +public class IntegerListTypeHandler implements TypeHandler> { + + private static final String COMMA = ","; + + @Override + public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { + ps.setString(i, CollUtil.join(strings, COMMA)); + } + + @Override + public List getResult(ResultSet rs, String columnName) throws SQLException { + String value = rs.getString(columnName); + return getResult(value); + } + + @Override + public List getResult(ResultSet rs, int columnIndex) throws SQLException { + String value = rs.getString(columnIndex); + return getResult(value); + } + + @Override + public List getResult(CallableStatement cs, int columnIndex) throws SQLException { + String value = cs.getString(columnIndex); + return getResult(value); + } + + private List getResult(String value) { + if (value == null) { + return null; + } + return StrUtils.splitToInteger(value, COMMA); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/JsonLongSetTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/JsonLongSetTypeHandler.java new file mode 100644 index 0000000..052c723 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/JsonLongSetTypeHandler.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; +import com.fasterxml.jackson.core.type.TypeReference; + +import java.util.Set; + +/** + * 参考 {@link com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} 实现 + * 在我们将字符串反序列化为 Set 并且泛型为 Long 时,如果每个元素的数值太小,会被处理成 Integer 类型,导致可能存在隐性的 BUG。 + * + * 例如说哦,SysUserDO 的 postIds 属性 + * + * @author 芋道源码 + */ +public class JsonLongSetTypeHandler extends AbstractJsonTypeHandler { + + private static final TypeReference> TYPE_REFERENCE = new TypeReference>(){}; + + @Override + protected Object parse(String json) { + return JsonUtils.parseObject(json, TYPE_REFERENCE); + } + + @Override + protected String toJson(Object obj) { + return JsonUtils.toJsonString(obj); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/LongListTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/LongListTypeHandler.java new file mode 100644 index 0000000..8c30f3d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/LongListTypeHandler.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.string.StrUtils; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; +import org.apache.ibatis.type.TypeHandler; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +/** + * List 的类型转换器实现类,对应数据库的 varchar 类型 + * + * @author 芋道源码 + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes(List.class) +public class LongListTypeHandler implements TypeHandler> { + + private static final String COMMA = ","; + + @Override + public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { + // 设置占位符 + ps.setString(i, CollUtil.join(strings, COMMA)); + } + + @Override + public List getResult(ResultSet rs, String columnName) throws SQLException { + String value = rs.getString(columnName); + return getResult(value); + } + + @Override + public List getResult(ResultSet rs, int columnIndex) throws SQLException { + String value = rs.getString(columnIndex); + return getResult(value); + } + + @Override + public List getResult(CallableStatement cs, int columnIndex) throws SQLException { + String value = cs.getString(columnIndex); + return getResult(value); + } + + private List getResult(String value) { + if (value == null) { + return null; + } + return StrUtils.splitToLong(value, COMMA); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringListTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringListTypeHandler.java new file mode 100644 index 0000000..598a15e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringListTypeHandler.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; +import org.apache.ibatis.type.TypeHandler; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +/** + * List 的类型转换器实现类,对应数据库的 varchar 类型 + * + * @author 永不言败 + * @since 2022 3/23 12:50:15 + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes(List.class) +public class StringListTypeHandler implements TypeHandler> { + + private static final String COMMA = ","; + + @Override + public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { + // 设置占位符 + ps.setString(i, CollUtil.join(strings, COMMA)); + } + + @Override + public List getResult(ResultSet rs, String columnName) throws SQLException { + String value = rs.getString(columnName); + return getResult(value); + } + + @Override + public List getResult(ResultSet rs, int columnIndex) throws SQLException { + String value = rs.getString(columnIndex); + return getResult(value); + } + + @Override + public List getResult(CallableStatement cs, int columnIndex) throws SQLException { + String value = cs.getString(columnIndex); + return getResult(value); + } + + private List getResult(String value) { + if (value == null) { + return null; + } + return StrUtil.splitTrim(value, COMMA); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/JdbcUtils.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/JdbcUtils.java new file mode 100644 index 0000000..e9dc10f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/JdbcUtils.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.mybatis.core.util; + +import com.baomidou.mybatisplus.annotation.DbType; + +import java.sql.Connection; +import java.sql.DriverManager; + +/** + * JDBC 工具类 + * + * @author 芋道源码 + */ +public class JdbcUtils { + + /** + * 判断连接是否正确 + * + * @param url 数据源连接 + * @param username 账号 + * @param password 密码 + * @return 是否正确 + */ + public static boolean isConnectionOK(String url, String username, String password) { + try (Connection ignored = DriverManager.getConnection(url, username, password)) { + return true; + } catch (Exception ex) { + return false; + } + } + + /** + * 获得 URL 对应的 DB 类型 + * + * @param url URL + * @return DB 类型 + */ + public static DbType getDbType(String url) { + String name = com.alibaba.druid.util.JdbcUtils.getDbType(url, null); + return DbType.getDbType(name); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/MyBatisUtils.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/MyBatisUtils.java new file mode 100644 index 0000000..3da059a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/MyBatisUtils.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.framework.mybatis.core.util; + +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.SortingField; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.sf.jsqlparser.expression.Alias; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +/** + * MyBatis 工具类 + */ +public class MyBatisUtils { + + private static final String MYSQL_ESCAPE_CHARACTER = "`"; + + public static Page buildPage(PageParam pageParam) { + return buildPage(pageParam, null); + } + + public static Page buildPage(PageParam pageParam, Collection sortingFields) { + // 页码 + 数量 + Page page = new Page<>(pageParam.getPageNo(), pageParam.getPageSize()); + // 排序字段 + if (!CollectionUtil.isEmpty(sortingFields)) { + page.addOrder(sortingFields.stream().map(sortingField -> SortingField.ORDER_ASC.equals(sortingField.getOrder()) ? + OrderItem.asc(sortingField.getField()) : OrderItem.desc(sortingField.getField())) + .collect(Collectors.toList())); + } + return page; + } + + /** + * 将拦截器添加到链中 + * 由于 MybatisPlusInterceptor 不支持添加拦截器,所以只能全量设置 + * + * @param interceptor 链 + * @param inner 拦截器 + * @param index 位置 + */ + public static void addInterceptor(MybatisPlusInterceptor interceptor, InnerInterceptor inner, int index) { + List inners = new ArrayList<>(interceptor.getInterceptors()); + inners.add(index, inner); + interceptor.setInterceptors(inners); + } + + /** + * 获得 Table 对应的表名 + * + * 兼容 MySQL 转义表名 `t_xxx` + * + * @param table 表 + * @return 去除转移字符后的表名 + */ + public static String getTableName(Table table) { + String tableName = table.getName(); + if (tableName.startsWith(MYSQL_ESCAPE_CHARACTER) && tableName.endsWith(MYSQL_ESCAPE_CHARACTER)) { + tableName = tableName.substring(1, tableName.length() - 1); + } + return tableName; + } + + /** + * 构建 Column 对象 + * + * @param tableName 表名 + * @param tableAlias 别名 + * @param column 字段名 + * @return Column 对象 + */ + public static Column buildColumn(String tableName, Alias tableAlias, String column) { + if (tableAlias != null) { + tableName = tableAlias.getName(); + } + return new Column(tableName + StringPool.DOT + column); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/package-info.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/package-info.java new file mode 100644 index 0000000..50b1e85 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/package-info.java @@ -0,0 +1,4 @@ +/** + * 使用 MyBatis Plus 提升使用 MyBatis 的开发效率 + */ +package cn.iocoder.yudao.framework.mybatis; diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/package-info.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/package-info.java new file mode 100644 index 0000000..8c69219 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.framework; diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..eb172e4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.env.EnvironmentPostProcessor=\ + cn.iocoder.yudao.framework.mybatis.config.IdTypeEnvironmentPostProcessor diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..1c159fd --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration +cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-protection/pom.xml b/yudao-framework/yudao-spring-boot-starter-protection/pom.xml new file mode 100644 index 0000000..e4e970f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/pom.xml @@ -0,0 +1,39 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-protection + jar + + ${project.artifactId} + 服务保证,提供分布式锁、幂等、限流、熔断等等功能 + https://github.com/YunaiV/ruoyi-vue-pro + + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + com.baomidou + lock4j-redisson-spring-boot-starter + true + + + + io.github.resilience4j + resilience4j-spring-boot2 + true + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/config/YudaoIdempotentConfiguration.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/config/YudaoIdempotentConfiguration.java new file mode 100644 index 0000000..23a7558 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/config/YudaoIdempotentConfiguration.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.idempotent.config; + +import cn.iocoder.yudao.framework.idempotent.core.aop.IdempotentAspect; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import cn.iocoder.yudao.framework.idempotent.core.redis.IdempotentRedisDAO; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.List; + +@AutoConfiguration(after = YudaoRedisAutoConfiguration.class) +public class YudaoIdempotentConfiguration { + + @Bean + public IdempotentAspect idempotentAspect(List keyResolvers, IdempotentRedisDAO idempotentRedisDAO) { + return new IdempotentAspect(keyResolvers, idempotentRedisDAO); + } + + @Bean + public IdempotentRedisDAO idempotentRedisDAO(StringRedisTemplate stringRedisTemplate) { + return new IdempotentRedisDAO(stringRedisTemplate); + } + + // ========== 各种 IdempotentKeyResolver Bean ========== + + @Bean + public DefaultIdempotentKeyResolver defaultIdempotentKeyResolver() { + return new DefaultIdempotentKeyResolver(); + } + + @Bean + public ExpressionIdempotentKeyResolver expressionIdempotentKeyResolver() { + return new ExpressionIdempotentKeyResolver(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/annotation/Idempotent.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/annotation/Idempotent.java new file mode 100644 index 0000000..579a07c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/annotation/Idempotent.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.framework.idempotent.core.annotation; + +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.IdempotentKeyResolver; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.concurrent.TimeUnit; + +/** + * 幂等注解 + * + * @author 芋道源码 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Idempotent { + + /** + * 幂等的超时时间,默认为 1 秒 + * + * 注意,如果执行时间超过它,请求还是会进来 + */ + int timeout() default 1; + /** + * 时间单位,默认为 SECONDS 秒 + */ + TimeUnit timeUnit() default TimeUnit.SECONDS; + + /** + * 提示信息,正在执行中的提示 + */ + String message() default "重复请求,请稍后重试"; + + /** + * 使用的 Key 解析器 + */ + Class keyResolver() default DefaultIdempotentKeyResolver.class; + /** + * 使用的 Key 参数 + */ + String keyArg() default ""; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/aop/IdempotentAspect.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/aop/IdempotentAspect.java new file mode 100644 index 0000000..9453444 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/aop/IdempotentAspect.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.framework.idempotent.core.aop; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import cn.iocoder.yudao.framework.idempotent.core.redis.IdempotentRedisDAO; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.Map; + +/** + * 拦截声明了 {@link Idempotent} 注解的方法,实现幂等操作 + * + * @author 芋道源码 + */ +@Aspect +@Slf4j +public class IdempotentAspect { + + /** + * IdempotentKeyResolver 集合 + */ + private final Map, IdempotentKeyResolver> keyResolvers; + + private final IdempotentRedisDAO idempotentRedisDAO; + + public IdempotentAspect(List keyResolvers, IdempotentRedisDAO idempotentRedisDAO) { + this.keyResolvers = CollectionUtils.convertMap(keyResolvers, IdempotentKeyResolver::getClass); + this.idempotentRedisDAO = idempotentRedisDAO; + } + + @Before("@annotation(idempotent)") + public void beforePointCut(JoinPoint joinPoint, Idempotent idempotent) { + // 获得 IdempotentKeyResolver + IdempotentKeyResolver keyResolver = keyResolvers.get(idempotent.keyResolver()); + Assert.notNull(keyResolver, "找不到对应的 IdempotentKeyResolver"); + // 解析 Key + String key = keyResolver.resolver(joinPoint, idempotent); + + // 锁定 Key。 + boolean success = idempotentRedisDAO.setIfAbsent(key, idempotent.timeout(), idempotent.timeUnit()); + // 锁定失败,抛出异常 + if (!success) { + log.info("[beforePointCut][方法({}) 参数({}) 存在重复请求]", joinPoint.getSignature().toString(), joinPoint.getArgs()); + throw new ServiceException(GlobalErrorCodeConstants.REPEATED_REQUESTS.getCode(), idempotent.message()); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java new file mode 100644 index 0000000..1617570 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.idempotent.core.keyresolver; + +import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent; +import org.aspectj.lang.JoinPoint; + +/** + * 幂等 Key 解析器接口 + * + * @author 芋道源码 + */ +public interface IdempotentKeyResolver { + + /** + * 解析一个 Key + * + * @param idempotent 幂等注解 + * @param joinPoint AOP 切面 + * @return Key + */ + String resolver(JoinPoint joinPoint, Idempotent idempotent); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java new file mode 100644 index 0000000..5685699 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.idempotent.core.keyresolver.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; +import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import org.aspectj.lang.JoinPoint; + +/** + * 默认幂等 Key 解析器,使用方法名 + 方法参数,组装成一个 Key + * + * 为了避免 Key 过长,使用 MD5 进行“压缩” + * + * @author 芋道源码 + */ +public class DefaultIdempotentKeyResolver implements IdempotentKeyResolver { + + @Override + public String resolver(JoinPoint joinPoint, Idempotent idempotent) { + String methodName = joinPoint.getSignature().toString(); + String argsStr = StrUtil.join(",", joinPoint.getArgs()); + return SecureUtil.md5(methodName + argsStr); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java new file mode 100644 index 0000000..50b4a2c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.framework.idempotent.core.keyresolver.impl; + +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent; +import cn.iocoder.yudao.framework.idempotent.core.keyresolver.IdempotentKeyResolver; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.LocalVariableTableParameterNameDiscoverer; +import org.springframework.core.ParameterNameDiscoverer; +import org.springframework.expression.Expression; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; + +import java.lang.reflect.Method; + +/** + * 基于 Spring EL 表达式, + * + * @author 芋道源码 + */ +public class ExpressionIdempotentKeyResolver implements IdempotentKeyResolver { + + private final ParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); + private final ExpressionParser expressionParser = new SpelExpressionParser(); + + @Override + public String resolver(JoinPoint joinPoint, Idempotent idempotent) { + // 获得被拦截方法参数名列表 + Method method = getMethod(joinPoint); + Object[] args = joinPoint.getArgs(); + String[] parameterNames = this.parameterNameDiscoverer.getParameterNames(method); + // 准备 Spring EL 表达式解析的上下文 + StandardEvaluationContext evaluationContext = new StandardEvaluationContext(); + if (ArrayUtil.isNotEmpty(parameterNames)) { + for (int i = 0; i < parameterNames.length; i++) { + evaluationContext.setVariable(parameterNames[i], args[i]); + } + } + + // 解析参数 + Expression expression = expressionParser.parseExpression(idempotent.keyArg()); + return expression.getValue(evaluationContext, String.class); + } + + private static Method getMethod(JoinPoint point) { + // 处理,声明在类上的情况 + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + if (!method.getDeclaringClass().isInterface()) { + return method; + } + + // 处理,声明在接口上的情况 + try { + return point.getTarget().getClass().getDeclaredMethod( + point.getSignature().getName(), method.getParameterTypes()); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/redis/IdempotentRedisDAO.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/redis/IdempotentRedisDAO.java new file mode 100644 index 0000000..e3a7941 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/core/redis/IdempotentRedisDAO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.idempotent.core.redis; + +import lombok.AllArgsConstructor; +import org.springframework.data.redis.core.StringRedisTemplate; + +import java.util.concurrent.TimeUnit; + +/** + * 幂等 Redis DAO + * + * @author 芋道源码 + */ +@AllArgsConstructor +public class IdempotentRedisDAO { + + /** + * 幂等操作 + * + * KEY 格式:idempotent:%s // 参数为 uuid + * VALUE 格式:String + * 过期时间:不固定 + */ + private static final String IDEMPOTENT = "idempotent:%s"; + + private final StringRedisTemplate redisTemplate; + + public Boolean setIfAbsent(String key, long timeout, TimeUnit timeUnit) { + String redisKey = formatKey(key); + return redisTemplate.opsForValue().setIfAbsent(redisKey, "", timeout, timeUnit); + } + + private static String formatKey(String key) { + return String.format(IDEMPOTENT, key); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/package-info.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/package-info.java new file mode 100644 index 0000000..8cad5fc --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/idempotent/package-info.java @@ -0,0 +1,12 @@ +/** + * 幂等组件,参考 https://github.com/it4alla/idempotent 项目实现 + * 实现原理是,相同参数的方法,一段时间内,有且仅能执行一次。通过这样的方式,保证幂等性。 + * + * 使用场景:例如说,用户快速的双击了某个按钮,前端没有禁用该按钮,导致发送了两次重复的请求。 + * + * 和 it4alla/idempotent 组件的差异点,主要体现在两点: + * 1. 我们去掉了 @Idempotent 注解的 delKey 属性。原因是,本质上 delKey 为 true 时,实现的是分布式锁的能力 + * 此时,我们偏向使用 Lock4j 组件。原则上,一个组件只提供一种单一的能力。 + * 2. 考虑到组件的通用性,我们并未像 it4alla/idempotent 组件一样使用 Redisson RMap 结构,而是直接使用 Redis 的 String 数据格式。 + */ +package cn.iocoder.yudao.framework.idempotent; diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/config/YudaoLock4jConfiguration.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/config/YudaoLock4jConfiguration.java new file mode 100644 index 0000000..f9b883c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/config/YudaoLock4jConfiguration.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.framework.lock4j.config; + +import cn.iocoder.yudao.framework.lock4j.core.DefaultLockFailureStrategy; +import com.baomidou.lock.spring.boot.autoconfigure.LockAutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; + +@AutoConfiguration(before = LockAutoConfiguration.class) +@ConditionalOnClass(name = "com.baomidou.lock.annotation.Lock4j") +public class YudaoLock4jConfiguration { + + @Bean + public DefaultLockFailureStrategy lockFailureStrategy() { + return new DefaultLockFailureStrategy(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/DefaultLockFailureStrategy.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/DefaultLockFailureStrategy.java new file mode 100644 index 0000000..2cea08b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/DefaultLockFailureStrategy.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.lock4j.core; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import com.baomidou.lock.LockFailureStrategy; +import lombok.extern.slf4j.Slf4j; + +import java.lang.reflect.Method; + +/** + * 自定义获取锁失败策略,抛出 {@link ServiceException} 异常 + */ +@Slf4j +public class DefaultLockFailureStrategy implements LockFailureStrategy { + + @Override + public void onLockFailure(String key, Method method, Object[] arguments) { + log.debug("[onLockFailure][线程:{} 获取锁失败,key:{} 获取失败:{} ]", Thread.currentThread().getName(), key, arguments); + throw new ServiceException(GlobalErrorCodeConstants.LOCKED); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/Lock4jRedisKeyConstants.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/Lock4jRedisKeyConstants.java new file mode 100644 index 0000000..693d052 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/core/Lock4jRedisKeyConstants.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.framework.lock4j.core; + +/** + * Lock4j Redis Key 枚举类 + * + * @author 芋道源码 + */ +public interface Lock4jRedisKeyConstants { + + /** + * 分布式锁 + * + * KEY 格式:lock4j:%s // 参数来自 DefaultLockKeyBuilder 类 + * VALUE 数据格式:HASH // RLock.class:Redisson 的 Lock 锁,使用 Hash 数据结构 + * 过期时间:不固定 + */ + String LOCK4J = "lock4j:%s"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/package-info.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/package-info.java new file mode 100644 index 0000000..267b951 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/lock4j/package-info.java @@ -0,0 +1,4 @@ +/** + * 分布式锁组件,使用 https://gitee.com/baomidou/lock4j 开源项目 + */ +package cn.iocoder.yudao.framework.lock4j; diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/package-info.java b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/package-info.java new file mode 100644 index 0000000..649e8a0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/package-info.java @@ -0,0 +1,9 @@ +/** + * 使用 Resilience4j 组件,实现服务保障,包括: + * 1. 熔断器 + * 2. 限流器 + * 3. 舱壁隔离 + * 4. 重试 + * 5. 限时器 + */ +package cn.iocoder.yudao.framework.resilience4j; diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/《芋道 Spring Boot 服务容错 Resilience4j 入门》.md b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/《芋道 Spring Boot 服务容错 Resilience4j 入门》.md new file mode 100644 index 0000000..8d6d033 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/java/cn/iocoder/yudao/framework/resilience4j/《芋道 Spring Boot 服务容错 Resilience4j 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-framework/yudao-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..be5c099 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.idempotent.config.YudaoIdempotentConfiguration +cn.iocoder.yudao.framework.lock4j.config.YudaoLock4jConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-redis/pom.xml b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml new file mode 100644 index 0000000..8f4e580 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml @@ -0,0 +1,41 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-redis + jar + + ${project.artifactId} + Redis 封装拓展 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.redisson + redisson-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-cache + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java new file mode 100644 index 0000000..9e84c4a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.framework.redis.config; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.redis.core.TimeoutRedisCacheManager; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.cache.CacheProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.data.redis.cache.BatchStrategies; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.util.StringUtils; + +import java.util.Objects; + +import static cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration.buildRedisSerializer; + +/** + * Cache 配置类,基于 Redis 实现 + */ +@AutoConfiguration +@EnableConfigurationProperties({CacheProperties.class, YudaoCacheProperties.class}) +@EnableCaching +public class YudaoCacheAutoConfiguration { + + /** + * RedisCacheConfiguration Bean + *

    + * 参考 org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration 的 createConfiguration 方法 + */ + @Bean + @Primary + public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); + // 设置使用 : 单冒号,而不是双 :: 冒号,避免 Redis Desktop Manager 多余空格 + // 详细可见 https://blog.csdn.net/chuixue24/article/details/103928965 博客 + // 再次修复单冒号,而不是双 :: 冒号问题,Issues 详情:https://gitee.com/zhijiantianya/yudao-cloud/issues/I86VY2 + config = config.computePrefixWith(cacheName -> { + String keyPrefix = cacheProperties.getRedis().getKeyPrefix(); + if (StringUtils.hasText(keyPrefix)) { + keyPrefix = keyPrefix.lastIndexOf(StrUtil.COLON) == -1 ? keyPrefix + StrUtil.COLON : keyPrefix; + return keyPrefix + cacheName + StrUtil.COLON; + } + return cacheName + StrUtil.COLON; + }); + // 设置使用 JSON 序列化方式 + config = config.serializeValuesWith( + RedisSerializationContext.SerializationPair.fromSerializer(buildRedisSerializer())); + + // 设置 CacheProperties.Redis 的属性 + CacheProperties.Redis redisProperties = cacheProperties.getRedis(); + if (redisProperties.getTimeToLive() != null) { + config = config.entryTtl(redisProperties.getTimeToLive()); + } + if (!redisProperties.isCacheNullValues()) { + config = config.disableCachingNullValues(); + } + if (!redisProperties.isUseKeyPrefix()) { + config = config.disableKeyPrefix(); + } + return config; + } + + @Bean + public RedisCacheManager redisCacheManager(RedisTemplate redisTemplate, + RedisCacheConfiguration redisCacheConfiguration, + YudaoCacheProperties yudaoCacheProperties) { + // 创建 RedisCacheWriter 对象 + RedisConnectionFactory connectionFactory = Objects.requireNonNull(redisTemplate.getConnectionFactory()); + RedisCacheWriter cacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory, + BatchStrategies.scan(yudaoCacheProperties.getRedisScanBatchSize())); + // 创建 TenantRedisCacheManager 对象 + return new TimeoutRedisCacheManager(cacheWriter, redisCacheConfiguration); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheProperties.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheProperties.java new file mode 100644 index 0000000..c51219d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheProperties.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.redis.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +/** + * Cache 配置项 + * + * @author Wanwan + */ +@ConfigurationProperties("yudao.cache") +@Data +@Validated +public class YudaoCacheProperties { + + /** + * {@link #redisScanBatchSize} 默认值 + */ + private static final Integer REDIS_SCAN_BATCH_SIZE_DEFAULT = 30; + + /** + * redis scan 一次返回数量 + */ + private Integer redisScanBatchSize = REDIS_SCAN_BATCH_SIZE_DEFAULT; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java new file mode 100644 index 0000000..5904a3a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.framework.redis.config; + +import cn.hutool.core.util.ReflectUtil; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; + +/** + * Redis 配置类 + */ +@AutoConfiguration +public class YudaoRedisAutoConfiguration { + + /** + * 创建 RedisTemplate Bean,使用 JSON 序列化方式 + */ + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + // 创建 RedisTemplate 对象 + RedisTemplate template = new RedisTemplate<>(); + // 设置 RedisConnection 工厂。😈 它就是实现多种 Java Redis 客户端接入的秘密工厂。感兴趣的胖友,可以自己去撸下。 + template.setConnectionFactory(factory); + // 使用 String 序列化方式,序列化 KEY 。 + template.setKeySerializer(RedisSerializer.string()); + template.setHashKeySerializer(RedisSerializer.string()); + // 使用 JSON 序列化方式(库是 Jackson ),序列化 VALUE 。 + template.setValueSerializer(buildRedisSerializer()); + template.setHashValueSerializer(buildRedisSerializer()); + return template; + } + + public static RedisSerializer buildRedisSerializer() { + RedisSerializer json = RedisSerializer.json(); + // 解决 LocalDateTime 的序列化 + ObjectMapper objectMapper = (ObjectMapper) ReflectUtil.getFieldValue(json, "mapper"); + objectMapper.registerModules(new JavaTimeModule()); + return json; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/core/TimeoutRedisCacheManager.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/core/TimeoutRedisCacheManager.java new file mode 100644 index 0000000..ff08282 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/core/TimeoutRedisCacheManager.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.framework.redis.core; + + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.redis.cache.RedisCache; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; + +import java.time.Duration; + +/** + * 支持自定义过期时间的 {@link RedisCacheManager} 实现类 + * + * 在 {@link Cacheable#cacheNames()} 格式为 "key#ttl" 时,# 后面的 ttl 为过期时间。 + * 单位为最后一个字母(支持的单位有:d 天,h 小时,m 分钟,s 秒),默认单位为 s 秒 + * + * @author 芋道源码 + */ +public class TimeoutRedisCacheManager extends RedisCacheManager { + + private static final String SPLIT = "#"; + + public TimeoutRedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) { + super(cacheWriter, defaultCacheConfiguration); + } + + @Override + protected RedisCache createRedisCache(String name, RedisCacheConfiguration cacheConfig) { + if (StrUtil.isEmpty(name)) { + return super.createRedisCache(name, cacheConfig); + } + // 如果使用 # 分隔,大小不为 2,则说明不使用自定义过期时间 + String[] names = StrUtil.splitToArray(name, SPLIT); + if (names.length != 2) { + return super.createRedisCache(name, cacheConfig); + } + + // 核心:通过修改 cacheConfig 的过期时间,实现自定义过期时间 + if (cacheConfig != null) { + // 移除 # 后面的 : 以及后面的内容,避免影响解析 + names[1] = StrUtil.subBefore(names[1], StrUtil.COLON, false); + // 解析时间 + Duration duration = parseDuration(names[1]); + cacheConfig = cacheConfig.entryTtl(duration); + } + return super.createRedisCache(name, cacheConfig); + } + + /** + * 解析过期时间 Duration + * + * @param ttlStr 过期时间字符串 + * @return 过期时间 Duration + */ + private Duration parseDuration(String ttlStr) { + String timeUnit = StrUtil.subSuf(ttlStr, -1); + switch (timeUnit) { + case "d": + return Duration.ofDays(removeDurationSuffix(ttlStr)); + case "h": + return Duration.ofHours(removeDurationSuffix(ttlStr)); + case "m": + return Duration.ofMinutes(removeDurationSuffix(ttlStr)); + case "s": + return Duration.ofSeconds(removeDurationSuffix(ttlStr)); + default: + return Duration.ofSeconds(Long.parseLong(ttlStr)); + } + } + + /** + * 移除多余的后缀,返回具体的时间 + * + * @param ttlStr 过期时间字符串 + * @return 时间 + */ + private Long removeDurationSuffix(String ttlStr) { + return NumberUtil.parseLong(StrUtil.sub(ttlStr, 0, ttlStr.length() - 1)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/package-info.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/package-info.java new file mode 100644 index 0000000..bd8a5d3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/package-info.java @@ -0,0 +1,4 @@ +/** + * 采用 Spring Data Redis 操作 Redis,底层使用 Redisson 作为客户端 + */ +package cn.iocoder.yudao.framework.redis; diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..02d4a68 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration +cn.iocoder.yudao.framework.redis.config.YudaoCacheAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-security/pom.xml b/yudao-framework/yudao-spring-boot-starter-security/pom.xml new file mode 100644 index 0000000..e76e57e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/pom.xml @@ -0,0 +1,71 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-security + jar + + ${project.artifactId} + + 1. security:用户的认证、权限的校验,实现「谁」可以做「什么事」 + 2. operatelog:操作日志,实现「谁」在「什么时间」对「什么」做了「什么事」 + + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.springframework.boot + spring-boot-starter-security + + + + + com.google.guava + guava + + + + + + io.github.mouzt + bizlog-sdk + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogV2Configuration.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogV2Configuration.java new file mode 100644 index 0000000..866f94f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/config/YudaoOperateLogV2Configuration.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.operatelog.config; + +import cn.iocoder.yudao.framework.operatelog.core.service.LogRecordServiceImpl; +import com.mzt.logapi.service.ILogRecordService; +import com.mzt.logapi.starter.annotation.EnableLogRecord; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; + +/** + * 操作日志配置类 + * + * @author HUIHUI + */ +@EnableLogRecord(tenant = "") // 貌似用不上 tenant 这玩意给个空好啦 +@AutoConfiguration +@Slf4j +public class YudaoOperateLogV2Configuration { + + @Bean + @Primary + public ILogRecordService iLogRecordServiceImpl() { + return new LogRecordServiceImpl(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java new file mode 100644 index 0000000..97ce4ea --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位,无特殊作用 + */ +package cn.iocoder.yudao.framework.operatelog.core; \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/LogRecordServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/LogRecordServiceImpl.java new file mode 100644 index 0000000..e390b24 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/LogRecordServiceImpl.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.framework.operatelog.core.service; + +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.api.logger.OperateLogApi; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; +import com.mzt.logapi.beans.LogRecord; +import com.mzt.logapi.service.ILogRecordService; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * 操作日志 ILogRecordService 实现类 + * + * 基于 {@link OperateLogApi} 实现,记录操作日志 + * + * @author HUIHUI + */ +@Slf4j +public class LogRecordServiceImpl implements ILogRecordService { + + @Resource + private OperateLogApi operateLogApi; + + @Override + public void record(LogRecord logRecord) { + // 1. 补全通用字段 + OperateLogV2CreateReqDTO reqDTO = new OperateLogV2CreateReqDTO(); + reqDTO.setTraceId(TracerUtils.getTraceId()); + // 补充用户信息 + fillUserFields(reqDTO); + // 补全模块信息 + fillModuleFields(reqDTO, logRecord); + // 补全请求信息 + fillRequestFields(reqDTO); + + // 2. 异步记录日志 + operateLogApi.createOperateLogV2(reqDTO); + // TODO 测试结束删除或搞个开关 + log.info("操作日志 ===> {}", reqDTO); + } + + private static void fillUserFields(OperateLogV2CreateReqDTO reqDTO) { + // 使用 SecurityFrameworkUtils。因为要考虑,rpc、mq、job,它其实不是 web; + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (loginUser == null) { + return; + } + reqDTO.setUserId(loginUser.getId()); + reqDTO.setUserType(loginUser.getUserType()); + } + + public static void fillModuleFields(OperateLogV2CreateReqDTO reqDTO, LogRecord logRecord) { + reqDTO.setType(logRecord.getType()); // 大模块类型,例如:CRM 客户 + reqDTO.setSubType(logRecord.getSubType());// 操作名称,例如:转移客户 + reqDTO.setBizId(Long.parseLong(logRecord.getBizNo())); // 业务编号,例如:客户编号 + reqDTO.setAction(logRecord.getAction());// 操作内容,例如:修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 + reqDTO.setExtra(logRecord.getExtra()); // 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ),例如说,记录订单编号,{ orderId: "1"} + } + + private static void fillRequestFields(OperateLogV2CreateReqDTO reqDTO) { + // 获得 Request 对象 + HttpServletRequest request = ServletUtils.getRequest(); + if (request == null) { + return; + } + // 补全请求信息 + reqDTO.setRequestMethod(request.getMethod()); + reqDTO.setRequestUrl(request.getRequestURI()); + reqDTO.setUserIp(ServletUtils.getClientIP(request)); + reqDTO.setUserAgent(ServletUtils.getUserAgent(request)); + } + + @Override + public List queryLog(String bizNo, String type) { + throw new UnsupportedOperationException("使用 OperateLogApi 进行操作日志的查询"); + } + + @Override + public List queryLogByBizNo(String bizNo, String type, String subType) { + throw new UnsupportedOperationException("使用 OperateLogApi 进行操作日志的查询"); + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java new file mode 100644 index 0000000..c90139b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/package-info.java @@ -0,0 +1,7 @@ +/** + * 基于 mzt-log 框架 + * 实现操作日志功能 + * + * @author HUIHUI + */ +package cn.iocoder.yudao.framework.operatelog; diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/AuthorizeRequestsCustomizer.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/AuthorizeRequestsCustomizer.java new file mode 100644 index 0000000..5c86290 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/AuthorizeRequestsCustomizer.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.security.config; + +import cn.iocoder.yudao.framework.web.config.WebProperties; +import org.springframework.core.Ordered; +import org.springframework.security.config.Customizer; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; + +import javax.annotation.Resource; + +/** + * 自定义的 URL 的安全配置 + * 目的:每个 Maven Module 可以自定义规则! + * + * @author 芋道源码 + */ +public abstract class AuthorizeRequestsCustomizer + implements Customizer.ExpressionInterceptUrlRegistry>, Ordered { + + @Resource + private WebProperties webProperties; + + protected String buildAdminApi(String url) { + return webProperties.getAdminApi().getPrefix() + url; + } + + protected String buildAppApi(String url) { + return webProperties.getAppApi().getPrefix() + url; + } + + @Override + public int getOrder() { + return 0; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/SecurityProperties.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/SecurityProperties.java new file mode 100644 index 0000000..3d19f32 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/SecurityProperties.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.framework.security.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Collections; +import java.util.List; + +@ConfigurationProperties(prefix = "yudao.security") +@Validated +@Data +public class SecurityProperties { + + /** + * HTTP 请求时,访问令牌的请求 Header + */ + @NotEmpty(message = "Token Header 不能为空") + private String tokenHeader = "Authorization"; + /** + * HTTP 请求时,访问令牌的请求参数 + * + * 初始目的:解决 WebSocket 无法通过 header 传参,只能通过 token 参数拼接 + */ + @NotEmpty(message = "Token Parameter 不能为空") + private String tokenParameter = "token"; + + /** + * mock 模式的开关 + */ + @NotNull(message = "mock 模式的开关不能为空") + private Boolean mockEnable = false; + /** + * mock 模式的密钥 + * 一定要配置密钥,保证安全性 + */ + @NotEmpty(message = "mock 模式的密钥不能为空") // 这里设置了一个默认值,因为实际上只有 mockEnable 为 true 时才需要配置。 + private String mockSecret = "test"; + + /** + * 免登录的 URL 列表 + */ + private List permitAllUrls = Collections.emptyList(); + + /** + * PasswordEncoder 加密复杂度,越高开销越大 + */ + private Integer passwordEncoderLength = 4; +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java new file mode 100644 index 0000000..47c3634 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.framework.security.config; + +import cn.iocoder.yudao.framework.security.core.aop.PreAuthenticatedAspect; +import cn.iocoder.yudao.framework.security.core.context.TransmittableThreadLocalSecurityContextHolderStrategy; +import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter; +import cn.iocoder.yudao.framework.security.core.handler.AccessDeniedHandlerImpl; +import cn.iocoder.yudao.framework.security.core.handler.AuthenticationEntryPointImpl; +import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService; +import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkServiceImpl; +import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; +import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import org.springframework.beans.factory.config.MethodInvokingFactoryBean; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.access.AccessDeniedHandler; + +import javax.annotation.Resource; + +/** + * Spring Security 自动配置类,主要用于相关组件的配置 + * + * 注意,不能和 {@link YudaoWebSecurityConfigurerAdapter} 用一个,原因是会导致初始化报错。 + * 参见 https://stackoverflow.com/questions/53847050/spring-boot-delegatebuilder-cannot-be-null-on-autowiring-authenticationmanager 文档。 + * + * @author 芋道源码 + */ +@AutoConfiguration +@EnableConfigurationProperties(SecurityProperties.class) +public class YudaoSecurityAutoConfiguration { + + @Resource + private SecurityProperties securityProperties; + + /** + * 处理用户未登录拦截的切面的 Bean + */ + @Bean + public PreAuthenticatedAspect preAuthenticatedAspect() { + return new PreAuthenticatedAspect(); + } + + /** + * 认证失败处理类 Bean + */ + @Bean + public AuthenticationEntryPoint authenticationEntryPoint() { + return new AuthenticationEntryPointImpl(); + } + + /** + * 权限不够处理器 Bean + */ + @Bean + public AccessDeniedHandler accessDeniedHandler() { + return new AccessDeniedHandlerImpl(); + } + + /** + * Spring Security 加密器 + * 考虑到安全性,这里采用 BCryptPasswordEncoder 加密器 + * + * @see Password Encoding with Spring Security + */ + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(securityProperties.getPasswordEncoderLength()); + } + + /** + * Token 认证过滤器 Bean + */ + @Bean + public TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler, + OAuth2TokenApi oauth2TokenApi) { + return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi); + } + + @Bean("ss") // 使用 Spring Security 的缩写,方便使用 + public SecurityFrameworkService securityFrameworkService(PermissionApi permissionApi) { + return new SecurityFrameworkServiceImpl(permissionApi); + } + + /** + * 声明调用 {@link SecurityContextHolder#setStrategyName(String)} 方法, + * 设置使用 {@link TransmittableThreadLocalSecurityContextHolderStrategy} 作为 Security 的上下文策略 + */ + @Bean + public MethodInvokingFactoryBean securityContextHolderMethodInvokingFactoryBean() { + MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean(); + methodInvokingFactoryBean.setTargetClass(SecurityContextHolder.class); + methodInvokingFactoryBean.setTargetMethod("setStrategyName"); + methodInvokingFactoryBean.setArguments(TransmittableThreadLocalSecurityContextHolderStrategy.class.getName()); + return methodInvokingFactoryBean; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoWebSecurityConfigurerAdapter.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoWebSecurityConfigurerAdapter.java new file mode 100644 index 0000000..fd09097 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoWebSecurityConfigurerAdapter.java @@ -0,0 +1,197 @@ +package cn.iocoder.yudao.framework.security.config; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 自定义的 Spring Security 配置适配器实现 + * + * @author 芋道源码 + */ +@AutoConfiguration +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) +public class YudaoWebSecurityConfigurerAdapter { + + @Resource + private WebProperties webProperties; + @Resource + private SecurityProperties securityProperties; + + /** + * 认证失败处理类 Bean + */ + @Resource + private AuthenticationEntryPoint authenticationEntryPoint; + /** + * 权限不够处理器 Bean + */ + @Resource + private AccessDeniedHandler accessDeniedHandler; + /** + * Token 认证过滤器 Bean + */ + @Resource + private TokenAuthenticationFilter authenticationTokenFilter; + + /** + * 自定义的权限映射 Bean 们 + * + * @see #filterChain(HttpSecurity) + */ + @Resource + private List authorizeRequestsCustomizers; + + @Resource + private ApplicationContext applicationContext; + + /** + * 由于 Spring Security 创建 AuthenticationManager 对象时,没声明 @Bean 注解,导致无法被注入 + * 通过覆写父类的该方法,添加 @Bean 注解,解决该问题 + */ + @Bean + public AuthenticationManager authenticationManagerBean(AuthenticationConfiguration authenticationConfiguration) throws Exception { + return authenticationConfiguration.getAuthenticationManager(); + } + + /** + * 配置 URL 的安全配置 + * + * anyRequest | 匹配所有请求路径 + * access | SpringEl表达式结果为true时可以访问 + * anonymous | 匿名可以访问 + * denyAll | 用户不能访问 + * fullyAuthenticated | 用户完全认证可以访问(非remember-me下自动登录) + * hasAnyAuthority | 如果有参数,参数表示权限,则其中任何一个权限可以访问 + * hasAnyRole | 如果有参数,参数表示角色,则其中任何一个角色可以访问 + * hasAuthority | 如果有参数,参数表示权限,则其权限可以访问 + * hasIpAddress | 如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问 + * hasRole | 如果有参数,参数表示角色,则其角色可以访问 + * permitAll | 用户可以任意访问 + * rememberMe | 允许通过remember-me登录的用户访问 + * authenticated | 用户登录后可访问 + */ + @Bean + protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + // 登出 + httpSecurity + // 开启跨域 + .cors().and() + // CSRF 禁用,因为不使用 Session + .csrf().disable() + // 基于 token 机制,所以不需要 Session + .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() + .headers().frameOptions().disable().and() + // 一堆自定义的 Spring Security 处理器 + .exceptionHandling().authenticationEntryPoint(authenticationEntryPoint) + .accessDeniedHandler(accessDeniedHandler); + // 登录、登录暂时不使用 Spring Security 的拓展点,主要考虑一方面拓展多用户、多种登录方式相对复杂,一方面用户的学习成本较高 + + // 获得 @PermitAll 带来的 URL 列表,免登录 + Multimap permitAllUrls = getPermitAllUrlsFromAnnotations(); + // 设置每个请求的权限 + httpSecurity + // ①:全局共享规则 + .authorizeRequests() + // 1.1 静态资源,可匿名访问 + .antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll() + // 1.2 设置 @PermitAll 无需认证 + .antMatchers(HttpMethod.GET, permitAllUrls.get(HttpMethod.GET).toArray(new String[0])).permitAll() + .antMatchers(HttpMethod.POST, permitAllUrls.get(HttpMethod.POST).toArray(new String[0])).permitAll() + .antMatchers(HttpMethod.PUT, permitAllUrls.get(HttpMethod.PUT).toArray(new String[0])).permitAll() + .antMatchers(HttpMethod.DELETE, permitAllUrls.get(HttpMethod.DELETE).toArray(new String[0])).permitAll() + // 1.3 基于 yudao.security.permit-all-urls 无需认证 + .antMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll() + // 1.4 设置 App API 无需认证 + .antMatchers(buildAppApi("/**")).permitAll() + // 1.5 验证码captcha 允许匿名访问 + .antMatchers("/captcha/get", "/captcha/check").permitAll() + // ②:每个项目的自定义规则 + .and().authorizeRequests(registry -> // 下面,循环设置自定义规则 + authorizeRequestsCustomizers.forEach(customizer -> customizer.customize(registry))) + // ③:兜底规则,必须认证 + .authorizeRequests() + .anyRequest().authenticated() + ; + + // 添加 Token Filter + httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); + return httpSecurity.build(); + } + + private String buildAppApi(String url) { + return webProperties.getAppApi().getPrefix() + url; + } + + private Multimap getPermitAllUrlsFromAnnotations() { + Multimap result = HashMultimap.create(); + // 获得接口对应的 HandlerMethod 集合 + RequestMappingHandlerMapping requestMappingHandlerMapping = (RequestMappingHandlerMapping) + applicationContext.getBean("requestMappingHandlerMapping"); + Map handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods(); + // 获得有 @PermitAll 注解的接口 + for (Map.Entry entry : handlerMethodMap.entrySet()) { + HandlerMethod handlerMethod = entry.getValue(); + if (!handlerMethod.hasMethodAnnotation(PermitAll.class)) { + continue; + } + if (entry.getKey().getPatternsCondition() == null) { + continue; + } + Set urls = entry.getKey().getPatternsCondition().getPatterns(); + // 特殊:使用 @RequestMapping 注解,并且未写 method 属性,此时认为都需要免登录 + Set methods = entry.getKey().getMethodsCondition().getMethods(); + if (CollUtil.isEmpty(methods)) { // + result.putAll(HttpMethod.GET, urls); + result.putAll(HttpMethod.POST, urls); + result.putAll(HttpMethod.PUT, urls); + result.putAll(HttpMethod.DELETE, urls); + continue; + } + // 根据请求方法,添加到 result 结果 + entry.getKey().getMethodsCondition().getMethods().forEach(requestMethod -> { + switch (requestMethod) { + case GET: + result.putAll(HttpMethod.GET, urls); + break; + case POST: + result.putAll(HttpMethod.POST, urls); + break; + case PUT: + result.putAll(HttpMethod.PUT, urls); + break; + case DELETE: + result.putAll(HttpMethod.DELETE, urls); + break; + } + }); + } + return result; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java new file mode 100644 index 0000000..50523ca --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.framework.security.core; + +import cn.hutool.core.map.MapUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 登录用户信息 + * + * @author 芋道源码 + */ +@Data +public class LoginUser { + + /** + * 用户编号 + */ + private Long id; + /** + * 用户类型 + * + * 关联 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 租户编号 + */ + private Long tenantId; + /** + * 授权范围 + */ + private List scopes; + + // ========== 上下文 ========== + /** + * 上下文字段,不进行持久化 + * + * 1. 用于基于 LoginUser 维度的临时缓存 + */ + @JsonIgnore + private Map context; + + public void setContext(String key, Object value) { + if (context == null) { + context = new HashMap<>(); + } + context.put(key, value); + } + + public T getContext(String key, Class type) { + return MapUtil.get(context, key, type); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/annotations/PreAuthenticated.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/annotations/PreAuthenticated.java new file mode 100644 index 0000000..efc85c6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/annotations/PreAuthenticated.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.framework.security.core.annotations; + +import java.lang.annotation.*; + +/** + * 声明用户需要登录 + * + * 为什么不使用 {@link org.springframework.security.access.prepost.PreAuthorize} 注解,原因是不通过时,抛出的是认证不通过,而不是未登录 + * + * @author 芋道源码 + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +@Documented +public @interface PreAuthenticated { +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/aop/PreAuthenticatedAspect.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/aop/PreAuthenticatedAspect.java new file mode 100644 index 0000000..808afc3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/aop/PreAuthenticatedAspect.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.security.core.aop; + +import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; + +@Aspect +@Slf4j +public class PreAuthenticatedAspect { + + @Around("@annotation(preAuthenticated)") + public Object around(ProceedingJoinPoint joinPoint, PreAuthenticated preAuthenticated) throws Throwable { + if (SecurityFrameworkUtils.getLoginUser() == null) { + throw exception(UNAUTHORIZED); + } + return joinPoint.proceed(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java new file mode 100644 index 0000000..1bdbe71 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.framework.security.core.context; + +import com.alibaba.ttl.TransmittableThreadLocal; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolderStrategy; +import org.springframework.security.core.context.SecurityContextImpl; +import org.springframework.util.Assert; + +/** + * 基于 TransmittableThreadLocal 实现的 Security Context 持有者策略 + * 目的是,避免 @Async 等异步执行时,原生 ThreadLocal 的丢失问题 + * + * @author 芋道源码 + */ +public class TransmittableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { + + /** + * 使用 TransmittableThreadLocal 作为上下文 + */ + private static final ThreadLocal CONTEXT_HOLDER = new TransmittableThreadLocal<>(); + + @Override + public void clearContext() { + CONTEXT_HOLDER.remove(); + } + + @Override + public SecurityContext getContext() { + SecurityContext ctx = CONTEXT_HOLDER.get(); + if (ctx == null) { + ctx = createEmptyContext(); + CONTEXT_HOLDER.set(ctx); + } + return ctx; + } + + @Override + public void setContext(SecurityContext context) { + Assert.notNull(context, "Only non-null SecurityContext instances are permitted"); + CONTEXT_HOLDER.set(context); + } + + @Override + public SecurityContext createEmptyContext() { + return new SecurityContextImpl(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/filter/TokenAuthenticationFilter.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/filter/TokenAuthenticationFilter.java new file mode 100644 index 0000000..544082d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/filter/TokenAuthenticationFilter.java @@ -0,0 +1,117 @@ +package cn.iocoder.yudao.framework.security.core.filter; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.security.config.SecurityProperties; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Token 过滤器,验证 token 的有效性 + * 验证通过后,获得 {@link LoginUser} 信息,并加入到 Spring Security 上下文 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class TokenAuthenticationFilter extends OncePerRequestFilter { + + private final SecurityProperties securityProperties; + + private final GlobalExceptionHandler globalExceptionHandler; + + private final OAuth2TokenApi oauth2TokenApi; + + @Override + @SuppressWarnings("NullableProblems") + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws ServletException, IOException { + String token = SecurityFrameworkUtils.obtainAuthorization(request, + securityProperties.getTokenHeader(), securityProperties.getTokenParameter()); + if (StrUtil.isNotEmpty(token)) { + Integer userType = WebFrameworkUtils.getLoginUserType(request); + try { + // 1.1 基于 token 构建登录用户 + LoginUser loginUser = buildLoginUserByToken(token, userType); + // 1.2 模拟 Login 功能,方便日常开发调试 + if (loginUser == null) { + loginUser = mockLoginUser(request, token, userType); + } + + // 2. 设置当前用户 + if (loginUser != null) { + SecurityFrameworkUtils.setLoginUser(loginUser, request); + } + } catch (Throwable ex) { + CommonResult result = globalExceptionHandler.allExceptionHandler(request, ex); + ServletUtils.writeJSON(response, result); + return; + } + } + + // 继续过滤链 + chain.doFilter(request, response); + } + + private LoginUser buildLoginUserByToken(String token, Integer userType) { + try { + OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token); + if (accessToken == null) { + return null; + } + // 用户类型不匹配,无权限 + // 注意:只有 /admin-api/* 和 /app-api/* 有 userType,才需要比对用户类型 + // 类似 WebSocket 的 /ws/* 连接地址,是不需要比对用户类型的 + if (userType != null + && ObjectUtil.notEqual(accessToken.getUserType(), userType)) { + throw new AccessDeniedException("错误的用户类型"); + } + // 构建登录用户 + return new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType()) + .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes()); + } catch (ServiceException serviceException) { + // 校验 Token 不通过时,考虑到一些接口是无需登录的,所以直接返回 null 即可 + return null; + } + } + + /** + * 模拟登录用户,方便日常开发调试 + * + * 注意,在线上环境下,一定要关闭该功能!!! + * + * @param request 请求 + * @param token 模拟的 token,格式为 {@link SecurityProperties#getMockSecret()} + 用户编号 + * @param userType 用户类型 + * @return 模拟的 LoginUser + */ + private LoginUser mockLoginUser(HttpServletRequest request, String token, Integer userType) { + if (!securityProperties.getMockEnable()) { + return null; + } + // 必须以 mockSecret 开头 + if (!token.startsWith(securityProperties.getMockSecret())) { + return null; + } + // 构建模拟用户 + Long userId = Long.valueOf(token.substring(securityProperties.getMockSecret().length())); + return new LoginUser().setId(userId).setUserType(userType) + .setTenantId(WebFrameworkUtils.getTenantId(request)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AccessDeniedHandlerImpl.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AccessDeniedHandlerImpl.java new file mode 100644 index 0000000..33f3f14 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AccessDeniedHandlerImpl.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.framework.security.core.handler; + +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.security.web.access.ExceptionTranslationFilter; +import org.springframework.stereotype.Component; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.FORBIDDEN; +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; + +/** + * 访问一个需要认证的 URL 资源,已经认证(登录)但是没有权限的情况下,返回 {@link GlobalErrorCodeConstants#FORBIDDEN} 错误码。 + * + * 补充:Spring Security 通过 {@link ExceptionTranslationFilter#handleAccessDeniedException(HttpServletRequest, HttpServletResponse, FilterChain, AccessDeniedException)} 方法,调用当前类 + * + * @author 芋道源码 + */ +@Slf4j +@SuppressWarnings("JavadocReference") +public class AccessDeniedHandlerImpl implements AccessDeniedHandler { + + @Override + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) + throws IOException, ServletException { + // 打印 warn 的原因是,不定期合并 warn,看看有没恶意破坏 + log.warn("[commence][访问 URL({}) 时,用户({}) 权限不够]", request.getRequestURI(), + SecurityFrameworkUtils.getLoginUserId(), e); + // 返回 403 + ServletUtils.writeJSON(response, CommonResult.error(FORBIDDEN)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AuthenticationEntryPointImpl.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AuthenticationEntryPointImpl.java new file mode 100644 index 0000000..0a451e0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/handler/AuthenticationEntryPointImpl.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.security.core.handler; + +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.access.ExceptionTranslationFilter; + +import javax.servlet.FilterChain; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED; + +/** + * 访问一个需要认证的 URL 资源,但是此时自己尚未认证(登录)的情况下,返回 {@link GlobalErrorCodeConstants#UNAUTHORIZED} 错误码,从而使前端重定向到登录页 + * + * 补充:Spring Security 通过 {@link ExceptionTranslationFilter#sendStartAuthentication(HttpServletRequest, HttpServletResponse, FilterChain, AuthenticationException)} 方法,调用当前类 + * + * @author ruoyi + */ +@Slf4j +@SuppressWarnings("JavadocReference") // 忽略文档引用报错 +public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint { + + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) { + log.debug("[commence][访问 URL({}) 时,没有登录]", request.getRequestURI(), e); + // 返回 401 + ServletUtils.writeJSON(response, CommonResult.error(UNAUTHORIZED)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java new file mode 100644 index 0000000..bf2f7f3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkService.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.framework.security.core.service; + +/** + * Security 框架 Service 接口,定义权限相关的校验操作 + * + * @author 芋道源码 + */ +public interface SecurityFrameworkService { + + /** + * 判断是否有权限 + * + * @param permission 权限 + * @return 是否 + */ + boolean hasPermission(String permission); + + /** + * 判断是否有权限,任一一个即可 + * + * @param permissions 权限 + * @return 是否 + */ + boolean hasAnyPermissions(String... permissions); + + /** + * 判断是否有角色 + * + * 注意,角色使用的是 SysRoleDO 的 code 标识 + * + * @param role 角色 + * @return 是否 + */ + boolean hasRole(String role); + + /** + * 判断是否有角色,任一一个即可 + * + * @param roles 角色数组 + * @return 是否 + */ + boolean hasAnyRoles(String... roles); + + /** + * 判断是否有授权 + * + * @param scope 授权 + * @return 是否 + */ + boolean hasScope(String scope); + + /** + * 判断是否有授权范围,任一一个即可 + * + * @param scope 授权范围数组 + * @return 是否 + */ + boolean hasAnyScopes(String... scope); +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkServiceImpl.java new file mode 100644 index 0000000..78caade --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkServiceImpl.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.framework.security.core.service; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import lombok.AllArgsConstructor; + +import java.util.Arrays; + +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * 默认的 {@link SecurityFrameworkService} 实现类 + * + * @author 芋道源码 + */ +@AllArgsConstructor +public class SecurityFrameworkServiceImpl implements SecurityFrameworkService { + + private final PermissionApi permissionApi; + + @Override + public boolean hasPermission(String permission) { + return hasAnyPermissions(permission); + } + + @Override + public boolean hasAnyPermissions(String... permissions) { + return permissionApi.hasAnyPermissions(getLoginUserId(), permissions); + } + + @Override + public boolean hasRole(String role) { + return hasAnyRoles(role); + } + + @Override + public boolean hasAnyRoles(String... roles) { + return permissionApi.hasAnyRoles(getLoginUserId(), roles); + } + + @Override + public boolean hasScope(String scope) { + return hasAnyScopes(scope); + } + + @Override + public boolean hasAnyScopes(String... scope) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + if (user == null) { + return false; + } + return CollUtil.containsAny(user.getScopes(), Arrays.asList(scope)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/util/SecurityFrameworkUtils.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/util/SecurityFrameworkUtils.java new file mode 100644 index 0000000..3caa7f9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/util/SecurityFrameworkUtils.java @@ -0,0 +1,117 @@ +package cn.iocoder.yudao.framework.security.core.util; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import org.springframework.lang.Nullable; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import java.util.Collections; + +/** + * 安全服务工具类 + * + * @author 芋道源码 + */ +public class SecurityFrameworkUtils { + + /** + * HEADER 认证头 value 的前缀 + */ + public static final String AUTHORIZATION_BEARER = "Bearer"; + + private SecurityFrameworkUtils() {} + + /** + * 从请求中,获得认证 Token + * + * @param request 请求 + * @param headerName 认证 Token 对应的 Header 名字 + * @param parameterName 认证 Token 对应的 Parameter 名字 + * @return 认证 Token + */ + public static String obtainAuthorization(HttpServletRequest request, + String headerName, String parameterName) { + // 1. 获得 Token。优先级:Header > Parameter + String token = request.getHeader(headerName); + if (StrUtil.isEmpty(token)) { + token = request.getParameter(parameterName); + } + if (!StringUtils.hasText(token)) { + return null; + } + // 2. 去除 Token 中带的 Bearer + int index = token.indexOf(AUTHORIZATION_BEARER + " "); + return index >= 0 ? token.substring(index + 7).trim() : token; + } + + /** + * 获得当前认证信息 + * + * @return 认证信息 + */ + public static Authentication getAuthentication() { + SecurityContext context = SecurityContextHolder.getContext(); + if (context == null) { + return null; + } + return context.getAuthentication(); + } + + /** + * 获取当前用户 + * + * @return 当前用户 + */ + @Nullable + public static LoginUser getLoginUser() { + Authentication authentication = getAuthentication(); + if (authentication == null) { + return null; + } + return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null; + } + + /** + * 获得当前用户的编号,从上下文中 + * + * @return 用户编号 + */ + @Nullable + public static Long getLoginUserId() { + LoginUser loginUser = getLoginUser(); + return loginUser != null ? loginUser.getId() : null; + } + + /** + * 设置当前用户 + * + * @param loginUser 登录用户 + * @param request 请求 + */ + public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) { + // 创建 Authentication,并设置到上下文 + Authentication authentication = buildAuthentication(loginUser, request); + SecurityContextHolder.getContext().setAuthentication(authentication); + + // 额外设置到 request 中,用于 ApiAccessLogFilter 可以获取到用户编号; + // 原因是,Spring Security 的 Filter 在 ApiAccessLogFilter 后面,在它记录访问日志时,线上上下文已经没有用户编号等信息 + WebFrameworkUtils.setLoginUserId(request, loginUser.getId()); + WebFrameworkUtils.setLoginUserType(request, loginUser.getUserType()); + } + + private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) { + // 创建 UsernamePasswordAuthenticationToken 对象 + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( + loginUser, null, Collections.emptyList()); + authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); + return authenticationToken; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/package-info.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/package-info.java new file mode 100644 index 0000000..dc95b4e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/package-info.java @@ -0,0 +1,7 @@ +/** + * 基于 Spring Security 框架 + * 实现安全认证功能 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.security; diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..c66f419 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,3 @@ +cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration +cn.iocoder.yudao.framework.security.config.YudaoWebSecurityConfigurerAdapter +cn.iocoder.yudao.framework.operatelog.config.YudaoOperateLogV2Configuration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-test/pom.xml b/yudao-framework/yudao-spring-boot-starter-test/pom.xml new file mode 100644 index 0000000..04576fe --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/pom.xml @@ -0,0 +1,60 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-test + jar + + ${project.artifactId} + 测试组件,用于单元测试、集成测试 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + org.mockito + mockito-inline + + + org.springframework.boot + spring-boot-starter-test + + + + com.h2database + h2 + + + + com.github.fppt + jedis-mock + + + + uk.co.jemos.podam + podam + + + diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/RedisTestConfiguration.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/RedisTestConfiguration.java new file mode 100644 index 0000000..4622291 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/RedisTestConfiguration.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.test.config; + +import com.github.fppt.jedismock.RedisServer; +import org.springframework.boot.autoconfigure.data.redis.RedisProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; + +import java.io.IOException; + +/** + * Redis 测试 Configuration,主要实现内嵌 Redis 的启动 + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +@Lazy(false) // 禁止延迟加载 +@EnableConfigurationProperties(RedisProperties.class) +public class RedisTestConfiguration { + + /** + * 创建模拟的 Redis Server 服务器 + */ + @Bean + public RedisServer redisServer(RedisProperties properties) throws IOException { + RedisServer redisServer = new RedisServer(properties.getPort()); + // 一次执行多个单元测试时,貌似创建多个 spring 容器,导致不进行 stop。这样,就导致端口被占用,无法启动。。。 + try { + redisServer.start(); + } catch (Exception ignore) {} + return redisServer; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/SqlInitializationTestConfiguration.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/SqlInitializationTestConfiguration.java new file mode 100644 index 0000000..abaec9d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/config/SqlInitializationTestConfiguration.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.test.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; +import org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer; +import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer; +import org.springframework.boot.sql.init.DatabaseInitializationSettings; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; + +import javax.sql.DataSource; + +/** + * SQL 初始化的测试 Configuration + * + * 为什么不使用 org.springframework.boot.autoconfigure.sql.init.DataSourceInitializationConfiguration 呢? + * 因为我们在单元测试会使用 spring.main.lazy-initialization 为 true,开启延迟加载。此时,会导致 DataSourceInitializationConfiguration 初始化 + * 不过呢,当前类的实现代码,基本是复制 DataSourceInitializationConfiguration 的哈! + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnMissingBean(AbstractScriptDatabaseInitializer.class) +@ConditionalOnSingleCandidate(DataSource.class) +@ConditionalOnClass(name = "org.springframework.jdbc.datasource.init.DatabasePopulator") +@Lazy(value = false) // 禁止延迟加载 +@EnableConfigurationProperties(SqlInitializationProperties.class) +public class SqlInitializationTestConfiguration { + + @Bean + public DataSourceScriptDatabaseInitializer dataSourceScriptDatabaseInitializer(DataSource dataSource, + SqlInitializationProperties initializationProperties) { + DatabaseInitializationSettings settings = createFrom(initializationProperties); + return new DataSourceScriptDatabaseInitializer(dataSource, settings); + } + + static DatabaseInitializationSettings createFrom(SqlInitializationProperties properties) { + DatabaseInitializationSettings settings = new DatabaseInitializationSettings(); + settings.setSchemaLocations(properties.getSchemaLocations()); + settings.setDataLocations(properties.getDataLocations()); + settings.setContinueOnError(properties.isContinueOnError()); + settings.setSeparator(properties.getSeparator()); + settings.setEncoding(properties.getEncoding()); + settings.setMode(properties.getMode()); + return settings; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java new file mode 100644 index 0000000..48a1790 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.framework.test.core.ut; + +import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; +import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; +import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; + +/** + * 依赖内存 DB + Redis 的单元测试 + * + * 相比 {@link BaseDbUnitTest} 来说,额外增加了内存 Redis + * + * @author 芋道源码 + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class) +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +public class BaseDbAndRedisUnitTest { + + @Import({ + // DB 配置类 + YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + DruidDataSourceAutoConfigure.class, // Druid 自动配置类 + SqlInitializationTestConfiguration.class, // SQL 初始化 + // MyBatis 配置类 + YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 + + // Redis 配置类 + RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java new file mode 100644 index 0000000..316c4d5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.framework.test.core.ut; + +import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; +import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; +import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; +import com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; + +/** + * 依赖内存 DB 的单元测试 + * + * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 + * + * @author 芋道源码 + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB +public class BaseDbUnitTest { + + @Import({ + // DB 配置类 + YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + DruidDataSourceAutoConfigure.class, // Druid 自动配置类 + SqlInitializationTestConfiguration.class, // SQL 初始化 + // MyBatis 配置类 + YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 + MybatisPlusJoinAutoConfiguration.class, // MyBatis 的Join配置类 + }) + public static class Application { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseMockitoUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseMockitoUnitTest.java new file mode 100644 index 0000000..2604869 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseMockitoUnitTest.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.framework.test.core.ut; + +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +/** + * 纯 Mockito 的单元测试 + * + * @author 芋道源码 + */ +@ExtendWith(MockitoExtension.class) +public class BaseMockitoUnitTest { +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java new file mode 100644 index 0000000..7a112e0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.framework.test.core.ut; + +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +/** + * 依赖内存 Redis 的单元测试 + * + * 相比 {@link BaseDbUnitTest} 来说,从内存 DB 改成了内存 Redis + * + * @author 芋道源码 + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseRedisUnitTest.Application.class) +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 +public class BaseRedisUnitTest { + + @Import({ + // Redis 配置类 + RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/package-info.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/package-info.java new file mode 100644 index 0000000..bda7aad --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/package-info.java @@ -0,0 +1,4 @@ +/** + * 提供单元测试 Unit Test 的基类 + */ +package cn.iocoder.yudao.framework.test.core.ut; diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/AssertUtils.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/AssertUtils.java new file mode 100644 index 0000000..e98f498 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/AssertUtils.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.framework.test.core.util; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.function.Executable; + +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.Objects; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * 单元测试,assert 断言工具类 + * + * @author 芋道源码 + */ +public class AssertUtils { + + /** + * 比对两个对象的属性是否一致 + * + * 注意,如果 expected 存在的属性,actual 不存在的时候,会进行忽略 + * + * @param expected 期望对象 + * @param actual 实际对象 + * @param ignoreFields 忽略的属性数组 + */ + public static void assertPojoEquals(Object expected, Object actual, String... ignoreFields) { + Field[] expectedFields = ReflectUtil.getFields(expected.getClass()); + Arrays.stream(expectedFields).forEach(expectedField -> { + // 忽略 jacoco 自动生成的 $jacocoData 属性的情况 + if (expectedField.isSynthetic()) { + return; + } + // 如果是忽略的属性,则不进行比对 + if (ArrayUtil.contains(ignoreFields, expectedField.getName())) { + return; + } + // 忽略不存在的属性 + Field actualField = ReflectUtil.getField(actual.getClass(), expectedField.getName()); + if (actualField == null) { + return; + } + // 比对 + Assertions.assertEquals( + ReflectUtil.getFieldValue(expected, expectedField), + ReflectUtil.getFieldValue(actual, actualField), + String.format("Field(%s) 不匹配", expectedField.getName()) + ); + }); + } + + /** + * 比对两个对象的属性是否一致 + * + * 注意,如果 expected 存在的属性,actual 不存在的时候,会进行忽略 + * + * @param expected 期望对象 + * @param actual 实际对象 + * @param ignoreFields 忽略的属性数组 + * @return 是否一致 + */ + public static boolean isPojoEquals(Object expected, Object actual, String... ignoreFields) { + Field[] expectedFields = ReflectUtil.getFields(expected.getClass()); + return Arrays.stream(expectedFields).allMatch(expectedField -> { + // 如果是忽略的属性,则不进行比对 + if (ArrayUtil.contains(ignoreFields, expectedField.getName())) { + return true; + } + // 忽略不存在的属性 + Field actualField = ReflectUtil.getField(actual.getClass(), expectedField.getName()); + if (actualField == null) { + return true; + } + return Objects.equals(ReflectUtil.getFieldValue(expected, expectedField), + ReflectUtil.getFieldValue(actual, actualField)); + }); + } + + /** + * 执行方法,校验抛出的 Service 是否符合条件 + * + * @param executable 业务异常 + * @param errorCode 错误码对象 + * @param messageParams 消息参数 + */ + public static void assertServiceException(Executable executable, ErrorCode errorCode, Object... messageParams) { + // 调用方法 + ServiceException serviceException = assertThrows(ServiceException.class, executable); + // 校验错误码 + Assertions.assertEquals(errorCode.getCode(), serviceException.getCode(), "错误码不匹配"); + String message = ServiceExceptionUtil.doFormat(errorCode.getCode(), errorCode.getMsg(), messageParams); + Assertions.assertEquals(message, serviceException.getMessage(), "错误提示不匹配"); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/RandomUtils.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/RandomUtils.java new file mode 100644 index 0000000..fbe6acf --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/util/RandomUtils.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.framework.test.core.util; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; +import uk.co.jemos.podam.common.AttributeStrategy; + +import javax.validation.constraints.Email; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 随机工具类 + * + * @author 芋道源码 + */ +public class RandomUtils { + + private static final int RANDOM_STRING_LENGTH = 10; + + private static final int TINYINT_MAX = 127; + + private static final int RANDOM_DATE_MAX = 30; + + private static final int RANDOM_COLLECTION_LENGTH = 5; + + private static final PodamFactory PODAM_FACTORY = new PodamFactoryImpl(); + + static { + // 字符串 + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(String.class, + (dataProviderStrategy, attributeMetadata, map) -> randomString()); + // Integer + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 status 的字段,返回 0 或 1 + if ("status".equals(attributeMetadata.getAttributeName())) { + return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); + } + // 如果是 type、status 结尾的字段,返回 tinyint 范围 + if (StrUtil.endWithAnyIgnoreCase(attributeMetadata.getAttributeName(), + "type", "status", "category", "scope", "result")) { + return RandomUtil.randomInt(0, TINYINT_MAX + 1); + } + return RandomUtil.randomInt(); + }); + // LocalDateTime + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(LocalDateTime.class, + (dataProviderStrategy, attributeMetadata, map) -> randomLocalDateTime()); + // Boolean + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 deleted 的字段,返回非删除 + if ("deleted".equals(attributeMetadata.getAttributeName())) { + return false; + } + return RandomUtil.randomBoolean(); + }); + } + + public static String randomString() { + return RandomUtil.randomString(RANDOM_STRING_LENGTH); + } + + public static Long randomLongId() { + return RandomUtil.randomLong(0, Long.MAX_VALUE); + } + + public static Integer randomInteger() { + return RandomUtil.randomInt(0, Integer.MAX_VALUE); + } + + public static Date randomDate() { + return RandomUtil.randomDay(0, RANDOM_DATE_MAX); + } + + public static LocalDateTime randomLocalDateTime() { + // 设置 Nano 为零的原因,避免 MySQL、H2 存储不到时间戳 + return LocalDateTimeUtil.of(randomDate()).withNano(0); + } + + public static Short randomShort() { + return (short) RandomUtil.randomInt(0, Short.MAX_VALUE); + } + + public static Set randomSet(Class clazz) { + return Stream.iterate(0, i -> i).limit(RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH)) + .map(i -> randomPojo(clazz)).collect(Collectors.toSet()); + } + + public static Integer randomCommonStatus() { + return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); + } + + public static String randomEmail() { + return randomString() + "@qq.com"; + } + + public static String randomURL() { + return "https://www.iocoder.cn/" + randomString(); + } + + @SafeVarargs + public static T randomPojo(Class clazz, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static T randomPojo(Class clazz, Type type, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz, type); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static List randomPojoList(Class clazz, Consumer... consumers) { + int size = RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH); + return Stream.iterate(0, i -> i).limit(size).map(o -> randomPojo(clazz, consumers)) + .collect(Collectors.toList()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/package-info.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/package-info.java new file mode 100644 index 0000000..3a17f51 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/package-info.java @@ -0,0 +1,4 @@ +/** + * 测试组件,用于单元测试、集成测试等等 + */ +package cn.iocoder.yudao.framework.test; diff --git a/yudao-framework/yudao-spring-boot-starter-web/pom.xml b/yudao-framework/yudao-spring-boot-starter-web/pom.xml new file mode 100644 index 0000000..509da81 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/pom.xml @@ -0,0 +1,86 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-web + jar + + ${project.artifactId} + Web 框架,全局异常、API 日志、脱敏、错误码等 + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + com.github.xiaoymin + knife4j-openapi3-spring-boot-starter + + + org.springdoc + springdoc-openapi-ui + + + + org.springframework.security + spring-security-core + provided + + + + + cn.iocoder.boot + yudao-module-infra-api + ${revision} + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + + org.jsoup + jsoup + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.mockito + mockito-inline + test + + + com.jeelowcode + jeelowcode-global + + + + diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/config/YudaoApiLogAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/config/YudaoApiLogAutoConfiguration.java new file mode 100644 index 0000000..6ced687 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/config/YudaoApiLogAutoConfiguration.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.apilog.config; + +import cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter; +import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService; +import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkServiceImpl; +import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService; +import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkServiceImpl; +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration; +import cn.iocoder.yudao.module.infra.api.logger.ApiAccessLogApi; +import cn.iocoder.yudao.module.infra.api.logger.ApiErrorLogApi; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; + +import javax.servlet.Filter; + +@AutoConfiguration(after = YudaoWebAutoConfiguration.class) +public class YudaoApiLogAutoConfiguration { + + @Bean + public ApiAccessLogFrameworkService apiAccessLogFrameworkService(ApiAccessLogApi apiAccessLogApi) { + return new ApiAccessLogFrameworkServiceImpl(apiAccessLogApi); + } + + @Bean + public ApiErrorLogFrameworkService apiErrorLogFrameworkService(ApiErrorLogApi apiErrorLogApi) { + return new ApiErrorLogFrameworkServiceImpl(apiErrorLogApi); + } + + /** + * 创建 ApiAccessLogFilter Bean,记录 API 请求日志 + */ + @Bean + @ConditionalOnProperty(prefix = "yudao.access-log", value = "enable", matchIfMissing = true) // 允许使用 yudao.access-log.enable=false 禁用访问日志 + public FilterRegistrationBean apiAccessLogFilter(WebProperties webProperties, + @Value("${spring.application.name}") String applicationName, + ApiAccessLogFrameworkService apiAccessLogFrameworkService) { + ApiAccessLogFilter filter = new ApiAccessLogFilter(webProperties, applicationName, apiAccessLogFrameworkService); + return createFilterBean(filter, WebFilterOrderEnum.API_ACCESS_LOG_FILTER); + } + + private static FilterRegistrationBean createFilterBean(T filter, Integer order) { + FilterRegistrationBean bean = new FilterRegistrationBean<>(filter); + bean.setOrder(order); + return bean; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java new file mode 100644 index 0000000..9eea078 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java @@ -0,0 +1,110 @@ +package cn.iocoder.yudao.framework.apilog.core.filter; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.map.MapUtil; +import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLog; +import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.framework.web.core.filter.ApiRequestFilter; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; + +/** + * API 访问日志 Filter + * + * @author 芋道源码 + */ +@Slf4j +public class ApiAccessLogFilter extends ApiRequestFilter { + + private final String applicationName; + + private final ApiAccessLogFrameworkService apiAccessLogFrameworkService; + + public ApiAccessLogFilter(WebProperties webProperties, String applicationName, ApiAccessLogFrameworkService apiAccessLogFrameworkService) { + super(webProperties); + this.applicationName = applicationName; + this.apiAccessLogFrameworkService = apiAccessLogFrameworkService; + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws ServletException, IOException { + // 获得开始时间 + LocalDateTime beginTime = LocalDateTime.now(); + // 提前获得参数,避免 XssFilter 过滤处理 + Map queryString = ServletUtils.getParamMap(request); + String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtils.getBody(request) : null; + + try { + // 继续过滤器 + filterChain.doFilter(request, response); + // 正常执行,记录日志 + createApiAccessLog(request, beginTime, queryString, requestBody, null); + } catch (Exception ex) { + // 异常执行,记录日志 + createApiAccessLog(request, beginTime, queryString, requestBody, ex); + throw ex; + } + } + + private void createApiAccessLog(HttpServletRequest request, LocalDateTime beginTime, + Map queryString, String requestBody, Exception ex) { + ApiAccessLog accessLog = new ApiAccessLog(); + try { + this.buildApiAccessLogDTO(accessLog, request, beginTime, queryString, requestBody, ex); + apiAccessLogFrameworkService.createApiAccessLog(accessLog); + } catch (Throwable th) { + log.error("[createApiAccessLog][url({}) log({}) 发生异常]", request.getRequestURI(), toJsonString(accessLog), th); + } + } + + private void buildApiAccessLogDTO(ApiAccessLog accessLog, HttpServletRequest request, LocalDateTime beginTime, + Map queryString, String requestBody, Exception ex) { + // 处理用户信息 + accessLog.setUserId(WebFrameworkUtils.getLoginUserId(request)); + accessLog.setUserType(WebFrameworkUtils.getLoginUserType(request)); + // 设置访问结果 + CommonResult result = WebFrameworkUtils.getCommonResult(request); + if (result != null) { + accessLog.setResultCode(result.getCode()); + accessLog.setResultMsg(result.getMsg()); + } else if (ex != null) { + accessLog.setResultCode(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode()); + accessLog.setResultMsg(ExceptionUtil.getRootCauseMessage(ex)); + } else { + accessLog.setResultCode(0); + accessLog.setResultMsg(""); + } + // 设置其它字段 + accessLog.setTraceId(TracerUtils.getTraceId()); + accessLog.setApplicationName(applicationName); + accessLog.setRequestUrl(request.getRequestURI()); + Map requestParams = MapUtil.builder().put("query", queryString).put("body", requestBody).build(); + accessLog.setRequestParams(toJsonString(requestParams)); + accessLog.setRequestMethod(request.getMethod()); + accessLog.setUserAgent(ServletUtils.getUserAgent(request)); + accessLog.setUserIp(ServletUtils.getClientIP(request)); + // 持续时间 + accessLog.setBeginTime(beginTime); + accessLog.setEndTime(LocalDateTime.now()); + accessLog.setDuration((int) LocalDateTimeUtil.between(accessLog.getBeginTime(), accessLog.getEndTime(), ChronoUnit.MILLIS)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLog.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLog.java new file mode 100644 index 0000000..7799c42 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLog.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * API 访问日志 + * + * @author 芋道源码 + */ +@Data +public class ApiAccessLog { + + /** + * 链路追踪编号 + */ + private String traceId; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 应用名 + */ + @NotNull(message = "应用名不能为空") + private String applicationName; + + /** + * 请求方法名 + */ + @NotNull(message = "http 请求方法不能为空") + private String requestMethod; + /** + * 访问地址 + */ + @NotNull(message = "访问地址不能为空") + private String requestUrl; + /** + * 请求参数 + */ + @NotNull(message = "请求参数不能为空") + private String requestParams; + /** + * 用户 IP + */ + @NotNull(message = "ip 不能为空") + private String userIp; + /** + * 浏览器 UA + */ + @NotNull(message = "User-Agent 不能为空") + private String userAgent; + + /** + * 开始请求时间 + */ + @NotNull(message = "开始请求时间不能为空") + private LocalDateTime beginTime; + /** + * 结束请求时间 + */ + @NotNull(message = "结束请求时间不能为空") + private LocalDateTime endTime; + /** + * 执行时长,单位:毫秒 + */ + @NotNull(message = "执行时长不能为空") + private Integer duration; + /** + * 结果码 + */ + @NotNull(message = "错误码不能为空") + private Integer resultCode; + /** + * 结果提示 + */ + private String resultMsg; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkService.java new file mode 100644 index 0000000..b8f2188 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkService.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +/** + * API 访问日志 Framework Service 接口 + * + * @author 芋道源码 + */ +public interface ApiAccessLogFrameworkService { + + /** + * 创建 API 访问日志 + * + * @param apiAccessLog API 访问日志 + */ + void createApiAccessLog(ApiAccessLog apiAccessLog); +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java new file mode 100644 index 0000000..83162f1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.infra.api.logger.ApiAccessLogApi; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; + +/** + * API 访问日志 Framework Service 实现类 + * + * 基于 {@link ApiAccessLogApi} 服务,记录访问日志 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class ApiAccessLogFrameworkServiceImpl implements ApiAccessLogFrameworkService { + + private final ApiAccessLogApi apiAccessLogApi; + + @Override + @Async + public void createApiAccessLog(ApiAccessLog apiAccessLog) { + ApiAccessLogCreateReqDTO reqDTO = BeanUtil.copyProperties(apiAccessLog, ApiAccessLogCreateReqDTO.class); + apiAccessLogApi.createApiAccessLog(reqDTO); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLog.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLog.java new file mode 100644 index 0000000..087dd5d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLog.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * API 错误日志 + * + * @author 芋道源码 + */ +@Data +public class ApiErrorLog { + + /** + * 链路编号 + */ + private String traceId; + /** + * 账号编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 应用名 + */ + @NotNull(message = "应用名不能为空") + private String applicationName; + + /** + * 请求方法名 + */ + @NotNull(message = "http 请求方法不能为空") + private String requestMethod; + /** + * 访问地址 + */ + @NotNull(message = "访问地址不能为空") + private String requestUrl; + /** + * 请求参数 + */ + @NotNull(message = "请求参数不能为空") + private String requestParams; + /** + * 用户 IP + */ + @NotNull(message = "ip 不能为空") + private String userIp; + /** + * 浏览器 UA + */ + @NotNull(message = "User-Agent 不能为空") + private String userAgent; + + /** + * 异常时间 + */ + @NotNull(message = "异常时间不能为空") + private LocalDateTime exceptionTime; + /** + * 异常名 + */ + @NotNull(message = "异常名不能为空") + private String exceptionName; + /** + * 异常发生的类全名 + */ + @NotNull(message = "异常发生的类全名不能为空") + private String exceptionClassName; + /** + * 异常发生的类文件 + */ + @NotNull(message = "异常发生的类文件不能为空") + private String exceptionFileName; + /** + * 异常发生的方法名 + */ + @NotNull(message = "异常发生的方法名不能为空") + private String exceptionMethodName; + /** + * 异常发生的方法所在行 + */ + @NotNull(message = "异常发生的方法所在行不能为空") + private Integer exceptionLineNumber; + /** + * 异常的栈轨迹异常的栈轨迹 + */ + @NotNull(message = "异常的栈轨迹不能为空") + private String exceptionStackTrace; + /** + * 异常导致的根消息 + */ + @NotNull(message = "异常导致的根消息不能为空") + private String exceptionRootCauseMessage; + /** + * 异常导致的消息 + */ + @NotNull(message = "异常导致的消息不能为空") + private String exceptionMessage; + + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkService.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkService.java new file mode 100644 index 0000000..dfc71cb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkService.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +/** + * API 错误日志 Framework Service 接口 + * + * @author 芋道源码 + */ +public interface ApiErrorLogFrameworkService { + + /** + * 创建 API 错误日志 + * + * @param apiErrorLog API 错误日志 + */ + void createApiErrorLog(ApiErrorLog apiErrorLog); +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java new file mode 100644 index 0000000..cb5abe3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.apilog.core.service; + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.module.infra.api.logger.ApiErrorLogApi; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; + +/** + * API 错误日志 Framework Service 实现类 + * + * 基于 {@link ApiErrorLogApi} 服务,记录错误日志 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class ApiErrorLogFrameworkServiceImpl implements ApiErrorLogFrameworkService { + + private final ApiErrorLogApi apiErrorLogApi; + + @Override + @Async + public void createApiErrorLog(ApiErrorLog apiErrorLog) { + ApiErrorLogCreateReqDTO reqDTO = BeanUtil.copyProperties(apiErrorLog, ApiErrorLogCreateReqDTO.class); + apiErrorLogApi.createApiErrorLog(reqDTO); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/package-info.java new file mode 100644 index 0000000..cb93f3d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/package-info.java @@ -0,0 +1,8 @@ +/** + * API 日志:包含两类 + * 1. API 访问日志:记录用户访问 API 的访问日志,定期归档历史日志。 + * 2. 异常日志:记录用户访问 API 的系统异常,方便日常排查问题与告警。 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.apilog; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/config/YudaoBannerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/config/YudaoBannerAutoConfiguration.java new file mode 100644 index 0000000..a8b6678 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/config/YudaoBannerAutoConfiguration.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.framework.banner.config; + +import cn.iocoder.yudao.framework.banner.core.BannerApplicationRunner; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +/** + * Banner 的自动配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +public class YudaoBannerAutoConfiguration { + + @Bean + public BannerApplicationRunner bannerApplicationRunner() { + return new BannerApplicationRunner(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java new file mode 100644 index 0000000..d471b88 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.banner.core; + +import cn.hutool.core.thread.ThreadUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.util.ClassUtils; + +import java.util.concurrent.TimeUnit; + +/** + * 项目启动成功后,提供文档相关的地址 + * + * @author 芋道源码 + */ +@Slf4j +public class BannerApplicationRunner implements ApplicationRunner { + + @Override + public void run(ApplicationArguments args) { + log.info("----JeeLowCode低代码项目启动成功----"); + log.info("官网地址:http://www.jeelowcode.com"); + log.info("社区地址: http://doc.jeelowcode.com"); + } + + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/package-info.java new file mode 100644 index 0000000..aba7268 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/package-info.java @@ -0,0 +1,6 @@ +/** + * Banner 用于在 console 控制台,打印开发文档、接口文档等 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.banner; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/DesensitizeBy.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/DesensitizeBy.java new file mode 100644 index 0000000..0166cb6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/DesensitizeBy.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.framework.desensitize.core.base.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; +import cn.iocoder.yudao.framework.desensitize.core.base.serializer.StringDesensitizeSerializer; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 顶级脱敏注解,自定义注解需要使用此注解 + * + * @author gaibu + */ +@Documented +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside // 此注解是其他所有 jackson 注解的元注解,打上了此注解的注解表明是 jackson 注解的一部分 +@JsonSerialize(using = StringDesensitizeSerializer.class) // 指定序列化器 +public @interface DesensitizeBy { + + /** + * 脱敏处理器 + */ + @SuppressWarnings("rawtypes") + Class handler(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java new file mode 100644 index 0000000..470a0be --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.desensitize.core.base.handler; + +import java.lang.annotation.Annotation; + +/** + * 脱敏处理器接口 + * + * @author gaibu + */ +public interface DesensitizationHandler { + + /** + * 脱敏 + * + * @param origin 原始字符串 + * @param annotation 注解信息 + * @return 脱敏后的字符串 + */ + String desensitize(String origin, T annotation); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java new file mode 100644 index 0000000..2c15a74 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.framework.desensitize.core.base.serializer; + +import cn.hutool.core.annotation.AnnotationUtil; +import cn.hutool.core.lang.Singleton; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.BeanProperty; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.ContextualSerializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import lombok.Getter; +import lombok.Setter; + +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; + +/** + * 脱敏序列化器 + * + * 实现 JSON 返回数据时,使用 {@link DesensitizationHandler} 对声明脱敏注解的字段,进行脱敏处理。 + * + * @author gaibu + */ +@SuppressWarnings("rawtypes") +public class StringDesensitizeSerializer extends StdSerializer implements ContextualSerializer { + + @Getter + @Setter + private DesensitizationHandler desensitizationHandler; + + protected StringDesensitizeSerializer() { + super(String.class); + } + + @Override + public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) { + DesensitizeBy annotation = beanProperty.getAnnotation(DesensitizeBy.class); + if (annotation == null) { + return this; + } + // 创建一个 StringDesensitizeSerializer 对象,使用 DesensitizeBy 对应的处理器 + StringDesensitizeSerializer serializer = new StringDesensitizeSerializer(); + serializer.setDesensitizationHandler(Singleton.get(annotation.handler())); + return serializer; + } + + @Override + @SuppressWarnings("unchecked") + public void serialize(String value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException { + if (StrUtil.isBlank(value)) { + gen.writeNull(); + return; + } + // 获取序列化字段 + Field field = getField(gen); + + // 自定义处理器 + DesensitizeBy[] annotations = AnnotationUtil.getCombinationAnnotations(field, DesensitizeBy.class); + if (ArrayUtil.isEmpty(annotations)) { + gen.writeString(value); + return; + } + for (Annotation annotation : field.getAnnotations()) { + if (AnnotationUtil.hasAnnotation(annotation.annotationType(), DesensitizeBy.class)) { + value = this.desensitizationHandler.desensitize(value, annotation); + gen.writeString(value); + return; + } + } + gen.writeString(value); + } + + /** + * 获取字段 + * + * @param generator JsonGenerator + * @return 字段 + */ + private Field getField(JsonGenerator generator) { + String currentName = generator.getOutputContext().getCurrentName(); + Object currentValue = generator.getCurrentValue(); + Class currentValueClass = currentValue.getClass(); + return ReflectUtil.getField(currentValueClass, currentName); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java new file mode 100644 index 0000000..227f254 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.framework.desensitize.core.regex.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.regex.handler.EmailDesensitizationHandler; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 邮箱脱敏注解 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = EmailDesensitizationHandler.class) +public @interface EmailDesensitize { + + /** + * 匹配的正则表达式 + */ + String regex() default "(^.)[^@]*(@.*$)"; + + /** + * 替换规则,邮箱; + * + * 比如:example@gmail.com 脱敏之后为 e****@gmail.com + */ + String replacer() default "$1****$2"; +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java new file mode 100644 index 0000000..4ab7c74 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.framework.desensitize.core.regex.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.regex.handler.DefaultRegexDesensitizationHandler; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 正则脱敏注解 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = DefaultRegexDesensitizationHandler.class) +public @interface RegexDesensitize { + + /** + * 匹配的正则表达式(默认匹配所有) + */ + String regex() default "^[\\s\\S]*$"; + + /** + * 替换规则,会将匹配到的字符串全部替换成 replacer + * + * 例如:regex=123; replacer=****** + * 原始字符串 123456789 + * 脱敏后字符串 ******456789 + */ + String replacer() default "******"; +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java new file mode 100644 index 0000000..f43431b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.framework.desensitize.core.regex.handler; + +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; + +import java.lang.annotation.Annotation; + +/** + * 正则表达式脱敏处理器抽象类,已实现通用的方法 + * + * @author gaibu + */ +public abstract class AbstractRegexDesensitizationHandler + implements DesensitizationHandler { + + @Override + public String desensitize(String origin, T annotation) { + String regex = getRegex(annotation); + String replacer = getReplacer(annotation); + return origin.replaceAll(regex, replacer); + } + + /** + * 获取注解上的 regex 参数 + * + * @param annotation 注解信息 + * @return 正则表达式 + */ + abstract String getRegex(T annotation); + + /** + * 获取注解上的 replacer 参数 + * + * @param annotation 注解信息 + * @return 待替换的字符串 + */ + abstract String getReplacer(T annotation); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java new file mode 100644 index 0000000..f92414e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.framework.desensitize.core.regex.handler; + +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.RegexDesensitize; + +/** + * {@link RegexDesensitize} 的正则脱敏处理器 + * + * @author gaibu + */ +public class DefaultRegexDesensitizationHandler extends AbstractRegexDesensitizationHandler { + + @Override + String getRegex(RegexDesensitize annotation) { + return annotation.regex(); + } + + @Override + String getReplacer(RegexDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java new file mode 100644 index 0000000..8d1867a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.framework.desensitize.core.regex.handler; + +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize; + +/** + * {@link EmailDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler { + + @Override + String getRegex(EmailDesensitize annotation) { + return annotation.regex(); + } + + @Override + String getReplacer(EmailDesensitize annotation) { + return annotation.replacer(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCardDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCardDesensitize.java new file mode 100644 index 0000000..19ad54e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCardDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.BankCardDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 银行卡号 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = BankCardDesensitization.class) +public @interface BankCardDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 6; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 2; + + /** + * 替换规则,银行卡号; 比如:9988002866797031 脱敏之后为 998800********31 + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java new file mode 100644 index 0000000..9000e1e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.CarLicenseDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 车牌号 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = CarLicenseDesensitization.class) +public @interface CarLicenseDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 3; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 1; + + /** + * 替换规则,车牌号;比如:粤A66666 脱敏之后为粤A6***6 + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java new file mode 100644 index 0000000..73a0d0e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.ChineseNameDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 中文名 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = ChineseNameDesensitization.class) +public @interface ChineseNameDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 1; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 0; + + /** + * 替换规则,中文名;比如:刘子豪脱敏之后为刘** + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java new file mode 100644 index 0000000..8622353 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.FixedPhoneDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 固定电话 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = FixedPhoneDesensitization.class) +public @interface FixedPhoneDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 4; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 2; + + /** + * 替换规则,固定电话;比如:01086551122 脱敏之后为 0108*****22 + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCardDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCardDesensitize.java new file mode 100644 index 0000000..8a654c9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCardDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.IdCardDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 身份证 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = IdCardDesensitization.class) +public @interface IdCardDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 6; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 2; + + /** + * 替换规则,身份证号码;比如:530321199204074611 脱敏之后为 530321**********11 + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/MobileDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/MobileDesensitize.java new file mode 100644 index 0000000..f0c42f1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/MobileDesensitize.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.MobileDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 手机号 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = MobileDesensitization.class) +public @interface MobileDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 3; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 4; + + /** + * 替换规则,手机号;比如:13248765917 脱敏之后为 132****5917 + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PasswordDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PasswordDesensitize.java new file mode 100644 index 0000000..6a3b269 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PasswordDesensitize.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.PasswordDesensitization; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 密码 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = PasswordDesensitization.class) +public @interface PasswordDesensitize { + + /** + * 前缀保留长度 + */ + int prefixKeep() default 0; + + /** + * 后缀保留长度 + */ + int suffixKeep() default 0; + + /** + * 替换规则,密码; + * + * 比如:123456 脱敏之后为 ****** + */ + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/SliderDesensitize.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/SliderDesensitize.java new file mode 100644 index 0000000..ec79635 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/SliderDesensitize.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.DefaultDesensitizationHandler; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 滑动脱敏注解 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = DefaultDesensitizationHandler.class) +public @interface SliderDesensitize { + + /** + * 后缀保留长度 + */ + int suffixKeep() default 0; + + /** + * 替换规则,会将前缀后缀保留后,全部替换成 replacer + * + * 例如:prefixKeep = 1; suffixKeep = 2; replacer = "*"; + * 原始字符串 123456 + * 脱敏后 1***56 + */ + String replacer() default "*"; + + /** + * 前缀保留长度 + */ + int prefixKeep() default 0; +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java new file mode 100644 index 0000000..7dd2a7f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; + +import java.lang.annotation.Annotation; + +/** + * 滑动脱敏处理器抽象类,已实现通用的方法 + * + * @author gaibu + */ +public abstract class AbstractSliderDesensitizationHandler + implements DesensitizationHandler { + + @Override + public String desensitize(String origin, T annotation) { + int prefixKeep = getPrefixKeep(annotation); + int suffixKeep = getSuffixKeep(annotation); + String replacer = getReplacer(annotation); + int length = origin.length(); + + // 情况一:原始字符串长度小于等于保留长度,则原始字符串全部替换 + if (prefixKeep >= length || suffixKeep >= length) { + return buildReplacerByLength(replacer, length); + } + + // 情况二:原始字符串长度小于等于前后缀保留字符串长度,则原始字符串全部替换 + if ((prefixKeep + suffixKeep) >= length) { + return buildReplacerByLength(replacer, length); + } + + // 情况三:原始字符串长度大于前后缀保留字符串长度,则替换中间字符串 + int interval = length - prefixKeep - suffixKeep; + return origin.substring(0, prefixKeep) + + buildReplacerByLength(replacer, interval) + + origin.substring(prefixKeep + interval); + } + + /** + * 根据长度循环构建替换符 + * + * @param replacer 替换符 + * @param length 长度 + * @return 构建后的替换符 + */ + private String buildReplacerByLength(String replacer, int length) { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < length; i++) { + builder.append(replacer); + } + return builder.toString(); + } + + /** + * 前缀保留长度 + * + * @param annotation 注解信息 + * @return 前缀保留长度 + */ + abstract Integer getPrefixKeep(T annotation); + + /** + * 后缀保留长度 + * + * @param annotation 注解信息 + * @return 后缀保留长度 + */ + abstract Integer getSuffixKeep(T annotation); + + /** + * 替换符 + * + * @param annotation 注解信息 + * @return 替换符 + */ + abstract String getReplacer(T annotation); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java new file mode 100644 index 0000000..e1d90ea --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCardDesensitize; + +/** + * {@link BankCardDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class BankCardDesensitization extends AbstractSliderDesensitizationHandler { + + @Override + Integer getPrefixKeep(BankCardDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(BankCardDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(BankCardDesensitize annotation) { + return annotation.replacer(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java new file mode 100644 index 0000000..34b3e9a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.CarLicenseDesensitize; + +/** + * {@link CarLicenseDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class CarLicenseDesensitization extends AbstractSliderDesensitizationHandler { + @Override + Integer getPrefixKeep(CarLicenseDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(CarLicenseDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(CarLicenseDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java new file mode 100644 index 0000000..f71dac0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.ChineseNameDesensitize; + +/** + * {@link ChineseNameDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class ChineseNameDesensitization extends AbstractSliderDesensitizationHandler { + + @Override + Integer getPrefixKeep(ChineseNameDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(ChineseNameDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(ChineseNameDesensitize annotation) { + return annotation.replacer(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java new file mode 100644 index 0000000..8b0adae --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.SliderDesensitize; + +/** + * {@link SliderDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class DefaultDesensitizationHandler extends AbstractSliderDesensitizationHandler { + @Override + Integer getPrefixKeep(SliderDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(SliderDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(SliderDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java new file mode 100644 index 0000000..6e23261 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.FixedPhoneDesensitize; + +/** + * {@link FixedPhoneDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class FixedPhoneDesensitization extends AbstractSliderDesensitizationHandler { + @Override + Integer getPrefixKeep(FixedPhoneDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(FixedPhoneDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(FixedPhoneDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java new file mode 100644 index 0000000..9d525b3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.IdCardDesensitize; + +/** + * {@link IdCardDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class IdCardDesensitization extends AbstractSliderDesensitizationHandler { + @Override + Integer getPrefixKeep(IdCardDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(IdCardDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(IdCardDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/MobileDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/MobileDesensitization.java new file mode 100644 index 0000000..582900a --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/MobileDesensitization.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.MobileDesensitize; + +/** + * {@link MobileDesensitize} 的脱敏处理器 + * + * @author gaibu + */ +public class MobileDesensitization extends AbstractSliderDesensitizationHandler { + + @Override + Integer getPrefixKeep(MobileDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(MobileDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(MobileDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java new file mode 100644 index 0000000..1bccaa2 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.desensitize.core.slider.handler; + +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.PasswordDesensitize; + +/** + * {@link PasswordDesensitize} 的码脱敏处理器 + * + * @author gaibu + */ +public class PasswordDesensitization extends AbstractSliderDesensitizationHandler { + @Override + Integer getPrefixKeep(PasswordDesensitize annotation) { + return annotation.prefixKeep(); + } + + @Override + Integer getSuffixKeep(PasswordDesensitize annotation) { + return annotation.suffixKeep(); + } + + @Override + String getReplacer(PasswordDesensitize annotation) { + return annotation.replacer(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/package-info.java new file mode 100644 index 0000000..bfe0187 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/desensitize/package-info.java @@ -0,0 +1,4 @@ +/** + * 脱敏组件:支持 JSON 返回数据时,将邮箱、手机等字段进行脱敏 + */ +package cn.iocoder.yudao.framework.desensitize; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/ErrorCodeProperties.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/ErrorCodeProperties.java new file mode 100644 index 0000000..1c1d1b8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/ErrorCodeProperties.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.framework.errorcode.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 错误码的配置属性类 + * + * @author dlyan + */ +@ConfigurationProperties("yudao.error-code") +@Data +@Validated +public class ErrorCodeProperties { + + /** + * 是否开启 + */ + private Boolean enable = true; + /** + * 错误码枚举类 + */ + @NotNull(message = "错误码枚举类不能为空") + private List constantsClassList; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/YudaoErrorCodeAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/YudaoErrorCodeAutoConfiguration.java new file mode 100644 index 0000000..ed2c92f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/config/YudaoErrorCodeAutoConfiguration.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.errorcode.config; + +import cn.iocoder.yudao.framework.errorcode.core.generator.ErrorCodeAutoGenerator; +import cn.iocoder.yudao.framework.errorcode.core.generator.ErrorCodeAutoGeneratorImpl; +import cn.iocoder.yudao.framework.errorcode.core.loader.ErrorCodeLoader; +import cn.iocoder.yudao.framework.errorcode.core.loader.ErrorCodeLoaderImpl; +import cn.iocoder.yudao.module.system.api.errorcode.ErrorCodeApi; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * 错误码配置类 + * + * @author 芋道源码 + */ +@AutoConfiguration +@ConditionalOnProperty(prefix = "yudao.error-code", value = "enable", matchIfMissing = true) // 允许使用 yudao.error-code.enable=false 禁用访问日志 +@EnableConfigurationProperties(ErrorCodeProperties.class) +@EnableScheduling // 开启调度任务的功能,因为 ErrorCodeRemoteLoader 通过定时刷新错误码 +public class YudaoErrorCodeAutoConfiguration { + + @Bean + public ErrorCodeAutoGenerator errorCodeAutoGenerator(@Value("${spring.application.name}") String applicationName, + ErrorCodeProperties errorCodeProperties, + ErrorCodeApi errorCodeApi) { + return new ErrorCodeAutoGeneratorImpl(applicationName, errorCodeProperties.getConstantsClassList(), errorCodeApi); + } + + @Bean + public ErrorCodeLoader errorCodeLoader(@Value("${spring.application.name}") String applicationName, + ErrorCodeApi errorCodeApi) { + return new ErrorCodeLoaderImpl(applicationName, errorCodeApi); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGenerator.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGenerator.java new file mode 100644 index 0000000..b13caca --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGenerator.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.framework.errorcode.core.generator; + +/** + * 错误码的自动生成器 + * + * @author dylan + */ +public interface ErrorCodeAutoGenerator { + + /** + * 将配置类到错误码写入数据库 + */ + void execute(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java new file mode 100644 index 0000000..00fbc03 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java @@ -0,0 +1,108 @@ +package cn.iocoder.yudao.framework.errorcode.core.generator; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.util.ClassUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.module.system.api.errorcode.ErrorCodeApi; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * ErrorCodeAutoGenerator 的实现类 + * 目的是,扫描指定的 {@link #constantsClassList} 类,写入到 system 服务中 + * + * @author dylan + */ +@RequiredArgsConstructor +@Slf4j +public class ErrorCodeAutoGeneratorImpl implements ErrorCodeAutoGenerator { + + /** + * 应用分组 + */ + private final String applicationName; + /** + * 错误码枚举类 + */ + private final List constantsClassList; + /** + * 错误码 Api + */ + private final ErrorCodeApi errorCodeApi; + + @Override + @EventListener(ApplicationReadyEvent.class) + @Async // 异步,保证项目的启动过程,毕竟非关键流程 + public void execute() { + // 第一步,解析错误码 + List autoGenerateDTOs = parseErrorCode(); + log.info("[execute][解析到错误码数量为 ({}) 个]", autoGenerateDTOs.size()); + + // 第二步,写入到 system 服务 + try { + errorCodeApi.autoGenerateErrorCodeList(autoGenerateDTOs); + log.info("[execute][写入到 system 组件完成]"); + } catch (Exception ex) { + log.error("[execute][写入到 system 组件失败({})]", ExceptionUtil.getRootCauseMessage(ex)); + } + } + + /** + * 解析 constantsClassList 变量,转换成错误码数组 + * + * @return 错误码数组 + */ + private List parseErrorCode() { + // 校验 errorCodeConstantsClass 参数 + if (CollUtil.isEmpty(constantsClassList)) { + log.info("[execute][未配置 yudao.error-code.constants-class-list 配置项,不进行自动写入到 system 服务中]"); + return new ArrayList<>(); + } + + // 解析错误码 + List autoGenerateDTOs = new ArrayList<>(); + constantsClassList.forEach(constantsClass -> { + try { + // 解析错误码枚举类 + Class errorCodeConstantsClazz = ClassUtil.loadClass(constantsClass); + // 解析错误码 + autoGenerateDTOs.addAll(parseErrorCode(errorCodeConstantsClazz)); + } catch (Exception ex) { + log.warn("[parseErrorCode][constantsClass({}) 加载失败({})]", constantsClass, + ExceptionUtil.getRootCauseMessage(ex)); + } + }); + return autoGenerateDTOs; + } + + /** + * 解析错误码类,获得错误码数组 + * + * @return 错误码数组 + */ + private List parseErrorCode(Class constantsClass) { + List autoGenerateDTOs = new ArrayList<>(); + Arrays.stream(constantsClass.getFields()).forEach(field -> { + if (field.getType() != ErrorCode.class) { + return; + } + // 转换成 ErrorCodeAutoGenerateReqDTO 对象 + ErrorCode errorCode = (ErrorCode) ReflectUtil.getFieldValue(constantsClass, field); + autoGenerateDTOs.add(new ErrorCodeAutoGenerateReqDTO().setApplicationName(applicationName) + .setCode(errorCode.getCode()).setMessage(errorCode.getMsg())); + }); + return autoGenerateDTOs; + } + +} + diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoader.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoader.java new file mode 100644 index 0000000..0bf7021 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoader.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.errorcode.core.loader; + +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; + +/** + * 错误码加载器 + * + * 注意,错误码最终加载到 {@link ServiceExceptionUtil} 的 MESSAGES 变量中! + * + * @author dlyan + */ +public interface ErrorCodeLoader { + + /** + * 添加错误码 + * + * @param code 错误码的编号 + * @param msg 错误码的提示 + */ + default void putErrorCode(Integer code, String msg) { + ServiceExceptionUtil.put(code, msg); + } + + /** + * 刷新错误码 + */ + void refreshErrorCodes(); + + /** + * 加载错误码 + */ + void loadErrorCodes(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java new file mode 100644 index 0000000..4d1febf --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.framework.errorcode.core.loader; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.system.api.errorcode.ErrorCodeApi; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * ErrorCodeLoader 的实现类,从 infra 的数据库中,加载错误码。 + * + * 考虑到错误码会刷新,所以按照 {@link #REFRESH_ERROR_CODE_PERIOD} 频率,增量加载错误码。 + * + * @author dlyan + */ +@RequiredArgsConstructor +@Slf4j +public class ErrorCodeLoaderImpl implements ErrorCodeLoader { + + /** + * 刷新错误码的频率,单位:毫秒 + */ + private static final int REFRESH_ERROR_CODE_PERIOD = 60 * 1000; + + /** + * 应用分组 + */ + private final String applicationName; + /** + * 错误码 Api + */ + private final ErrorCodeApi errorCodeApi; + + /** + * 缓存错误码的最大更新时间,用于后续的增量轮询,判断是否有更新 + */ + private LocalDateTime maxUpdateTime; + + @Override + @EventListener(ApplicationReadyEvent.class) + @Async // 异步,保证项目的启动过程,毕竟非关键流程 + public void loadErrorCodes() { + loadErrorCodes0(); + } + + @Override + @Scheduled(fixedDelay = REFRESH_ERROR_CODE_PERIOD, initialDelay = REFRESH_ERROR_CODE_PERIOD) + public void refreshErrorCodes() { + loadErrorCodes0(); + } + + private void loadErrorCodes0() { + try { + // 加载错误码 + List errorCodeRespDTOs = errorCodeApi.getErrorCodeList(applicationName, maxUpdateTime); + if (CollUtil.isEmpty(errorCodeRespDTOs)) { + return; + } + log.info("[loadErrorCodes0][加载到 ({}) 个错误码]", errorCodeRespDTOs.size()); + + // 刷新错误码的缓存 + errorCodeRespDTOs.forEach(errorCodeRespDTO -> { + // 写入到错误码的缓存 + putErrorCode(errorCodeRespDTO.getCode(), errorCodeRespDTO.getMessage()); + // 记录下更新时间,方便增量更新 + maxUpdateTime = DateUtils.max(maxUpdateTime, errorCodeRespDTO.getUpdateTime()); + }); + } catch (Exception ex) { + log.error("[loadErrorCodes0][加载错误码失败({})]", ExceptionUtil.getRootCauseMessage(ex)); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/package-info.java new file mode 100644 index 0000000..ddba4f7 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/errorcode/package-info.java @@ -0,0 +1,10 @@ +/** + * 错误码 ErrorCode 的自动配置功能,提供如下功能: + * + * 1. 远程读取:项目启动时,从 system-service 服务,读取数据库中的 ErrorCode 错误码,实现错误码的提水可配置; + * 2. 自动更新:管理员在管理后台修数据库中的 ErrorCode 错误码时,项目自动从 system-service 服务加载最新的 ErrorCode 错误码; + * 3. 自动写入:项目启动时,将项目本地的错误码写到 system-server 服务中,方便管理员在管理后台编辑; + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.errorcode; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/config/YudaoJacksonAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/config/YudaoJacksonAutoConfiguration.java new file mode 100644 index 0000000..6ea95b1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/config/YudaoJacksonAutoConfiguration.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.jackson.config; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeDeserializer; +import cn.iocoder.yudao.framework.jackson.core.databind.LocalDateTimeSerializer; +import cn.iocoder.yudao.framework.jackson.core.databind.NumberSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.context.annotation.Bean; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.List; + +@AutoConfiguration +@Slf4j +public class YudaoJacksonAutoConfiguration { + + @Bean + @SuppressWarnings("InstantiationOfUtilityClass") + public JsonUtils jsonUtils(List objectMappers) { + // 1.1 创建 SimpleModule 对象 + SimpleModule simpleModule = new SimpleModule(); + simpleModule + // 新增 Long 类型序列化规则,数值超过 2^53-1,在 JS 会出现精度丢失问题,因此 Long 自动序列化为字符串类型 + .addSerializer(Long.class, NumberSerializer.INSTANCE) + .addSerializer(Long.TYPE, NumberSerializer.INSTANCE) + .addSerializer(LocalDate.class, LocalDateSerializer.INSTANCE) + .addDeserializer(LocalDate.class, LocalDateDeserializer.INSTANCE) + .addSerializer(LocalTime.class, LocalTimeSerializer.INSTANCE) + .addDeserializer(LocalTime.class, LocalTimeDeserializer.INSTANCE) + // 新增 LocalDateTime 序列化、反序列化规则 + .addSerializer(LocalDateTime.class, LocalDateTimeSerializer.INSTANCE) + .addDeserializer(LocalDateTime.class, LocalDateTimeDeserializer.INSTANCE); + // 1.2 注册到 objectMapper + objectMappers.forEach(objectMapper -> objectMapper.registerModule(simpleModule)); + + // 2. 设置 objectMapper 到 JsonUtils { + JsonUtils.init(CollUtil.getFirst(objectMappers)); + log.info("[init][初始化 JsonUtils 成功]"); + return new JsonUtils(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeDeserializer.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeDeserializer.java new file mode 100644 index 0000000..53c4025 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeDeserializer.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.framework.jackson.core.databind; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * LocalDateTime反序列化规则 + *

    + * 会将毫秒级时间戳反序列化为LocalDateTime + */ +public class LocalDateTimeDeserializer extends JsonDeserializer { + + public static final LocalDateTimeDeserializer INSTANCE = new LocalDateTimeDeserializer(); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeSerializer.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeSerializer.java new file mode 100644 index 0000000..286fb73 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/LocalDateTimeSerializer.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.framework.jackson.core.databind; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * LocalDateTime序列化规则 + *

    + * 会将LocalDateTime序列化为毫秒级时间戳 + */ +public class LocalDateTimeSerializer extends JsonSerializer { + + public static final LocalDateTimeSerializer INSTANCE = new LocalDateTimeSerializer(); + + @Override + public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/NumberSerializer.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/NumberSerializer.java new file mode 100644 index 0000000..f6ddd3f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/NumberSerializer.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.jackson.core.databind; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; + +import java.io.IOException; + +/** + * Long 序列化规则 + * + * 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题 + * + * @author 星语 + */ +@JacksonStdImpl +public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer { + + private static final long MAX_SAFE_INTEGER = 9007199254740991L; + private static final long MIN_SAFE_INTEGER = -9007199254740991L; + + public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class); + + public NumberSerializer(Class rawType) { + super(rawType); + } + + @Override + public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + // 超出范围 序列化位字符串 + if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) { + super.serialize(value, gen, serializers); + } else { + gen.writeString(value.toString()); + } + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/package-info.java new file mode 100644 index 0000000..261b508 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.framework.jackson.core; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/package-info.java new file mode 100644 index 0000000..2dc5316 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/package-info.java @@ -0,0 +1,4 @@ +/** + * Web 框架,全局异常、API 日志等 + */ +package cn.iocoder.yudao.framework; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/SwaggerProperties.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/SwaggerProperties.java new file mode 100644 index 0000000..13a1568 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/SwaggerProperties.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.framework.swagger.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import javax.validation.constraints.NotEmpty; + +/** + * Swagger 配置属性 + * + * @author 芋道源码 + */ +@ConfigurationProperties("yudao.swagger") +@Data +public class SwaggerProperties { + + /** + * 标题 + */ + @NotEmpty(message = "标题不能为空") + private String title; + /** + * 描述 + */ + @NotEmpty(message = "描述不能为空") + private String description; + /** + * 作者 + */ + @NotEmpty(message = "作者不能为空") + private String author; + /** + * 版本 + */ + @NotEmpty(message = "版本不能为空") + private String version; + /** + * url + */ + @NotEmpty(message = "扫描的 package 不能为空") + private String url; + /** + * email + */ + @NotEmpty(message = "扫描的 email 不能为空") + private String email; + + /** + * license + */ + @NotEmpty(message = "扫描的 license 不能为空") + private String license; + + /** + * license-url + */ + @NotEmpty(message = "扫描的 license-url 不能为空") + private String licenseUrl; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java new file mode 100644 index 0000000..e15f73b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java @@ -0,0 +1,161 @@ +package cn.iocoder.yudao.framework.swagger.config; + +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.media.IntegerSchema; +import io.swagger.v3.oas.models.media.StringSchema; +import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springdoc.core.*; +import org.springdoc.core.customizers.OpenApiBuilderCustomizer; +import org.springdoc.core.customizers.ServerBaseUrlCustomizer; +import org.springdoc.core.providers.JavadocProvider; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpHeaders; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID; + +/** + * Swagger 自动配置类,基于 OpenAPI + Springdoc 实现。 + * + * 友情提示: + * 1. Springdoc 文档地址:仓库 + * 2. Swagger 规范,于 2015 更名为 OpenAPI 规范,本质是一个东西 + * + * @author 芋道源码 + */ +@AutoConfiguration +@ConditionalOnClass({OpenAPI.class}) +@EnableConfigurationProperties(SwaggerProperties.class) +@ConditionalOnProperty(prefix = "springdoc.api-docs", name = "enabled", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用 +public class YudaoSwaggerAutoConfiguration { + + // ========== 全局 OpenAPI 配置 ========== + + @Bean + public OpenAPI createApi(SwaggerProperties properties) { + Map securitySchemas = buildSecuritySchemes(); + OpenAPI openAPI = new OpenAPI() + // 接口信息 + .info(buildInfo(properties)) + // 接口安全配置 + .components(new Components().securitySchemes(securitySchemas)) + .addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION)); + securitySchemas.keySet().forEach(key -> openAPI.addSecurityItem(new SecurityRequirement().addList(key))); + return openAPI; + } + + /** + * API 摘要信息 + */ + private Info buildInfo(SwaggerProperties properties) { + return new Info() + .title(properties.getTitle()) + .description(properties.getDescription()) + .version(properties.getVersion()) + .contact(new Contact().name(properties.getAuthor()).url(properties.getUrl()).email(properties.getEmail())) + .license(new License().name(properties.getLicense()).url(properties.getLicenseUrl())); + } + + /** + * 安全模式,这里配置通过请求头 Authorization 传递 token 参数 + */ + private Map buildSecuritySchemes() { + Map securitySchemes = new HashMap<>(); + SecurityScheme securityScheme = new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) // 类型 + .name(HttpHeaders.AUTHORIZATION) // 请求头的 name + .in(SecurityScheme.In.HEADER); // token 所在位置 + securitySchemes.put(HttpHeaders.AUTHORIZATION, securityScheme); + return securitySchemes; + } + + /** + * 自定义 OpenAPI 处理器 + */ + @Bean + public OpenAPIService openApiBuilder(Optional openAPI, + SecurityService securityParser, + SpringDocConfigProperties springDocConfigProperties, + PropertyResolverUtils propertyResolverUtils, + Optional> openApiBuilderCustomizers, + Optional> serverBaseUrlCustomizers, + Optional javadocProvider) { + + return new OpenAPIService(openAPI, securityParser, springDocConfigProperties, + propertyResolverUtils, openApiBuilderCustomizers, serverBaseUrlCustomizers, javadocProvider); + } + + // ========== 分组 OpenAPI 配置 ========== + + /** + * 所有模块的 API 分组 + */ + @Bean + public GroupedOpenApi allGroupedOpenApi() { + return buildGroupedOpenApi("all", ""); + } + + //低代码 + @Bean + public GroupedOpenApi jeeLowCodeGroupedOpenApi() { + return buildGroupedOpenApi("低代码", "jeelowcode"); + } + + public static GroupedOpenApi buildGroupedOpenApi(String group) { + return buildGroupedOpenApi(group, group); + } + + public static GroupedOpenApi buildGroupedOpenApi(String group, String path) { + return GroupedOpenApi.builder() + .group(group) + .pathsToMatch("/admin-api/" + path + "/**", "/app-api/" + path + "/**") + .addOperationCustomizer((operation, handlerMethod) -> operation + .addParametersItem(buildTenantHeaderParameter()) + .addParametersItem(buildSecurityHeaderParameter())) + .build(); + } + + /** + * 构建 Tenant 租户编号请求头参数 + * + * @return 多租户参数 + */ + private static Parameter buildTenantHeaderParameter() { + return new Parameter() + .name(HEADER_TENANT_ID) // header 名 + .description("租户编号") // 描述 + .in(String.valueOf(SecurityScheme.In.HEADER)) // 请求 header + .schema(new IntegerSchema()._default(1L).name(HEADER_TENANT_ID).description("租户编号")); // 默认:使用租户编号为 1 + } + + /** + * 构建 Authorization 认证请求头参数 + * + * 解决 Knife4j Authorize 未生效,请求header里未包含参数 + * + * @return 认证参数 + */ + private static Parameter buildSecurityHeaderParameter() { + return new Parameter() + .name(HttpHeaders.AUTHORIZATION) // header 名 + .description("认证 Token") // 描述 + .in(String.valueOf(SecurityScheme.In.HEADER)) // 请求 header + .schema(new StringSchema()._default("Bearer test1").name(HEADER_TENANT_ID).description("认证 Token")); // 默认:使用用户编号为 1 + } + +} + diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/package-info.java new file mode 100644 index 0000000..5eb7822 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/package-info.java @@ -0,0 +1,6 @@ +/** + * 基于 Swagger + Knife4j 实现 API 接口文档 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.framework.swagger; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/WebProperties.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/WebProperties.java new file mode 100644 index 0000000..03f4d70 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/WebProperties.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.framework.web.config; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@ConfigurationProperties(prefix = "yudao.web") +@Validated +@Data +public class WebProperties { + + @NotNull(message = "APP API 不能为空") + private Api appApi = new Api("/app-api", "**.controller.app.**"); + @NotNull(message = "Admin API 不能为空") + private Api adminApi = new Api("/admin-api", "**.controller.admin.**"); + + @NotNull(message = "Admin UI 不能为空") + private Ui adminUi; + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Valid + public static class Api { + + /** + * API 前缀,实现所有 Controller 提供的 RESTFul API 的统一前缀 + * + * + * 意义:通过该前缀,避免 Swagger、Actuator 意外通过 Nginx 暴露出来给外部,带来安全性问题 + * 这样,Nginx 只需要配置转发到 /api/* 的所有接口即可。 + * + * @see YudaoWebAutoConfiguration#configurePathMatch(PathMatchConfigurer) + */ + @NotEmpty(message = "API 前缀不能为空") + private String prefix; + + /** + * Controller 所在包的 Ant 路径规则 + * + * 主要目的是,给该 Controller 设置指定的 {@link #prefix} + */ + @NotEmpty(message = "Controller 所在包不能为空") + private String controller; + + } + + @Data + @Valid + public static class Ui { + + /** + * 访问地址 + */ + private String url; + + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java new file mode 100644 index 0000000..e47619d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java @@ -0,0 +1,128 @@ +package cn.iocoder.yudao.framework.web.config; + +import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService; +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter; +import cn.iocoder.yudao.framework.web.core.filter.DemoFilter; +import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; +import cn.iocoder.yudao.framework.web.core.handler.GlobalResponseBodyHandler; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.util.AntPathMatcher; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; +import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.annotation.Resource; +import javax.servlet.Filter; + +@AutoConfiguration +@EnableConfigurationProperties(WebProperties.class) +public class YudaoWebAutoConfiguration implements WebMvcConfigurer { + + @Resource + private WebProperties webProperties; + /** + * 应用名 + */ + @Value("${spring.application.name}") + private String applicationName; + + @Override + public void configurePathMatch(PathMatchConfigurer configurer) { + configurePathMatch(configurer, webProperties.getAdminApi()); + configurePathMatch(configurer, webProperties.getAppApi()); + } + + /** + * 设置 API 前缀,仅仅匹配 controller 包下的 + * + * @param configurer 配置 + * @param api API 配置 + */ + private void configurePathMatch(PathMatchConfigurer configurer, WebProperties.Api api) { + AntPathMatcher antPathMatcher = new AntPathMatcher("."); + configurer.addPathPrefix(api.getPrefix(), clazz -> clazz.isAnnotationPresent(RestController.class) + && antPathMatcher.match(api.getController(), clazz.getPackage().getName())); // 仅仅匹配 controller 包 + } + + @Bean + public GlobalExceptionHandler globalExceptionHandler(ApiErrorLogFrameworkService ApiErrorLogFrameworkService) { + return new GlobalExceptionHandler(applicationName, ApiErrorLogFrameworkService); + } + + @Bean + public GlobalResponseBodyHandler globalResponseBodyHandler() { + return new GlobalResponseBodyHandler(); + } + + @Bean + @SuppressWarnings("InstantiationOfUtilityClass") + public WebFrameworkUtils webFrameworkUtils(WebProperties webProperties) { + // 由于 WebFrameworkUtils 需要使用到 webProperties 属性,所以注册为一个 Bean + return new WebFrameworkUtils(webProperties); + } + + // ========== Filter 相关 ========== + + /** + * 创建 CorsFilter Bean,解决跨域问题 + */ + @Bean + public FilterRegistrationBean corsFilterBean() { + // 创建 CorsConfiguration 对象 + CorsConfiguration config = new CorsConfiguration(); + config.setAllowCredentials(true); + config.addAllowedOriginPattern("*"); // 设置访问源地址 + config.addAllowedHeader("*"); // 设置访问源请求头 + config.addAllowedMethod("*"); // 设置访问源请求方法 + // 创建 UrlBasedCorsConfigurationSource 对象 + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", config); // 对接口配置跨域设置 + return createFilterBean(new CorsFilter(source), WebFilterOrderEnum.CORS_FILTER); + } + + /** + * 创建 RequestBodyCacheFilter Bean,可重复读取请求内容 + */ + @Bean + public FilterRegistrationBean requestBodyCacheFilter() { + return createFilterBean(new CacheRequestBodyFilter(), WebFilterOrderEnum.REQUEST_BODY_CACHE_FILTER); + } + + /** + * 创建 DemoFilter Bean,演示模式 + */ + @Bean + @ConditionalOnProperty(value = "yudao.demo", havingValue = "true") + public FilterRegistrationBean demoFilter() { + return createFilterBean(new DemoFilter(), WebFilterOrderEnum.DEMO_FILTER); + } + + public static FilterRegistrationBean createFilterBean(T filter, Integer order) { + FilterRegistrationBean bean = new FilterRegistrationBean<>(filter); + bean.setOrder(order); + return bean; + } + + /** + * 创建 RestTemplate 实例 + * + * @param restTemplateBuilder {@link RestTemplateAutoConfiguration#restTemplateBuilder} + */ + @Bean + public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { + return restTemplateBuilder.build(); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/ApiRequestFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/ApiRequestFilter.java new file mode 100644 index 0000000..8e78a3b --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/ApiRequestFilter.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.framework.web.core.filter; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import lombok.RequiredArgsConstructor; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.http.HttpServletRequest; + +/** + * 过滤 /admin-api、/app-api 等 API 请求的过滤器 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public abstract class ApiRequestFilter extends OncePerRequestFilter { + + protected final WebProperties webProperties; + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + // 只过滤 API 请求的地址 + return !StrUtil.startWithAny(request.getRequestURI(), webProperties.getAdminApi().getPrefix(), + webProperties.getAppApi().getPrefix()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyFilter.java new file mode 100644 index 0000000..7051fc8 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyFilter.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.framework.web.core.filter; + +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Request Body 缓存 Filter,实现它的可重复读取 + * + * @author 芋道源码 + */ +public class CacheRequestBodyFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws IOException, ServletException { + filterChain.doFilter(new CacheRequestBodyWrapper(request), response); + } + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + // 只处理 json 请求内容 + return !ServletUtils.isJsonRequest(request); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyWrapper.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyWrapper.java new file mode 100644 index 0000000..616a340 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/CacheRequestBodyWrapper.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.framework.web.core.filter; + +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; + +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +/** + * Request Body 缓存 Wrapper + * + * @author 芋道源码 + */ +public class CacheRequestBodyWrapper extends HttpServletRequestWrapper { + + /** + * 缓存的内容 + */ + private final byte[] body; + + public CacheRequestBodyWrapper(HttpServletRequest request) { + super(request); + body = ServletUtils.getBodyBytes(request); + } + + @Override + public BufferedReader getReader() throws IOException { + return new BufferedReader(new InputStreamReader(this.getInputStream())); + } + + @Override + public ServletInputStream getInputStream() throws IOException { + final ByteArrayInputStream inputStream = new ByteArrayInputStream(body); + // 返回 ServletInputStream + return new ServletInputStream() { + + @Override + public int read() { + return inputStream.read(); + } + + @Override + public boolean isFinished() { + return false; + } + + @Override + public boolean isReady() { + return false; + } + + @Override + public void setReadListener(ReadListener readListener) {} + + @Override + public int available() { + return body.length; + } + + }; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/DemoFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/DemoFilter.java new file mode 100644 index 0000000..a740ab0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/DemoFilter.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.framework.web.core.filter; + +import cn.hutool.core.util.StrUtil; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import com.jeelowcode.framework.global.JeeLowCodeBaseConstant; +import org.springframework.web.filter.OncePerRequestFilter; +import org.springframework.web.util.ContentCachingRequestWrapper; + +import javax.servlet.FilterChain; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.util.ArrayList; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.DEMO_DENY; + +/** + * 演示 Filter,禁止用户发起写操作,避免影响测试数据 + * + * @author 芋道源码 + */; +public class DemoFilter extends OncePerRequestFilter { + + static List noFilterList=new ArrayList<>(); + static { + noFilterList.add("/admin-api/system/area/view-parent-list"); + noFilterList.add("/admin-api/system/auth/logout"); + noFilterList.add("/admin-api/system/auth/logout"); + noFilterList.add("/admin-api/infra/job/create"); + noFilterList.add("/admin-api/infra/job/update"); + noFilterList.add("/admin-api/infra/job/update-status"); + noFilterList.add("/admin-api/infra/job/trigger"); + } + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + boolean jeeLowCodeFlag = isJeeLowCode(request); + if(jeeLowCodeFlag){ + return jeeLowCodeFlag; + } + + String method = request.getMethod(); + return !StrUtil.equalsAnyIgnoreCase(method, "POST", "PUT", "DELETE") // 写操作时,不进行过滤率 + || WebFrameworkUtils.getLoginUserId(request) == null; // 非登录用户时,不进行过滤 + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) { + // 直接返回 DEMO_DENY 的结果。即,请求不继续 + ServletUtils.writeJSON(response, CommonResult.error(DEMO_DENY)); + } + + //是否的jeelowcode + private boolean isJeeLowCode(HttpServletRequest request){ + ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request); + String requestURI = requestWrapper.getRequestURI(); + if(requestURI!=null && requestURI.startsWith(JeeLowCodeBaseConstant.REQUEST_URL_START)){//jeelowcode的全部功能放开 + return true; + } + for(String url:noFilterList){ + if(requestURI.startsWith(url)){ + return true; + } + } + + + return false; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..491c189 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java @@ -0,0 +1,302 @@ +package cn.iocoder.yudao.framework.web.core.handler; + +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLog; +import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.util.Assert; +import org.springframework.validation.BindException; +import org.springframework.validation.FieldError; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingServletRequestParameterException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; +import org.springframework.web.servlet.NoHandlerFoundException; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import javax.validation.ValidationException; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.*; + +/** + * 全局异常处理器,将 Exception 翻译成 CommonResult + 对应的异常编号 + * + * @author 芋道源码 + */ +@RestControllerAdvice +@AllArgsConstructor +@Slf4j +public class GlobalExceptionHandler { + + private final String applicationName; + + private final ApiErrorLogFrameworkService apiErrorLogFrameworkService; + + /** + * 处理所有异常,主要是提供给 Filter 使用 + * 因为 Filter 不走 SpringMVC 的流程,但是我们又需要兜底处理异常,所以这里提供一个全量的异常处理过程,保持逻辑统一。 + * + * @param request 请求 + * @param ex 异常 + * @return 通用返回 + */ + public CommonResult allExceptionHandler(HttpServletRequest request, Throwable ex) { + if (ex instanceof MissingServletRequestParameterException) { + return missingServletRequestParameterExceptionHandler((MissingServletRequestParameterException) ex); + } + if (ex instanceof MethodArgumentTypeMismatchException) { + return methodArgumentTypeMismatchExceptionHandler((MethodArgumentTypeMismatchException) ex); + } + if (ex instanceof MethodArgumentNotValidException) { + return methodArgumentNotValidExceptionExceptionHandler((MethodArgumentNotValidException) ex); + } + if (ex instanceof BindException) { + return bindExceptionHandler((BindException) ex); + } + if (ex instanceof ConstraintViolationException) { + return constraintViolationExceptionHandler((ConstraintViolationException) ex); + } + if (ex instanceof ValidationException) { + return validationException((ValidationException) ex); + } + if (ex instanceof NoHandlerFoundException) { + return noHandlerFoundExceptionHandler(request, (NoHandlerFoundException) ex); + } + if (ex instanceof HttpRequestMethodNotSupportedException) { + return httpRequestMethodNotSupportedExceptionHandler((HttpRequestMethodNotSupportedException) ex); + } + if (ex instanceof ServiceException) { + return serviceExceptionHandler((ServiceException) ex); + } + if (ex instanceof AccessDeniedException) { + return accessDeniedExceptionHandler(request, (AccessDeniedException) ex); + } + return defaultExceptionHandler(request, ex); + } + + /** + * 处理 SpringMVC 请求参数缺失 + * + * 例如说,接口上设置了 @RequestParam("xx") 参数,结果并未传递 xx 参数 + */ + @ExceptionHandler(value = MissingServletRequestParameterException.class) + public CommonResult missingServletRequestParameterExceptionHandler(MissingServletRequestParameterException ex) { + log.warn("[missingServletRequestParameterExceptionHandler]", ex); + return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数缺失:%s", ex.getParameterName())); + } + + /** + * 处理 SpringMVC 请求参数类型错误 + * + * 例如说,接口上设置了 @RequestParam("xx") 参数为 Integer,结果传递 xx 参数类型为 String + */ + @ExceptionHandler(MethodArgumentTypeMismatchException.class) + public CommonResult methodArgumentTypeMismatchExceptionHandler(MethodArgumentTypeMismatchException ex) { + log.warn("[missingServletRequestParameterExceptionHandler]", ex); + return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数类型错误:%s", ex.getMessage())); + } + + /** + * 处理 SpringMVC 参数校验不正确 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public CommonResult methodArgumentNotValidExceptionExceptionHandler(MethodArgumentNotValidException ex) { + log.warn("[methodArgumentNotValidExceptionExceptionHandler]", ex); + FieldError fieldError = ex.getBindingResult().getFieldError(); + assert fieldError != null; // 断言,避免告警 + return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数不正确:%s", fieldError.getDefaultMessage())); + } + + /** + * 处理 SpringMVC 参数绑定不正确,本质上也是通过 Validator 校验 + */ + @ExceptionHandler(BindException.class) + public CommonResult bindExceptionHandler(BindException ex) { + log.warn("[handleBindException]", ex); + FieldError fieldError = ex.getFieldError(); + assert fieldError != null; // 断言,避免告警 + return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数不正确:%s", fieldError.getDefaultMessage())); + } + + /** + * 处理 Validator 校验不通过产生的异常 + */ + @ExceptionHandler(value = ConstraintViolationException.class) + public CommonResult constraintViolationExceptionHandler(ConstraintViolationException ex) { + log.warn("[constraintViolationExceptionHandler]", ex); + ConstraintViolation constraintViolation = ex.getConstraintViolations().iterator().next(); + return CommonResult.error(BAD_REQUEST.getCode(), String.format("请求参数不正确:%s", constraintViolation.getMessage())); + } + + /** + * 处理 Dubbo Consumer 本地参数校验时,抛出的 ValidationException 异常 + */ + @ExceptionHandler(value = ValidationException.class) + public CommonResult validationException(ValidationException ex) { + log.warn("[constraintViolationExceptionHandler]", ex); + // 无法拼接明细的错误信息,因为 Dubbo Consumer 抛出 ValidationException 异常时,是直接的字符串信息,且人类不可读 + return CommonResult.error(BAD_REQUEST); + } + + /** + * 处理 SpringMVC 请求地址不存在 + * + * 注意,它需要设置如下两个配置项: + * 1. spring.mvc.throw-exception-if-no-handler-found 为 true + * 2. spring.mvc.static-path-pattern 为 /statics/** + */ + @ExceptionHandler(NoHandlerFoundException.class) + public CommonResult noHandlerFoundExceptionHandler(HttpServletRequest req, NoHandlerFoundException ex) { + log.warn("[noHandlerFoundExceptionHandler]", ex); + return CommonResult.error(NOT_FOUND.getCode(), String.format("请求地址不存在:%s", ex.getRequestURL())); + } + + /** + * 处理 SpringMVC 请求方法不正确 + * + * 例如说,A 接口的方法为 GET 方式,结果请求方法为 POST 方式,导致不匹配 + */ + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public CommonResult httpRequestMethodNotSupportedExceptionHandler(HttpRequestMethodNotSupportedException ex) { + log.warn("[httpRequestMethodNotSupportedExceptionHandler]", ex); + return CommonResult.error(METHOD_NOT_ALLOWED.getCode(), String.format("请求方法不正确:%s", ex.getMessage())); + } + + /** + * 处理 Resilience4j 限流抛出的异常 + */ + public CommonResult requestNotPermittedExceptionHandler(HttpServletRequest req, Throwable ex) { + log.warn("[requestNotPermittedExceptionHandler][url({}) 访问过于频繁]", req.getRequestURL(), ex); + return CommonResult.error(TOO_MANY_REQUESTS); + } + + /** + * 处理 Spring Security 权限不足的异常 + * + * 来源是,使用 @PreAuthorize 注解,AOP 进行权限拦截 + */ + @ExceptionHandler(value = AccessDeniedException.class) + public CommonResult accessDeniedExceptionHandler(HttpServletRequest req, AccessDeniedException ex) { + log.warn("[accessDeniedExceptionHandler][userId({}) 无法访问 url({})]", WebFrameworkUtils.getLoginUserId(req), + req.getRequestURL(), ex); + return CommonResult.error(FORBIDDEN); + } + + /** + * 处理业务异常 ServiceException + * + * 例如说,商品库存不足,用户手机号已存在。 + */ + @ExceptionHandler(value = ServiceException.class) + public CommonResult serviceExceptionHandler(ServiceException ex) { + log.info("[serviceExceptionHandler]", ex); + return CommonResult.error(ex.getCode(), ex.getMessage()); + } + + /** + * 处理系统异常,兜底处理所有的一切 + */ + @ExceptionHandler(value = Exception.class) + public CommonResult defaultExceptionHandler(HttpServletRequest req, Throwable ex) { + // 情况一:处理表不存在的异常 + CommonResult tableNotExistsResult = handleTableNotExists(ex); + if (tableNotExistsResult != null) { + return tableNotExistsResult; + } + + // 情况二:部分特殊的库的处理 + if (Objects.equals("io.github.resilience4j.ratelimiter.RequestNotPermitted", ex.getClass().getName())) { + return requestNotPermittedExceptionHandler(req, ex); + } + + // 情况三:处理异常 + log.error("[defaultExceptionHandler]", ex); + // 插入异常日志 + this.createExceptionLog(req, ex); + // 返回 ERROR CommonResult + return CommonResult.error(INTERNAL_SERVER_ERROR.getCode(), INTERNAL_SERVER_ERROR.getMsg()); + } + + private void createExceptionLog(HttpServletRequest req, Throwable e) { + // 插入错误日志 + ApiErrorLog errorLog = new ApiErrorLog(); + try { + // 初始化 errorLog + initExceptionLog(errorLog, req, e); + // 执行插入 errorLog + apiErrorLogFrameworkService.createApiErrorLog(errorLog); + } catch (Throwable th) { + log.error("[createExceptionLog][url({}) log({}) 发生异常]", req.getRequestURI(), JsonUtils.toJsonString(errorLog), th); + } + } + + private void initExceptionLog(ApiErrorLog errorLog, HttpServletRequest request, Throwable e) { + // 处理用户信息 + errorLog.setUserId(WebFrameworkUtils.getLoginUserId(request)); + errorLog.setUserType(WebFrameworkUtils.getLoginUserType(request)); + // 设置异常字段 + errorLog.setExceptionName(e.getClass().getName()); + errorLog.setExceptionMessage(ExceptionUtil.getMessage(e)); + errorLog.setExceptionRootCauseMessage(ExceptionUtil.getRootCauseMessage(e)); + errorLog.setExceptionStackTrace(ExceptionUtils.getStackTrace(e)); + StackTraceElement[] stackTraceElements = e.getStackTrace(); + Assert.notEmpty(stackTraceElements, "异常 stackTraceElements 不能为空"); + StackTraceElement stackTraceElement = stackTraceElements[0]; + errorLog.setExceptionClassName(stackTraceElement.getClassName()); + errorLog.setExceptionFileName(stackTraceElement.getFileName()); + errorLog.setExceptionMethodName(stackTraceElement.getMethodName()); + errorLog.setExceptionLineNumber(stackTraceElement.getLineNumber()); + // 设置其它字段 + errorLog.setTraceId(TracerUtils.getTraceId()); + errorLog.setApplicationName(applicationName); + errorLog.setRequestUrl(request.getRequestURI()); + Map requestParams = MapUtil.builder() + .put("query", ServletUtils.getParamMap(request)) + .put("body", ServletUtils.getBody(request)).build(); + errorLog.setRequestParams(JsonUtils.toJsonString(requestParams)); + errorLog.setRequestMethod(request.getMethod()); + errorLog.setUserAgent(ServletUtils.getUserAgent(request)); + errorLog.setUserIp(ServletUtils.getClientIP(request)); + errorLog.setExceptionTime(LocalDateTime.now()); + } + + /** + * 处理 Table 不存在的异常情况 + * + * @param ex 异常 + * @return 如果是 Table 不存在的异常,则返回对应的 CommonResult + */ + private CommonResult handleTableNotExists(Throwable ex) { + String message = ExceptionUtil.getRootCauseMessage(ex); + if (!message.contains("doesn't exist")) { + return null; + } + // 2. 工作流 + if (message.contains("bpm_")) { + log.error("[工作流模块 yudao-module-bpm - 表结构未导入][参考 https://doc.iocoder.cn/bpm/ 开启]"); + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[工作流模块 yudao-module-bpm - 表结构未导入][参考 https://doc.iocoder.cn/bpm/ 开启]"); + } + + return null; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalResponseBodyHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalResponseBodyHandler.java new file mode 100644 index 0000000..90da742 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalResponseBodyHandler.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.framework.web.core.handler; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import org.springframework.core.MethodParameter; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.http.server.ServletServerHttpRequest; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +/** + * 全局响应结果(ResponseBody)处理器 + * + * 不同于在网上看到的很多文章,会选择自动将 Controller 返回结果包上 {@link CommonResult}, + * 在 onemall 中,是 Controller 在返回时,主动自己包上 {@link CommonResult}。 + * 原因是,GlobalResponseBodyHandler 本质上是 AOP,它不应该改变 Controller 返回的数据结构 + * + * 目前,GlobalResponseBodyHandler 的主要作用是,记录 Controller 的返回结果, + * 方便 {@link cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter} 记录访问日志 + */ +@ControllerAdvice +public class GlobalResponseBodyHandler implements ResponseBodyAdvice { + + @Override + @SuppressWarnings("NullableProblems") // 避免 IDEA 警告 + public boolean supports(MethodParameter returnType, Class converterType) { + if (returnType.getMethod() == null) { + return false; + } + // 只拦截返回结果为 CommonResult 类型 + return returnType.getMethod().getReturnType() == CommonResult.class; + } + + @Override + @SuppressWarnings("NullableProblems") // 避免 IDEA 警告 + public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, + ServerHttpRequest request, ServerHttpResponse response) { + // 记录 Controller 结果 + WebFrameworkUtils.setCommonResult(((ServletServerHttpRequest) request).getServletRequest(), (CommonResult) body); + return body; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/util/WebFrameworkUtils.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/util/WebFrameworkUtils.java new file mode 100644 index 0000000..b5a52c0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/util/WebFrameworkUtils.java @@ -0,0 +1,146 @@ +package cn.iocoder.yudao.framework.web.core.util; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.extra.servlet.ServletUtil; +import cn.iocoder.yudao.framework.common.enums.TerminalEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; + +/** + * 专属于 web 包的工具类 + * + * @author 芋道源码 + */ +public class WebFrameworkUtils { + + private static final String REQUEST_ATTRIBUTE_LOGIN_USER_ID = "login_user_id"; + private static final String REQUEST_ATTRIBUTE_LOGIN_USER_TYPE = "login_user_type"; + + private static final String REQUEST_ATTRIBUTE_COMMON_RESULT = "common_result"; + + public static final String HEADER_TENANT_ID = "tenant-id"; + + /** + * 终端的 Header + * + * @see cn.iocoder.yudao.framework.common.enums.TerminalEnum + */ + public static final String HEADER_TERMINAL = "terminal"; + + private static WebProperties properties; + + public WebFrameworkUtils(WebProperties webProperties) { + WebFrameworkUtils.properties = webProperties; + } + + /** + * 获得租户编号,从 header 中 + * 考虑到其它 framework 组件也会使用到租户编号,所以不得不放在 WebFrameworkUtils 统一提供 + * + * @param request 请求 + * @return 租户编号 + */ + public static Long getTenantId(HttpServletRequest request) { + String tenantId = request.getHeader(HEADER_TENANT_ID); + return NumberUtil.isNumber(tenantId) ? Long.valueOf(tenantId) : null; + } + + public static void setLoginUserId(ServletRequest request, Long userId) { + request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID, userId); + } + + /** + * 设置用户类型 + * + * @param request 请求 + * @param userType 用户类型 + */ + public static void setLoginUserType(ServletRequest request, Integer userType) { + request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_TYPE, userType); + } + + /** + * 获得当前用户的编号,从请求中 + * 注意:该方法仅限于 framework 框架使用!!! + * + * @param request 请求 + * @return 用户编号 + */ + public static Long getLoginUserId(HttpServletRequest request) { + if (request == null) { + return null; + } + return (Long) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID); + } + + /** + * 获得当前用户的类型 + * 注意:该方法仅限于 web 相关的 framework 组件使用!!! + * + * @param request 请求 + * @return 用户编号 + */ + public static Integer getLoginUserType(HttpServletRequest request) { + if (request == null) { + return null; + } + // 1. 优先,从 Attribute 中获取 + Integer userType = (Integer) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_TYPE); + if (userType != null) { + return userType; + } + // 2. 其次,基于 URL 前缀的约定 + if (request.getServletPath().startsWith(properties.getAdminApi().getPrefix())) { + return UserTypeEnum.ADMIN.getValue(); + } + if (request.getServletPath().startsWith(properties.getAppApi().getPrefix())) { + return UserTypeEnum.MEMBER.getValue(); + } + return null; + } + + public static Integer getLoginUserType() { + HttpServletRequest request = getRequest(); + return getLoginUserType(request); + } + + public static Long getLoginUserId() { + HttpServletRequest request = getRequest(); + return getLoginUserId(request); + } + + public static Integer getTerminal() { + HttpServletRequest request = getRequest(); + if (request == null) { + return TerminalEnum.UNKNOWN.getTerminal(); + } + String terminalValue = request.getHeader(HEADER_TERMINAL); + return NumberUtil.parseInt(terminalValue, TerminalEnum.UNKNOWN.getTerminal()); + } + + public static void setCommonResult(ServletRequest request, CommonResult result) { + request.setAttribute(REQUEST_ATTRIBUTE_COMMON_RESULT, result); + } + + public static CommonResult getCommonResult(ServletRequest request) { + return (CommonResult) request.getAttribute(REQUEST_ATTRIBUTE_COMMON_RESULT); + } + + public static HttpServletRequest getRequest() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if (!(requestAttributes instanceof ServletRequestAttributes)) { + return null; + } + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes; + return servletRequestAttributes.getRequest(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/package-info.java new file mode 100644 index 0000000..43b70eb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/package-info.java @@ -0,0 +1,4 @@ +/** + * 针对 SpringMVC 的基础封装 + */ +package cn.iocoder.yudao.framework.web; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/XssProperties.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/XssProperties.java new file mode 100644 index 0000000..c914b04 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/XssProperties.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.xss.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import java.util.Collections; +import java.util.List; + +/** + * Xss 配置属性 + * + * @author 芋道源码 + */ +@ConfigurationProperties(prefix = "yudao.xss") +@Validated +@Data +public class XssProperties { + + /** + * 是否开启,默认为 true + */ + private boolean enable = true; + /** + * 需要排除的 URL,默认为空 + */ + private List excludeUrls = Collections.emptyList(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/YudaoXssAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/YudaoXssAutoConfiguration.java new file mode 100644 index 0000000..8cf5d53 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/config/YudaoXssAutoConfiguration.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.framework.xss.config; + +import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; +import cn.iocoder.yudao.framework.xss.core.clean.JsoupXssCleaner; +import cn.iocoder.yudao.framework.xss.core.clean.XssCleaner; +import cn.iocoder.yudao.framework.xss.core.filter.XssFilter; +import cn.iocoder.yudao.framework.xss.core.json.XssStringJsonDeserializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.util.PathMatcher; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import static cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration.createFilterBean; + +@AutoConfiguration +@EnableConfigurationProperties(XssProperties.class) +@ConditionalOnProperty(prefix = "yudao.xss", name = "enable", havingValue = "true", matchIfMissing = true) // 设置为 false 时,禁用 +public class YudaoXssAutoConfiguration implements WebMvcConfigurer { + + /** + * Xss 清理者 + * + * @return XssCleaner + */ + @Bean + @ConditionalOnMissingBean(XssCleaner.class) + public XssCleaner xssCleaner() { + return new JsoupXssCleaner(); + } + + /** + * 注册 Jackson 的序列化器,用于处理 json 类型参数的 xss 过滤 + * + * @return Jackson2ObjectMapperBuilderCustomizer + */ + @Bean + @ConditionalOnMissingBean(name = "xssJacksonCustomizer") + @ConditionalOnBean(ObjectMapper.class) + @ConditionalOnProperty(value = "yudao.xss.enable", havingValue = "true") + public Jackson2ObjectMapperBuilderCustomizer xssJacksonCustomizer(XssCleaner xssCleaner) { + // 在反序列化时进行 xss 过滤,可以替换使用 XssStringJsonSerializer,在序列化时进行处理 + return builder -> builder.deserializerByType(String.class, new XssStringJsonDeserializer(xssCleaner)); + } + + /** + * 创建 XssFilter Bean,解决 Xss 安全问题 + */ + @Bean + @ConditionalOnBean(XssCleaner.class) + public FilterRegistrationBean xssFilter(XssProperties properties, PathMatcher pathMatcher, XssCleaner xssCleaner) { + return createFilterBean(new XssFilter(properties, pathMatcher, xssCleaner), WebFilterOrderEnum.XSS_FILTER); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/JsoupXssCleaner.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/JsoupXssCleaner.java new file mode 100644 index 0000000..4cbc907 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/JsoupXssCleaner.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.framework.xss.core.clean; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.safety.Safelist; + +/** + * 基于 JSONP 实现 XSS 过滤字符串 + */ +public class JsoupXssCleaner implements XssCleaner { + + private final Safelist safelist; + + /** + * 用于在 src 属性使用相对路径时,强制转换为绝对路径。 为空时不处理,值应为绝对路径的前缀(包含协议部分) + */ + private final String baseUri; + + /** + * 无参构造,默认使用 {@link JsoupXssCleaner#buildSafelist} 方法构建一个安全列表 + */ + public JsoupXssCleaner() { + this.safelist = buildSafelist(); + this.baseUri = ""; + } + + /** + * 构建一个 Xss 清理的 Safelist 规则。 + * 基于 Safelist#relaxed() 的基础上: + * 1. 扩展支持了 style 和 class 属性 + * 2. a 标签额外支持了 target 属性 + * 3. img 标签额外支持了 data 协议,便于支持 base64 + * + * @return Safelist + */ + private Safelist buildSafelist() { + // 使用 jsoup 提供的默认的 + Safelist relaxedSafelist = Safelist.relaxed(); + // 富文本编辑时一些样式是使用 style 来进行实现的 + // 比如红色字体 style="color:red;", 所以需要给所有标签添加 style 属性 + // 注意:style 属性会有注入风险 + relaxedSafelist.addAttributes(":all", "style", "class"); + // 保留 a 标签的 target 属性 + relaxedSafelist.addAttributes("a", "target"); + // 支持img 为base64 + relaxedSafelist.addProtocols("img", "src", "data"); + + // 保留相对路径, 保留相对路径时,必须提供对应的 baseUri 属性,否则依然会被删除 + // WHITELIST.preserveRelativeLinks(false); + + // 移除 a 标签和 img 标签的一些协议限制,这会导致 xss 防注入失效,如 + // 虽然可以重写 WhiteList#isSafeAttribute 来处理,但是有隐患,所以暂时不支持相对路径 + // WHITELIST.removeProtocols("a", "href", "ftp", "http", "https", "mailto"); + // WHITELIST.removeProtocols("img", "src", "http", "https"); + return relaxedSafelist; + } + + @Override + public String clean(String html) { + return Jsoup.clean(html, baseUri, safelist, new Document.OutputSettings().prettyPrint(false)); + } + +} + diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/XssCleaner.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/XssCleaner.java new file mode 100644 index 0000000..529bc64 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/clean/XssCleaner.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.framework.xss.core.clean; + +/** + * 对 html 文本中的有 Xss 风险的数据进行清理 + */ +public interface XssCleaner { + + /** + * 清理有 Xss 风险的文本 + * + * @param html 原 html + * @return 清理后的 html + */ + String clean(String html); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssFilter.java new file mode 100644 index 0000000..5f2ce6e --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssFilter.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.xss.core.filter; + +import cn.iocoder.yudao.framework.xss.config.XssProperties; +import cn.iocoder.yudao.framework.xss.core.clean.XssCleaner; +import lombok.AllArgsConstructor; +import org.springframework.util.PathMatcher; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Xss 过滤器 + * + * @author 芋道源码 + */ +@AllArgsConstructor +public class XssFilter extends OncePerRequestFilter { + + /** + * 属性 + */ + private final XssProperties properties; + /** + * 路径匹配器 + */ + private final PathMatcher pathMatcher; + + private final XssCleaner xssCleaner; + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws IOException, ServletException { + filterChain.doFilter(new XssRequestWrapper(request, xssCleaner), response); + } + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + // 如果关闭,则不过滤 + if (!properties.isEnable()) { + return true; + } + + // 如果匹配到无需过滤,则不过滤 + String uri = request.getRequestURI(); + return properties.getExcludeUrls().stream().anyMatch(excludeUrl -> pathMatcher.match(excludeUrl, uri)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssRequestWrapper.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssRequestWrapper.java new file mode 100644 index 0000000..1466a97 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/filter/XssRequestWrapper.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.framework.xss.core.filter; + +import cn.iocoder.yudao.framework.xss.core.clean.XssCleaner; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * Xss 请求 Wrapper + * + * @author 芋道源码 + */ +public class XssRequestWrapper extends HttpServletRequestWrapper { + + private final XssCleaner xssCleaner; + + public XssRequestWrapper(HttpServletRequest request, XssCleaner xssCleaner) { + super(request); + this.xssCleaner = xssCleaner; + } + + // ============================ parameter ============================ + @Override + public Map getParameterMap() { + Map map = new LinkedHashMap<>(); + Map parameters = super.getParameterMap(); + for (Map.Entry entry : parameters.entrySet()) { + String[] values = entry.getValue(); + for (int i = 0; i < values.length; i++) { + values[i] = xssCleaner.clean(values[i]); + } + map.put(entry.getKey(), values); + } + return map; + } + + @Override + public String[] getParameterValues(String name) { + String[] values = super.getParameterValues(name); + if (values == null) { + return null; + } + int count = values.length; + String[] encodedValues = new String[count]; + for (int i = 0; i < count; i++) { + encodedValues[i] = xssCleaner.clean(values[i]); + } + return encodedValues; + } + + @Override + public String getParameter(String name) { + String value = super.getParameter(name); + if (value == null) { + return null; + } + return xssCleaner.clean(value); + } + + // ============================ attribute ============================ + @Override + public Object getAttribute(String name) { + Object value = super.getAttribute(name); + if (value instanceof String) { + return xssCleaner.clean((String) value); + } + return value; + } + + // ============================ header ============================ + @Override + public String getHeader(String name) { + String value = super.getHeader(name); + if (value == null) { + return null; + } + return xssCleaner.clean(value); + } + + // ============================ queryString ============================ + @Override + public String getQueryString() { + String value = super.getQueryString(); + if (value == null) { + return null; + } + return xssCleaner.clean(value); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/json/XssStringJsonDeserializer.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/json/XssStringJsonDeserializer.java new file mode 100644 index 0000000..2b1725d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/core/json/XssStringJsonDeserializer.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.framework.xss.core.json; + +import cn.iocoder.yudao.framework.xss.core.clean.XssCleaner; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StringDeserializer; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +/** + * XSS 过滤 jackson 反序列化器。 + * 在反序列化的过程中,会对字符串进行 XSS 过滤。 + * + * @author Hccake + */ +@Slf4j +@AllArgsConstructor +public class XssStringJsonDeserializer extends StringDeserializer { + + private final XssCleaner xssCleaner; + + @Override + public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + if (p.hasToken(JsonToken.VALUE_STRING)) { + return xssCleaner.clean(p.getText()); + } + JsonToken t = p.currentToken(); + // [databind#381] + if (t == JsonToken.START_ARRAY) { + return _deserializeFromArray(p, ctxt); + } + // need to gracefully handle byte[] data, as base64 + if (t == JsonToken.VALUE_EMBEDDED_OBJECT) { + Object ob = p.getEmbeddedObject(); + if (ob == null) { + return null; + } + if (ob instanceof byte[]) { + return ctxt.getBase64Variant().encode((byte[]) ob, false); + } + // otherwise, try conversion using toString()... + return ob.toString(); + } + // 29-Jun-2020, tatu: New! "Scalar from Object" (mostly for XML) + if (t == JsonToken.START_OBJECT) { + return ctxt.extractScalarFromObject(p, this, _valueClass); + } + + if (t.isScalarValue()) { + String text = p.getValueAsString(); + return xssCleaner.clean(text); + } + return (String) ctxt.handleUnexpectedToken(_valueClass, p); + } +} + diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/package-info.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/package-info.java new file mode 100644 index 0000000..c6e46f0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/xss/package-info.java @@ -0,0 +1,6 @@ +/** + * 针对 XSS 的基础封装 + * + * XSS 说明:https://tech.meituan.com/2018/09/27/fe-security.html + */ +package cn.iocoder.yudao.framework.xss; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..36ba94c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,7 @@ +cn.iocoder.yudao.framework.apilog.config.YudaoApiLogAutoConfiguration +cn.iocoder.yudao.framework.jackson.config.YudaoJacksonAutoConfiguration +cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration +cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration +cn.iocoder.yudao.framework.xss.config.YudaoXssAutoConfiguration +cn.iocoder.yudao.framework.banner.config.YudaoBannerAutoConfiguration +cn.iocoder.yudao.framework.errorcode.config.YudaoErrorCodeAutoConfiguration \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/banner.txt b/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/banner.txt new file mode 100644 index 0000000..0c0e158 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +欢迎使用JeeLowCode低代码结构 官网:http://www.jeelowcode.com/ + JeelowCode Version: 1.0.0 +Application Version: ${yudao.info.version} +Spring Boot Version: ${spring-boot.version} + ___ _ _____ _ + |_ | | | / __ \ | | + | | ___ ___| | _____ _| / \/ ___ __| | ___ + | |/ _ \/ _ \ | / _ \ \ /\ / / | / _ \ / _` |/ _ \ +/\__/ / __/ __/ |___| (_) \ V V /| \__/\ (_) | (_| | __/ +\____/ \___|\___\_____/\___/ \_/\_/ \____/\___/ \__,_|\___| diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/DesensitizeTest.java b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/DesensitizeTest.java new file mode 100644 index 0000000..dd214f0 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/DesensitizeTest.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.framework.desensitize.core; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.desensitize.core.annotation.Address; +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize; +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.RegexDesensitize; +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.*; +import lombok.Data; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +/** + * {@link DesensitizeTest} 的单元测试 + */ +@ExtendWith(MockitoExtension.class) +public class DesensitizeTest { + + @Test + public void test() { + // 准备参数 + DesensitizeDemo desensitizeDemo = new DesensitizeDemo(); + desensitizeDemo.setNickname("芋道源码"); + desensitizeDemo.setBankCard("9988002866797031"); + desensitizeDemo.setCarLicense("粤A66666"); + desensitizeDemo.setFixedPhone("01086551122"); + desensitizeDemo.setIdCard("530321199204074611"); + desensitizeDemo.setPassword("123456"); + desensitizeDemo.setPhoneNumber("13248765917"); + desensitizeDemo.setSlider1("ABCDEFG"); + desensitizeDemo.setSlider2("ABCDEFG"); + desensitizeDemo.setSlider3("ABCDEFG"); + desensitizeDemo.setEmail("1@email.com"); + desensitizeDemo.setRegex("你好,我是芋道源码"); + desensitizeDemo.setAddress("北京市海淀区上地十街10号"); + desensitizeDemo.setOrigin("芋道源码"); + + // 调用 + DesensitizeDemo d = JsonUtils.parseObject(JsonUtils.toJsonString(desensitizeDemo), DesensitizeDemo.class); + // 断言 + assertNotNull(d); + assertEquals("芋***", d.getNickname()); + assertEquals("998800********31", d.getBankCard()); + assertEquals("粤A6***6", d.getCarLicense()); + assertEquals("0108*****22", d.getFixedPhone()); + assertEquals("530321**********11", d.getIdCard()); + assertEquals("******", d.getPassword()); + assertEquals("132****5917", d.getPhoneNumber()); + assertEquals("#######", d.getSlider1()); + assertEquals("ABC*EFG", d.getSlider2()); + assertEquals("*******", d.getSlider3()); + assertEquals("1****@email.com", d.getEmail()); + assertEquals("你好,我是*", d.getRegex()); + assertEquals("北京市海淀区上地十街10号*", d.getAddress()); + assertEquals("芋道源码", d.getOrigin()); + } + + @Data + public static class DesensitizeDemo { + + @ChineseNameDesensitize + private String nickname; + @BankCardDesensitize + private String bankCard; + @CarLicenseDesensitize + private String carLicense; + @FixedPhoneDesensitize + private String fixedPhone; + @IdCardDesensitize + private String idCard; + @PasswordDesensitize + private String password; + @MobileDesensitize + private String phoneNumber; + @SliderDesensitize(prefixKeep = 6, suffixKeep = 1, replacer = "#") + private String slider1; + @SliderDesensitize(prefixKeep = 3, suffixKeep = 3) + private String slider2; + @SliderDesensitize(prefixKeep = 10) + private String slider3; + @EmailDesensitize + private String email; + @RegexDesensitize(regex = "芋道源码", replacer = "*") + private String regex; + @Address + private String address; + private String origin; + + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/annotation/Address.java b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/annotation/Address.java new file mode 100644 index 0000000..1301209 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/annotation/Address.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.framework.desensitize.core.annotation; + +import cn.iocoder.yudao.framework.desensitize.core.DesensitizeTest; +import cn.iocoder.yudao.framework.desensitize.core.handler.AddressHandler; +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 地址 + * + * 用于 {@link DesensitizeTest} 测试使用 + * + * @author gaibu + */ +@Documented +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside +@DesensitizeBy(handler = AddressHandler.class) +public @interface Address { + + String replacer() default "*"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/handler/AddressHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/handler/AddressHandler.java new file mode 100644 index 0000000..7a8455f --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-web/src/test/java/cn/iocoder/yudao/framework/desensitize/core/handler/AddressHandler.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.framework.desensitize.core.handler; + +import cn.iocoder.yudao.framework.desensitize.core.DesensitizeTest; +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; +import cn.iocoder.yudao.framework.desensitize.core.annotation.Address; + +/** + * {@link Address} 的脱敏处理器 + * + * 用于 {@link DesensitizeTest} 测试使用 + */ +public class AddressHandler implements DesensitizationHandler

    { + + @Override + public String desensitize(String origin, Address annotation) { + return origin + annotation.replacer(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/pom.xml b/yudao-framework/yudao-spring-boot-starter-websocket/pom.xml new file mode 100644 index 0000000..b534f10 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/pom.xml @@ -0,0 +1,73 @@ + + + + cn.iocoder.boot + yudao-framework + ${revision} + + 4.0.0 + yudao-spring-boot-starter-websocket + jar + + ${project.artifactId} + WebSocket 框架,支持多节点的广播 + https://github.com/YunaiV/ruoyi-vue-pro + + + + + cn.iocoder.boot + yudao-common + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + provided + + + + org.springframework.boot + spring-boot-starter-websocket + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + + + org.springframework.kafka + spring-kafka + true + + + org.springframework.amqp + spring-rabbit + true + + + org.apache.rocketmq + rocketmq-spring-boot-starter + true + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + provided + + + + \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/WebSocketProperties.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/WebSocketProperties.java new file mode 100644 index 0000000..aa618fb --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/WebSocketProperties.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.websocket.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * WebSocket 配置项 + * + * @author xingyu4j + */ +@ConfigurationProperties("yudao.websocket") +@Data +@Validated +public class WebSocketProperties { + + /** + * WebSocket 的连接路径 + */ + @NotEmpty(message = "WebSocket 的连接路径不能为空") + private String path = "/ws"; + + /** + * 消息发送器的类型 + * + * 可选值:local、redis、rocketmq、kafka、rabbitmq + */ + @NotNull(message = "WebSocket 的消息发送者不能为空") + private String senderType = "local"; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java new file mode 100644 index 0000000..0f08b7c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java @@ -0,0 +1,177 @@ +package cn.iocoder.yudao.framework.websocket.config; + +import cn.iocoder.yudao.framework.mq.redis.config.YudaoRedisMQConsumerAutoConfiguration; +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.websocket.core.handler.JsonWebSocketMessageHandler; +import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener; +import cn.iocoder.yudao.framework.websocket.core.security.LoginUserHandshakeInterceptor; +import cn.iocoder.yudao.framework.websocket.core.sender.kafka.KafkaWebSocketMessageConsumer; +import cn.iocoder.yudao.framework.websocket.core.sender.kafka.KafkaWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.local.LocalWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageConsumer; +import cn.iocoder.yudao.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.redis.RedisWebSocketMessageConsumer; +import cn.iocoder.yudao.framework.websocket.core.sender.redis.RedisWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageConsumer; +import cn.iocoder.yudao.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionHandlerDecorator; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManagerImpl; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.config.annotation.EnableWebSocket; +import org.springframework.web.socket.config.annotation.WebSocketConfigurer; +import org.springframework.web.socket.server.HandshakeInterceptor; + +import java.util.List; + +/** + * WebSocket 自动配置 + * + * @author xingyu4j + */ +@AutoConfiguration(before = YudaoRedisMQConsumerAutoConfiguration.class) // before YudaoRedisMQConsumerAutoConfiguration 的原因是,需要保证 RedisWebSocketMessageConsumer 先创建,才能创建 RedisMessageListenerContainer +@EnableWebSocket // 开启 websocket +@ConditionalOnProperty(prefix = "yudao.websocket", value = "enable", matchIfMissing = true) // 允许使用 yudao.websocket.enable=false 禁用 websocket +@EnableConfigurationProperties(WebSocketProperties.class) +public class YudaoWebSocketAutoConfiguration { + + @Bean + public WebSocketConfigurer webSocketConfigurer(HandshakeInterceptor[] handshakeInterceptors, + WebSocketHandler webSocketHandler, + WebSocketProperties webSocketProperties) { + return registry -> registry + // 添加 WebSocketHandler + .addHandler(webSocketHandler, webSocketProperties.getPath()) + .addInterceptors(handshakeInterceptors) + // 允许跨域,否则前端连接会直接断开 + .setAllowedOriginPatterns("*"); + } + + @Bean + public HandshakeInterceptor handshakeInterceptor() { + return new LoginUserHandshakeInterceptor(); + } + + @Bean + public WebSocketHandler webSocketHandler(WebSocketSessionManager sessionManager, + List> messageListeners) { + // 1. 创建 JsonWebSocketMessageHandler 对象,处理消息 + JsonWebSocketMessageHandler messageHandler = new JsonWebSocketMessageHandler(messageListeners); + // 2. 创建 WebSocketSessionHandlerDecorator 对象,处理连接 + return new WebSocketSessionHandlerDecorator(messageHandler, sessionManager); + } + + @Bean + public WebSocketSessionManager webSocketSessionManager() { + return new WebSocketSessionManagerImpl(); + } + + // ==================== Sender 相关 ==================== + + @Configuration + @ConditionalOnProperty(prefix = "yudao.websocket", name = "sender-type", havingValue = "local", matchIfMissing = true) + public class LocalWebSocketMessageSenderConfiguration { + + @Bean + public LocalWebSocketMessageSender localWebSocketMessageSender(WebSocketSessionManager sessionManager) { + return new LocalWebSocketMessageSender(sessionManager); + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yudao.websocket", name = "sender-type", havingValue = "redis", matchIfMissing = true) + public class RedisWebSocketMessageSenderConfiguration { + + @Bean + public RedisWebSocketMessageSender redisWebSocketMessageSender(WebSocketSessionManager sessionManager, + RedisMQTemplate redisMQTemplate) { + return new RedisWebSocketMessageSender(sessionManager, redisMQTemplate); + } + + @Bean + public RedisWebSocketMessageConsumer redisWebSocketMessageConsumer( + RedisWebSocketMessageSender redisWebSocketMessageSender) { + return new RedisWebSocketMessageConsumer(redisWebSocketMessageSender); + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yudao.websocket", name = "sender-type", havingValue = "rocketmq", matchIfMissing = true) + public class RocketMQWebSocketMessageSenderConfiguration { + + @Bean + public RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender( + WebSocketSessionManager sessionManager, RocketMQTemplate rocketMQTemplate, + @Value("${yudao.websocket.sender-rocketmq.topic}") String topic) { + return new RocketMQWebSocketMessageSender(sessionManager, rocketMQTemplate, topic); + } + + @Bean + public RocketMQWebSocketMessageConsumer rocketMQWebSocketMessageConsumer( + RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender) { + return new RocketMQWebSocketMessageConsumer(rocketMQWebSocketMessageSender); + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yudao.websocket", name = "sender-type", havingValue = "rabbitmq", matchIfMissing = true) + public class RabbitMQWebSocketMessageSenderConfiguration { + + @Bean + public RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender( + WebSocketSessionManager sessionManager, RabbitTemplate rabbitTemplate, + TopicExchange websocketTopicExchange) { + return new RabbitMQWebSocketMessageSender(sessionManager, rabbitTemplate, websocketTopicExchange); + } + + @Bean + public RabbitMQWebSocketMessageConsumer rabbitMQWebSocketMessageConsumer( + RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender) { + return new RabbitMQWebSocketMessageConsumer(rabbitMQWebSocketMessageSender); + } + + /** + * 创建 Topic Exchange + */ + @Bean + public TopicExchange websocketTopicExchange(@Value("${yudao.websocket.sender-rabbitmq.exchange}") String exchange) { + return new TopicExchange(exchange, + true, // durable: 是否持久化 + false); // exclusive: 是否排它 + } + + } + + @Configuration + @ConditionalOnProperty(prefix = "yudao.websocket", name = "sender-type", havingValue = "kafka", matchIfMissing = true) + public class KafkaWebSocketMessageSenderConfiguration { + + @Bean + public KafkaWebSocketMessageSender kafkaWebSocketMessageSender( + WebSocketSessionManager sessionManager, KafkaTemplate kafkaTemplate, + @Value("${yudao.websocket.sender-kafka.topic}") String topic) { + return new KafkaWebSocketMessageSender(sessionManager, kafkaTemplate, topic); + } + + @Bean + public KafkaWebSocketMessageConsumer kafkaWebSocketMessageConsumer( + KafkaWebSocketMessageSender kafkaWebSocketMessageSender) { + return new KafkaWebSocketMessageConsumer(kafkaWebSocketMessageSender); + } + + } + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/handler/JsonWebSocketMessageHandler.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/handler/JsonWebSocketMessageHandler.java new file mode 100644 index 0000000..120f529 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/handler/JsonWebSocketMessageHandler.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.framework.websocket.core.handler; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.TypeUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener; +import cn.iocoder.yudao.framework.websocket.core.message.JsonWebSocketMessage; +import cn.iocoder.yudao.framework.websocket.core.util.WebSocketFrameworkUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.handler.TextWebSocketHandler; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; + +/** + * JSON 格式 {@link WebSocketHandler} 实现类 + * + * 基于 {@link JsonWebSocketMessage#getType()} 消息类型,调度到对应的 {@link WebSocketMessageListener} 监听器。 + * + * @author 芋道源码 + */ +@Slf4j +public class JsonWebSocketMessageHandler extends TextWebSocketHandler { + + /** + * type 与 WebSocketMessageListener 的映射 + */ + private final Map> listeners = new HashMap<>(); + + @SuppressWarnings({"rawtypes", "unchecked"}) + public JsonWebSocketMessageHandler(List listenersList) { + listenersList.forEach((Consumer) + listener -> listeners.put(listener.getType(), listener)); + } + + @Override + protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { + // 1.1 空消息,跳过 + if (message.getPayloadLength() == 0) { + return; + } + // 1.2 ping 心跳消息,直接返回 pong 消息。 + if (message.getPayloadLength() == 4 && Objects.equals(message.getPayload(), "ping")) { + session.sendMessage(new TextMessage("pong")); + return; + } + + // 2.1 解析消息 + try { + JsonWebSocketMessage jsonMessage = JsonUtils.parseObject(message.getPayload(), JsonWebSocketMessage.class); + if (jsonMessage == null) { + log.error("[handleTextMessage][session({}) message({}) 解析为空]", session.getId(), message.getPayload()); + return; + } + if (StrUtil.isEmpty(jsonMessage.getType())) { + log.error("[handleTextMessage][session({}) message({}) 类型为空]", session.getId(), message.getPayload()); + return; + } + // 2.2 获得对应的 WebSocketMessageListener + WebSocketMessageListener messageListener = listeners.get(jsonMessage.getType()); + if (messageListener == null) { + log.error("[handleTextMessage][session({}) message({}) 监听器为空]", session.getId(), message.getPayload()); + return; + } + // 2.3 处理消息 + Type type = TypeUtil.getTypeArgument(messageListener.getClass(), 0); + Object messageObj = JsonUtils.parseObject(jsonMessage.getContent(), type); + Long tenantId = WebSocketFrameworkUtils.getTenantId(session); + TenantUtils.execute(tenantId, () -> messageListener.onMessage(session, messageObj)); + } catch (Throwable ex) { + log.error("[handleTextMessage][session({}) message({}) 处理异常]", session.getId(), message.getPayload()); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/listener/WebSocketMessageListener.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/listener/WebSocketMessageListener.java new file mode 100644 index 0000000..f3a62cc --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/listener/WebSocketMessageListener.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.framework.websocket.core.listener; + +import cn.iocoder.yudao.framework.websocket.core.message.JsonWebSocketMessage; +import org.springframework.web.socket.WebSocketSession; + +/** + * WebSocket 消息监听器接口 + * + * 目的:前端发送消息给后端后,处理对应 {@link #getType()} 类型的消息 + * + * @param 泛型,消息类型 + */ +public interface WebSocketMessageListener { + + /** + * 处理消息 + * + * @param session Session + * @param message 消息 + */ + void onMessage(WebSocketSession session, T message); + + /** + * 获得消息类型 + * + * @see JsonWebSocketMessage#getType() + * @return 消息类型 + */ + String getType(); + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/message/JsonWebSocketMessage.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/message/JsonWebSocketMessage.java new file mode 100644 index 0000000..0a55cd6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/message/JsonWebSocketMessage.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.framework.websocket.core.message; + +import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener; +import lombok.Data; + +import java.io.Serializable; + +/** + * JSON 格式的 WebSocket 消息帧 + * + * @author 芋道源码 + */ +@Data +public class JsonWebSocketMessage implements Serializable { + + /** + * 消息类型 + * + * 目的:用于分发到对应的 {@link WebSocketMessageListener} 实现类 + */ + private String type; + /** + * 消息内容 + * + * 要求 JSON 对象 + */ + private String content; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java new file mode 100644 index 0000000..3a31825 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/LoginUserHandshakeInterceptor.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.framework.websocket.core.security; + +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.websocket.core.util.WebSocketFrameworkUtils; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.server.HandshakeInterceptor; + +import java.util.Map; + +/** + * 登录用户的 {@link HandshakeInterceptor} 实现类 + * + * 流程如下: + * 1. 前端连接 websocket 时,会通过拼接 ?token={token} 到 ws:// 连接后,这样它可以被 {@link TokenAuthenticationFilter} 所认证通过 + * 2. {@link LoginUserHandshakeInterceptor} 负责把 {@link LoginUser} 添加到 {@link WebSocketSession} 中 + * + * @author 芋道源码 + */ +public class LoginUserHandshakeInterceptor implements HandshakeInterceptor { + + @Override + public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, + WebSocketHandler wsHandler, Map attributes) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if (loginUser != null) { + WebSocketFrameworkUtils.setLoginUser(loginUser, attributes); + } + return true; + } + + @Override + public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, + WebSocketHandler wsHandler, Exception exception) { + // do nothing + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java new file mode 100644 index 0000000..5614f05 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/security/WebSocketAuthorizeRequestsCustomizer.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.framework.websocket.core.security; + +import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer; +import cn.iocoder.yudao.framework.websocket.config.WebSocketProperties; +import lombok.RequiredArgsConstructor; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; + +/** + * WebSocket 的权限自定义 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class WebSocketAuthorizeRequestsCustomizer extends AuthorizeRequestsCustomizer { + + private final WebSocketProperties webSocketProperties; + + @Override + public void customize(ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry) { + registry.antMatchers(webSocketProperties.getPath()).permitAll(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/AbstractWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/AbstractWebSocketMessageSender.java new file mode 100644 index 0000000..4e0db44 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/AbstractWebSocketMessageSender.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.framework.websocket.core.sender; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.websocket.core.message.JsonWebSocketMessage; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; + +import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +/** + * WebSocketMessageSender 实现类 + * + * @author 芋道源码 + */ +@Slf4j +@RequiredArgsConstructor +public abstract class AbstractWebSocketMessageSender implements WebSocketMessageSender { + + private final WebSocketSessionManager sessionManager; + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + send(null, userType, userId, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + send(null, userType, null, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + send(sessionId, null, null, messageType, messageContent); + } + + /** + * 发送消息 + * + * @param sessionId Session 编号 + * @param userType 用户类型 + * @param userId 用户编号 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + public void send(String sessionId, Integer userType, Long userId, String messageType, String messageContent) { + // 1. 获得 Session 列表 + List sessions = Collections.emptyList(); + if (StrUtil.isNotEmpty(sessionId)) { + WebSocketSession session = sessionManager.getSession(sessionId); + if (session != null) { + sessions = Collections.singletonList(session); + } + } else if (userType != null && userId != null) { + sessions = (List) sessionManager.getSessionList(userType, userId); + } else if (userType != null) { + sessions = (List) sessionManager.getSessionList(userType); + } + if (CollUtil.isEmpty(sessions)) { + log.info("[send][sessionId({}) userType({}) userId({}) messageType({}) messageContent({}) 未匹配到会话]", + sessionId, userType, userId, messageType, messageContent); + } + // 2. 执行发送 + doSend(sessions, messageType, messageContent); + } + + /** + * 发送消息的具体实现 + * + * @param sessions Session 列表 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + public void doSend(Collection sessions, String messageType, String messageContent) { + JsonWebSocketMessage message = new JsonWebSocketMessage().setType(messageType).setContent(messageContent); + String payload = JsonUtils.toJsonString(message); // 关键,使用 JSON 序列化 + sessions.forEach(session -> { + // 1. 各种校验,保证 Session 可以被发送 + if (session == null) { + log.error("[doSend][session 为空, message({})]", message); + return; + } + if (!session.isOpen()) { + log.error("[doSend][session({}) 已关闭, message({})]", session.getId(), message); + return; + } + // 2. 执行发送 + try { + session.sendMessage(new TextMessage(payload)); + log.info("[doSend][session({}) 发送消息成功,message({})]", session.getId(), message); + } catch (IOException ex) { + log.error("[doSend][session({}) 发送消息失败,message({})]", session.getId(), message, ex); + } + }); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/WebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/WebSocketMessageSender.java new file mode 100644 index 0000000..9f75ad5 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/WebSocketMessageSender.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.framework.websocket.core.sender; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; + +/** + * WebSocket 消息的发送器接口 + * + * @author 芋道源码 + */ +public interface WebSocketMessageSender { + + /** + * 发送消息给指定用户 + * + * @param userType 用户类型 + * @param userId 用户编号 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(Integer userType, Long userId, String messageType, String messageContent); + + /** + * 发送消息给指定用户类型 + * + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(Integer userType, String messageType, String messageContent); + + /** + * 发送消息给指定 Session + * + * @param sessionId Session 编号 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(String sessionId, String messageType, String messageContent); + + default void sendObject(Integer userType, Long userId, String messageType, Object messageContent) { + send(userType, userId, messageType, JsonUtils.toJsonString(messageContent)); + } + + default void sendObject(Integer userType, String messageType, Object messageContent) { + send(userType, messageType, JsonUtils.toJsonString(messageContent)); + } + + default void sendObject(String sessionId, String messageType, Object messageContent) { + send(sessionId, messageType, JsonUtils.toJsonString(messageContent)); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java new file mode 100644 index 0000000..5a4cf53 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessage.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.kafka; + +import lombok.Data; + +/** + * Kafka 广播 WebSocket 的消息 + * + * @author 芋道源码 + */ +@Data +public class KafkaWebSocketMessage { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java new file mode 100644 index 0000000..201e65d --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageConsumer.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.kafka; + +import lombok.RequiredArgsConstructor; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.kafka.annotation.KafkaListener; + +/** + * {@link KafkaWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class KafkaWebSocketMessageConsumer { + + private final KafkaWebSocketMessageSender rabbitMQWebSocketMessageSender; + + @RabbitHandler + @KafkaListener( + topics = "${yudao.websocket.sender-kafka.topic}", + // 在 Group 上,使用 UUID 生成其后缀。这样,启动的 Consumer 的 Group 不同,以达到广播消费的目的 + groupId = "${yudao.websocket.sender-kafka.consumer-group}" + "-" + "#{T(java.util.UUID).randomUUID()}") + public void onMessage(KafkaWebSocketMessage message) { + rabbitMQWebSocketMessageSender.send(message.getSessionId(), + message.getUserType(), message.getUserId(), + message.getMessageType(), message.getMessageContent()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java new file mode 100644 index 0000000..47bb598 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/kafka/KafkaWebSocketMessageSender.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.kafka; + +import cn.iocoder.yudao.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; +import org.springframework.kafka.core.KafkaTemplate; + +import java.util.concurrent.ExecutionException; + +/** + * 基于 Kafka 的 {@link WebSocketMessageSender} 实现类 + * + * @author 芋道源码 + */ +@Slf4j +public class KafkaWebSocketMessageSender extends AbstractWebSocketMessageSender { + + private final KafkaTemplate kafkaTemplate; + + private final String topic; + + public KafkaWebSocketMessageSender(WebSocketSessionManager sessionManager, + KafkaTemplate kafkaTemplate, + String topic) { + super(sessionManager); + this.kafkaTemplate = kafkaTemplate; + this.topic = topic; + } + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + sendKafkaMessage(null, userId, userType, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + sendKafkaMessage(null, null, userType, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + sendKafkaMessage(sessionId, null, null, messageType, messageContent); + } + + /** + * 通过 Kafka 广播消息 + * + * @param sessionId Session 编号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + private void sendKafkaMessage(String sessionId, Long userId, Integer userType, + String messageType, String messageContent) { + KafkaWebSocketMessage mqMessage = new KafkaWebSocketMessage() + .setSessionId(sessionId).setUserId(userId).setUserType(userType) + .setMessageType(messageType).setMessageContent(messageContent); + try { + kafkaTemplate.send(topic, mqMessage).get(); + } catch (InterruptedException | ExecutionException e) { + log.error("[sendKafkaMessage][发送消息({}) 到 Kafka 失败]", mqMessage, e); + } + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java new file mode 100644 index 0000000..66640ef --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/local/LocalWebSocketMessageSender.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.local; + +import cn.iocoder.yudao.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; + +/** + * 本地的 {@link WebSocketMessageSender} 实现类 + * + * 注意:仅仅适合单机场景!!! + * + * @author 芋道源码 + */ +public class LocalWebSocketMessageSender extends AbstractWebSocketMessageSender { + + public LocalWebSocketMessageSender(WebSocketSessionManager sessionManager) { + super(sessionManager); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java new file mode 100644 index 0000000..80a4bc1 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessage.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rabbitmq; + +import lombok.Data; + +import java.io.Serializable; + +/** + * RabbitMQ 广播 WebSocket 的消息 + * + * @author 芋道源码 + */ +@Data +public class RabbitMQWebSocketMessage implements Serializable { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java new file mode 100644 index 0000000..59e3824 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageConsumer.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rabbitmq; + +import lombok.RequiredArgsConstructor; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.*; + +/** + * {@link RabbitMQWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author 芋道源码 + */ +@RabbitListener( + bindings = @QueueBinding( + value = @Queue( + // 在 Queue 的名字上,使用 UUID 生成其后缀。这样,启动的 Consumer 的 Queue 不同,以达到广播消费的目的 + name = "${yudao.websocket.sender-rabbitmq.queue}" + "-" + "#{T(java.util.UUID).randomUUID()}", + // Consumer 关闭时,该队列就可以被自动删除了 + autoDelete = "true" + ), + exchange = @Exchange( + name = "${yudao.websocket.sender-rabbitmq.exchange}", + type = ExchangeTypes.TOPIC, + declare = "false" + ) + ) +) +@RequiredArgsConstructor +public class RabbitMQWebSocketMessageConsumer { + + private final RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender; + + @RabbitHandler + public void onMessage(RabbitMQWebSocketMessage message) { + rabbitMQWebSocketMessageSender.send(message.getSessionId(), + message.getUserType(), message.getUserId(), + message.getMessageType(), message.getMessageContent()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java new file mode 100644 index 0000000..065a5d6 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rabbitmq/RabbitMQWebSocketMessageSender.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rabbitmq; + +import cn.iocoder.yudao.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.amqp.rabbit.core.RabbitTemplate; + +/** + * 基于 RabbitMQ 的 {@link WebSocketMessageSender} 实现类 + * + * @author 芋道源码 + */ +@Slf4j +public class RabbitMQWebSocketMessageSender extends AbstractWebSocketMessageSender { + + private final RabbitTemplate rabbitTemplate; + + private final TopicExchange topicExchange; + + public RabbitMQWebSocketMessageSender(WebSocketSessionManager sessionManager, + RabbitTemplate rabbitTemplate, + TopicExchange topicExchange) { + super(sessionManager); + this.rabbitTemplate = rabbitTemplate; + this.topicExchange = topicExchange; + } + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + sendRabbitMQMessage(null, userId, userType, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + sendRabbitMQMessage(null, null, userType, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + sendRabbitMQMessage(sessionId, null, null, messageType, messageContent); + } + + /** + * 通过 RabbitMQ 广播消息 + * + * @param sessionId Session 编号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + private void sendRabbitMQMessage(String sessionId, Long userId, Integer userType, + String messageType, String messageContent) { + RabbitMQWebSocketMessage mqMessage = new RabbitMQWebSocketMessage() + .setSessionId(sessionId).setUserId(userId).setUserType(userType) + .setMessageType(messageType).setMessageContent(messageContent); + rabbitTemplate.convertAndSend(topicExchange.getName(), null, mqMessage); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessage.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessage.java new file mode 100644 index 0000000..fb9ea0c --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessage.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.redis; + +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessage; +import lombok.Data; + +/** + * Redis 广播 WebSocket 的消息 + */ +@Data +public class RedisWebSocketMessage extends AbstractRedisChannelMessage { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java new file mode 100644 index 0000000..abce006 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageConsumer.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.redis; + +import cn.iocoder.yudao.framework.mq.redis.core.pubsub.AbstractRedisChannelMessageListener; +import lombok.RequiredArgsConstructor; + +/** + * {@link RedisWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author 芋道源码 + */ +@RequiredArgsConstructor +public class RedisWebSocketMessageConsumer extends AbstractRedisChannelMessageListener { + + private final RedisWebSocketMessageSender redisWebSocketMessageSender; + + @Override + public void onMessage(RedisWebSocketMessage message) { + redisWebSocketMessageSender.send(message.getSessionId(), + message.getUserType(), message.getUserId(), + message.getMessageType(), message.getMessageContent()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java new file mode 100644 index 0000000..d6004ac --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/redis/RedisWebSocketMessageSender.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.redis; + +import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; +import cn.iocoder.yudao.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; + +/** + * 基于 Redis 的 {@link WebSocketMessageSender} 实现类 + * + * @author 芋道源码 + */ +@Slf4j +public class RedisWebSocketMessageSender extends AbstractWebSocketMessageSender { + + private final RedisMQTemplate redisMQTemplate; + + public RedisWebSocketMessageSender(WebSocketSessionManager sessionManager, + RedisMQTemplate redisMQTemplate) { + super(sessionManager); + this.redisMQTemplate = redisMQTemplate; + } + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + sendRedisMessage(null, userId, userType, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + sendRedisMessage(null, null, userType, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + sendRedisMessage(sessionId, null, null, messageType, messageContent); + } + + /** + * 通过 Redis 广播消息 + * + * @param sessionId Session 编号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + private void sendRedisMessage(String sessionId, Long userId, Integer userType, + String messageType, String messageContent) { + RedisWebSocketMessage mqMessage = new RedisWebSocketMessage() + .setSessionId(sessionId).setUserId(userId).setUserType(userType) + .setMessageType(messageType).setMessageContent(messageContent); + redisMQTemplate.send(mqMessage); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java new file mode 100644 index 0000000..91570e3 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rocketmq; + +import lombok.Data; + +/** + * RocketMQ 广播 WebSocket 的消息 + * + * @author 芋道源码 + */ +@Data +public class RocketMQWebSocketMessage { + + /** + * Session 编号 + */ + private String sessionId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 用户编号 + */ + private Long userId; + + /** + * 消息类型 + */ + private String messageType; + /** + * 消息内容 + */ + private String messageContent; + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java new file mode 100644 index 0000000..ab2e2c4 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rocketmq; + +import lombok.RequiredArgsConstructor; +import org.apache.rocketmq.spring.annotation.MessageModel; +import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; +import org.apache.rocketmq.spring.core.RocketMQListener; + +/** + * {@link RocketMQWebSocketMessage} 广播消息的消费者,真正把消息发送出去 + * + * @author 芋道源码 + */ +@RocketMQMessageListener( // 重点:添加 @RocketMQMessageListener 注解,声明消费的 topic + topic = "${yudao.websocket.sender-rocketmq.topic}", + consumerGroup = "${yudao.websocket.sender-rocketmq.consumer-group}", + messageModel = MessageModel.BROADCASTING // 设置为广播模式,保证每个实例都能收到消息 +) +@RequiredArgsConstructor +public class RocketMQWebSocketMessageConsumer implements RocketMQListener { + + private final RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender; + + @Override + public void onMessage(RocketMQWebSocketMessage message) { + rocketMQWebSocketMessageSender.send(message.getSessionId(), + message.getUserType(), message.getUserId(), + message.getMessageType(), message.getMessageContent()); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java new file mode 100644 index 0000000..ed059ba --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.framework.websocket.core.sender.rocketmq; + +import cn.iocoder.yudao.framework.websocket.core.sender.AbstractWebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.session.WebSocketSessionManager; +import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.spring.core.RocketMQTemplate; + +/** + * 基于 RocketMQ 的 {@link WebSocketMessageSender} 实现类 + * + * @author 芋道源码 + */ +@Slf4j +public class RocketMQWebSocketMessageSender extends AbstractWebSocketMessageSender { + + private final RocketMQTemplate rocketMQTemplate; + + private final String topic; + + public RocketMQWebSocketMessageSender(WebSocketSessionManager sessionManager, + RocketMQTemplate rocketMQTemplate, + String topic) { + super(sessionManager); + this.rocketMQTemplate = rocketMQTemplate; + this.topic = topic; + } + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + sendRocketMQMessage(null, userId, userType, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + sendRocketMQMessage(null, null, userType, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + sendRocketMQMessage(sessionId, null, null, messageType, messageContent); + } + + /** + * 通过 RocketMQ 广播消息 + * + * @param sessionId Session 编号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容 + */ + private void sendRocketMQMessage(String sessionId, Long userId, Integer userType, + String messageType, String messageContent) { + RocketMQWebSocketMessage mqMessage = new RocketMQWebSocketMessage() + .setSessionId(sessionId).setUserId(userId).setUserType(userType) + .setMessageType(messageType).setMessageContent(messageContent); + rocketMQTemplate.syncSend(topic, mqMessage); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java new file mode 100644 index 0000000..600a4dd --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionHandlerDecorator.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.framework.websocket.core.session; + +import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator; +import org.springframework.web.socket.handler.WebSocketHandlerDecorator; + +/** + * {@link WebSocketHandler} 的装饰类,实现了以下功能: + * + * 1. {@link WebSocketSession} 连接或关闭时,使用 {@link #sessionManager} 进行管理 + * 2. 封装 {@link WebSocketSession} 支持并发操作 + * + * @author 芋道源码 + */ +public class WebSocketSessionHandlerDecorator extends WebSocketHandlerDecorator { + + /** + * 发送时间的限制,单位:毫秒 + */ + private static final Integer SEND_TIME_LIMIT = 1000 * 5; + /** + * 发送消息缓冲上线,单位:bytes + */ + private static final Integer BUFFER_SIZE_LIMIT = 1024 * 100; + + private final WebSocketSessionManager sessionManager; + + public WebSocketSessionHandlerDecorator(WebSocketHandler delegate, + WebSocketSessionManager sessionManager) { + super(delegate); + this.sessionManager = sessionManager; + } + + @Override + public void afterConnectionEstablished(WebSocketSession session) { + // 实现 session 支持并发,可参考 https://blog.csdn.net/abu935009066/article/details/131218149 + session = new ConcurrentWebSocketSessionDecorator(session, SEND_TIME_LIMIT, BUFFER_SIZE_LIMIT); + // 添加到 WebSocketSessionManager 中 + sessionManager.addSession(session); + } + + @Override + public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) { + sessionManager.removeSession(session); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManager.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManager.java new file mode 100644 index 0000000..ad1de23 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManager.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.framework.websocket.core.session; + +import org.springframework.web.socket.WebSocketSession; + +import java.util.Collection; + +/** + * {@link WebSocketSession} 管理器的接口 + * + * @author 芋道源码 + */ +public interface WebSocketSessionManager { + + /** + * 添加 Session + * + * @param session Session + */ + void addSession(WebSocketSession session); + + /** + * 移除 Session + * + * @param session Session + */ + void removeSession(WebSocketSession session); + + /** + * 获得指定编号的 Session + * + * @param id Session 编号 + * @return Session + */ + WebSocketSession getSession(String id); + + /** + * 获得指定用户类型的 Session 列表 + * + * @param userType 用户类型 + * @return Session 列表 + */ + Collection getSessionList(Integer userType); + + /** + * 获得指定用户编号的 Session 列表 + * + * @param userType 用户类型 + * @param userId 用户编号 + * @return Session 列表 + */ + Collection getSessionList(Integer userType, Long userId); + +} \ No newline at end of file diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java new file mode 100644 index 0000000..6dba898 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/session/WebSocketSessionManagerImpl.java @@ -0,0 +1,125 @@ +package cn.iocoder.yudao.framework.websocket.core.session; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.websocket.core.util.WebSocketFrameworkUtils; +import org.springframework.web.socket.WebSocketSession; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * 默认的 {@link WebSocketSessionManager} 实现类 + * + * @author 芋道源码 + */ +public class WebSocketSessionManagerImpl implements WebSocketSessionManager { + + /** + * id 与 WebSocketSession 映射 + * + * key:Session 编号 + */ + private final ConcurrentMap idSessions = new ConcurrentHashMap<>(); + + /** + * user 与 WebSocketSession 映射 + * + * key1:用户类型 + * key2:用户编号 + */ + private final ConcurrentMap>> userSessions + = new ConcurrentHashMap<>(); + + @Override + public void addSession(WebSocketSession session) { + // 添加到 idSessions 中 + idSessions.put(session.getId(), session); + // 添加到 userSessions 中 + LoginUser user = WebSocketFrameworkUtils.getLoginUser(session); + if (user == null) { + return; + } + ConcurrentMap> userSessionsMap = userSessions.get(user.getUserType()); + if (userSessionsMap == null) { + userSessionsMap = new ConcurrentHashMap<>(); + if (userSessions.putIfAbsent(user.getUserType(), userSessionsMap) != null) { + userSessionsMap = userSessions.get(user.getUserType()); + } + } + CopyOnWriteArrayList sessions = userSessionsMap.get(user.getId()); + if (sessions == null) { + sessions = new CopyOnWriteArrayList<>(); + if (userSessionsMap.putIfAbsent(user.getId(), sessions) != null) { + sessions = userSessionsMap.get(user.getId()); + } + } + sessions.add(session); + } + + @Override + public void removeSession(WebSocketSession session) { + // 移除从 idSessions 中 + idSessions.remove(session.getId()); + // 移除从 idSessions 中 + LoginUser user = WebSocketFrameworkUtils.getLoginUser(session); + if (user == null) { + return; + } + ConcurrentMap> userSessionsMap = userSessions.get(user.getUserType()); + if (userSessionsMap == null) { + return; + } + CopyOnWriteArrayList sessions = userSessionsMap.get(user.getId()); + sessions.removeIf(session0 -> session0.getId().equals(session.getId())); + if (CollUtil.isEmpty(sessions)) { + userSessionsMap.remove(user.getId(), sessions); + } + } + + @Override + public WebSocketSession getSession(String id) { + return idSessions.get(id); + } + + @Override + public Collection getSessionList(Integer userType) { + ConcurrentMap> userSessionsMap = userSessions.get(userType); + if (CollUtil.isEmpty(userSessionsMap)) { + return new ArrayList<>(); + } + LinkedList result = new LinkedList<>(); // 避免扩容 + Long contextTenantId = TenantContextHolder.getTenantId(); + for (List sessions : userSessionsMap.values()) { + if (CollUtil.isEmpty(sessions)) { + continue; + } + // 特殊:如果租户不匹配,则直接排除 + if (contextTenantId != null) { + Long userTenantId = WebSocketFrameworkUtils.getTenantId(sessions.get(0)); + if (!contextTenantId.equals(userTenantId)) { + continue; + } + } + result.addAll(sessions); + } + return result; + } + + @Override + public Collection getSessionList(Integer userType, Long userId) { + ConcurrentMap> userSessionsMap = userSessions.get(userType); + if (CollUtil.isEmpty(userSessionsMap)) { + return new ArrayList<>(); + } + CopyOnWriteArrayList sessions = userSessionsMap.get(userId); + return CollUtil.isNotEmpty(sessions) ? new ArrayList<>(sessions) : new ArrayList<>(); + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/util/WebSocketFrameworkUtils.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/util/WebSocketFrameworkUtils.java new file mode 100644 index 0000000..58cdedc --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/util/WebSocketFrameworkUtils.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.framework.websocket.core.util; + +import cn.iocoder.yudao.framework.security.core.LoginUser; +import org.springframework.web.socket.WebSocketSession; + +import java.util.Map; + +/** + * 专属于 web 包的工具类 + * + * @author 芋道源码 + */ +public class WebSocketFrameworkUtils { + + public static final String ATTRIBUTE_LOGIN_USER = "LOGIN_USER"; + + /** + * 设置当前用户 + * + * @param loginUser 登录用户 + * @param attributes Session + */ + public static void setLoginUser(LoginUser loginUser, Map attributes) { + attributes.put(ATTRIBUTE_LOGIN_USER, loginUser); + } + + /** + * 获取当前用户 + * + * @return 当前用户 + */ + public static LoginUser getLoginUser(WebSocketSession session) { + return (LoginUser) session.getAttributes().get(ATTRIBUTE_LOGIN_USER); + } + + /** + * 获得当前用户的编号 + * + * @return 用户编号 + */ + public static Long getLoginUserId(WebSocketSession session) { + LoginUser loginUser = getLoginUser(session); + return loginUser != null ? loginUser.getId() : null; + } + + /** + * 获得当前用户的类型 + * + * @return 用户编号 + */ + public static Integer getLoginUserType(WebSocketSession session) { + LoginUser loginUser = getLoginUser(session); + return loginUser != null ? loginUser.getUserType() : null; + } + + /** + * 获得当前用户的租户编号 + * + * @param session Session + * @return 租户编号 + */ + public static Long getTenantId(WebSocketSession session) { + LoginUser loginUser = getLoginUser(session); + return loginUser != null ? loginUser.getTenantId() : null; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/package-info.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/package-info.java new file mode 100644 index 0000000..97bc5f9 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/package-info.java @@ -0,0 +1,4 @@ +/** + * WebSocket 框架,支持多节点的广播 + */ +package cn.iocoder.yudao.framework.websocket; diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..6260e40 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +cn.iocoder.yudao.framework.websocket.config.YudaoWebSocketAutoConfiguration \ No newline at end of file diff --git a/yudao-module/pom.xml b/yudao-module/pom.xml new file mode 100644 index 0000000..4fac331 --- /dev/null +++ b/yudao-module/pom.xml @@ -0,0 +1,34 @@ + + + + com.jeelowcode + jeelowcode + ${revision} + + + cn.iocoder.boot + 4.0.0 + yudao-module + pom + ${project.artifactId} + 芋道模块 + + + + yudao-module-bpm-api + yudao-module-bpm-biz + + + yudao-module-infra-api + yudao-module-infra-biz + + + yudao-module-system-api + yudao-module-system-biz + + + + + diff --git a/yudao-module/yudao-module-bpm-api/pom.xml b/yudao-module/yudao-module-bpm-api/pom.xml new file mode 100644 index 0000000..7b7d7b2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/pom.xml @@ -0,0 +1,33 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-bpm-api + jar + + ${project.artifactId} + + bpm 模块 API,暴露给其它模块调用 + + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApi.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApi.java new file mode 100644 index 0000000..d519ed9 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApi.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.api.listener; + +import cn.iocoder.yudao.module.bpm.api.listener.dto.BpmResultListenerRespDTO; + +// TODO @芋艿:后续改成支持 RPC +/** + * 业务流程实例的结果发生变化的监听器 Api + * + * @author HUIHUI + */ +public interface BpmResultListenerApi { + + /** + * 监听的流程定义 Key + * + * @return 返回监听的流程定义 Key + */ + String getProcessDefinitionKey(); + + /** + * 处理事件 + * + * @param event 事件 + */ + void onEvent(BpmResultListenerRespDTO event); + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/dto/BpmResultListenerRespDTO.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/dto/BpmResultListenerRespDTO.java new file mode 100644 index 0000000..3072178 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/dto/BpmResultListenerRespDTO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.api.listener.dto; + +import lombok.Data; + +// TODO @芋艿:后续改成支持 RPC +/** + * 业务流程实例的结果 Response DTO + * + * @author HUIHUI + */ +@Data +public class BpmResultListenerRespDTO { + + /** + * 流程实例的编号 + */ + private String id; + /** + * 流程实例的 key + */ + private String processDefinitionKey; + /** + * 流程实例的结果 + */ + private Integer result; + /** + * 流程实例对应的业务标识 + * 例如说,请假 + */ + private String businessKey; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java new file mode 100644 index 0000000..37a9221 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java @@ -0,0 +1,4 @@ +/** + * bpm API 包,定义暴露给其它模块的 API + */ +package cn.iocoder.yudao.module.bpm.api; diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java new file mode 100644 index 0000000..e94a2c8 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.bpm.api.task; + +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; + +import javax.validation.Valid; + +/** + * 流程实例 Api 接口 + * + * @author 芋道源码 + */ +public interface BpmProcessInstanceApi { + + /** + * 创建流程实例(提供给内部) + * + * @param userId 用户编号 + * @param reqDTO 创建信息 + * @return 实例的编号 + */ + String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java new file mode 100644 index 0000000..4403d3e --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.bpm.api.task.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; +import java.util.Map; + +/** + * 流程实例的创建 Request DTO + * + * @author 芋道源码 + */ +@Data +public class BpmProcessInstanceCreateReqDTO { + + /** + * 流程定义的标识 + */ + @NotEmpty(message = "流程定义的标识不能为空") + private String processDefinitionKey; + /** + * 变量实例 + */ + private Map variables; + + /** + * 业务的唯一标识 + * + * 例如说,请假申请的编号。通过它,可以查询到对应的实例 + */ + @NotEmpty(message = "业务的唯一标识") + private String businessKey; + + // TODO @hai:assignees 复数 + /** + * 提前指派的审批人 + * + * key:taskKey 任务编码 + * value:审批人的数组 + * 例如: { taskKey1 :[1, 2] },则表示 taskKey1 这个任务,提前设定了,由 userId 为 1,2 的用户进行审批 + */ + private Map> assignee; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/DictTypeConstants.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/DictTypeConstants.java new file mode 100644 index 0000000..7abb3e1 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/DictTypeConstants.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.bpm.enums; + +/** + * BPM 字典类型的枚举类 + * + * @author 芋道源码 + */ +public interface DictTypeConstants { + + String TASK_ASSIGN_RULE_TYPE = "bpm_task_assign_rule_type"; // 任务分配规则类型 + String TASK_ASSIGN_SCRIPT = "bpm_task_assign_script"; // 任务分配自定义脚本 + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..51eebda --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.bpm.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + +/** + * Bpm 错误码枚举类 + *

    + * bpm 系统,使用 1-009-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== 通用流程处理 模块 1-009-000-000 ========== + ErrorCode HIGHLIGHT_IMG_ERROR = new ErrorCode(1_009_000_002, "获取高亮流程图异常"); + + // ========== OA 流程模块 1-009-001-000 ========== + ErrorCode OA_LEAVE_NOT_EXISTS = new ErrorCode(1_009_001_001, "请假申请不存在"); + ErrorCode OA_PM_POST_NOT_EXISTS = new ErrorCode(1_009_001_002, "项目经理岗位未设置"); + ErrorCode OA_DEPART_PM_POST_NOT_EXISTS = new ErrorCode(1_009_001_009, "部门的项目经理不存在"); + ErrorCode OA_BM_POST_NOT_EXISTS = new ErrorCode(1_009_001_004, "部门经理岗位未设置"); + ErrorCode OA_DEPART_BM_POST_NOT_EXISTS = new ErrorCode(1_009_001_005, "部门的部门经理不存在"); + ErrorCode OA_HR_POST_NOT_EXISTS = new ErrorCode(1_009_001_006, "HR岗位未设置"); + ErrorCode OA_DAY_LEAVE_ERROR = new ErrorCode(1_009_001_007, "请假天数必须>=1"); + + // ========== 流程模型 1-009-002-000 ========== + ErrorCode MODEL_KEY_EXISTS = new ErrorCode(1_009_002_000, "已经存在流程标识为【{}】的流程"); + ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1_009_002_001, "流程模型不存在"); + ErrorCode MODEL_KEY_VALID = new ErrorCode(1_009_002_002, "流程标识格式不正确,需要以字母或下划线开头,后接任意字母、数字、中划线、下划线、句点!"); + ErrorCode MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG = new ErrorCode(1_009_002_003, "部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置"); + ErrorCode MODEL_DEPLOY_FAIL_TASK_ASSIGN_RULE_NOT_CONFIG = new ErrorCode(1_009_002_004, "部署流程失败," + + "原因:用户任务({})未配置分配规则,请点击【修改流程】按钮进行配置"); + ErrorCode MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS = new ErrorCode(1_009_003_005, "流程定义部署失败,原因:信息未发生变化"); + + // ========== 流程定义 1-009-003-000 ========== + ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1_009_003_000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图"); + ErrorCode PROCESS_DEFINITION_NAME_NOT_MATCH = new ErrorCode(1_009_003_001, "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图"); + ErrorCode PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_009_003_002, "流程定义不存在"); + ErrorCode PROCESS_DEFINITION_IS_SUSPENDED = new ErrorCode(1_009_003_003, "流程定义处于挂起状态"); + ErrorCode PROCESS_DEFINITION_BPMN_MODEL_NOT_EXISTS = new ErrorCode(1_009_003_004, "流程定义的模型不存在"); + + // ========== 流程实例 1-009-004-000 ========== + ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1_009_004_000, "流程实例不存在"); + ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS = new ErrorCode(1_009_004_001, "流程取消失败,流程不处于运行中"); + ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1_009_004_002, "流程取消失败,该流程不是你发起的"); + + // ========== 流程任务 1-009-005-000 ========== + ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你"); + ErrorCode TASK_NOT_EXISTS = new ErrorCode(1_009_005_002, "流程任务不存在"); + ErrorCode TASK_IS_PENDING = new ErrorCode(1_009_005_003, "当前任务处于挂起状态,不能操作"); + ErrorCode TASK_TARGET_NODE_NOT_EXISTS = new ErrorCode(1_009_005_004, " 目标节点不存在"); + ErrorCode TASK_RETURN_FAIL_SOURCE_TARGET_ERROR = new ErrorCode(1_009_005_006, "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"); + ErrorCode TASK_DELEGATE_FAIL_USER_REPEAT = new ErrorCode(1_009_005_007, "任务委派失败,委派人和当前审批人为同一人"); + ErrorCode TASK_DELEGATE_FAIL_USER_NOT_EXISTS = new ErrorCode(1_009_005_008, "任务委派失败,被委派人不存在"); + ErrorCode TASK_ADD_SIGN_USER_NOT_EXIST = new ErrorCode(1_009_005_009, "任务加签:选择的用户不存在"); + ErrorCode TASK_ADD_SIGN_TYPE_ERROR = new ErrorCode(1_009_005_010, "任务加签:当前任务已经{},不能{}"); + ErrorCode TASK_ADD_SIGN_USER_REPEAT = new ErrorCode(1_009_005_011, "任务加签失败,加签人与现有审批人[{}]重复"); + ErrorCode TASK_SUB_SIGN_NO_PARENT = new ErrorCode(1_009_005_011, "任务减签失败,被减签的任务必须是通过加签生成的任务"); + + // ========== 流程任务分配规则 1-009-006-000 ========== + ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1_009_006_000, "流程({}) 的任务({}) 已经存在分配规则"); + ErrorCode TASK_ASSIGN_RULE_NOT_EXISTS = new ErrorCode(1_009_006_001, "流程任务分配规则不存在"); + ErrorCode TASK_UPDATE_FAIL_NOT_MODEL = new ErrorCode(1_009_006_002, "只有流程模型的任务分配规则,才允许被修改"); + ErrorCode TASK_CREATE_FAIL_NO_CANDIDATE_USER = new ErrorCode(1_009_006_003, "操作失败,原因:找不到任务的审批人!"); + ErrorCode TASK_ASSIGN_SCRIPT_NOT_EXISTS = new ErrorCode(1_009_006_004, "操作失败,原因:任务分配脚本({}) 不存在"); + + // ========== 动态表单模块 1-009-010-000 ========== + ErrorCode FORM_NOT_EXISTS = new ErrorCode(1_009_010_000, "动态表单不存在"); + ErrorCode FORM_FIELD_REPEAT = new ErrorCode(1_009_010_001, "表单项({}) 和 ({}) 使用了相同的字段名({})"); + + // ========== 用户组模块 1-009-011-000 ========== + ErrorCode USER_GROUP_NOT_EXISTS = new ErrorCode(1_009_011_000, "用户组不存在"); + ErrorCode USER_GROUP_IS_DISABLE = new ErrorCode(1_009_011_001, "名字为【{}】的用户组已被禁用"); + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmModelFormTypeEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmModelFormTypeEnum.java new file mode 100644 index 0000000..c21d6f9 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmModelFormTypeEnum.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.enums.definition; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * BPM 模型的表单类型的枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum BpmModelFormTypeEnum { + + NORMAL(10, "流程表单"), // 对应 BpmFormDO + CUSTOM(20, "业务表单") // 业务自己定义的表单,自己进行数据的存储 + ; + + private final Integer type; + private final String desc; +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskAssignRuleTypeEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskAssignRuleTypeEnum.java new file mode 100644 index 0000000..b7ccc7a --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskAssignRuleTypeEnum.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.bpm.enums.definition; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * BPM 任务分配规则的类型枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum BpmTaskAssignRuleTypeEnum { + + ROLE(10, "角色"), + DEPT_MEMBER(20, "部门的成员"), // 包括负责人 + DEPT_LEADER(21, "部门的负责人"), + POST(22, "岗位"), + USER(30, "用户"), + USER_GROUP(40, "用户组"), + SCRIPT(50, "自定义脚本"), // 例如说,发起人所在部门的领导、发起人所在部门的领导的领导 + ; + + /** + * 类型 + */ + private final Integer type; + /** + * 描述 + */ + private final String desc; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskRuleScriptEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskRuleScriptEnum.java new file mode 100644 index 0000000..7fc0e3b --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmTaskRuleScriptEnum.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.enums.definition; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * BPM 任务规则的脚本枚举 + * 目前暂时通过 TODO 芋艿:硬编码,未来可以考虑 Groovy 动态脚本的方式 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum BpmTaskRuleScriptEnum { + + START_USER(10L, "流程发起人"), + + LEADER_X1(20L, "流程发起人的一级领导"), + LEADER_X2(21L, "流程发起人的二级领导"); + + /** + * 脚本编号 + */ + private final Long id; + /** + * 脚本描述 + */ + private final String desc; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/message/BpmMessageEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/message/BpmMessageEnum.java new file mode 100644 index 0000000..79001fc --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/message/BpmMessageEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.bpm.enums.message; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * Bpm 消息的枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum BpmMessageEnum { + + PROCESS_INSTANCE_APPROVE("bpm_process_instance_approve"), // 流程任务被审批通过时,发送给申请人 + PROCESS_INSTANCE_REJECT("bpm_process_instance_reject"), // 流程任务被审批不通过时,发送给申请人 + TASK_ASSIGNED("bpm_task_assigned"); // 任务被分配时,发送给审批人 + + /** + * 短信模板的标识 + * + * 关联 SmsTemplateDO 的 code 属性 + */ + private final String smsTemplateCode; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java new file mode 100644 index 0000000..89d56b3 --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.bpm.enums.task; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 流程任务 -- comment类型枚举 + */ +@Getter +@AllArgsConstructor +public enum BpmCommentTypeEnum { + + APPROVE(1, "通过", ""), + REJECT(2, "不通过", ""), + CANCEL(3, "已取消", ""), + BACK(4, "退回", ""), + DELEGATE(5, "委派", ""), + ADD_SIGN(6, "加签", "[{}]{}给了[{}],理由为:{}"), + SUB_SIGN(7, "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"), + ; + + /** + * 操作类型 + */ + private final Integer type; + /** + * 操作名字 + */ + private final String name; + /** + * 操作描述 + */ + private final String comment; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceDeleteReasonEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceDeleteReasonEnum.java new file mode 100644 index 0000000..4f99d0a --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceDeleteReasonEnum.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.bpm.enums.task; + +import cn.hutool.core.util.StrUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 流程实例的删除原因 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum BpmProcessInstanceDeleteReasonEnum { + + REJECT_TASK("不通过任务,原因:{}"), // 修改文案时,需要注意 isRejectReason 方法 + CANCEL_TASK("主动取消任务,原因:{}"), + + // ========== 流程任务的独有原因 ========== + MULTI_TASK_END("系统自动取消,原因:多任务审批已经满足条件,无需审批该任务"), // 多实例满足 condition 而结束时,其它任务实例任务会被取消,对应的删除原因是 MI_END + + ; + + private final String reason; + + /** + * 格式化理由 + * + * @param args 参数 + * @return 理由 + */ + public String format(Object... args) { + return StrUtil.format(reason, args); + } + + // ========== 逻辑 ========== + + public static boolean isRejectReason(String reason) { + return StrUtil.startWith(reason, "不通过任务,原因:"); + } + + /** + * 将 Flowable 的删除原因,翻译成对应的中文原因 + * + * @param reason 原始原因 + * @return 原因 + */ + public static String translateReason(String reason) { + if (StrUtil.isEmpty(reason)) { + return reason; + } + switch (reason) { + case "MI_END": return MULTI_TASK_END.getReason(); + default: return reason; + } + } + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java new file mode 100644 index 0000000..615416c --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.bpm.enums.task; + +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; + +/** + * 流程实例的结果 + * + * @author jason + */ +@Getter +@AllArgsConstructor +public enum BpmProcessInstanceResultEnum { + + PROCESS(1, "处理中"), + APPROVE(2, "通过"), + REJECT(3, "不通过"), + CANCEL(4, "已取消"), + + // ========== 流程任务独有的状态 ========== + + BACK(5, "驳回"), // 退回 + DELEGATE(6, "委派"), + /** + * 【加签】源任务已经审批完成,但是它使用了后加签,后加签的任务未完成,源任务就会是这个状态 + * 相当于是 通过 APPROVE 的特殊状态 + * 例如:A审批, A 后加签了 B,并且审批通过了任务,但是 B 还未审批,则当前任务状态为“待后加签任务完成” + */ + SIGN_AFTER(7, "待后加签任务完成"), + /** + * 【加签】源任务未审批,但是向前加签了,所以源任务状态变为“待前加签任务完成” + * 相当于是 处理中 PROCESS 的特殊状态 + * 例如:A 审批, A 前加签了 B,B 还未审核 + */ + SIGN_BEFORE(8, "待前加签任务完成"), + /** + * 【加签】后加签任务被创建时的初始状态 + * 相当于是 处理中 PROCESS 的特殊状态 + * 因为需要源任务先完成,才能到后加签的人来审批,所以加了一个状态区分 + */ + WAIT_BEFORE_TASK(9, "待前置任务完成"); + + /** + * 能被减签的状态 + */ + public static final List CAN_SUB_SIGN_STATUS_LIST = Arrays.asList(PROCESS.result, WAIT_BEFORE_TASK.result); + + /** + * 结果 + *

    + * 如果新增时,注意 {@link #isEndResult(Integer)} 是否需要变更 + */ + private final Integer result; + /** + * 描述 + */ + private final String desc; + + /** + * 判断该结果是否已经处于 End 最终结果 + *

    + * 主要用于一些结果更新的逻辑,如果已经是最终结果,就不再进行更新 + * + * @param result 结果 + * @return 是否 + */ + public static boolean isEndResult(Integer result) { + return ObjectUtils.equalsAny(result, APPROVE.getResult(), REJECT.getResult(), + CANCEL.getResult(), BACK.getResult(), + SIGN_AFTER.getResult()); + } + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceStatusEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceStatusEnum.java new file mode 100644 index 0000000..70a31dd --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceStatusEnum.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.enums.task; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 流程实例的状态 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum BpmProcessInstanceStatusEnum { + + RUNNING(1, "进行中"), + FINISH(2, "已完成"); + + /** + * 状态 + */ + private final Integer status; + /** + * 描述 + */ + private final String desc; + +} diff --git a/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskAddSignTypeEnum.java b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskAddSignTypeEnum.java new file mode 100644 index 0000000..42c212e --- /dev/null +++ b/yudao-module/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskAddSignTypeEnum.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.enums.task; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 流程任务 -- 加签类型枚举类型 + */ +@Getter +@AllArgsConstructor +public enum BpmTaskAddSignTypeEnum { + + /** + * 向前加签,需要前置任务审批完成,才回到原审批人 + */ + BEFORE("before", "向前加签"), + /** + * 向后加签,需要后置任务全部审批完,才会通过原审批人节点 + */ + AFTER("after", "向后加签"), + /** + * 创建后置加签时的过度状态,用于控制向后加签生成的任务状态 + */ + AFTER_CHILDREN_TASK("afterChildrenTask", "向后加签生成的子任务"); + + private final String type; + + private final String desc; + + public static String formatDesc(String type) { + for (BpmTaskAddSignTypeEnum value : values()) { + if (value.type.equals(type)) { + return value.desc; + } + } + return null; + } + +} + \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/pom.xml b/yudao-module/yudao-module-bpm-biz/pom.xml new file mode 100644 index 0000000..6cda471 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/pom.xml @@ -0,0 +1,72 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-bpm-biz + + ${project.artifactId} + + bpm 包下,业务流程管理(Business Process Management),我们放工作流的功能,基于 Flowable 6 版本实现。 + 例如说:流程定义、表单配置、审核中心(我的申请、我的待办、我的已办)等等 + + + + cn.iocoder.boot + yudao-module-bpm-api + ${revision} + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-operatelog + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-data-permission + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + + + cn.iocoder.boot + yudao-spring-boot-starter-web + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + + + + cn.iocoder.boot + yudao-spring-boot-starter-flowable + + + diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApiImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApiImpl.java new file mode 100644 index 0000000..531a5c2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/listener/BpmResultListenerApiImpl.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.bpm.api.listener; + +import cn.iocoder.yudao.module.bpm.api.listener.dto.BpmResultListenerRespDTO; +import org.springframework.stereotype.Service; + +/** + * @author JX + * @create 2024-07-09 11:22 + * @dedescription: + */ + +@Service +public class BpmResultListenerApiImpl implements BpmResultListenerApi{ + @Override + public String getProcessDefinitionKey() { + return null; + } + + @Override + public void onEvent(BpmResultListenerRespDTO event) { + + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java new file mode 100644 index 0000000..2137e22 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/package-info.java @@ -0,0 +1,4 @@ +/** + * bpm API 实现类,定义暴露给其它模块的 API + */ +package cn.iocoder.yudao.module.bpm.api; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java new file mode 100644 index 0000000..596c998 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.bpm.api.task; + +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * Flowable 流程实例 Api 实现类 + * + * @author 芋道源码 + * @author jason + */ +@Service +@Validated +public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi { + + @Resource + private BpmProcessInstanceService processInstanceService; + + @Override + public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO) { + return processInstanceService.createProcessInstance(userId, reqDTO); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/candidate/vo/BpmTaskCandidateRuleVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/candidate/vo/BpmTaskCandidateRuleVO.java new file mode 100644 index 0000000..86ee2d5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/candidate/vo/BpmTaskCandidateRuleVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleBaseVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Set; + +/** + * 流程任务分配规则 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + * + * @see BpmTaskAssignRuleBaseVO + */ +@Data +public class BpmTaskCandidateRuleVO { + + @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bpm_task_assign_rule_type") + @NotNull(message = "规则类型不能为空") + private Integer type; + + @Schema(description = "规则值数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") + @NotNull(message = "规则值数组不能为空") + private Set options; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmFormController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmFormController.java new file mode 100644 index 0000000..2f07fa7 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmFormController.java @@ -0,0 +1,79 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.*; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmFormConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 动态表单") +@RestController +@RequestMapping("/bpm/form") +@Validated +public class BpmFormController { + + @Resource + private BpmFormService formService; + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "创建动态表单") + @PreAuthorize("@ss.hasPermission('bpm:form:create')") + public CommonResult createForm(@Valid @RequestBody BpmFormCreateReqVO createReqVO) { + return success(formService.createForm(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "流程管理",summary = "更新动态表单") + @PreAuthorize("@ss.hasPermission('bpm:form:update')") + public CommonResult updateForm(@Valid @RequestBody BpmFormUpdateReqVO updateReqVO) { + formService.updateForm(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "流程管理",summary = "删除动态表单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bpm:form:delete')") + public CommonResult deleteForm(@RequestParam("id") Long id) { + formService.deleteForm(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "流程管理",summary = "获得动态表单") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:form:query')") + public CommonResult getForm(@RequestParam("id") Long id) { + BpmFormDO form = formService.getForm(id); + return success(BpmFormConvert.INSTANCE.convert(form)); + } + + @GetMapping("/list-all-simple") + @Operation(tags = "流程管理",summary = "获得动态表单的精简列表", description = "用于表单下拉框") + public CommonResult> getSimpleForms() { + List list = formService.getFormList(); + return success(BpmFormConvert.INSTANCE.convertList2(list)); + } + + @GetMapping("/page") + @Operation(tags = "流程管理",summary = "获得动态表单分页") + @PreAuthorize("@ss.hasPermission('bpm:form:query')") + public CommonResult> getFormPage(@Valid BpmFormPageReqVO pageVO) { + PageResult pageResult = formService.getFormPage(pageVO); + return success(BpmFormConvert.INSTANCE.convertPage(pageResult)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmModelController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmModelController.java new file mode 100644 index 0000000..b6e0129 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmModelController.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.io.IoUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert; +import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.io.IOException; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 流程模型") +@RestController +@RequestMapping("/bpm/model") +@Validated +public class BpmModelController { + + @Resource + private BpmModelService modelService; + + @GetMapping("/page") + @Operation(tags = "流程管理",summary = "获得模型分页") + public CommonResult> getModelPage(BpmModelPageReqVO pageVO) { + return success(modelService.getModelPage(pageVO)); + } + + @GetMapping("/get") + @Operation(tags = "流程管理",summary = "获得模型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:model:query')") + public CommonResult getModel(@RequestParam("id") String id) { + BpmModelRespVO model = modelService.getModel(id); + return success(model); + } + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "新建模型") + @PreAuthorize("@ss.hasPermission('bpm:model:create')") + public CommonResult createModel(@Valid @RequestBody BpmModelCreateReqVO createRetVO) { + return success(modelService.createModel(createRetVO, null)); + } + + @PutMapping("/update") + @Operation(tags = "流程管理",summary = "修改模型") + @PreAuthorize("@ss.hasPermission('bpm:model:update')") + public CommonResult updateModel(@Valid @RequestBody BpmModelUpdateReqVO modelVO) { + modelService.updateModel(modelVO); + return success(true); + } + + @PostMapping("/import") + @Operation(tags = "流程管理",summary = "导入模型") + @PreAuthorize("@ss.hasPermission('bpm:model:import')") + public CommonResult importModel(@Valid BpmModeImportReqVO importReqVO) throws IOException { + BpmModelCreateReqVO createReqVO = BpmModelConvert.INSTANCE.convert(importReqVO); + // 读取文件 + String bpmnXml = IoUtils.readUtf8(importReqVO.getBpmnFile().getInputStream(), false); + return success(modelService.createModel(createReqVO, bpmnXml)); + } + + @PostMapping("/deploy") + @Operation(tags = "流程管理",summary = "部署模型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:model:deploy')") + public CommonResult deployModel(@RequestParam("id") String id) { + modelService.deployModel(id); + return success(true); + } + + @PutMapping("/update-state") + @Operation(tags = "流程管理",summary = "修改模型的状态", description = "实际更新的部署的流程定义的状态") + @PreAuthorize("@ss.hasPermission('bpm:model:update')") + public CommonResult updateModelState(@Valid @RequestBody BpmModelUpdateStateReqVO reqVO) { + modelService.updateModelState(reqVO.getId(), reqVO.getState()); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "流程管理",summary = "删除模型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:model:delete')") + public CommonResult deleteModel(@RequestParam("id") String id) { + modelService.deleteModel(id); + return success(true); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java new file mode 100644 index 0000000..2605ccc --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionListReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 流程定义") +@RestController +@RequestMapping("/bpm/process-definition") +@Validated +public class BpmProcessDefinitionController { + + @Resource + private BpmProcessDefinitionService bpmDefinitionService; + + @GetMapping("/page") + @Operation(tags = "流程管理",summary = "获得流程定义分页") + @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") + public CommonResult> getProcessDefinitionPage( + BpmProcessDefinitionPageReqVO pageReqVO) { + return success(bpmDefinitionService.getProcessDefinitionPage(pageReqVO)); + } + + @GetMapping ("/list") + @Operation(tags = "流程管理",summary = "获得流程定义列表") + @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") + public CommonResult> getProcessDefinitionList( + BpmProcessDefinitionListReqVO listReqVO) { + return success(bpmDefinitionService.getProcessDefinitionList(listReqVO)); + } + + @GetMapping ("/get-bpmn-xml") + @Operation(tags = "流程管理",summary = "获得流程定义的 BPMN XML") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:process-definition:query')") + public CommonResult getProcessDefinitionBpmnXML(@RequestParam("id") String id) { + String bpmnXML = bpmDefinitionService.getProcessDefinitionBpmnXML(id); + return success(bpmnXML); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmTaskAssignRuleController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmTaskAssignRuleController.java new file mode 100644 index 0000000..4f1cb9a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmTaskAssignRuleController.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO; +import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 任务分配规则") +@RestController +@RequestMapping("/bpm/task-assign-rule") +@Validated +public class BpmTaskAssignRuleController { + + @Resource + private BpmTaskAssignRuleService taskAssignRuleService; + + @GetMapping("/list") + @Operation(tags = "流程管理",summary = "获得任务分配规则列表") + @Parameters({ + @Parameter(name = "modelId", description = "模型编号", example = "1024"), + @Parameter(name = "processDefinitionId", description = "流程定义的编号", example = "2048") + }) + @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:query')") + public CommonResult> getTaskAssignRuleList( + @RequestParam(value = "modelId", required = false) String modelId, + @RequestParam(value = "processDefinitionId", required = false) String processDefinitionId) { + return success(taskAssignRuleService.getTaskAssignRuleList(modelId, processDefinitionId)); + } + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "创建任务分配规则") + @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:create')") + public CommonResult createTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleCreateReqVO reqVO) { + return success(taskAssignRuleService.createTaskAssignRule(reqVO)); + } + + @PutMapping("/update") + @Operation(tags = "流程管理",summary = "更新任务分配规则") + @PreAuthorize("@ss.hasPermission('bpm:task-assign-rule:update')") + public CommonResult updateTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleUpdateReqVO reqVO) { + taskAssignRuleService.updateTaskAssignRule(reqVO); + return success(true); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java new file mode 100644 index 0000000..65ddb68 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmUserGroupController.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmUserGroupConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 用户组") +@RestController +@RequestMapping("/bpm/user-group") +@Validated +public class BpmUserGroupController { + + @Resource + private BpmUserGroupService userGroupService; + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "创建用户组") + @PreAuthorize("@ss.hasPermission('bpm:user-group:create')") + public CommonResult createUserGroup(@Valid @RequestBody BpmUserGroupCreateReqVO createReqVO) { + return success(userGroupService.createUserGroup(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "流程管理",summary = "更新用户组") + @PreAuthorize("@ss.hasPermission('bpm:user-group:update')") + public CommonResult updateUserGroup(@Valid @RequestBody BpmUserGroupUpdateReqVO updateReqVO) { + userGroupService.updateUserGroup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "流程管理",summary = "删除用户组") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('bpm:user-group:delete')") + public CommonResult deleteUserGroup(@RequestParam("id") Long id) { + userGroupService.deleteUserGroup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "流程管理",summary = "获得用户组") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") + public CommonResult getUserGroup(@RequestParam("id") Long id) { + BpmUserGroupDO userGroup = userGroupService.getUserGroup(id); + return success(BpmUserGroupConvert.INSTANCE.convert(userGroup)); + } + + @GetMapping("/page") + @Operation(tags = "流程管理",summary = "获得用户组分页") + @PreAuthorize("@ss.hasPermission('bpm:user-group:query')") + public CommonResult> getUserGroupPage(@Valid BpmUserGroupPageReqVO pageVO) { + PageResult pageResult = userGroupService.getUserGroupPage(pageVO); + return success(BpmUserGroupConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/list-all-simple") + @Operation(tags = "流程管理",summary = "获取用户组精简信息列表", description = "只包含被开启的用户组,主要用于前端的下拉选项") + public CommonResult> getSimpleUserGroups() { + // 获用户门列表,只要开启状态的 + List list = userGroupService.getUserGroupListByStatus(CommonStatusEnum.ENABLE.getStatus()); + // 排序后,返回给前端 + return success(BpmUserGroupConvert.INSTANCE.convertList2(list)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java new file mode 100644 index 0000000..50dfd40 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +/** +* 动态表单 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class BpmFormBaseVO { + + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotNull(message = "表单名称不能为空") + private String name; + + @Schema(description = "表单状态-参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "表单状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "我是备注") + private String remark; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java new file mode 100644 index 0000000..d2f743c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 动态表单创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmFormCreateReqVO extends BpmFormBaseVO { + + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单的配置不能为空") + private String conf; + + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单项的数组不能为空") + private List fields; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormPageReqVO.java new file mode 100644 index 0000000..0227e0a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormPageReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 动态表单分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmFormPageReqVO extends PageParam { + + @Schema(description = "表单名称", example = "芋道") + private String name; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java new file mode 100644 index 0000000..102f64c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 动态表单 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmFormRespVO extends BpmFormBaseVO { + + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单的配置不能为空") + private String conf; + + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单项的数组不能为空") + private List fields; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java new file mode 100644 index 0000000..71d8a1f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 流程表单精简 Response VO") +@Data +public class BpmFormSimpleRespVO { + + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "表单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java new file mode 100644 index 0000000..1ff105d --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; +import java.util.List; + +@Schema(description = "管理后台 - 动态表单更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmFormUpdateReqVO extends BpmFormBaseVO { + + @Schema(description = "表单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "表单编号不能为空") + private Long id; + + @Schema(description = "表单的配置-JSON 字符串", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单的配置不能为空") + private String conf; + + @Schema(description = "表单项的数组-JSON 字符串的数组", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "表单项的数组不能为空") + private List fields; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java new file mode 100644 index 0000000..8e3e9be --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Set; + +/** +* 用户组 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class BpmUserGroupBaseVO { + + @Schema(description = "组名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotNull(message = "组名不能为空") + private String name; + + @Schema(description = "描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + @NotNull(message = "描述不能为空") + private String description; + + @Schema(description = "成员编号数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") + @NotNull(message = "成员编号数组不能为空") + private Set memberUserIds; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupCreateReqVO.java new file mode 100644 index 0000000..416c479 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupCreateReqVO.java @@ -0,0 +1,11 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 用户组创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmUserGroupCreateReqVO extends BpmUserGroupBaseVO { + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java new file mode 100644 index 0000000..05f1778 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 用户组分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmUserGroupPageReqVO extends PageParam { + + @Schema(description = "组名", example = "芋道") + private String name; + + @Schema(description = "状态", example = "1") + private Integer status; + + @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java new file mode 100644 index 0000000..0f89e95 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 用户组 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmUserGroupRespVO extends BpmUserGroupBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java new file mode 100644 index 0000000..e5e2060 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 用户组精简信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BpmUserGroupSimpleRespVO { + + @Schema(description = "用户组编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "用户组名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java new file mode 100644 index 0000000..0b2a9f1 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 用户组更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmUserGroupUpdateReqVO extends BpmUserGroupBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "编号不能为空") + private Long id; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java new file mode 100644 index 0000000..7f5858e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 流程模型的导入 Request VO 相比流程模型的新建来说,只是多了一个 bpmnFile 文件") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmModeImportReqVO extends BpmModelCreateReqVO { + + @Schema(description = "BPMN 文件", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "BPMN 文件不能为空") + private MultipartFile bpmnFile; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java new file mode 100644 index 0000000..5ae2d39 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** +* 流程模型 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class BpmModelBaseVO { + + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") + @NotEmpty(message = "流程标识不能为空") + private String key; + + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotEmpty(message = "流程名称不能为空") + private String name; + + @Schema(description = "流程描述", example = "我是描述") + private String description; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") + @NotEmpty(message = "流程分类不能为空") + private String category; + + @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") + private Integer formType; + @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") + private Long formId; + @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/create") + private String formCustomCreatePath; + @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/view") + private String formCustomViewPath; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java new file mode 100644 index 0000000..39e4844 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 流程模型的创建 Request VO") +@Data +public class BpmModelCreateReqVO { + + @Schema(description = "流程标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "process_yudao") + @NotEmpty(message = "流程标识不能为空") + private String key; + + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotEmpty(message = "流程名称不能为空") + private String name; + + @Schema(description = "流程描述", example = "我是描述") + private String description; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java new file mode 100644 index 0000000..4fc5b61 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程模型的分页的每一项 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmModelPageItemRespVO extends BpmModelBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "表单名字", example = "请假表单") + private String formName; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + /** + * 最新部署的流程定义 + */ + private ProcessDefinition processDefinition; + + @Schema(description = "流程定义") + @Data + public static class ProcessDefinition { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer version; + + @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime deploymentTime; + + @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer suspensionState; + + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageReqVO.java new file mode 100644 index 0000000..1528320 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelPageReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +@Schema(description = "管理后台 - 流程模型分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmModelPageReqVO extends PageParam { + + @Schema(description = "标识-精准匹配", example = "process1641042089407") + private String key; + + @Schema(description = "名字-模糊匹配", example = "芋道") + private String name; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") + private String category; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java new file mode 100644 index 0000000..df4abf7 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程模型的创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmModelRespVO extends BpmModelBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) + private String bpmnXml; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java new file mode 100644 index 0000000..ac8bedd --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 流程模型的更新 Request VO") +@Data +public class BpmModelUpdateReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "编号不能为空") + private String id; + + @Schema(description = "流程名称", example = "芋道") + private String name; + + @Schema(description = "流程描述", example = "我是描述") + private String description; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") + private String category; + + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) + private String bpmnXml; + + @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") + private Integer formType; + @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") + private Long formId; + @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/create") + private String formCustomCreatePath; + @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/view") + private String formCustomViewPath; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java new file mode 100644 index 0000000..ac86027 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 流程模型更新状态 Request VO") +@Data +public class BpmModelUpdateStateReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "编号不能为空") + private String id; + + @Schema(description = "状态-见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer state; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionListReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionListReqVO.java new file mode 100644 index 0000000..35243d2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionListReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 流程定义列表 Request VO") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class BpmProcessDefinitionListReqVO extends PageParam { + + @Schema(description = "中断状态-参见 SuspensionState 枚举", example = "1") + private Integer suspensionState; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java new file mode 100644 index 0000000..901c8aa --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程定义的分页的每一项 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmProcessDefinitionPageItemRespVO extends BpmProcessDefinitionRespVO { + + @Schema(description = "表单名字", example = "请假表单") + private String formName; + + @Schema(description = "部署时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime deploymentTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageReqVO.java new file mode 100644 index 0000000..f5c7f36 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageReqVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 流程定义分页 Request VO") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class BpmProcessDefinitionPageReqVO extends PageParam { + + @Schema(description = "标识-精准匹配", example = "process1641042089407") + private String key; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java new file mode 100644 index 0000000..9df317f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +@Schema(description = "管理后台 - 流程定义 Response VO") +@Data +public class BpmProcessDefinitionRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer version; + + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotEmpty(message = "流程名称不能为空") + private String name; + + @Schema(description = "流程描述", example = "我是描述") + private String description; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") + @NotEmpty(message = "流程分类不能为空") + private String category; + + @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") + private Integer formType; + @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") + private Long formId; + @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) + private String formConf; + @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) + private List formFields; + @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/create") + private String formCustomCreatePath; + @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/view") + private String formCustomViewPath; + + @Schema(description = "中断状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer suspensionState; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java new file mode 100644 index 0000000..31c1c94 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Set; + +/** + * 流程任务分配规则 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class BpmTaskAssignRuleBaseVO { + + @Schema(description = "规则类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bpm_task_assign_rule_type") + @NotNull(message = "规则类型不能为空") + private Integer type; + + @Schema(description = "规则值数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,2,3") + @NotNull(message = "规则值数组不能为空") + private Set options; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java new file mode 100644 index 0000000..3461126 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 流程任务分配规则的创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskAssignRuleCreateReqVO extends BpmTaskAssignRuleBaseVO { + + @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "流程模型的编号不能为空") + private String modelId; + + @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotEmpty(message = "流程任务定义的编号不能为空") + private String taskDefinitionKey; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java new file mode 100644 index 0000000..ac4f85e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 流程任务分配规则的 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskAssignRuleRespVO extends BpmTaskAssignRuleBaseVO { + + @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "流程模型的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private String modelId; + + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4096") + private String processDefinitionId; + + @Schema(description = "流程任务定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private String taskDefinitionKey; + @Schema(description = "流程任务定义的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "关注芋道") + private String taskDefinitionName; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java new file mode 100644 index 0000000..47bfb6a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 流程任务分配规则的更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskAssignRuleUpdateReqVO extends BpmTaskAssignRuleBaseVO { + + @Schema(description = "任务分配规则的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "任务分配规则的编号不能为空") + private Long id; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.http b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.http new file mode 100644 index 0000000..96bbf96 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.http @@ -0,0 +1,12 @@ +### 请求 /bpm/oa/leave/create 接口 => 成功 +POST {{baseUrl}}/bpm/oa/leave/create +Content-Type: application/json +tenant-id: 1 +Authorization: Bearer {{token}} + +{ + "startTime": "2022-03-01", + "endTime": "2022-03-05", + "type": 1, + "reason": "我要请假啦啦啦!" +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java new file mode 100644 index 0000000..f431769 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOALeaveController.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.oa; + +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO; +import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * OA 请假申请 Controller,用于演示自己存储数据,接入工作流的例子 + * + * @author jason + * @author 芋道源码 + */ +@Tag(name = "管理后台 - OA 请假申请") +@RestController +@RequestMapping("/bpm/oa/leave") +@Validated +public class BpmOALeaveController { + + @Resource + private BpmOALeaveService leaveService; + + @PostMapping("/create") + @PreAuthorize("@ss.hasPermission('bpm:oa-leave:create')") + @Operation(tags = "流程管理",summary = "创建请求申请") + public CommonResult createLeave(@Valid @RequestBody BpmOALeaveCreateReqVO createReqVO) { + return success(leaveService.createLeave(getLoginUserId(), createReqVO)); + } + + @GetMapping("/get") + @PreAuthorize("@ss.hasPermission('bpm:oa-leave:query')") + @Operation(tags = "流程管理",summary = "获得请假申请") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getLeave(@RequestParam("id") Long id) { + BpmOALeaveDO leave = leaveService.getLeave(id); + return success(BpmOALeaveConvert.INSTANCE.convert(leave)); + } + + @GetMapping("/page") + @PreAuthorize("@ss.hasPermission('bpm:oa-leave:query')") + @Operation(tags = "流程管理",summary = "获得请假申请分页") + public CommonResult> getLeavePage(@Valid BpmOALeavePageReqVO pageVO) { + PageResult pageResult = leaveService.getLeavePage(getLoginUserId(), pageVO); + return success(BpmOALeaveConvert.INSTANCE.convertPage(pageResult)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/package-info.java new file mode 100644 index 0000000..7028708 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/package-info.java @@ -0,0 +1,5 @@ +/** + * OA 示例,用于演示外部业务接入 BPM 工作流的示例 + * 一般的接入方式,只需要调用 接口,后续 Admin 用户在管理后台的【待办事务】进行审批 + */ +package cn.iocoder.yudao.module.bpm.controller.admin.oa; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java new file mode 100644 index 0000000..d61cdc3 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** +* 请假申请 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class BpmOALeaveBaseVO { + + @Schema(description = "请假的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "开始时间不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime startTime; + @Schema(description = "请假的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "结束时间不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime endTime; + + @Schema(description = "请假类型-参见 bpm_oa_type 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + @Schema(description = "原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "阅读芋道源码") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java new file mode 100644 index 0000000..9bfd448 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.AssertTrue; + +@Schema(description = "管理后台 - 请假申请创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmOALeaveCreateReqVO extends BpmOALeaveBaseVO { + + @AssertTrue(message = "结束时间,需要在开始时间之后") + public boolean isEndTimeValid() { + return !getEndTime().isBefore(getStartTime()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java new file mode 100644 index 0000000..903a0fc --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 请假申请分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmOALeavePageReqVO extends PageParam { + + @Schema(description = "状态-参见 bpm_process_instance_result 枚举", example = "1") + private Integer result; + + @Schema(description = "请假类型-参见 bpm_oa_type", example = "1") + private Integer type; + + @Schema(description = "原因-模糊匹配", example = "阅读芋道源码") + private String reason; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "申请时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java new file mode 100644 index 0000000..8862117 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.oa.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 请假申请 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmOALeaveRespVO extends BpmOALeaveBaseVO { + + @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "状态-参见 bpm_process_instance_result 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer result; + + @Schema(description = "申请时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "申请时间不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime createTime; + + @Schema(description = "流程id") + private String processInstanceId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmActivityController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmActivityController.java new file mode 100644 index 0000000..b0aae62 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmActivityController.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO; +import cn.iocoder.yudao.module.bpm.service.task.BpmActivityService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 流程活动实例") +@RestController +@RequestMapping("/bpm/activity") +@Validated +public class BpmActivityController { + + @Resource + private BpmActivityService activityService; + + @GetMapping("/list") + @Operation(tags = "流程管理",summary = "生成指定流程实例的高亮流程图", + description = "只高亮进行中的任务。不过要注意,该接口暂时没用,通过前端的 ProcessViewer.vue 界面的 highlightDiagram 方法生成") + @Parameter(name = "processInstanceId", description = "流程实例的编号", required = true) + @PreAuthorize("@ss.hasPermission('bpm:task:query')") + public CommonResult> getActivityList( + @RequestParam("processInstanceId") String processInstanceId) { + return success(activityService.getActivityListByProcessInstanceId(processInstanceId)); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java new file mode 100644 index 0000000..bf29f6f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 流程实例") // 流程实例,通过流程定义创建的一次“申请” +@RestController +@RequestMapping("/bpm/process-instance") +@Validated +public class BpmProcessInstanceController { + + @Resource + private BpmProcessInstanceService processInstanceService; + + @GetMapping("/my-page") + @Operation(tags = "流程管理",summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用") + @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") + public CommonResult> getMyProcessInstancePage( + @Valid BpmProcessInstanceMyPageReqVO pageReqVO) { + return success(processInstanceService.getMyProcessInstancePage(getLoginUserId(), pageReqVO)); + } + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "新建流程实例") + @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") + public CommonResult createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) { + return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO)); + } + + @GetMapping("/get") + @Operation(tags = "流程管理",summary = "获得指定流程实例", description = "在【流程详细】界面中,进行调用") + @Parameter(name = "id", description = "流程实例的编号", required = true) + @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')") + public CommonResult getProcessInstance(@RequestParam("id") String id) { + return success(processInstanceService.getProcessInstanceVO(id)); + } + + @DeleteMapping("/cancel") + @Operation(tags = "流程管理",summary = "取消流程实例", description = "撤回发起的流程") + @PreAuthorize("@ss.hasPermission('bpm:process-instance:cancel')") + public CommonResult cancelProcessInstance(@Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) { + processInstanceService.cancelProcessInstance(getLoginUserId(), cancelReqVO); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java new file mode 100644 index 0000000..ff74d35 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyMyPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageItemRespVO; +import cn.iocoder.yudao.module.bpm.convert.cc.BpmProcessInstanceCopyConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; +import cn.iocoder.yudao.module.bpm.service.task.cc.BpmProcessInstanceCopyService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Map; +import java.util.stream.Stream; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertListByFlatMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 流程实例抄送") +@RestController +@RequestMapping("/bpm/process-instance/cc") +@Validated +public class BpmProcessInstanceCopyController { + + @Resource + private BpmProcessInstanceCopyService processInstanceCopyService; + @Resource + private BpmProcessInstanceService bpmProcessInstanceService; + + @Resource + private AdminUserApi adminUserApi; + + @Resource + private BpmTaskService bpmTaskService; + + @PostMapping("/create") + @Operation(tags = "流程管理",summary = "抄送流程") + @PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:create')") + public CommonResult createProcessInstanceCopy(@Valid @RequestBody BpmProcessInstanceCopyCreateReqVO createReqVO) { + processInstanceCopyService.createProcessInstanceCopy(getLoginUserId(), createReqVO); + return success(true); + } + + @GetMapping("/my-page") + @Operation(tags = "流程管理",summary = "获得抄送流程分页列表") + @PreAuthorize("@ss.hasPermission('bpm:process-instance-cc:query')") + public CommonResult> getProcessInstanceCopyPage( + @Valid BpmProcessInstanceCopyMyPageReqVO pageReqVO) { + PageResult pageResult = processInstanceCopyService.getMyProcessInstanceCopyPage(getLoginUserId(), pageReqVO); + if (CollUtil.isEmpty(pageResult.getList())) { + return success(new PageResult<>(pageResult.getTotal())); + } + + // 拼接返回 + Map taskNameMap = bpmTaskService.getTaskNameByTaskIds( + convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getTaskId)); + Map processNameMap = bpmProcessInstanceService.getProcessInstanceNameMap( + convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId)); + Map userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(), + copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator())))); + return success(BpmProcessInstanceCopyConvert.INSTANCE.convertPage(pageResult, taskNameMap, processNameMap, userMap)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java new file mode 100644 index 0000000..9c2f745 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -0,0 +1,125 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 流程任务实例") +@RestController +@RequestMapping("/bpm/task") +@Validated +public class BpmTaskController { + + @Resource + private BpmTaskService taskService; + + @GetMapping("todo-page") + @Operation(tags = "流程管理",summary = "获取 Todo 待办任务分页") + @PreAuthorize("@ss.hasPermission('bpm:task:query')") + public CommonResult> getTodoTaskPage(@Valid BpmTaskTodoPageReqVO pageVO) { + return success(taskService.getTodoTaskPage(getLoginUserId(), pageVO)); + } + + @GetMapping("done-page") + @Operation(tags = "流程管理",summary = "获取 Done 已办任务分页") + @PreAuthorize("@ss.hasPermission('bpm:task:query')") + public CommonResult> getDoneTaskPage(@Valid BpmTaskDonePageReqVO pageVO) { + return success(taskService.getDoneTaskPage(getLoginUserId(), pageVO)); + } + + @GetMapping("/list-by-process-instance-id") + @Operation(tags = "流程管理",summary = "获得指定流程实例的任务列表", description = "包括完成的、未完成的") + @Parameter(name = "processInstanceId", description = "流程实例的编号", required = true) + @PreAuthorize("@ss.hasPermission('bpm:task:query')") + public CommonResult> getTaskListByProcessInstanceId( + @RequestParam("processInstanceId") String processInstanceId) { + return success(taskService.getTaskListByProcessInstanceId(processInstanceId)); + } + + @PutMapping("/approve") + @Operation(tags = "流程管理",summary = "通过任务") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult approveTask(@Valid @RequestBody BpmTaskApproveReqVO reqVO) { + taskService.approveTask(getLoginUserId(), reqVO); + return success(true); + } + + @PutMapping("/reject") + @Operation(tags = "流程管理",summary = "不通过任务") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult rejectTask(@Valid @RequestBody BpmTaskRejectReqVO reqVO) { + taskService.rejectTask(getLoginUserId(), reqVO); + return success(true); + } + + @PutMapping("/update-assignee") + @Operation(tags = "流程管理",summary = "更新任务的负责人", description = "用于【流程详情】的【转派】按钮") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult updateTaskAssignee(@Valid @RequestBody BpmTaskUpdateAssigneeReqVO reqVO) { + taskService.updateTaskAssignee(getLoginUserId(), reqVO); + return success(true); + } + + @GetMapping("/return-list") + @Operation(tags = "流程管理",summary = "获取所有可回退的节点", description = "用于【流程详情】的【回退】按钮") + @Parameter(name = "taskId", description = "当前任务ID", required = true) + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult> getReturnList(@RequestParam("taskId") String taskId) { + return success(taskService.getReturnTaskList(taskId)); + } + + @PutMapping("/return") + @Operation(tags = "流程管理",summary = "回退任务", description = "用于【流程详情】的【回退】按钮") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult returnTask(@Valid @RequestBody BpmTaskReturnReqVO reqVO) { + taskService.returnTask(getLoginUserId(), reqVO); + return success(true); + } + + @PutMapping("/delegate") + @Operation(tags = "流程管理",summary = "委派任务", description = "用于【流程详情】的【委派】按钮。和向前【加签】有点像,唯一区别是【委托】没有单独创立任务") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult delegateTask(@Valid @RequestBody BpmTaskDelegateReqVO reqVO) { + taskService.delegateTask(getLoginUserId(), reqVO); + return success(true); + } + + @PutMapping("/create-sign") + @Operation(tags = "流程管理",summary = "加签", description = "before 前加签,after 后加签") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult createSignTask(@Valid @RequestBody BpmTaskAddSignReqVO reqVO) { + taskService.createSignTask(getLoginUserId(), reqVO); + return success(true); + } + + @DeleteMapping("/delete-sign") + @Operation(tags = "流程管理",summary = "减签") + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult deleteSignTask(@Valid @RequestBody BpmTaskSubSignReqVO reqVO) { + taskService.deleteSignTask(getLoginUserId(), reqVO); + return success(true); + } + + @GetMapping("children-list") + @Operation(tags = "流程管理",summary = "获取能被减签的任务") + @Parameter(name = "parentId", description = "父级任务 ID", required = true) + @PreAuthorize("@ss.hasPermission('bpm:task:update')") + public CommonResult> getChildrenTaskList(@RequestParam("parentId") String parentId) { + return success(taskService.getChildrenTaskList(parentId)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java new file mode 100644 index 0000000..ab64682 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程活动的 Response VO") +@Data +public class BpmActivityRespVO { + + @Schema(description = "流程活动的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String key; + @Schema(description = "流程活动的类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "StartEvent") + private String type; + + @Schema(description = "流程活动的开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime startTime; + @Schema(description = "流程活动的结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + + @Schema(description = "关联的流程任务的编号-关联的流程任务,只有 UserTask 等类型才有", example = "2048") + private String taskId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java new file mode 100644 index 0000000..496c72c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 流程实例的取消 Request VO") +@Data +public class BpmProcessInstanceCancelReqVO { + + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "流程实例的编号不能为空") + private String id; + + @Schema(description = "取消原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") + @NotEmpty(message = "取消原因不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyCreateReqVO.java new file mode 100644 index 0000000..359fa00 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyCreateReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import lombok.Data; + +@Schema(description = "管理后台 - 流程实例抄送的创建 Request VO") +@Data +public class BpmProcessInstanceCopyCreateReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String taskId; + + @Schema(description = "抄送原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "请帮忙审查下!") + @NotBlank(message = "抄送原因不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyMyPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyMyPageReqVO.java new file mode 100644 index 0000000..7b4effa --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyMyPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 流程实例抄送的分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmProcessInstanceCopyMyPageReqVO extends PageParam { + + @Schema(description = "流程名称", example = "芋道") + private String processInstanceName; + + @Schema(description = "流程编号", example = "123456768") + private String processInstanceId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyPageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyPageItemRespVO.java new file mode 100644 index 0000000..4b149a6 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCopyPageItemRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程实例抄送的分页 Item Response VO") +@Data +public class BpmProcessInstanceCopyPageItemRespVO { + + @Schema(description = "抄送主键") + private Long id; + + @Schema(description = "发起人 ID") + private Long startUserId; + + @Schema(description = "发起人别名") + private String startUserNickname; + + @Schema(description = "流程实例的主键") + private String processInstanceId; + + @Schema(description = "流程实例的名称") + private String processInstanceName; + + @Schema(description = "发起抄送的任务编号") + private String taskId; + + @Schema(description = "发起抄送的任务名称") + private String taskName; + + @Schema(description = "抄送原因") + private String reason; + + @Schema(description = "抄送人") + private String creator; + + @Schema(description = "抄送人别名") + private String creatorNickname; + + @Schema(description = "抄送时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java new file mode 100644 index 0000000..93cf541 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; +import java.util.Map; + +@Schema(description = "管理后台 - 流程实例的创建 Request VO") +@Data +public class BpmProcessInstanceCreateReqVO { + + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "流程定义编号不能为空") + private String processDefinitionId; + + @Schema(description = "变量实例") + private Map variables; + + // TODO @hai:assignees 复数 + @Schema(description = "提前指派的审批人", requiredMode = Schema.RequiredMode.REQUIRED, example = "{taskKey1: [1, 2]}") + private Map> assignee; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java new file mode 100644 index 0000000..5b5d9fb --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 流程实例的分页 Item Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmProcessInstanceMyPageReqVO extends PageParam { + + @Schema(description = "流程名称", example = "芋道") + private String name; + + @Schema(description = "流程定义的编号", example = "2048") + private String processDefinitionId; + + @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", example = "1") + private Integer status; + + @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", example = "2") + private Integer result; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", example = "1") + private String category; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java new file mode 100644 index 0000000..6bb269f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 流程实例的分页 Item Response VO") +@Data +public class BpmProcessInstancePageItemRespVO { + + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private String processDefinitionId; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String category; + + @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer result; + + @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + + /** + * 当前任务 + */ + private List tasks; + + @Schema(description = "流程任务") + @Data + public static class Task { + + @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java new file mode 100644 index 0000000..a9cc810 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Schema(description = "管理后台 - 流程实例的 Response VO") +@Data +public class BpmProcessInstanceRespVO { + + @Schema(description = "流程实例的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "流程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "流程分类-参见 bpm_model_category 数据字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String category; + + @Schema(description = "流程实例的状态-参见 bpm_process_instance_status", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "流程实例的结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer result; + + @Schema(description = "提交时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + + @Schema(description = "提交的表单值", requiredMode = Schema.RequiredMode.REQUIRED) + private Map formVariables; + + @Schema(description = "业务的唯一标识-例如说,请假申请的编号", example = "1") + private String businessKey; + + /** + * 发起流程的用户 + */ + private User startUser; + + /** + * 流程定义 + */ + private ProcessDefinition processDefinition; + + @Schema(description = "用户信息") + @Data + public static class User { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String nickname; + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long deptId; + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") + private String deptName; + + } + + @Schema(description = "流程定义信息") + @Data + public static class ProcessDefinition { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "表单类型-参见 bpm_model_form_type 数据字典", example = "1") + private Integer formType; + @Schema(description = "表单编号-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", example = "1024") + private Long formId; + @Schema(description = "表单的配置-JSON 字符串。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) + private String formConf; + @Schema(description = "表单项的数组-JSON 字符串的数组。在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", requiredMode = Schema.RequiredMode.REQUIRED) + private List formFields; + @Schema(description = "自定义表单的提交路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/create") + private String formCustomCreatePath; + @Schema(description = "自定义表单的查看路径,使用 Vue 的路由地址-在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时,必须非空", + example = "/bpm/oa/leave/view") + private String formCustomViewPath; + + @Schema(description = "BPMN XML", requiredMode = Schema.RequiredMode.REQUIRED) + private String bpmnXml; + + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskAddSignReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskAddSignReqVO.java new file mode 100644 index 0000000..cabb91b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskAddSignReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.Set; + +// TODO @海洋:类名,应该是 create 哈 +@Schema(description = "管理后台 - 加签流程任务的 Request VO") +@Data +public class BpmTaskAddSignReqVO { + + @Schema(description = "需要加签的任务 ID") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "加签的用户 ID") + @NotEmpty(message = "加签用户 ID 不能为空") + private Set userIdList; + + @Schema(description = "加签类型,before 向前加签,after 向后加签") + @NotEmpty(message = "加签类型不能为空") + private String type; + + @Schema(description = "加签原因") + @NotEmpty(message = "加签原因不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java new file mode 100644 index 0000000..a8420c5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 通过流程任务的 Request VO") +@Data +public class BpmTaskApproveReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "不错不错!") + @NotEmpty(message = "审批意见不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDelegateReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDelegateReqVO.java new file mode 100644 index 0000000..96c42de --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDelegateReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 委派流程任务的 Request VO") +@Data +public class BpmTaskDelegateReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "被委派人 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "被委派人 ID 不能为空") + private Long delegateUserId; + + @Schema(description = "委派原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅") + @NotEmpty(message = "委派原因不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java new file mode 100644 index 0000000..8f51441 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程任务的 Done 已完成的分页项 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskDonePageItemRespVO extends BpmTaskTodoPageItemRespVO { + + @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime endTime; + @Schema(description = "持续时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") + private Long durationInMillis; + + @Schema(description = "任务结果-参见 bpm_process_instance_result", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer result; + @Schema(description = "审批建议", requiredMode = Schema.RequiredMode.REQUIRED, example = "不请假了!") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java new file mode 100644 index 0000000..52daea4 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 流程任务的 Done 已办的分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskDonePageReqVO extends PageParam { + + @Schema(description = "流程任务名", example = "芋道") + private String name; + + @Schema(description = "开始的创建收间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime beginCreateTime; + + @Schema(description = "结束的创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime endCreateTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java new file mode 100644 index 0000000..ebbc0fd --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 不通过流程任务的 Request VO") +@Data +public class BpmTaskRejectReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "不错不错!") + @NotEmpty(message = "审批意见不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java new file mode 100644 index 0000000..1af839e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +@Schema(description = "管理后台 - 流程任务的 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { + + @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "user-001") + private String definitionKey; + + /** + * 审核的用户信息 + */ + private User assigneeUser; + + /** + * 父任务ID + */ + private String parentTaskId; + + @Schema(description = "子任务(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask") + private List children; + + @Schema(description = "用户信息") + @Data + public static class User { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String nickname; + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long deptId; + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") + private String deptName; + + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskReturnReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskReturnReqVO.java new file mode 100644 index 0000000..983f35c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskReturnReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 回退流程任务的 Request VO") +@Data +public class BpmTaskReturnReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "回退到的任务 Key", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "回退到的任务 Key 不能为空") + private String targetDefinitionKey; + + @Schema(description = "回退意见", requiredMode = Schema.RequiredMode.REQUIRED, example = "我就是想驳回") + @NotEmpty(message = "回退意见不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSimpleRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSimpleRespVO.java new file mode 100644 index 0000000..b98a25a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSimpleRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 流程任务的精简 Response VO") +@Data +public class BpmTaskSimpleRespVO { + + @Schema(description = "任务定义的标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "Activity_one") + private String definitionKey; + + @Schema(description = "任务名词", requiredMode = Schema.RequiredMode.REQUIRED, example = "经理审批") + private String name; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignReqVO.java new file mode 100644 index 0000000..731e480 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +// TODO @海洋:类名,应该是 delete 哈 +@Schema(description = "管理后台 - 减签流程任务的 Request VO") +@Data +public class BpmTaskSubSignReqVO { + + @Schema(description = "被减签的任务 ID") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "加签原因") + @NotEmpty(message = "加签原因不能为空") + private String reason; +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignRespVO.java new file mode 100644 index 0000000..efecbf5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskSubSignRespVO.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 减签流程任务的 Response VO") +@Data +public class BpmTaskSubSignRespVO { + @Schema(description = "审核的用户信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "小李") + private BpmTaskRespVO.User assigneeUser; + @Schema(description = "任务 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12312") + private String id; + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "经理审批") + private String name; +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java new file mode 100644 index 0000000..4b57f47 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程任务的 Running 进行中的分页项 Response VO") +@Data +public class BpmTaskTodoPageItemRespVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "任务名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "接收时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime claimTime; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "激活状态-参见 SuspensionState 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer suspensionState; + + /** + * 所属流程实例 + */ + private ProcessInstance processInstance; + + @Data + @Schema(description = "流程实例") + public static class ProcessInstance { + + @Schema(description = "流程实例编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String id; + + @Schema(description = "流程实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "发起人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long startUserId; + + @Schema(description = "发起人的用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String startUserNickname; + + @Schema(description = "流程定义的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private String processDefinitionId; + + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java new file mode 100644 index 0000000..605007e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 流程任务的 TODO 待办的分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskTodoPageReqVO extends PageParam { + + @Schema(description = "流程任务名", example = "芋道") + private String name; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java new file mode 100644 index 0000000..dfc5fbb --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 流程任务的更新负责人的 Request VO") +@Data +public class BpmTaskUpdateAssigneeReqVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "任务编号不能为空") + private String id; + + @Schema(description = "新审批人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + @NotNull(message = "新审批人的用户编号不能为空") + private Long assigneeUserId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/app/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/app/package-info.java new file mode 100644 index 0000000..e8d285e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/app/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.bpm.controller.app; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/package-info.java new file mode 100644 index 0000000..d1930bd --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 RESTful API 给前端: + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分 + */ +package cn.iocoder.yudao.module.bpm.controller; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/cc/BpmProcessInstanceCopyConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/cc/BpmProcessInstanceCopyConvert.java new file mode 100644 index 0000000..f482c71 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/cc/BpmProcessInstanceCopyConvert.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.convert.cc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageItemRespVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +/** + * 流程抄送 Convert + * + * @author 芋艿 + */ +@Mapper +public interface BpmProcessInstanceCopyConvert { + + BpmProcessInstanceCopyConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceCopyConvert.class); + + default PageResult convertPage(PageResult page, + Map taskNameMap, + Map processInstaneNameMap, + Map userMap) { + List list = BeanUtils.toBean(page.getList(), + BpmProcessInstanceCopyPageItemRespVO.class, + copy -> { + MapUtils.findAndThen(userMap, Long.valueOf(copy.getCreator()), user -> user.setNickname(user.getNickname())); + MapUtils.findAndThen(userMap, copy.getStartUserId(), user -> copy.setStartUserNickname(user.getNickname())); + MapUtils.findAndThen(taskNameMap, copy.getTaskId(), copy::setTaskName); + MapUtils.findAndThen(processInstaneNameMap, copy.getProcessInstanceId(), copy::setProcessInstanceName); + }); + return new PageResult<>(list, page.getTotal()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmFormConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmFormConvert.java new file mode 100644 index 0000000..6ba7574 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmFormConvert.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormSimpleRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 动态表单 Convert + * + * @author 芋艿 + */ +@Mapper +public interface BpmFormConvert { + + BpmFormConvert INSTANCE = Mappers.getMapper(BpmFormConvert.class); + + BpmFormDO convert(BpmFormCreateReqVO bean); + + BpmFormDO convert(BpmFormUpdateReqVO bean); + + BpmFormRespVO convert(BpmFormDO bean); + + List convertList2(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmModelConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmModelConvert.java new file mode 100644 index 0000000..986f71c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmModelConvert.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO; +import org.flowable.common.engine.impl.db.SuspensionState; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.Model; +import org.flowable.engine.repository.ProcessDefinition; +import org.mapstruct.Mapper; +import org.mapstruct.MappingTarget; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 流程模型 Convert + * + * @author yunlongn + */ +@Mapper +public interface BpmModelConvert { + + BpmModelConvert INSTANCE = Mappers.getMapper(BpmModelConvert.class); + + default List convertList(List list, Map formMap, + Map deploymentMap, + Map processDefinitionMap) { + return CollectionUtils.convertList(list, model -> { + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class); + BpmFormDO form = metaInfo != null ? formMap.get(metaInfo.getFormId()) : null; + Deployment deployment = model.getDeploymentId() != null ? deploymentMap.get(model.getDeploymentId()) : null; + ProcessDefinition processDefinition = model.getDeploymentId() != null ? processDefinitionMap.get(model.getDeploymentId()) : null; + return convert(model, form, deployment, processDefinition); + }); + } + + default BpmModelPageItemRespVO convert(Model model, BpmFormDO form, Deployment deployment, ProcessDefinition processDefinition) { + BpmModelPageItemRespVO modelRespVO = new BpmModelPageItemRespVO(); + modelRespVO.setId(model.getId()); + modelRespVO.setCreateTime(DateUtils.of(model.getCreateTime())); + // 通用 copy + copyTo(model, modelRespVO); + // Form + if (form != null) { + modelRespVO.setFormId(form.getId()); + modelRespVO.setFormName(form.getDesformName()); + } + // ProcessDefinition + modelRespVO.setProcessDefinition(this.convert(processDefinition)); + if (modelRespVO.getProcessDefinition() != null) { + modelRespVO.getProcessDefinition().setSuspensionState(processDefinition.isSuspended() ? + SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode()); + modelRespVO.getProcessDefinition().setDeploymentTime(DateUtils.of(deployment.getDeploymentTime())); + } + return modelRespVO; + } + + default BpmModelRespVO convert(Model model) { + BpmModelRespVO modelRespVO = new BpmModelRespVO(); + modelRespVO.setId(model.getId()); + modelRespVO.setCreateTime(DateUtils.of(model.getCreateTime())); + // 通用 copy + copyTo(model, modelRespVO); + return modelRespVO; + } + + default void copyTo(Model model, BpmModelBaseVO to) { + to.setName(model.getName()); + to.setKey(model.getKey()); + to.setCategory(model.getCategory()); + // metaInfo + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class); + copyTo(metaInfo, to); + } + + BpmModelCreateReqVO convert(BpmModeImportReqVO bean); + + default BpmProcessDefinitionCreateReqDTO convert2(Model model, BpmFormDO form) { + BpmProcessDefinitionCreateReqDTO createReqDTO = new BpmProcessDefinitionCreateReqDTO(); + createReqDTO.setModelId(model.getId()); + createReqDTO.setName(model.getName()); + createReqDTO.setKey(model.getKey()); + createReqDTO.setCategory(model.getCategory()); + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class); + // metaInfo + copyTo(metaInfo, createReqDTO); + // form + if (form != null) { + createReqDTO.setFormConf(form.getDesformJson()); + } + return createReqDTO; + } + + void copyTo(BpmModelMetaInfoRespDTO from, @MappingTarget BpmProcessDefinitionCreateReqDTO to); + + void copyTo(BpmModelMetaInfoRespDTO from, @MappingTarget BpmModelBaseVO to); + + BpmModelPageItemRespVO.ProcessDefinition convert(ProcessDefinition bean); + + default void copy(Model model, BpmModelCreateReqVO bean) { + model.setName(bean.getName()); + model.setKey(bean.getKey()); + model.setMetaInfo(buildMetaInfoStr(null, bean.getDescription(), null, null, + null, null)); + } + + default void copy(Model model, BpmModelUpdateReqVO bean) { + model.setName(bean.getName()); + model.setCategory(bean.getCategory()); + model.setMetaInfo(buildMetaInfoStr(JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class), + bean.getDescription(), bean.getFormType(), bean.getFormId(), + bean.getFormCustomCreatePath(), bean.getFormCustomViewPath())); + } + + default String buildMetaInfoStr(BpmModelMetaInfoRespDTO metaInfo, String description, Integer formType, + Long formId, String formCustomCreatePath, String formCustomViewPath) { + if (metaInfo == null) { + metaInfo = new BpmModelMetaInfoRespDTO(); + } + // 只有非空,才进行设置,避免更新时的覆盖 + if (StrUtil.isNotEmpty(description)) { + metaInfo.setDescription(description); + } + if (Objects.nonNull(formType)) { + metaInfo.setFormType(formType); + metaInfo.setFormId(formId); + metaInfo.setFormCustomCreatePath(formCustomCreatePath); + metaInfo.setFormCustomViewPath(formCustomViewPath); + } + return JsonUtils.toJsonString(metaInfo); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmProcessDefinitionConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmProcessDefinitionConvert.java new file mode 100644 index 0000000..b4f45e2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmProcessDefinitionConvert.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO; +import org.flowable.common.engine.impl.db.SuspensionState; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.ProcessDefinition; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.Named; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +/** + * Bpm 流程定义的 Convert + * + * @author yunlong.li + */ +@Mapper +public interface BpmProcessDefinitionConvert { + + BpmProcessDefinitionConvert INSTANCE = Mappers.getMapper(BpmProcessDefinitionConvert.class); + + BpmProcessDefinitionPageItemRespVO convert(ProcessDefinition bean); + + BpmProcessDefinitionExtDO convert2(BpmProcessDefinitionCreateReqDTO bean); + + default List convertList(List list, Map deploymentMap, + Map processDefinitionDOMap, Map formMap) { + return CollectionUtils.convertList(list, definition -> { + Deployment deployment = definition.getDeploymentId() != null ? deploymentMap.get(definition.getDeploymentId()) : null; + BpmProcessDefinitionExtDO definitionDO = processDefinitionDOMap.get(definition.getId()); + BpmFormDO form = definitionDO != null ? formMap.get(definitionDO.getFormId()) : null; + return convert(definition, deployment, definitionDO, form); + }); + } + + default List convertList3(List list, + Map processDefinitionDOMap) { + return CollectionUtils.convertList(list, processDefinition -> { + BpmProcessDefinitionRespVO respVO = convert3(processDefinition); + BpmProcessDefinitionExtDO processDefinitionExtDO = processDefinitionDOMap.get(processDefinition.getId()); + // 复制通用属性 + copyTo(processDefinitionExtDO, respVO); + return respVO; + }); + } + + @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState") + BpmProcessDefinitionRespVO convert3(ProcessDefinition bean); + + @Named("convertSuspendedToSuspensionState") + default Integer convertSuspendedToSuspensionState(boolean suspended) { + return suspended ? SuspensionState.SUSPENDED.getStateCode() : + SuspensionState.ACTIVE.getStateCode(); + } + + default BpmProcessDefinitionPageItemRespVO convert(ProcessDefinition bean, Deployment deployment, + BpmProcessDefinitionExtDO processDefinitionExtDO, BpmFormDO form) { + BpmProcessDefinitionPageItemRespVO respVO = convert(bean); + respVO.setSuspensionState(bean.isSuspended() ? SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode()); + if (deployment != null) { + respVO.setDeploymentTime(LocalDateTimeUtil.of(deployment.getDeploymentTime())); + } + if (form != null) { + respVO.setFormName(form.getDesformName()); + } + // 复制通用属性 + copyTo(processDefinitionExtDO, respVO); + return respVO; + } + + @Mapping(source = "from.id", target = "to.id", ignore = true) + void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessDefinitionRespVO to); +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmTaskAssignRuleConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmTaskAssignRuleConvert.java new file mode 100644 index 0000000..c616e90 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmTaskAssignRuleConvert.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; +import org.flowable.bpmn.model.UserTask; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface BpmTaskAssignRuleConvert { + BpmTaskAssignRuleConvert INSTANCE = Mappers.getMapper(BpmTaskAssignRuleConvert.class); + + default List convertList(List tasks, List rules) { + Map ruleMap = CollectionUtils.convertMap(rules, BpmTaskAssignRuleDO::getTaskDefinitionKey); + // 以 UserTask 为主维度,原因是:流程图编辑后,一些规则实际就没用了。 + return CollectionUtils.convertList(tasks, task -> { + BpmTaskAssignRuleRespVO respVO = convert(ruleMap.get(task.getId())); + if (respVO == null) { + respVO = new BpmTaskAssignRuleRespVO(); + respVO.setTaskDefinitionKey(task.getId()); + } + respVO.setTaskDefinitionName(task.getName()); + return respVO; + }); + } + + BpmTaskAssignRuleRespVO convert(BpmTaskAssignRuleDO bean); + + BpmTaskAssignRuleDO convert(BpmTaskAssignRuleCreateReqVO bean); + + BpmTaskAssignRuleDO convert(BpmTaskAssignRuleUpdateReqVO bean); + + List convertList2(List list); +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmUserGroupConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmUserGroupConvert.java new file mode 100644 index 0000000..bbf00ba --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmUserGroupConvert.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import java.util.*; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.Named; +import org.mapstruct.factory.Mappers; + +/** + * 用户组 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface BpmUserGroupConvert { + + BpmUserGroupConvert INSTANCE = Mappers.getMapper(BpmUserGroupConvert.class); + + BpmUserGroupDO convert(BpmUserGroupCreateReqVO bean); + + BpmUserGroupDO convert(BpmUserGroupUpdateReqVO bean); + + BpmUserGroupRespVO convert(BpmUserGroupDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + @Named("convertList2") + List convertList2(List list); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/message/BpmMessageConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/message/BpmMessageConvert.java new file mode 100644 index 0000000..99b7beb --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/message/BpmMessageConvert.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.convert.message; + +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.Map; + +@Mapper +public interface BpmMessageConvert { + + BpmMessageConvert INSTANCE = Mappers.getMapper(BpmMessageConvert.class); + + @Mapping(target = "mobile", ignore = true) + @Mapping(source = "userId", target = "userId") + @Mapping(source = "templateCode", target = "templateCode") + @Mapping(source = "templateParams", target = "templateParams") + SmsSendSingleToUserReqDTO convert(Long userId, String templateCode, Map templateParams); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/oa/BpmOALeaveConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/oa/BpmOALeaveConvert.java new file mode 100644 index 0000000..f87531b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/oa/BpmOALeaveConvert.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.convert.oa; + +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 请假申请 Convert + * + * @author 芋艿 + */ +@Mapper +public interface BpmOALeaveConvert { + + BpmOALeaveConvert INSTANCE = Mappers.getMapper(BpmOALeaveConvert.class); + + BpmOALeaveDO convert(BpmOALeaveCreateReqVO bean); + + BpmOALeaveRespVO convert(BpmOALeaveDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/package-info.java new file mode 100644 index 0000000..6db6ebc --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 POJO 类的实体转换 + * + * 目前使用 MapStruct 框架 + */ +package cn.iocoder.yudao.module.bpm.convert; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmActivityConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmActivityConvert.java new file mode 100644 index 0000000..3cb674c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmActivityConvert.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.convert.task; + +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO; +import org.flowable.engine.history.HistoricActivityInstance; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * BPM 活动 Convert + * + * @author 芋道源码 + */ +@Mapper(uses = DateUtils.class) +public interface BpmActivityConvert { + + BpmActivityConvert INSTANCE = Mappers.getMapper(BpmActivityConvert.class); + + List convertList(List list); + + @Mappings({ + @Mapping(source = "activityId", target = "key"), + @Mapping(source = "activityType", target = "type") + }) + BpmActivityRespVO convert(HistoricActivityInstance bean); +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java new file mode 100644 index 0000000..8296b8b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java @@ -0,0 +1,115 @@ +package cn.iocoder.yudao.module.bpm.convert.task; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstancePageItemRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; +import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.Task; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +/** + * 流程实例 Convert + * + * @author 芋道源码 + */ +@Mapper(uses = DateUtils.class) +public interface BpmProcessInstanceConvert { + + BpmProcessInstanceConvert INSTANCE = Mappers.getMapper(BpmProcessInstanceConvert.class); + + default PageResult convertPage(PageResult page, + Map> taskMap) { + List list = convertList(page.getList()); + list.forEach(respVO -> respVO.setTasks(convertList2(taskMap.get(respVO.getId())))); + return new PageResult<>(list, page.getTotal()); + } + + List convertList(List list); + + @Mapping(source = "processInstanceId", target = "id") + BpmProcessInstancePageItemRespVO convert(BpmProcessInstanceExtDO bean); + + List convertList2(List tasks); + + default BpmProcessInstanceRespVO convert2(HistoricProcessInstance processInstance, BpmProcessInstanceExtDO processInstanceExt, + ProcessDefinition processDefinition, BpmProcessDefinitionExtDO processDefinitionExt, + String bpmnXml, AdminUserRespDTO startUser, DeptRespDTO dept) { + BpmProcessInstanceRespVO respVO = convert2(processInstance); + copyTo(processInstanceExt, respVO); + // definition + respVO.setProcessDefinition(convert2(processDefinition)); + copyTo(processDefinitionExt, respVO.getProcessDefinition()); + respVO.getProcessDefinition().setBpmnXml(bpmnXml); + // user + if (startUser != null) { + respVO.setStartUser(convert2(startUser)); + if (dept != null) { + respVO.getStartUser().setDeptName(dept.getName()); + } + } + return respVO; + } + + BpmProcessInstanceRespVO convert2(HistoricProcessInstance bean); + + @Mapping(source = "from.id", target = "to.id", ignore = true) + void copyTo(BpmProcessInstanceExtDO from, @MappingTarget BpmProcessInstanceRespVO to); + + BpmProcessInstanceRespVO.ProcessDefinition convert2(ProcessDefinition bean); + + @Mapping(source = "from.id", target = "to.id", ignore = true) + void copyTo(BpmProcessDefinitionExtDO from, @MappingTarget BpmProcessInstanceRespVO.ProcessDefinition to); + + BpmProcessInstanceRespVO.User convert2(AdminUserRespDTO bean); + + default BpmProcessInstanceResultEvent convert(Object source, HistoricProcessInstance instance, Integer result) { + BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source); + event.setId(instance.getId()); + event.setProcessDefinitionKey(instance.getProcessDefinitionKey()); + event.setBusinessKey(instance.getBusinessKey()); + event.setResult(result); + return event; + } + + default BpmProcessInstanceResultEvent convert(Object source, ProcessInstance instance, Integer result) { + BpmProcessInstanceResultEvent event = new BpmProcessInstanceResultEvent(source); + event.setId(instance.getId()); + event.setProcessDefinitionKey(instance.getProcessDefinitionKey()); + event.setBusinessKey(instance.getBusinessKey()); + event.setResult(result); + return event; + } + + default BpmMessageSendWhenProcessInstanceApproveReqDTO convert2ApprovedReq(ProcessInstance instance){ + return new BpmMessageSendWhenProcessInstanceApproveReqDTO() + .setStartUserId(NumberUtils.parseLong(instance.getStartUserId())) + .setProcessInstanceId(instance.getId()) + .setProcessInstanceName(instance.getName()); + } + + default BpmMessageSendWhenProcessInstanceRejectReqDTO convert2RejectReq(ProcessInstance instance, String reason) { + return new BpmMessageSendWhenProcessInstanceRejectReqDTO() + .setProcessInstanceName(instance.getName()) + .setProcessInstanceId(instance.getId()) + .setReason(reason) + .setStartUserId(NumberUtils.parseLong(instance.getStartUserId())); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java new file mode 100644 index 0000000..60ce840 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java @@ -0,0 +1,201 @@ +package cn.iocoder.yudao.module.bpm.convert.task; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.bpmn.model.FlowElement; +import org.flowable.common.engine.impl.db.SuspensionState; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.Task; +import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl; +import org.mapstruct.*; +import org.mapstruct.factory.Mappers; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList; + +/** + * Bpm 任务 Convert + * + * @author 芋道源码 + */ +@Mapper(uses = DateUtils.class) +public interface BpmTaskConvert { + + BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class); + + default List convertList1(List tasks, + Map processInstanceMap, + Map userMap) { + return CollectionUtils.convertList(tasks, task -> { + BpmTaskTodoPageItemRespVO respVO = convert1(task); + ProcessInstance processInstance = processInstanceMap.get(task.getProcessInstanceId()); + if (processInstance != null) { + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); + respVO.setProcessInstance(convert(processInstance, startUser)); + } + return respVO; + }); + } + + @Mapping(source = "suspended", target = "suspensionState", qualifiedByName = "convertSuspendedToSuspensionState") + BpmTaskTodoPageItemRespVO convert1(Task bean); + + @Named("convertSuspendedToSuspensionState") + default Integer convertSuspendedToSuspensionState(boolean suspended) { + return suspended ? SuspensionState.SUSPENDED.getStateCode() : SuspensionState.ACTIVE.getStateCode(); + } + + default List convertList2(List tasks, + Map bpmTaskExtDOMap, Map historicProcessInstanceMap, + Map userMap) { + return CollectionUtils.convertList(tasks, task -> { + BpmTaskDonePageItemRespVO respVO = convert2(task); + BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId()); + copyTo(taskExtDO, respVO); + HistoricProcessInstance processInstance = historicProcessInstanceMap.get(task.getProcessInstanceId()); + if (processInstance != null) { + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); + respVO.setProcessInstance(convert(processInstance, startUser)); + } + return respVO; + }); + } + + BpmTaskDonePageItemRespVO convert2(HistoricTaskInstance bean); + + @Mappings({ + @Mapping(source = "processInstance.id", target = "id"), + @Mapping(source = "processInstance.name", target = "name"), + @Mapping(source = "processInstance.startUserId", target = "startUserId"), + @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"), + @Mapping(source = "startUser.nickname", target = "startUserNickname") + }) + BpmTaskTodoPageItemRespVO.ProcessInstance convert(ProcessInstance processInstance, AdminUserRespDTO startUser); + + default List convertList3(List tasks, + Map bpmTaskExtDOMap, HistoricProcessInstance processInstance, + Map userMap, Map deptMap) { + return CollectionUtils.convertList(tasks, task -> { + BpmTaskRespVO respVO = convert3(task); + BpmTaskExtDO taskExtDO = bpmTaskExtDOMap.get(task.getId()); + copyTo(taskExtDO, respVO); + if (processInstance != null) { + AdminUserRespDTO startUser = userMap.get(NumberUtils.parseLong(processInstance.getStartUserId())); + respVO.setProcessInstance(convert(processInstance, startUser)); + } + AdminUserRespDTO assignUser = userMap.get(NumberUtils.parseLong(task.getAssignee())); + if (assignUser != null) { + respVO.setAssigneeUser(convert3(assignUser)); + DeptRespDTO dept = deptMap.get(assignUser.getDeptId()); + if (dept != null) { + respVO.getAssigneeUser().setDeptName(dept.getName()); + } + } + return respVO; + }); + } + + @Mapping(source = "taskDefinitionKey", target = "definitionKey") + BpmTaskRespVO convert3(HistoricTaskInstance bean); + + BpmTaskRespVO.User convert3(AdminUserRespDTO bean); + + @Mapping(target = "id", ignore = true) + void copyTo(BpmTaskExtDO from, @MappingTarget BpmTaskDonePageItemRespVO to); + + @Mappings({@Mapping(source = "processInstance.id", target = "id"), + @Mapping(source = "processInstance.name", target = "name"), + @Mapping(source = "processInstance.startUserId", target = "startUserId"), + @Mapping(source = "processInstance.processDefinitionId", target = "processDefinitionId"), + @Mapping(source = "startUser.nickname", target = "startUserNickname")}) + BpmTaskTodoPageItemRespVO.ProcessInstance convert(HistoricProcessInstance processInstance, + AdminUserRespDTO startUser); + + default BpmTaskExtDO convert2TaskExt(Task task) { + BpmTaskExtDO taskExtDO = new BpmTaskExtDO().setTaskId(task.getId()) + .setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())).setName(task.getName()) + .setProcessDefinitionId(task.getProcessDefinitionId()).setProcessInstanceId(task.getProcessInstanceId()); + taskExtDO.setCreateTime(LocalDateTimeUtil.of(task.getCreateTime())); + return taskExtDO; + } + + default BpmMessageSendWhenTaskCreatedReqDTO convert(ProcessInstance processInstance, AdminUserRespDTO startUser, + Task task) { + BpmMessageSendWhenTaskCreatedReqDTO reqDTO = new BpmMessageSendWhenTaskCreatedReqDTO(); + reqDTO.setProcessInstanceId(processInstance.getProcessInstanceId()) + .setProcessInstanceName(processInstance.getName()).setStartUserId(startUser.getId()) + .setStartUserNickname(startUser.getNickname()).setTaskId(task.getId()).setTaskName(task.getName()) + .setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())); + return reqDTO; + } + + default List convertList(List elementList) { + return CollectionUtils.convertList(elementList, element -> new BpmTaskSimpleRespVO() + .setName(element.getName()) + .setDefinitionKey(element.getId())); + } + + //此处不用 mapstruct 映射,因为 TaskEntityImpl 还有很多其他属性,这里我们只设置我们需要的 + //使用 mapstruct 会将里面嵌套的各个属性值都设置进去,会出现意想不到的问题 + default TaskEntityImpl convert(TaskEntityImpl task,TaskEntityImpl parentTask){ + task.setCategory(parentTask.getCategory()); + task.setDescription(parentTask.getDescription()); + task.setTenantId(parentTask.getTenantId()); + task.setName(parentTask.getName()); + task.setParentTaskId(parentTask.getId()); + task.setProcessDefinitionId(parentTask.getProcessDefinitionId()); + task.setProcessInstanceId(parentTask.getProcessInstanceId()); + task.setTaskDefinitionKey(parentTask.getTaskDefinitionKey()); + task.setTaskDefinitionId(parentTask.getTaskDefinitionId()); + task.setPriority(parentTask.getPriority()); + task.setCreateTime(new Date()); + return task; + } + + default List convertList(List bpmTaskExtDOList, + Map userMap, + Map idTaskMap){ + return CollectionUtils.convertList(bpmTaskExtDOList, task -> { + BpmTaskSubSignRespVO bpmTaskSubSignRespVO = new BpmTaskSubSignRespVO() + .setId(task.getTaskId()).setName(task.getName()); + // 后加签任务不会直接设置 assignee ,所以不存在 assignee 的情况,则去取 owner + Task sourceTask = idTaskMap.get(task.getTaskId()); + String assignee = ObjectUtil.defaultIfBlank(sourceTask.getOwner(),sourceTask.getAssignee()); + MapUtils.findAndThen(userMap,NumberUtils.parseLong(assignee), + assignUser-> bpmTaskSubSignRespVO.setAssigneeUser(convert3(assignUser))); + return bpmTaskSubSignRespVO; + }); + } + + /** + * 转换任务为父子级 + * + * @param sourceList 原始数据 + * @return 转换后的父子级数组 + */ + default List convertChildrenList(List sourceList) { + List childrenTaskList = filterList(sourceList, r -> StrUtil.isNotEmpty(r.getParentTaskId())); + Map> parentChildrenTaskListMap = convertMultiMap(childrenTaskList, BpmTaskRespVO::getParentTaskId); + for (BpmTaskRespVO bpmTaskRespVO : sourceList) { + bpmTaskRespVO.setChildren(parentChildrenTaskListMap.get(bpmTaskRespVO.getId())); + } + return filterList(sourceList, r -> StrUtil.isEmpty(r.getParentTaskId())); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/package-info.java new file mode 100644 index 0000000..6a53114 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.bpm.convert.task; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md new file mode 100644 index 0000000..8153487 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/cc/BpmProcessInstanceCopyDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/cc/BpmProcessInstanceCopyDO.java new file mode 100644 index 0000000..7ca65f3 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/cc/BpmProcessInstanceCopyDO.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.cc; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 流程抄送 DO + * + * @author kyle + * @since 2024-01-22 + */ +@TableName(value = "bpm_process_instance_copy", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmProcessInstanceCopyDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + + /** + * 发起人 Id + * + * 关联 system_users 的 id 属性 + */ + private Long startUserId; + /** + * 流程名 + * + * 冗余 ProcessInstance 的 name 字段 + */ + private String processInstanceName; + /** + * 流程实例的编号 + * + * 关联 ProcessInstance 的 id 属性 + */ + private String processInstanceId; + + /** + * 任务主键 + * + * 关联 Task 的 id 属性 + */ + private String taskId; + + /** + * 任务名称 + * + * 冗余 Task 的 name 属性 + */ + private String taskName; + + /** + * 用户编号 + * + * 关联 system_users 的 id 属性 + */ + private Long userId; + + /** + * 抄送原因 + */ + private String reason; + + /** + * 流程分类 + * + * 冗余 ProcessInstance 的 category 字段 + */ + private String category; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java new file mode 100644 index 0000000..a062d29 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.*; +import org.apache.ibatis.type.JdbcType; + +import java.time.LocalDateTime; + +/** + * 工作流的表单定义 + * 用于工作流的申请表单,需要动态配置的场景 + * + * @author 芋道源码 + */ +@TableName(value = "lowcode_desform", autoResultMap = true) +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmFormDO{ + + @JsonSerialize( + using = ToStringSerializer.class + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + /** + * 租户id + */ + private String tenantId; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT,jdbcType = JdbcType.DATE) + private LocalDateTime createTime; + + /** + * 创建者 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createUser; + + /** + * 创建部门 + * + */ + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.BIGINT) + private Long createDept; + + + /** + * 更新者 + * + */ + @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.BIGINT) + private Long updateUser; + + /** + * 最后更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE,jdbcType = JdbcType.DATE) + private LocalDateTime updateTime; + + /** + * 是否删除 + */ + @TableLogic + private Integer isDeleted; + + + //名称 + private String desformName; + + //json数据 + private String desformJson; + + + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java new file mode 100644 index 0000000..57abc0b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.util.List; + +/** + * Bpm 流程定义的拓展表 + * 主要解决 Activiti {@link ProcessDefinition} 不支持拓展字段,所以新建拓展表 + * + * @author 芋道源码 + */ +@TableName(value = "bpm_process_definition_ext", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmProcessDefinitionExtDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 流程定义的编号 + * + * 关联 ProcessDefinition 的 id 属性 + */ + private String processDefinitionId; + /** + * 流程模型的编号 + * + * 关联 Model 的 id 属性 + */ + private String modelId; + /** + * 描述 + */ + private String description; + + /** + * 表单类型 + * + * 关联 {@link BpmModelFormTypeEnum} + */ + private Integer formType; + /** + * 动态表单编号 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + * + * 关联 {@link BpmFormDO#getId()} + */ + private Long formId; + /** + * 表单的配置 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + * + * 冗余 {@link BpmFormDO#getConf()} + */ + private String formConf; + /** + * 表单项的数组 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + * + * 冗余 {@link BpmFormDO#getFields()} ()} + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List formFields; + /** + * 自定义表单的提交路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomCreatePath; + /** + * 自定义表单的查看路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomViewPath; + + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java new file mode 100644 index 0000000..e65764f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.Set; + +/** + * Bpm 任务分配的规则表,用于自定义配置每个任务的负责人、候选人的分配规则。 + * 也就是说,废弃 BPMN 原本的 UserTask 设置的 assignee、candidateUsers 等配置,而是通过使用该规则进行计算对应的负责人。 + * + * 1. 默认情况下,{@link #processDefinitionId} 为 {@link #PROCESS_DEFINITION_ID_NULL} 值,表示贵改则与流程模型关联 + * 2. 在流程模型部署后,会将他的所有规则记录,复制出一份新部署出来的流程定义,通过设置 {@link #processDefinitionId} 为新的流程定义的编号进行关联 + * + * @author 芋道源码 + */ +@TableName(value = "bpm_task_assign_rule", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmTaskAssignRuleDO extends BaseDO { + + /** + * {@link #processDefinitionId} 空串,用于标识属于流程模型,而不属于流程定义 + */ + public static final String PROCESS_DEFINITION_ID_NULL = ""; + + /** + * 编号 + */ + @TableId + private Long id; + + /** + * 流程模型编号 + * + * 关联 Model 的 id 属性 + */ + private String modelId; + /** + * 流程定义编号 + * + * 关联 ProcessDefinition 的 id 属性 + */ + private String processDefinitionId; + /** + * 流程任务的定义 Key + * + * 关联 Task 的 taskDefinitionKey 属性 + */ + private String taskDefinitionKey; + + /** + * 规则类型 + * + * 枚举 {@link BpmTaskAssignRuleTypeEnum} + */ + @TableField("`type`") + private Integer type; + /** + * 规则值数组,一般关联指定表的编号 + * 根据 type 不同,对应的值是不同的: + * + * 1. {@link BpmTaskAssignRuleTypeEnum#ROLE} 时:角色编号 + * 2. {@link BpmTaskAssignRuleTypeEnum#DEPT_MEMBER} 时:部门编号 + * 3. {@link BpmTaskAssignRuleTypeEnum#DEPT_LEADER} 时:部门编号 + * 4. {@link BpmTaskAssignRuleTypeEnum#USER} 时:用户编号 + * 5. {@link BpmTaskAssignRuleTypeEnum#USER_GROUP} 时:用户组编号 + * 6. {@link BpmTaskAssignRuleTypeEnum#SCRIPT} 时:脚本编号,目前通过 {@link BpmTaskRuleScriptEnum#getId()} 标识 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set options; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java new file mode 100644 index 0000000..db204c0 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java @@ -0,0 +1,5 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +// TODO 芋艿:先埋个坑。任务消息的配置规则。说白了,就是不同的 +public class BpmTaskMessageRuleDO { +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java new file mode 100644 index 0000000..ec11681 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.Set; + +/** + * Bpm 用户组 + * + * @author 芋道源码 + */ +@TableName(value = "bpm_user_group", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmUserGroupDO extends BaseDO { + + /** + * 编号,自增 + */ + @TableId + private Long id; + /** + * 组名 + */ + private String name; + /** + * 描述 + */ + private String description; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 成员用户编号数组 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set memberUserIds; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java new file mode 100644 index 0000000..4e4e68d --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.oa; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * OA 请假申请 DO + * + * {@link #day} 请假天数,目前先简单做。一般是分成请假上午和下午,可以是 1 整天,可以是 0.5 半天 + * + * @author jason + * @author 芋道源码 + */ +@TableName("bpm_oa_leave") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmOALeaveDO extends BaseDO { + + /** + * 请假表单主键 + */ + @TableId + private Long id; + /** + * 申请人的用户编号 + * + * 关联 AdminUserDO 的 id 属性 + */ + private Long userId; + /** + * 请假类型 + */ + private String type; + /** + * 原因 + */ + private String reason; + /** + * 开始时间 + */ + private LocalDateTime startTime; + /** + * 结束时间 + */ + private LocalDateTime endTime; + /** + * 请假天数 + */ + private Long day; + /** + * 请假的结果 + * + * 枚举 {@link BpmProcessInstanceResultEnum} + * 考虑到简单,所以直接复用了 BpmProcessInstanceResultEnum 枚举,也可以自己定义一个枚举哈 + */ + private Integer result; + + /** + * 对应的流程编号 + * + * 关联 ProcessInstance 的 id 属性 + */ + private String processInstanceId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java new file mode 100644 index 0000000..5a481ff --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java @@ -0,0 +1,98 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.task; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * Bpm 流程实例的拓展表 + * 主要解决 Activiti ProcessInstance 和 HistoricProcessInstance 不支持拓展字段,所以新建拓展表 + * + * @author 芋道源码 + */ +@TableName(value = "bpm_process_instance_ext", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmProcessInstanceExtDO extends BaseDO { + + /** + * 编号,自增 + */ + @TableId + private Long id; + /** + * 发起流程的用户编号 + * + * 冗余 HistoricProcessInstance 的 startUserId 属性 + */ + private Long startUserId; + /** + * 流程实例的名字 + * + * 冗余 ProcessInstance 的 name 属性,用于筛选 + */ + private String name; + /** + * 流程实例的编号 + * + * 关联 ProcessInstance 的 id 属性 + */ + private String processInstanceId; + /** + * 流程定义的编号 + * + * 关联 ProcessDefinition 的 id 属性 + */ + private String processDefinitionId; + /** + * 流程分类 + * + * 冗余 ProcessDefinition 的 category 属性 + * 数据字典 bpm_model_category + */ + private String category; + /** + * 流程实例的状态 + * + * 枚举 {@link BpmProcessInstanceStatusEnum} + */ + private Integer status; + /** + * 流程实例的结果 + * + * 枚举 {@link BpmProcessInstanceResultEnum} + */ + private Integer result; + /** + * 结束时间 + * + * 冗余 HistoricProcessInstance 的 endTime 属性 + */ + private LocalDateTime endTime; + + /** + * 提交的表单值 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map formVariables; + + // TODO @hai:assignees 复数 + /** + * 提前设定好的审批人 + */ + @TableField(typeHandler = JacksonTypeHandler.class, exist = false) // TODO 芋艿:临时 exist = false,避免 db 报错; + private Map> assignee; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java new file mode 100644 index 0000000..a79fce4 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.task; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +/** + * Bpm 流程任务的拓展表 + * 主要解决 Flowable Task 和 HistoricTaskInstance 不支持拓展字段,所以新建拓展表 + * + * @author 芋道源码 + */ +@TableName(value = "bpm_task_ext", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmTaskExtDO extends BaseDO { + + /** + * 编号,自增 + */ + @TableId + private Long id; + + /** + * 任务的审批人 + * + * 冗余 Task 的 assignee 属性 + */ + private Long assigneeUserId; + /** + * 任务的名字 + * + * 冗余 Task 的 name 属性,为了筛选 + */ + private String name; + /** + * 任务的编号 + * + * 关联 Task 的 id 属性 + */ + private String taskId; +// /** +// * 任务的标识 +// * +// * 关联 {@link Task#getTaskDefinitionKey()} +// */ +// private String definitionKey; + /** + * 任务的结果 + * + * 枚举 {@link BpmProcessInstanceResultEnum} + */ + private Integer result; + /** + * 审批建议 + */ + private String reason; + /** + * 任务的结束时间 + * + * 冗余 HistoricTaskInstance 的 endTime 属性 + */ + private LocalDateTime endTime; + + /** + * 流程实例的编号 + * + * 关联 ProcessInstance 的 id 属性 + */ + private String processInstanceId; + /** + * 流程定义的编号 + * + * 关联 ProcessDefinition 的 id 属性 + */ + private String processDefinitionId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/cc/BpmProcessInstanceCopyMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/cc/BpmProcessInstanceCopyMapper.java new file mode 100644 index 0000000..de6fa14 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/cc/BpmProcessInstanceCopyMapper.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.cc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyMyPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BpmProcessInstanceCopyMapper extends BaseMapperX { + + default PageResult selectPage(Long loginUserId, BpmProcessInstanceCopyMyPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BpmProcessInstanceCopyDO::getUserId, loginUserId) + .eqIfPresent(BpmProcessInstanceCopyDO::getProcessInstanceId, reqVO.getProcessInstanceId()) + .likeIfPresent(BpmProcessInstanceCopyDO::getProcessInstanceName, reqVO.getProcessInstanceName()) + .betweenIfPresent(BpmProcessInstanceCopyDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BpmProcessInstanceCopyDO::getId)); + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmFormMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmFormMapper.java new file mode 100644 index 0000000..53c01d9 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmFormMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; + + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import org.apache.ibatis.annotations.Mapper; + +/** + * 动态表单 Mapper + * + * @author 风里雾里 + */ +@Mapper +public interface BpmFormMapper extends BaseMapperX { + + default PageResult selectPage(BpmFormPageReqVO reqVO) { + return selectPage(reqVO, new QueryWrapperX() + .likeIfPresent("name", reqVO.getName()) + .orderByDesc("id")); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java new file mode 100644 index 0000000..3ff53f2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; + +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface BpmProcessDefinitionExtMapper extends BaseMapperX { + + default List selectListByProcessDefinitionIds(Collection processDefinitionIds) { + return selectList("process_definition_id", processDefinitionIds); + } + + default BpmProcessDefinitionExtDO selectByProcessDefinitionId(String processDefinitionId) { + return selectOne("process_definition_id", processDefinitionId); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java new file mode 100644 index 0000000..c4061c0 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; + +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.lang.Nullable; + +import java.util.List; + +@Mapper +public interface BpmTaskAssignRuleMapper extends BaseMapperX { + + default List selectListByProcessDefinitionId(String processDefinitionId, + @Nullable String taskDefinitionKey) { + return selectList(new QueryWrapperX() + .eq("process_definition_id", processDefinitionId) + .eqIfPresent("task_definition_key", taskDefinitionKey)); + } + + default List selectListByModelId(String modelId) { + return selectList(new QueryWrapperX() + .eq("model_id", modelId) + .eq("process_definition_id", BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL)); + } + + default BpmTaskAssignRuleDO selectListByModelIdAndTaskDefinitionKey(String modelId, + String taskDefinitionKey) { + return selectOne(new QueryWrapperX() + .eq("model_id", modelId) + .eq("process_definition_id", BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL) + .eq("task_definition_key", taskDefinitionKey)); + } + + + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmUserGroupMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmUserGroupMapper.java new file mode 100644 index 0000000..ed07627 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmUserGroupMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 用户组 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface BpmUserGroupMapper extends BaseMapperX { + + default PageResult selectPage(BpmUserGroupPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(BpmUserGroupDO::getName, reqVO.getName()) + .eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BpmUserGroupDO::getId)); + } + + default List selectListByStatus(Integer status) { + return selectList(BpmUserGroupDO::getStatus, status); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOALeaveMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOALeaveMapper.java new file mode 100644 index 0000000..ad05b98 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/BpmOALeaveMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.oa; + +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import org.apache.ibatis.annotations.Mapper; + +/** + * 请假申请 Mapper + * + * @author jason + * @author 芋道源码 + */ +@Mapper +public interface BpmOALeaveMapper extends BaseMapperX { + + default PageResult selectPage(Long userId, BpmOALeavePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BpmOALeaveDO::getUserId, userId) + .eqIfPresent(BpmOALeaveDO::getResult, reqVO.getResult()) + .eqIfPresent(BpmOALeaveDO::getType, reqVO.getType()) + .likeIfPresent(BpmOALeaveDO::getReason, reqVO.getReason()) + .betweenIfPresent(BpmOALeaveDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BpmOALeaveDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java new file mode 100644 index 0000000..52e6621 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.task; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BpmProcessInstanceExtMapper extends BaseMapperX { + + default PageResult selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BpmProcessInstanceExtDO::getStartUserId, userId) + .likeIfPresent(BpmProcessInstanceExtDO::getName, reqVO.getName()) + .eqIfPresent(BpmProcessInstanceExtDO::getProcessDefinitionId, reqVO.getProcessDefinitionId()) + .eqIfPresent(BpmProcessInstanceExtDO::getCategory, reqVO.getCategory()) + .eqIfPresent(BpmProcessInstanceExtDO::getStatus, reqVO.getStatus()) + .eqIfPresent(BpmProcessInstanceExtDO::getResult, reqVO.getResult()) + .betweenIfPresent(BpmProcessInstanceExtDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BpmProcessInstanceExtDO::getId)); + } + + default BpmProcessInstanceExtDO selectByProcessInstanceId(String processInstanceId) { + return selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, processInstanceId); + } + + default void updateByProcessInstanceId(BpmProcessInstanceExtDO updateObj) { + update(updateObj, new LambdaQueryWrapperX() + .eq(BpmProcessInstanceExtDO::getProcessInstanceId, updateObj.getProcessInstanceId())); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java new file mode 100644 index 0000000..8108e61 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.task; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface BpmTaskExtMapper extends BaseMapperX { + + default void updateByTaskId(BpmTaskExtDO entity) { + update(entity, new LambdaQueryWrapper().eq(BpmTaskExtDO::getTaskId, entity.getTaskId())); + } + + default List selectListByTaskIds(Collection taskIds) { + return selectList(BpmTaskExtDO::getTaskId, taskIds); + } + + // TODO @海:BpmProcessInstanceResultEnum.CAN_SUB_SIGN_STATUS_LIST) 应该作为条件,mapper 不要有业务 + default List selectProcessListByTaskIds(Collection taskIds) { + return selectList(new LambdaQueryWrapperX() + .in(BpmTaskExtDO::getTaskId, taskIds) + .in(BpmTaskExtDO::getResult, BpmProcessInstanceResultEnum.CAN_SUB_SIGN_STATUS_LIST)); + } + + default BpmTaskExtDO selectByTaskId(String taskId) { + return selectOne(BpmTaskExtDO::getTaskId, taskId); + } + + default void updateBatchByTaskIdList(List taskIdList, BpmTaskExtDO updateObj) { + update(updateObj, new LambdaQueryWrapper().in(BpmTaskExtDO::getTaskId, taskIdList)); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCandidateProcessorConfiguration.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCandidateProcessorConfiguration.java new file mode 100644 index 0000000..cff0348 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCandidateProcessorConfiguration.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.config; + +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.BpmTaskAssignScript; +import cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor.*; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +// TODO @芋艿:Candidate 相关还在完善中,用户可以暂时忽略,仅 yudao 开发的同学需要关注~计划是把 Candidate 和 Assign 融合成一套 +/** + * BPM 通用的 Configuration 配置类,提供给 Activiti 和 Flowable + * @author kyle + */ +@Configuration(proxyBeanMethods = false) +public class BpmCandidateProcessorConfiguration { + @Bean + public BpmCandidateAdminUserApiSourceInfoProcessor bpmCandidateAdminUserApiSourceInfoProcessor() { + return new BpmCandidateAdminUserApiSourceInfoProcessor(); + } + + @Bean + public BpmCandidateDeptApiSourceInfoProcessor bpmCandidateDeptApiSourceInfoProcessor() { + return new BpmCandidateDeptApiSourceInfoProcessor(); + } + + @Bean + public BpmCandidatePostApiSourceInfoProcessor bpmCandidatePostApiSourceInfoProcessor() { + return new BpmCandidatePostApiSourceInfoProcessor(); + } + + @Bean + public BpmCandidateRoleApiSourceInfoProcessor bpmCandidateRoleApiSourceInfoProcessor() { + return new BpmCandidateRoleApiSourceInfoProcessor(); + } + + @Bean + public BpmCandidateUserGroupApiSourceInfoProcessor bpmCandidateUserGroupApiSourceInfoProcessor() { + return new BpmCandidateUserGroupApiSourceInfoProcessor(); + } + + /** + * 可以自己定制脚本,然后通过这里设置到处理器里面去 + * @param scriptsOp 脚本包装对象 + * @return + */ + @Bean + public BpmCandidateScriptApiSourceInfoProcessor bpmCandidateScriptApiSourceInfoProcessor(ObjectProvider scriptsOp) { + BpmCandidateScriptApiSourceInfoProcessor bpmCandidateScriptApiSourceInfoProcessor = new BpmCandidateScriptApiSourceInfoProcessor(); + bpmCandidateScriptApiSourceInfoProcessor.setScripts(scriptsOp); + return bpmCandidateScriptApiSourceInfoProcessor; + } +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCommonConfiguration.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCommonConfiguration.java new file mode 100644 index 0000000..7a6ca77 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/config/BpmCommonConfiguration.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.config; + +import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventPublisher; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * BPM 通用的 Configuration 配置类,提供给 Activiti 和 Flowable + */ +@Configuration(proxyBeanMethods = false) +public class BpmCommonConfiguration { + + @Bean + public BpmProcessInstanceResultEventPublisher processInstanceResultEventPublisher(ApplicationEventPublisher publisher) { + return new BpmProcessInstanceResultEventPublisher(publisher); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEvent.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEvent.java new file mode 100644 index 0000000..9fccbab --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEvent.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; + +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; +import lombok.Data; +import org.springframework.context.ApplicationEvent; + +import javax.validation.constraints.NotNull; + +/** + * 流程实例的结果发生变化的 Event + * 定位:由于额外增加了 {@link BpmProcessInstanceExtDO#getResult()} 结果,所以增加该事件 + * + * @author 芋道源码 + */ +@SuppressWarnings("ALL") +@Data +public class BpmProcessInstanceResultEvent extends ApplicationEvent { + + /** + * 流程实例的编号 + */ + @NotNull(message = "流程实例的编号不能为空") + private String id; + /** + * 流程实例的 key + */ + @NotNull(message = "流程实例的 key 不能为空") + private String processDefinitionKey; + /** + * 流程实例的结果 + */ + @NotNull(message = "流程实例的结果不能为空") + private Integer result; + /** + * 流程实例对应的业务标识 + * 例如说,请假 + */ + private String businessKey; + + public BpmProcessInstanceResultEvent(Object source) { + super(source); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventListener.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventListener.java new file mode 100644 index 0000000..c2b2153 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventListener.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; + +import cn.hutool.core.util.StrUtil; +import org.springframework.context.ApplicationListener; + +/** + * {@link BpmProcessInstanceResultEvent} 的监听器 + * + * @author 芋道源码 + */ +public abstract class BpmProcessInstanceResultEventListener + implements ApplicationListener { + + @Override + public final void onApplicationEvent(BpmProcessInstanceResultEvent event) { + if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) { + return; + } + onEvent(event); + } + + /** + * @return 返回监听的流程定义 Key + */ + protected abstract String getProcessDefinitionKey(); + + /** + * 处理事件 + * + * @param event 事件 + */ + protected abstract void onEvent(BpmProcessInstanceResultEvent event); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventPublisher.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventPublisher.java new file mode 100644 index 0000000..dc5c21b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventPublisher.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; + +import lombok.AllArgsConstructor; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.validation.annotation.Validated; + +import javax.validation.Valid; + +/** + * {@link BpmProcessInstanceResultEvent} 的生产者 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Validated +public class BpmProcessInstanceResultEventPublisher { + + private final ApplicationEventPublisher publisher; + + public void sendProcessInstanceResultEvent(@Valid BpmProcessInstanceResultEvent event) { + publisher.publishEvent(event); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/package-info.java new file mode 100644 index 0000000..c4a1311 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/event/package-info.java @@ -0,0 +1,6 @@ +/** + * 自定义 Event 实现,提供方便业务接入的 Listener! + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.bpm.framework.bpm.core.event; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/package-info.java new file mode 100644 index 0000000..b97cb4c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.bpm.framework.bpm.core; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/listener/BpmServiceResultListener.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/listener/BpmServiceResultListener.java new file mode 100644 index 0000000..49de046 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/listener/BpmServiceResultListener.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.bpm.framework.bpm.listener; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.bpm.api.listener.BpmResultListenerApi; +import cn.iocoder.yudao.module.bpm.api.listener.dto.BpmResultListenerRespDTO; +import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +// TODO @芋艿:后续改成支持 RPC +/** + * 业务流程结果监听器实现类 + * + * @author HUIHUI + */ +@Component +public class BpmServiceResultListener implements ApplicationListener { + + @Resource + private List bpmResultListenerApis; + + @Override + public final void onApplicationEvent(BpmProcessInstanceResultEvent event) { + bpmResultListenerApis.forEach(bpmResultListenerApi -> { + if (!StrUtil.equals(event.getProcessDefinitionKey(), bpmResultListenerApi.getProcessDefinitionKey())) { + return; + } + bpmResultListenerApi.onEvent(BeanUtils.toBean(event, BpmResultListenerRespDTO.class)); + }); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/package-info.java new file mode 100644 index 0000000..9a5e3ea --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/bpm/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供给 Activiti 和 Flowable 的通用封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.bpm.framework.bpm; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/config/BpmFlowableConfiguration.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/config/BpmFlowableConfiguration.java new file mode 100644 index 0000000..c048d9c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/config/BpmFlowableConfiguration.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.config; + +import cn.hutool.core.collection.ListUtil; +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.BpmActivityBehaviorFactory; +import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; +import org.flowable.common.engine.api.delegate.event.FlowableEventListener; +import org.flowable.spring.SpringProcessEngineConfiguration; +import org.flowable.spring.boot.EngineConfigurationConfigurer; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * BPM 模块的 Flowable 配置类 + * + * @author jason + */ +@Configuration(proxyBeanMethods = false) +public class BpmFlowableConfiguration { + + /** + * BPM 模块的 ProcessEngineConfigurationConfigurer 实现类: + * + * 1. 设置各种监听器 + * 2. 设置自定义的 ActivityBehaviorFactory 实现 + */ + @Bean + public EngineConfigurationConfigurer bpmProcessEngineConfigurationConfigurer( + ObjectProvider listeners, + BpmActivityBehaviorFactory bpmActivityBehaviorFactory) { + return configuration -> { + // 注册监听器,例如说 BpmActivityEventListener + configuration.setEventListeners(ListUtil.toList(listeners.iterator())); + // 设置 ActivityBehaviorFactory 实现类,用于流程任务的审核人的自定义 + configuration.setActivityBehaviorFactory(bpmActivityBehaviorFactory); + }; + } + + @Bean + public BpmActivityBehaviorFactory bpmActivityBehaviorFactory(BpmTaskAssignRuleService taskRuleService) { + BpmActivityBehaviorFactory bpmActivityBehaviorFactory = new BpmActivityBehaviorFactory(); + bpmActivityBehaviorFactory.setBpmTaskRuleService(taskRuleService); + return bpmActivityBehaviorFactory; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmActivityBehaviorFactory.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmActivityBehaviorFactory.java new file mode 100644 index 0000000..dced1c5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmActivityBehaviorFactory.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior; + +import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Setter; +import lombok.ToString; +import org.flowable.bpmn.model.Activity; +import org.flowable.bpmn.model.UserTask; +import org.flowable.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; +import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; +import org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior; +import org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory; + +/** + * 自定义的 ActivityBehaviorFactory 实现类,目的如下: + * 1. 自定义 {@link #createUserTaskActivityBehavior(UserTask)}:实现自定义的流程任务的 assignee 负责人的分配 + * + * @author 芋道源码 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmActivityBehaviorFactory extends DefaultActivityBehaviorFactory { + + @Setter + private BpmTaskAssignRuleService bpmTaskRuleService; + + @Override + public UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask) { + return new BpmUserTaskActivityBehavior(userTask) + .setBpmTaskRuleService(bpmTaskRuleService); + } + + @Override + public ParallelMultiInstanceBehavior createParallelMultiInstanceBehavior(Activity activity, + AbstractBpmnActivityBehavior innerActivityBehavior) { + return new BpmParallelMultiInstanceBehavior(activity, innerActivityBehavior) + .setBpmTaskRuleService(bpmTaskRuleService); + } + + // TODO @ke:SequentialMultiInstanceBehavior 这个抽空也可以看看 + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmParallelMultiInstanceBehavior.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmParallelMultiInstanceBehavior.java new file mode 100644 index 0000000..0b60faa --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmParallelMultiInstanceBehavior.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior; + +import cn.iocoder.yudao.framework.flowable.core.util.FlowableUtils; +import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.Activity; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; +import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; + +import java.util.Set; + +/** + * 自定义的【并行】的【多个】流程任务的 assignee 负责人的分配 + * 第一步,基于分配规则,计算出分配任务的【多个】候选人们。 + * 第二步,将【多个】任务候选人们,设置到 DelegateExecution 的 collectionVariable 变量中,以便 BpmUserTaskActivityBehavior 使用它 + * + * @author kemengkai + * @date 2022-04-21 16:57 + */ +@Slf4j +public class BpmParallelMultiInstanceBehavior extends ParallelMultiInstanceBehavior { + + @Setter + private BpmTaskAssignRuleService bpmTaskRuleService; + + public BpmParallelMultiInstanceBehavior(Activity activity, + AbstractBpmnActivityBehavior innerActivityBehavior) { + super(activity, innerActivityBehavior); + } + + /** + * 重写该方法,主要实现两个功能: + * 1. 忽略原有的 collectionVariable、collectionElementVariable 表达式,而是采用自己定义的 + * 2. 获得任务的处理人,并设置到 collectionVariable 中,用于 BpmUserTaskActivityBehavior 从中可以获取任务的处理人 + * + * 注意,多个任务实例,每个任务实例对应一个处理人,所以返回的数量就是任务处理人的数量 + * + * @param execution 执行任务 + * @return 数量 + */ + @Override + protected int resolveNrOfInstances(DelegateExecution execution) { + // 第一步,设置 collectionVariable 和 CollectionVariable + // 从 execution.getVariable() 读取所有任务处理人的 key + super.collectionExpression = null; // collectionExpression 和 collectionVariable 是互斥的 + super.collectionVariable = FlowableUtils.formatCollectionVariable(execution.getCurrentActivityId()); + // 从 execution.getVariable() 读取当前所有任务处理的人的 key + super.collectionElementVariable = FlowableUtils.formatCollectionElementVariable(execution.getCurrentActivityId()); + + // 第二步,获取任务的所有处理人 + Set assigneeUserIds = bpmTaskRuleService.calculateTaskCandidateUsers(execution); + execution.setVariable(super.collectionVariable, assigneeUserIds); + return assigneeUserIds.size(); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmUserTaskActivityBehavior.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmUserTaskActivityBehavior.java new file mode 100644 index 0000000..aeda4d5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmUserTaskActivityBehavior.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.RandomUtil; +import cn.iocoder.yudao.module.bpm.service.definition.BpmTaskAssignRuleService; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.UserTask; +import org.flowable.common.engine.impl.el.ExpressionManager; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.impl.bpmn.behavior.UserTaskActivityBehavior; +import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; +import org.flowable.engine.impl.util.TaskHelper; +import org.flowable.task.service.TaskService; +import org.flowable.task.service.impl.persistence.entity.TaskEntity; + +import java.util.List; +import java.util.Set; + +/** + * 自定义的【单个】流程任务的 assignee 负责人的分配 + * 第一步,基于分配规则,计算出分配任务的【单个】候选人。如果找不到,则直接报业务异常,不继续执行后续的流程; + * 第二步,随机选择一个候选人,则选择作为 assignee 负责人。 + * + * @author 芋道源码 + */ +@Slf4j +public class BpmUserTaskActivityBehavior extends UserTaskActivityBehavior { + + @Setter + private BpmTaskAssignRuleService bpmTaskRuleService; + + public BpmUserTaskActivityBehavior(UserTask userTask) { + super(userTask); + } + + @Override + protected void handleAssignments(TaskService taskService, String assignee, String owner, + List candidateUsers, List candidateGroups, TaskEntity task, ExpressionManager expressionManager, + DelegateExecution execution, ProcessEngineConfigurationImpl processEngineConfiguration) { + // 第一步,获得任务的候选用户 + Long assigneeUserId = calculateTaskCandidateUsers(execution); + Assert.notNull(assigneeUserId, "任务处理人不能为空"); + // 第二步,设置作为负责人 + TaskHelper.changeTaskAssignee(task, String.valueOf(assigneeUserId)); + } + + private Long calculateTaskCandidateUsers(DelegateExecution execution) { + // 情况一,如果是多实例的任务,例如说会签、或签等情况,则从 Variable 中获取。它的任务处理人在 BpmParallelMultiInstanceBehavior 中已经被分配了 + if (super.multiInstanceActivityBehavior != null) { + return execution.getVariable(super.multiInstanceActivityBehavior.getCollectionElementVariable(), Long.class); + } + + // 情况二,如果非多实例的任务,则计算任务处理人 + // 第一步,先计算可处理该任务的处理人们 + Set candidateUserIds = bpmTaskRuleService.calculateTaskCandidateUsers(execution); + // 第二步,后随机选择一个任务的处理人 + // 疑问:为什么一定要选择一个任务处理人? + // 解答:项目对 bpm 的任务是责任到人,所以每个任务有且仅有一个处理人。 + // 如果希望一个任务可以同时被多个人处理,可以考虑使用 BpmParallelMultiInstanceBehavior 实现的会签 or 或签。 + int index = RandomUtil.randomInt(candidateUserIds.size()); + return CollUtil.get(candidateUserIds, index); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/BpmTaskAssignScript.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/BpmTaskAssignScript.java new file mode 100644 index 0000000..b5c91eb --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/BpmTaskAssignScript.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script; + +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; +import org.flowable.engine.delegate.DelegateExecution; + +import java.util.Set; + +/** + * Bpm 任务分配的自定义 Script 脚本 + * 使用场景: + * 1. 设置审批人为发起人 + * 2. 设置审批人为发起人的 Leader + * 3. 甚至审批人为发起人的 Leader 的 Leader + * + * @author 芋道源码 + */ +public interface BpmTaskAssignScript { + + /** + * 基于执行任务,获得任务的候选用户们 + * + * @param execution 执行任务 + * @return 候选人用户的编号数组 + */ + Set calculateTaskCandidateUsers(DelegateExecution execution); + + /** + * 获得枚举值 + * + * @return 枚举值 + */ + BpmTaskRuleScriptEnum getEnum(); +} + diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java new file mode 100644 index 0000000..e041c87 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; + +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.BpmTaskAssignScript; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.context.annotation.Lazy; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; +import static java.util.Collections.emptySet; + +/** + * 分配给发起人的 Leader 审批的 Script 实现类 + * 目前 Leader 的定义是, + * + * @author 芋道源码 + */ +public abstract class BpmTaskAssignLeaderAbstractScript implements BpmTaskAssignScript { + + @Resource + private AdminUserApi adminUserApi; + @Resource + private DeptApi deptApi; + @Resource + @Lazy // 解决循环依赖 + private BpmProcessInstanceService bpmProcessInstanceService; + + protected Set calculateTaskCandidateUsers(DelegateExecution execution, int level) { + Assert.isTrue(level > 0, "level 必须大于 0"); + // 获得发起人 + ProcessInstance processInstance = bpmProcessInstanceService.getProcessInstance(execution.getProcessInstanceId()); + Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId()); + // 获得对应 leve 的部门 + DeptRespDTO dept = null; + for (int i = 0; i < level; i++) { + // 获得 level 对应的部门 + if (dept == null) { + dept = getStartUserDept(startUserId); + if (dept == null) { // 找不到发起人的部门,所以无法使用该规则 + return emptySet(); + } + } else { + DeptRespDTO parentDept = deptApi.getDept(dept.getParentId()); + if (parentDept == null) { // 找不到父级部门,所以只好结束寻找。原因是:例如说,级别比较高的人,所在部门层级比较少 + break; + } + dept = parentDept; + } + } + return dept.getLeaderUserId() != null ? asSet(dept.getLeaderUserId()) : emptySet(); + } + + private DeptRespDTO getStartUserDept(Long startUserId) { + AdminUserRespDTO startUser = adminUserApi.getUser(startUserId); + if (startUser.getDeptId() == null) { // 找不到部门,所以无法使用该规则 + return null; + } + return deptApi.getDept(startUser.getDeptId()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX1Script.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX1Script.java new file mode 100644 index 0000000..af7d8b5 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX1Script.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; + +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.stereotype.Component; + +import java.util.Set; + +/** + * 分配给发起人的一级 Leader 审批的 Script 实现类 + * + * @author 芋道源码 + */ +@Component +public class BpmTaskAssignLeaderX1Script extends BpmTaskAssignLeaderAbstractScript { + + @Override + public Set calculateTaskCandidateUsers(DelegateExecution execution) { + return calculateTaskCandidateUsers(execution, 1); + } + + @Override + public BpmTaskRuleScriptEnum getEnum() { + return BpmTaskRuleScriptEnum.LEADER_X1; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2Script.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2Script.java new file mode 100644 index 0000000..068ab3d --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2Script.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; + +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.stereotype.Component; + +import java.util.Set; + +/** + * 分配给发起人的二级 Leader 审批的 Script 实现类 + * + * @author 芋道源码 + */ +@Component +public class BpmTaskAssignLeaderX2Script extends BpmTaskAssignLeaderAbstractScript { + + @Override + public Set calculateTaskCandidateUsers(DelegateExecution execution) { + return calculateTaskCandidateUsers(execution, 2); + } + + @Override + public BpmTaskRuleScriptEnum getEnum() { + return BpmTaskRuleScriptEnum.LEADER_X2; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignStartUserScript.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignStartUserScript.java new file mode 100644 index 0000000..1363f39 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignStartUserScript.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.impl; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum; +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.BpmTaskAssignScript; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; + +/** + * 分配给发起人审批的 Script 实现类 + * + * @author 芋道源码 + */ +@Component +public class BpmTaskAssignStartUserScript implements BpmTaskAssignScript { + + @Resource + @Lazy // 解决循环依赖 + private BpmProcessInstanceService bpmProcessInstanceService; + + @Override + public Set calculateTaskCandidateUsers(DelegateExecution execution) { + ProcessInstance processInstance = bpmProcessInstanceService.getProcessInstance(execution.getProcessInstanceId()); + Long startUserId = NumberUtils.parseLong(processInstance.getStartUserId()); + return SetUtils.asSet(startUserId); + } + + @Override + public BpmTaskRuleScriptEnum getEnum() { + return BpmTaskRuleScriptEnum.START_USER; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/handler/MultiInstanceHandler.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/handler/MultiInstanceHandler.java new file mode 100644 index 0000000..87f3d9a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/handler/MultiInstanceHandler.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.handler; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.flowable.core.enums.BpmnModelConstants; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import lombok.AllArgsConstructor; +import org.flowable.bpmn.model.FlowElement; +import org.flowable.bpmn.model.UserTask; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + +// TODO @芋艿:bpmn 分配人融合时,需要搞下这块; +/** + * 多实例处理类 + */ +@AllArgsConstructor +@Component("multiInstanceHandler") +public class MultiInstanceHandler { + + @Resource + private AdminUserApi userApi; + + @Resource + private PermissionApi permissionApi; + + /** + * 流程发起人那种情况不需要处理, + * 由 flowable 完成 + * + * @param execution flowable的执行对象 + * @return 用户ID + */ + public Set getUserIds(DelegateExecution execution) { + Set candidateUserIds = new LinkedHashSet<>(); + FlowElement flowElement = execution.getCurrentFlowElement(); + if (ObjectUtil.isNotEmpty(flowElement) && flowElement instanceof UserTask) { + UserTask userTask = (UserTask) flowElement; + String dataType = userTask.getAttributeValue(BpmnModelConstants.NAMESPACE, BpmnModelConstants.PROCESS_CUSTOM_DATA_TYPE); + if ("USERS".equals(dataType) && CollUtil.isNotEmpty(userTask.getCandidateUsers())) { + // 添加候选用户id + candidateUserIds.addAll(userTask.getCandidateUsers()); + } else if (CollUtil.isNotEmpty(userTask.getCandidateGroups())) { + // 获取组的ID,角色ID集合或部门ID集合 + List groups = userTask.getCandidateGroups().stream() + // 例如部门DEPT100,100才是部门id + .map(item -> Long.parseLong(item.substring(4))) + .collect(Collectors.toList()); + List userIds = new ArrayList<>(); + if ("ROLES".equals(dataType)) { + // 通过角色id,获取所有用户id集合 + Set userRoleIdListByRoleIds = permissionApi.getUserRoleIdListByRoleIds(groups); + userIds = new ArrayList<>(userRoleIdListByRoleIds); + } else if ("DEPTS".equals(dataType)) { + // 通过部门id,获取所有用户id集合 + List userListByDeptIds = userApi.getUserListByDeptIds(groups); + userIds = convertList(userListByDeptIds, AdminUserRespDTO::getId); + } + // 添加候选用户id + userIds.forEach(id -> candidateUserIds.add(String.valueOf(id))); + } + } + return candidateUserIds; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java new file mode 100644 index 0000000..52c5606 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.listener; + +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import com.google.common.collect.ImmutableSet; +import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; +import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; +import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener; +import org.flowable.engine.delegate.event.FlowableCancelledEvent; +import org.flowable.engine.runtime.ProcessInstance; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; + +/** + * 监听 {@link ProcessInstance} 的开始与完成,创建与更新对应的 {@link BpmProcessInstanceExtDO} 记录 + * + * @author jason + */ +@Component +public class BpmProcessInstanceEventListener extends AbstractFlowableEngineEventListener { + + @Resource + @Lazy + private BpmProcessInstanceService processInstanceService; + + public static final Set PROCESS_INSTANCE_EVENTS = ImmutableSet.builder() + .add(FlowableEngineEventType.PROCESS_CREATED) + .add(FlowableEngineEventType.PROCESS_CANCELLED) + .add(FlowableEngineEventType.PROCESS_COMPLETED) + .build(); + + public BpmProcessInstanceEventListener(){ + super(PROCESS_INSTANCE_EVENTS); + } + + @Override + protected void processCreated(FlowableEngineEntityEvent event) { + processInstanceService.createProcessInstanceExt((ProcessInstance)event.getEntity()); + } + + @Override + protected void processCancelled(FlowableCancelledEvent event) { + processInstanceService.updateProcessInstanceExtCancel(event); + } + + @Override + protected void processCompleted(FlowableEngineEntityEvent event) { + processInstanceService.updateProcessInstanceExtComplete((ProcessInstance)event.getEntity()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java new file mode 100644 index 0000000..5b1e4e4 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.bpm.framework.flowable.core.listener; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; +import cn.iocoder.yudao.module.bpm.service.task.BpmActivityService; +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; +import com.google.common.collect.ImmutableSet; +import lombok.extern.slf4j.Slf4j; +import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; +import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType; +import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener; +import org.flowable.engine.delegate.event.FlowableActivityCancelledEvent; +import org.flowable.engine.history.HistoricActivityInstance; +import org.flowable.task.api.Task; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Set; + +/** + * 监听 {@link Task} 的开始与完成,创建与更新对应的 {@link BpmTaskExtDO} 记录 + * + * @author jason + */ +@Component +@Slf4j +public class BpmTaskEventListener extends AbstractFlowableEngineEventListener { + + @Resource + @Lazy // 解决循环依赖 + private BpmTaskService taskService; + + @Resource + @Lazy // 解决循环依赖 + private BpmActivityService activityService; + + public static final Set TASK_EVENTS = ImmutableSet.builder() + .add(FlowableEngineEventType.TASK_CREATED) + .add(FlowableEngineEventType.TASK_ASSIGNED) + .add(FlowableEngineEventType.TASK_COMPLETED) + .add(FlowableEngineEventType.ACTIVITY_CANCELLED) + .build(); + + public BpmTaskEventListener(){ + super(TASK_EVENTS); + } + + @Override + protected void taskCreated(FlowableEngineEntityEvent event) { + taskService.createTaskExt((Task) event.getEntity()); + } + + @Override + protected void taskCompleted(FlowableEngineEntityEvent event) { + taskService.updateTaskExtComplete((Task)event.getEntity()); + } + + @Override + protected void taskAssigned(FlowableEngineEntityEvent event) { + taskService.updateTaskExtAssign((Task)event.getEntity()); + } + + @Override + protected void activityCancelled(FlowableActivityCancelledEvent event) { + List activityList = activityService.getHistoricActivityListByExecutionId(event.getExecutionId()); + if (CollUtil.isEmpty(activityList)) { + log.error("[activityCancelled][使用 executionId({}) 查找不到对应的活动实例]", event.getExecutionId()); + return; + } + // 遍历处理 + activityList.forEach(activity -> { + if (StrUtil.isEmpty(activity.getTaskId())) { + return; + } + taskService.updateTaskExtCancel(activity.getTaskId()); + }); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/package-info.java new file mode 100644 index 0000000..52fdb7f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 bpm 模块的 framework 封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.bpm.framework; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/config/BpmWebConfiguration.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/config/BpmWebConfiguration.java new file mode 100644 index 0000000..036e8a1 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/config/BpmWebConfiguration.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.bpm.framework.web.config; + +import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration; +import org.springdoc.core.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * bpm 模块的 web 组件的 Configuration + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class BpmWebConfiguration { + + /** + * bpm 模块的 API 分组 + */ + @Bean + public GroupedOpenApi bpmGroupedOpenApi() { + return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("bpm"); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/package-info.java new file mode 100644 index 0000000..c014170 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/package-info.java @@ -0,0 +1,4 @@ +/** + * bpm 模块的 web 配置 + */ +package cn.iocoder.yudao.module.bpm.framework.web; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/package-info.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/package-info.java new file mode 100644 index 0000000..9d02824 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/package-info.java @@ -0,0 +1,12 @@ +/** + * bpm 包下,业务流程管理(Business Process Management),我们放工作流的功能,基于 Flowable 6 版本实现。 + * 例如说:流程定义、表单配置、审核中心(我的申请、我的待办、我的已办)等等 + * + * bpm 解释:https://baike.baidu.com/item/BPM/1933 + * + * 1. Controller URL:以 /bpm/ 开头,避免和其它 Module 冲突 + * 2. DataObject 表名:以 bpm_ 开头,方便在数据库中区分 + * + * 注意,由于 Bpm 模块下,容易和其它模块重名,所以类名都加载 Bpm 的前缀~ + */ +package cn.iocoder.yudao.module.bpm; diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfo.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfo.java new file mode 100644 index 0000000..ba5145f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfo.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.bpm.service.candidate; + +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.HashSet; +import java.util.Set; + +/** + * 获取候选人信息 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class BpmCandidateSourceInfo { + @Schema(description = "当前任务ID") + @NotNull + private String taskId; + /** + * 通过这些规则,生成最终需要生成的用户 + */ + @Schema(description = "当前任务预选规则") + @NotEmpty(message = "不允许空规则") + private Set rules; + + @Schema(description = "发起抄送的用户") + private String creator; + + @Schema(description = "抄送原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "请帮忙审查下!") + @NotEmpty(message = "抄送原因不能为空") + private String reason; + + public void addRule(BpmTaskCandidateRuleVO vo) { + assert vo != null; + if (rules == null) { + rules = new HashSet<>(); + } + rules.add(vo); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessor.java new file mode 100644 index 0000000..0fe741c --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessor.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.bpm.service.candidate; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import org.flowable.engine.delegate.DelegateExecution; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +public interface BpmCandidateSourceInfoProcessor { + /** + * 获取该处理器支持的类型 + * 来自 {@link BpmTaskAssignRuleTypeEnum} + * + * @return + */ + Set getSupportedTypes(); + + /** + * 对规则和人员做校验 + * + * @param type 规则 + * @param options 人员id + */ + void validRuleOptions(Integer type, Set options); + + /** + * 默认的处理 + * 如果想去操作所有的规则,则可以覆盖此方法 + * + * @param request 原始请求 + * @param delegateExecution 审批过程中的对象 + * @return 必须包含的是用户ID,而不是其他的ID + * @throws Exception + */ + default Set process(BpmCandidateSourceInfo request, DelegateExecution delegateExecution) throws Exception { + Set rules = request.getRules(); + Set results = new HashSet<>(); + for (BpmTaskCandidateRuleVO rule : rules) { + // 每个处理器都有机会处理自己支持的事件 + if (CollUtil.contains(getSupportedTypes(), rule.getType())) { + results.addAll(doProcess(request, rule, delegateExecution)); + } + } + return results; + } + + default Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + return Collections.emptySet(); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessorChain.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessorChain.java new file mode 100644 index 0000000..63b5356 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/BpmCandidateSourceInfoProcessorChain.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.bpm.service.candidate; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +@Service +public class BpmCandidateSourceInfoProcessorChain { + + // 保存处理节点 + + private List processorList; + @Resource + private AdminUserApi adminUserApi; + + /** + * 可添加其他处理器 + * + * @param processorOp + * @return + */ + @Resource + // 动态扩展处理节点 + public BpmCandidateSourceInfoProcessorChain addProcessor(ObjectProvider processorOp) { + List processor = ListUtil.toList(processorOp.iterator()); + if (null == processorList) { + processorList = new ArrayList<>(processor.size()); + } + processorList.addAll(processor); + return this; + } + + // 获取处理器处理 + public Set process(BpmCandidateSourceInfo sourceInfo, DelegateExecution execution) throws Exception { + // Verify our parameters + if (sourceInfo == null) { + throw new IllegalArgumentException(); + } + for (BpmCandidateSourceInfoProcessor processor : processorList) { + try { + for (BpmTaskCandidateRuleVO vo : sourceInfo.getRules()) { + if (CollUtil.contains(processor.getSupportedTypes(), vo.getType())) { + processor.validRuleOptions(vo.getType(), vo.getOptions()); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + Set saveResult = Collections.emptySet(); + Exception saveException = null; + for (BpmCandidateSourceInfoProcessor processor : processorList) { + try { + saveResult = processor.process(sourceInfo, execution); + if (CollUtil.isNotEmpty(saveResult)) { + removeDisableUsers(saveResult); + break; + } + } catch (Exception e) { + saveException = e; + break; + } + } + // Return the exception or result state from the last execute() + if ((saveException != null)) { + throw saveException; + } else { + return (saveResult); + } + } + + public Set calculateTaskCandidateUsers(DelegateExecution execution, BpmCandidateSourceInfo sourceInfo) { + Set results = Collections.emptySet(); + try { + results = process(sourceInfo, execution); + } catch (Exception e) { + e.printStackTrace(); + } + return results; + } + + /** + * 移除禁用用户 + * + * @param assigneeUserIds + */ + public void removeDisableUsers(Set assigneeUserIds) { + if (CollUtil.isEmpty(assigneeUserIds)) { + return; + } + Map userMap = adminUserApi.getUserMap(assigneeUserIds); + assigneeUserIds.removeIf(id -> { + AdminUserRespDTO user = userMap.get(id); + return user == null || !CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus()); + }); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateAdminUserApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateAdminUserApiSourceInfoProcessor.java new file mode 100644 index 0000000..15c8917 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateAdminUserApiSourceInfoProcessor.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import org.flowable.engine.delegate.DelegateExecution; + +import javax.annotation.Resource; +import java.util.Set; + +public class BpmCandidateAdminUserApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private AdminUserApi api; + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.USER.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + api.validateUserList(options); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + return rule.getOptions(); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateDeptApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateDeptApiSourceInfoProcessor.java new file mode 100644 index 0000000..71a7fc8 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateDeptApiSourceInfoProcessor.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.engine.delegate.DelegateExecution; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +public class BpmCandidateDeptApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private DeptApi api; + @Resource + private AdminUserApi adminUserApi; + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType(), + BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + api.validateDeptList(options); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + if (Objects.equals(BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType(), rule.getType())) { + List users = adminUserApi.getUserListByDeptIds(rule.getOptions()); + return convertSet(users, AdminUserRespDTO::getId); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType(), rule.getType())) { + List depts = api.getDeptList(rule.getOptions()); + return convertSet(depts, DeptRespDTO::getLeaderUserId); + } + return Collections.emptySet(); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidatePostApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidatePostApiSourceInfoProcessor.java new file mode 100644 index 0000000..f4a8859 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidatePostApiSourceInfoProcessor.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.system.api.dept.PostApi; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import org.flowable.engine.delegate.DelegateExecution; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +public class BpmCandidatePostApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private PostApi api; + @Resource + private AdminUserApi adminUserApi; + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.POST.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + api.validPostList(options); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + List users = adminUserApi.getUserListByPostIds(rule.getOptions()); + return convertSet(users, AdminUserRespDTO::getId); + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateRoleApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateRoleApiSourceInfoProcessor.java new file mode 100644 index 0000000..92cda1f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateRoleApiSourceInfoProcessor.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.permission.RoleApi; +import org.flowable.engine.delegate.DelegateExecution; + +import javax.annotation.Resource; +import java.util.Set; + +public class BpmCandidateRoleApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private RoleApi api; + + @Resource + private PermissionApi permissionApi; + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.ROLE.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + api.validRoleList(options); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + return permissionApi.getUserRoleIdListByRoleIds(rule.getOptions()); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateScriptApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateScriptApiSourceInfoProcessor.java new file mode 100644 index 0000000..acfcc98 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateScriptApiSourceInfoProcessor.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.enums.DictTypeConstants; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.BpmTaskAssignScript; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.beans.factory.ObjectProvider; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.TASK_ASSIGN_SCRIPT_NOT_EXISTS; + +public class BpmCandidateScriptApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private DictDataApi dictDataApi; + + /** + * 任务分配脚本 + */ + private Map scriptMap = Collections.emptyMap(); + + public void setScripts(ObjectProvider scriptsOp) { + List scripts = scriptsOp.orderedStream().collect(Collectors.toList()); + setScripts(scripts); + } + + public void setScripts(List scripts) { + this.scriptMap = convertMap(scripts, script -> script.getEnum().getId()); + } + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.SCRIPT.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + dictDataApi.validateDictDataList(DictTypeConstants.TASK_ASSIGN_SCRIPT, + CollectionUtils.convertSet(options, String::valueOf)); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + return calculateTaskCandidateUsersByScript(delegateExecution, rule.getOptions()); + } + + private Set calculateTaskCandidateUsersByScript(DelegateExecution execution, Set options) { + // 获得对应的脚本 + List scripts = new ArrayList<>(options.size()); + options.forEach(id -> { + BpmTaskAssignScript script = scriptMap.get(id); + if (script == null) { + throw exception(TASK_ASSIGN_SCRIPT_NOT_EXISTS, id); + } + scripts.add(script); + }); + // 逐个计算任务 + Set userIds = new HashSet<>(); + scripts.forEach(script -> CollUtil.addAll(userIds, script.calculateTaskCandidateUsers(execution))); + return userIds; + } +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateUserGroupApiSourceInfoProcessor.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateUserGroupApiSourceInfoProcessor.java new file mode 100644 index 0000000..42929b4 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/candidate/sourceInfoProcessor/BpmCandidateUserGroupApiSourceInfoProcessor.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.bpm.service.candidate.sourceInfoProcessor; + +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.candidate.vo.BpmTaskCandidateRuleVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessor; +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService; +import org.flowable.engine.delegate.DelegateExecution; + +import javax.annotation.Resource; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class BpmCandidateUserGroupApiSourceInfoProcessor implements BpmCandidateSourceInfoProcessor { + @Resource + private BpmUserGroupService api; + @Resource + private BpmUserGroupService userGroupService; + + @Override + public Set getSupportedTypes() { + return SetUtils.asSet(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType()); + } + + @Override + public void validRuleOptions(Integer type, Set options) { + api.validUserGroups(options); + } + + @Override + public Set doProcess(BpmCandidateSourceInfo request, BpmTaskCandidateRuleVO rule, DelegateExecution delegateExecution) { + List userGroups = userGroupService.getUserGroupList(rule.getOptions()); + Set userIds = new HashSet<>(); + userGroups.forEach(group -> userIds.addAll(group.getMemberUserIds())); + return userIds; + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormService.java new file mode 100644 index 0000000..80355ef --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormService.java @@ -0,0 +1,99 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + + +/** + * 动态表单 Service 接口 + * + * @author @风里雾里 + */ +public interface BpmFormService { + + /** + * 创建动态表单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createForm(@Valid BpmFormCreateReqVO createReqVO); + + /** + * 更新动态表单 + * + * @param updateReqVO 更新信息 + */ + void updateForm(@Valid BpmFormUpdateReqVO updateReqVO); + + /** + * 删除动态表单 + * + * @param id 编号 + */ + void deleteForm(Long id); + + /** + * 获得动态表单 + * + * @param id 编号 + * @return 动态表单 + */ + BpmFormDO getForm(Long id); + + /** + * 获得动态表单列表 + * + * @return 动态表单列表 + */ + List getFormList(); + + /** + * 获得动态表单列表 + * + * @param ids 编号 + * @return 动态表单列表 + */ + List getFormList(Collection ids); + + /** + * 获得动态表单 Map + * + * @param ids 编号 + * @return 动态表单 Map + */ + default Map getFormMap(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyMap(); + } + return CollectionUtils.convertMap(this.getFormList(ids), BpmFormDO::getId); + } + + /** + * 获得动态表单分页 + * + * @param pageReqVO 分页查询 + * @return 动态表单分页 + */ + PageResult getFormPage(BpmFormPageReqVO pageReqVO); + + /** + * 校验流程表单已配置 + * + * @param configStr configStr 字段 + * @return 流程表单 + */ + BpmFormDO checkFormConfig(String configStr); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceImpl.java new file mode 100644 index 0000000..fb04fb2 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceImpl.java @@ -0,0 +1,132 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormUpdateReqVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmFormConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmFormMapper; +import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmFormFieldRespDTO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; + +/** + * 动态表单 Service 实现类 + * + * @author 风里雾里 + */ +@Service +@Validated +public class BpmFormServiceImpl implements BpmFormService { + + @Resource + private BpmFormMapper bpmFormMapper; + + @Override + public Long createForm(BpmFormCreateReqVO createReqVO) { + this.checkFields(createReqVO.getFields()); + // 插入 + BpmFormDO form = BpmFormConvert.INSTANCE.convert(createReqVO); + bpmFormMapper.insert(form); + // 返回 + return form.getId(); + } + + @Override + public void updateForm(BpmFormUpdateReqVO updateReqVO) { + this.checkFields(updateReqVO.getFields()); + // 校验存在 + this.validateFormExists(updateReqVO.getId()); + // 更新 + BpmFormDO updateObj = BpmFormConvert.INSTANCE.convert(updateReqVO); + bpmFormMapper.updateById(updateObj); + } + + @Override + public void deleteForm(Long id) { + // 校验存在 + this.validateFormExists(id); + // 删除 + bpmFormMapper.deleteById(id); + } + + private void validateFormExists(Long id) { + if (bpmFormMapper.selectById(id) == null) { + throw exception(ErrorCodeConstants.FORM_NOT_EXISTS); + } + } + + @Override + public BpmFormDO getForm(Long id) { + return bpmFormMapper.selectById(id); + } + + @Override + public List getFormList() { + return bpmFormMapper.selectList(); + } + + @Override + public List getFormList(Collection ids) { + return bpmFormMapper.selectBatchIds(ids); + } + + @Override + public PageResult getFormPage(BpmFormPageReqVO pageReqVO) { + return bpmFormMapper.selectPage(pageReqVO); + } + + + @Override + public BpmFormDO checkFormConfig(String configStr) { + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(configStr, BpmModelMetaInfoRespDTO.class); + if (metaInfo == null || metaInfo.getFormType() == null) { + throw exception(MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG); + } + // 校验表单存在 + if (Objects.equals(metaInfo.getFormType(), BpmModelFormTypeEnum.NORMAL.getType())) { + BpmFormDO form = getForm(metaInfo.getFormId()); + if (form == null) { + throw exception(FORM_NOT_EXISTS); + } + return form; + } + return null; + } + + /** + * 校验 Field,避免 field 重复 + * + * @param fields field 数组 + */ + private void checkFields(List fields) { + if (true) { // TODO 芋艿:兼容 Vue3 工作流:因为采用了新的表单设计器,所以暂时不校验 + return; + } + Map fieldMap = new HashMap<>(); // key 是 vModel,value 是 label + for (String field : fields) { + BpmFormFieldRespDTO fieldDTO = JsonUtils.parseObject(field, BpmFormFieldRespDTO.class); + Assert.notNull(fieldDTO); + String oldLabel = fieldMap.put(fieldDTO.getVModel(), fieldDTO.getLabel()); + // 如果不存在,则直接返回 + if (oldLabel == null) { + continue; + } + // 如果存在,则报错 + throw exception(ErrorCodeConstants.FORM_FIELD_REPEAT, oldLabel, fieldDTO.getLabel(), fieldDTO.getVModel()); + } + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelService.java new file mode 100644 index 0000000..d5cc5f0 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelService.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; +import org.flowable.bpmn.model.BpmnModel; + +import javax.validation.Valid; + +/** + * Flowable流程模型接口 + * + * @author yunlongn + */ +public interface BpmModelService { + + /** + * 获得流程模型分页 + * + * @param pageVO 分页查询 + * @return 流程模型分页 + */ + PageResult getModelPage(BpmModelPageReqVO pageVO); + + /** + * 创建流程模型 + * + * @param modelVO 创建信息 + * @param bpmnXml BPMN XML + * @return 创建的流程模型的编号 + */ + String createModel(@Valid BpmModelCreateReqVO modelVO, String bpmnXml); + + /** + * 获得流程模块 + * + * @param id 编号 + * @return 流程模型 + */ + BpmModelRespVO getModel(String id); + + /** + * 修改流程模型 + * + * @param updateReqVO 更新信息 + */ + void updateModel(@Valid BpmModelUpdateReqVO updateReqVO); + + /** + * 将流程模型,部署成一个流程定义 + * + * @param id 编号 + */ + void deployModel(String id); + + /** + * 删除模型 + * + * @param id 编号 + */ + void deleteModel(String id); + + /** + * 修改模型的状态,实际更新的部署的流程定义的状态 + * + * @param id 编号 + * @param state 状态 + */ + void updateModelState(String id, Integer state); + + /** + * 获得流程模型编号对应的 BPMN Model + * + * @param id 流程模型编号 + * @return BPMN Model + */ + BpmnModel getBpmnModel(String id); + + /** + * 获得流程定义编号对应的 BPMN Model + * + * @param processDefinitionId 流程定义编号 + * @return BPMN Model + */ + BpmnModel getBpmnModelByDefinitionId(String processDefinitionId); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java new file mode 100644 index 0000000..090a68f --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java @@ -0,0 +1,294 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.object.PageUtils; +import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.*; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmModelConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.common.engine.impl.db.SuspensionState; +import org.flowable.common.engine.impl.util.io.BytesStreamSource; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.Model; +import org.flowable.engine.repository.ModelQuery; +import org.flowable.engine.repository.ProcessDefinition; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; + +/** + * Flowable流程模型实现 + * 主要进行 Flowable {@link Model} 的维护 + * + * @author yunlongn + * @author 芋道源码 + * @author jason + */ +@Service +@Validated +@Slf4j +public class BpmModelServiceImpl implements BpmModelService { + + @Resource + private RepositoryService repositoryService; + @Resource + private BpmProcessDefinitionService processDefinitionService; + @Resource + private BpmFormService bpmFormService; + @Resource + private BpmTaskAssignRuleService taskAssignRuleService; + + @Override + public PageResult getModelPage(BpmModelPageReqVO pageVO) { + ModelQuery modelQuery = repositoryService.createModelQuery(); + if (StrUtil.isNotBlank(pageVO.getKey())) { + modelQuery.modelKey(pageVO.getKey()); + } + if (StrUtil.isNotBlank(pageVO.getName())) { + modelQuery.modelNameLike("%" + pageVO.getName() + "%"); // 模糊匹配 + } + if (StrUtil.isNotBlank(pageVO.getCategory())) { + modelQuery.modelCategory(pageVO.getCategory()); + } + // 执行查询 + List models = modelQuery.modelTenantId(TenantContextHolder.getTenantIdStr()) + .orderByCreateTime().desc() + .listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); + + // 获得 Form Map + Set formIds = CollectionUtils.convertSet(models, model -> { + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(model.getMetaInfo(), BpmModelMetaInfoRespDTO.class); + return metaInfo != null ? metaInfo.getFormId() : null; + }); + Map formMap = bpmFormService.getFormMap(formIds); + + // 获得 Deployment Map + Set deploymentIds = new HashSet<>(); + models.forEach(model -> CollectionUtils.addIfNotNull(deploymentIds, model.getDeploymentId())); + Map deploymentMap = processDefinitionService.getDeploymentMap(deploymentIds); + // 获得 ProcessDefinition Map + List processDefinitions = processDefinitionService.getProcessDefinitionListByDeploymentIds(deploymentIds); + Map processDefinitionMap = convertMap(processDefinitions, ProcessDefinition::getDeploymentId); + + // 拼接结果 + long modelCount = modelQuery.count(); + return new PageResult<>(BpmModelConvert.INSTANCE.convertList(models, formMap, deploymentMap, processDefinitionMap), modelCount); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String createModel(@Valid BpmModelCreateReqVO createReqVO, String bpmnXml) { + checkKeyNCName(createReqVO.getKey()); + // 校验流程标识已经存在 + Model keyModel = getModelByKey(createReqVO.getKey()); + if (keyModel != null) { + throw exception(MODEL_KEY_EXISTS, createReqVO.getKey()); + } + + // 创建流程定义 + Model model = repositoryService.newModel(); + BpmModelConvert.INSTANCE.copy(model, createReqVO); + model.setTenantId(TenantContextHolder.getTenantIdStr()); + // 保存流程定义 + repositoryService.saveModel(model); + // 保存 BPMN XML + saveModelBpmnXml(model, bpmnXml); + return model.getId(); + } + + private Model getModelByKey(String key) { + return repositoryService.createModelQuery().modelKey(key).singleResult(); + } + + @Override + public BpmModelRespVO getModel(String id) { + Model model = repositoryService.getModel(id); + if (model == null) { + return null; + } + BpmModelRespVO modelRespVO = BpmModelConvert.INSTANCE.convert(model); + // 拼接 bpmn XML + byte[] bpmnBytes = repositoryService.getModelEditorSource(id); + modelRespVO.setBpmnXml(StrUtil.utf8Str(bpmnBytes)); + return modelRespVO; + } + + @Override + @Transactional(rollbackFor = Exception.class) // 因为进行多个操作,所以开启事务 + public void updateModel(@Valid BpmModelUpdateReqVO updateReqVO) { + // 校验流程模型存在 + Model model = repositoryService.getModel(updateReqVO.getId()); + if (model == null) { + throw exception(MODEL_NOT_EXISTS); + } + + // 修改流程定义 + BpmModelConvert.INSTANCE.copy(model, updateReqVO); + // 更新模型 + repositoryService.saveModel(model); + // 更新 BPMN XML + saveModelBpmnXml(model, updateReqVO.getBpmnXml()); + } + + @Override + @Transactional(rollbackFor = Exception.class) // 因为进行多个操作,所以开启事务 + public void deployModel(String id) { + // 1.1 校验流程模型存在 + Model model = repositoryService.getModel(id); + if (ObjectUtils.isEmpty(model)) { + throw exception(MODEL_NOT_EXISTS); + } + // 1.2 校验流程图 + // TODO 芋艿:校验流程图的有效性;例如说,是否有开始的元素,是否有结束的元素; + byte[] bpmnBytes = repositoryService.getModelEditorSource(model.getId()); + if (bpmnBytes == null) { + throw exception(MODEL_NOT_EXISTS); + } + // 1.3 校验表单已配 + BpmFormDO form = checkFormConfig(model.getMetaInfo()); + // 1.4 校验任务分配规则已配置 + taskAssignRuleService.checkTaskAssignRuleAllConfig(id); + + // 1.5 校验模型是否发生修改。如果未修改,则不允许创建 + BpmProcessDefinitionCreateReqDTO definitionCreateReqDTO = BpmModelConvert.INSTANCE.convert2(model, form).setBpmnBytes(bpmnBytes); + if (processDefinitionService.isProcessDefinitionEquals(definitionCreateReqDTO)) { // 流程定义的信息相等 + ProcessDefinition oldProcessDefinition = processDefinitionService.getProcessDefinitionByDeploymentId(model.getDeploymentId()); + if (oldProcessDefinition != null && taskAssignRuleService.isTaskAssignRulesEquals(model.getId(), oldProcessDefinition.getId())) { + throw exception(MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS); + } + } + + // 2.1 创建流程定义 + String definitionId = processDefinitionService.createProcessDefinition(definitionCreateReqDTO); + + // 2.2 将老的流程定义进行挂起。也就是说,只有最新部署的流程定义,才可以发起任务。 + updateProcessDefinitionSuspended(model.getDeploymentId()); + + // 2.3 更新 model 的 deploymentId,进行关联 + ProcessDefinition definition = processDefinitionService.getProcessDefinition(definitionId); + model.setDeploymentId(definition.getDeploymentId()); + repositoryService.saveModel(model); + + // 2.4 复制任务分配规则 + taskAssignRuleService.copyTaskAssignRules(id, definition.getId()); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteModel(String id) { + // 校验流程模型存在 + Model model = repositoryService.getModel(id); + if (model == null) { + throw exception(MODEL_NOT_EXISTS); + } + // 执行删除 + repositoryService.deleteModel(id); + // 禁用流程定义 + updateProcessDefinitionSuspended(model.getDeploymentId()); + } + + @Override + public void updateModelState(String id, Integer state) { + // 校验流程模型存在 + Model model = repositoryService.getModel(id); + if (model == null) { + throw exception(MODEL_NOT_EXISTS); + } + // 校验流程定义存在 + ProcessDefinition definition = processDefinitionService.getProcessDefinitionByDeploymentId(model.getDeploymentId()); + if (definition == null) { + throw exception(PROCESS_DEFINITION_NOT_EXISTS); + } + + // 更新状态 + processDefinitionService.updateProcessDefinitionState(definition.getId(), state); + } + + @Override + public BpmnModel getBpmnModel(String id) { + byte[] bpmnBytes = repositoryService.getModelEditorSource(id); + if (ArrayUtil.isEmpty(bpmnBytes)) { + return null; + } + BpmnXMLConverter converter = new BpmnXMLConverter(); + return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true); + } + + @Override + public BpmnModel getBpmnModelByDefinitionId(String processDefinitionId) { + return repositoryService.getBpmnModel(processDefinitionId); + } + + private void checkKeyNCName(String key) { + if (!ValidationUtils.isXmlNCName(key)) { + throw exception(MODEL_KEY_VALID); + } + } + + /** + * 校验流程表单已配置 + * + * @param metaInfoStr 流程模型 metaInfo 字段 + * @return 流程表单 + */ + private BpmFormDO checkFormConfig(String metaInfoStr) { + BpmModelMetaInfoRespDTO metaInfo = JsonUtils.parseObject(metaInfoStr, BpmModelMetaInfoRespDTO.class); + if (metaInfo == null || metaInfo.getFormType() == null) { + throw exception(MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG); + } + // 校验表单存在 + if (Objects.equals(metaInfo.getFormType(), BpmModelFormTypeEnum.NORMAL.getType())) { + BpmFormDO form = bpmFormService.getForm(metaInfo.getFormId()); + if (form == null) { + throw exception(FORM_NOT_EXISTS); + } + return form; + } + return null; + } + + private void saveModelBpmnXml(Model model, String bpmnXml) { + if (StrUtil.isEmpty(bpmnXml)) { + return; + } + repositoryService.addModelEditorSource(model.getId(), StrUtil.utf8Bytes(bpmnXml)); + } + + /** + * 挂起 deploymentId 对应的流程定义。 这里一个deploymentId 只关联一个流程定义 + * @param deploymentId 流程发布Id. + */ + private void updateProcessDefinitionSuspended(String deploymentId) { + if (StrUtil.isEmpty(deploymentId)) { + return; + } + ProcessDefinition oldDefinition = processDefinitionService.getProcessDefinitionByDeploymentId(deploymentId); + if (oldDefinition == null) { + return; + } + processDefinitionService.updateProcessDefinitionState(oldDefinition.getId(), SuspensionState.SUSPENDED.getStateCode()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionService.java new file mode 100644 index 0000000..7c26b64 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionService.java @@ -0,0 +1,159 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionListReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.ProcessDefinition; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.Set; +/** + * Flowable流程定义接口 + * + * @author yunlong.li + * @author ZJQ + * @author 芋道源码 + */ +public interface BpmProcessDefinitionService { + + /** + * 获得流程定义分页 + * + * @param pageReqVO 分页入参 + * @return 流程定义 Page + */ + PageResult getProcessDefinitionPage(BpmProcessDefinitionPageReqVO pageReqVO); + + /** + * 获得流程定义列表 + * + * @param listReqVO 列表入参 + * @return 流程定义列表 + */ + List getProcessDefinitionList(BpmProcessDefinitionListReqVO listReqVO); + + /** + * 创建流程定义 + * + * @param createReqDTO 创建信息 + * @return 流程编号 + */ + String createProcessDefinition(@Valid BpmProcessDefinitionCreateReqDTO createReqDTO); + + /** + * 更新流程定义状态 + * + * @param id 流程定义的编号 + * @param state 状态 + */ + void updateProcessDefinitionState(String id, Integer state); + + /** + * 获得流程定义对应的 BPMN XML + * + * @param id 流程定义编号 + * @return BPMN XML + */ + String getProcessDefinitionBpmnXML(String id); + + /** + * 获得需要创建的流程定义,是否和当前激活的流程定义相等 + * + * @param createReqDTO 创建信息 + * @return 是否相等 + */ + boolean isProcessDefinitionEquals(@Valid BpmProcessDefinitionCreateReqDTO createReqDTO); + + /** + * 获得编号对应的 BpmProcessDefinitionExtDO + * + * @param id 编号 + * @return 流程定义拓展 + */ + BpmProcessDefinitionExtDO getProcessDefinitionExt(String id); + + /** + * 获得编号对应的 ProcessDefinition + * + * @param id 编号 + * @return 流程定义 + */ + ProcessDefinition getProcessDefinition(String id); + + /** + * 获得编号对应的 ProcessDefinition + * + * 相比 {@link #getProcessDefinition(String)} 方法,category 的取值是正确 + * + * @param id 编号 + * @return 流程定义 + */ + ProcessDefinition getProcessDefinition2(String id); + + /** + * 获得 deploymentId 对应的 ProcessDefinition + * + * @param deploymentId 部署编号 + * @return 流程定义 + */ + ProcessDefinition getProcessDefinitionByDeploymentId(String deploymentId); + + /** + * 获得 deploymentIds 对应的 ProcessDefinition 数组 + * + * @param deploymentIds 部署编号的数组 + * @return 流程定义的数组 + */ + List getProcessDefinitionListByDeploymentIds(Set deploymentIds); + + /** + * 获得流程定义标识对应的激活的流程定义 + * + * @param key 流程定义的标识 + * @return 流程定义 + */ + ProcessDefinition getActiveProcessDefinition(String key); + + /** + * 获得 ids 对应的 Deployment Map + * + * @param ids 部署编号的数组 + * @return 流程部署 Map + */ + default Map getDeploymentMap(Set ids) { + return CollectionUtils.convertMap(getDeployments(ids), Deployment::getId); + } + + /** + * 获得 ids 对应的 Deployment 数组 + * + * @param ids 部署编号的数组 + * @return 流程部署的数组 + */ + List getDeployments(Set ids); + + /** + * 获得 id 对应的 Deployment + * + * @param id 部署编号 + * @return 流程部署 + */ + Deployment getDeployment(String id); + + /** + * 获得 Bpmn 模型 + * + * @param processDefinitionId 流程定义的编号 + * @return Bpmn 模型 + */ + BpmnModel getBpmnModel(String processDefinitionId); +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java new file mode 100644 index 0000000..882f7f8 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java @@ -0,0 +1,287 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.PageUtils; +import cn.iocoder.yudao.framework.flowable.core.enums.BpmnModelConstants; +import cn.iocoder.yudao.framework.flowable.core.util.BpmnModelUtils; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionListReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageItemRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmProcessDefinitionConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmProcessDefinitionExtMapper; +import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmProcessDefinitionCreateReqDTO; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.common.engine.impl.db.SuspensionState; +import org.flowable.common.engine.impl.util.io.BytesStreamSource; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.repository.ProcessDefinitionQuery; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_KEY_NOT_MATCH; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_NAME_NOT_MATCH; +import static java.util.Collections.emptyList; + +/** + * 流程定义实现 + * 主要进行 Flowable {@link ProcessDefinition} 和 {@link Deployment} 的维护 + * + * @author yunlongn + * @author ZJQ + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionService { + + @Resource + private RepositoryService repositoryService; + + @Resource + private BpmProcessDefinitionExtMapper processDefinitionMapper; + + @Resource + private BpmFormService formService; + + @Override + public ProcessDefinition getProcessDefinition(String id) { + return repositoryService.getProcessDefinition(id); + } + + @Override + public ProcessDefinition getProcessDefinition2(String id) { + return repositoryService.createProcessDefinitionQuery().processDefinitionId(id).singleResult(); + } + + @Override + public ProcessDefinition getProcessDefinitionByDeploymentId(String deploymentId) { + if (StrUtil.isEmpty(deploymentId)) { + return null; + } + return repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult(); + } + + @Override + public List getProcessDefinitionListByDeploymentIds(Set deploymentIds) { + if (CollUtil.isEmpty(deploymentIds)) { + return emptyList(); + } + return repositoryService.createProcessDefinitionQuery().deploymentIds(deploymentIds).list(); + } + + @Override + public ProcessDefinition getActiveProcessDefinition(String key) { + return repositoryService.createProcessDefinitionQuery().processDefinitionKey(key).active().singleResult(); + } + + @Override + public List getDeployments(Set ids) { + if (CollUtil.isEmpty(ids)) { + return emptyList(); + } + List list = new ArrayList<>(ids.size()); + for (String id : ids) { + addIfNotNull(list, getDeployment(id)); + } + return list; + } + + @Override + public Deployment getDeployment(String id) { + if (StrUtil.isEmpty(id)) { + return null; + } + return repositoryService.createDeploymentQuery().deploymentId(id).singleResult(); + } + + @Override + public BpmnModel getBpmnModel(String processDefinitionId) { + return repositoryService.getBpmnModel(processDefinitionId); + } + + @Override + public String createProcessDefinition(@Valid BpmProcessDefinitionCreateReqDTO createReqDTO) { + // 创建 Deployment 部署 + Deployment deploy = repositoryService.createDeployment() + .key(createReqDTO.getKey()).name(createReqDTO.getName()).category(createReqDTO.getCategory()) + .addBytes(createReqDTO.getKey() + BpmnModelConstants.BPMN_FILE_SUFFIX, createReqDTO.getBpmnBytes()) + .tenantId(TenantContextHolder.getTenantIdStr()) + .deploy(); + + // 设置 ProcessDefinition 的 category 分类 + ProcessDefinition definition = repositoryService.createProcessDefinitionQuery() + .deploymentId(deploy.getId()).singleResult(); + repositoryService.setProcessDefinitionCategory(definition.getId(), createReqDTO.getCategory()); + // 注意 1,ProcessDefinition 的 key 和 name 是通过 BPMN 中的 的 id 和 name 决定 + // 注意 2,目前该项目的设计上,需要保证 Model、Deployment、ProcessDefinition 使用相同的 key,保证关联性。 + // 否则,会导致 ProcessDefinition 的分页无法查询到。 + if (!Objects.equals(definition.getKey(), createReqDTO.getKey())) { + throw exception(PROCESS_DEFINITION_KEY_NOT_MATCH, createReqDTO.getKey(), definition.getKey()); + } + if (!Objects.equals(definition.getName(), createReqDTO.getName())) { + throw exception(PROCESS_DEFINITION_NAME_NOT_MATCH, createReqDTO.getName(), definition.getName()); + } + + // 插入拓展表 + BpmProcessDefinitionExtDO definitionDO = BpmProcessDefinitionConvert.INSTANCE.convert2(createReqDTO) + .setProcessDefinitionId(definition.getId()); + processDefinitionMapper.insert(definitionDO); + return definition.getId(); + } + + @Override + public void updateProcessDefinitionState(String id, Integer state) { + // 激活 + if (Objects.equals(SuspensionState.ACTIVE.getStateCode(), state)) { + repositoryService.activateProcessDefinitionById(id, false, null); + return; + } + // 挂起 + if (Objects.equals(SuspensionState.SUSPENDED.getStateCode(), state)) { + // suspendProcessInstances = false,进行中的任务,不进行挂起。 + // 原因:只要新的流程不允许发起即可,老流程继续可以执行。 + repositoryService.suspendProcessDefinitionById(id, false, null); + return; + } + log.error("[updateProcessDefinitionState][流程定义({}) 修改未知状态({})]", id, state); + } + + @Override + public String getProcessDefinitionBpmnXML(String id) { + BpmnModel bpmnModel = repositoryService.getBpmnModel(id); + if (bpmnModel == null) { + return null; + } + BpmnXMLConverter converter = new BpmnXMLConverter(); + return StrUtil.utf8Str(converter.convertToXML(bpmnModel)); + } + + @Override + public boolean isProcessDefinitionEquals(@Valid BpmProcessDefinitionCreateReqDTO createReqDTO) { + // 校验 name、description 是否更新 + ProcessDefinition oldProcessDefinition = getActiveProcessDefinition(createReqDTO.getKey()); + if (oldProcessDefinition == null) { + return false; + } + BpmProcessDefinitionExtDO oldProcessDefinitionExt = getProcessDefinitionExt(oldProcessDefinition.getId()); + if (!StrUtil.equals(createReqDTO.getName(), oldProcessDefinition.getName()) + || !StrUtil.equals(createReqDTO.getDescription(), oldProcessDefinitionExt.getDescription()) + || !StrUtil.equals(createReqDTO.getCategory(), oldProcessDefinition.getCategory())) { + return false; + } + // 校验 form 信息是否更新 + if (!ObjectUtil.equal(createReqDTO.getFormType(), oldProcessDefinitionExt.getFormType()) + || !ObjectUtil.equal(createReqDTO.getFormId(), oldProcessDefinitionExt.getFormId()) + || !ObjectUtil.equal(createReqDTO.getFormConf(), oldProcessDefinitionExt.getFormConf()) + || !ObjectUtil.equal(createReqDTO.getFormFields(), oldProcessDefinitionExt.getFormFields()) + || !ObjectUtil.equal(createReqDTO.getFormCustomCreatePath(), oldProcessDefinitionExt.getFormCustomCreatePath()) + || !ObjectUtil.equal(createReqDTO.getFormCustomViewPath(), oldProcessDefinitionExt.getFormCustomViewPath())) { + return false; + } + // 校验 BPMN XML 信息 + BpmnModel newModel = buildBpmnModel(createReqDTO.getBpmnBytes()); + BpmnModel oldModel = getBpmnModel(oldProcessDefinition.getId()); + // 对比字节变化 + if (!BpmnModelUtils.equals(oldModel, newModel)) { + return false; + } + // 最终发现都一致,则返回 true + return true; + } + + /** + * 构建对应的 BPMN Model + * + * @param bpmnBytes 原始的 BPMN XML 字节数组 + * @return BPMN Model + */ + private BpmnModel buildBpmnModel(byte[] bpmnBytes) { + // 转换成 BpmnModel 对象 + BpmnXMLConverter converter = new BpmnXMLConverter(); + return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true); + } + + @Override + public BpmProcessDefinitionExtDO getProcessDefinitionExt(String id) { + return processDefinitionMapper.selectByProcessDefinitionId(id); + } + + @Override + public List getProcessDefinitionList(BpmProcessDefinitionListReqVO listReqVO) { + // 拼接查询条件 + ProcessDefinitionQuery definitionQuery = repositoryService.createProcessDefinitionQuery(); + if (Objects.equals(SuspensionState.SUSPENDED.getStateCode(), listReqVO.getSuspensionState())) { + definitionQuery.suspended(); + } else if (Objects.equals(SuspensionState.ACTIVE.getStateCode(), listReqVO.getSuspensionState())) { + definitionQuery.active(); + } + // 执行查询 + definitionQuery.processDefinitionTenantId(TenantContextHolder.getTenantIdStr()); + List processDefinitions = definitionQuery.list(); + if (CollUtil.isEmpty(processDefinitions)) { + return Collections.emptyList(); + } + + // 获得 BpmProcessDefinitionDO Map + List processDefinitionDOs = processDefinitionMapper.selectListByProcessDefinitionIds( + convertList(processDefinitions, ProcessDefinition::getId)); + Map processDefinitionDOMap = convertMap(processDefinitionDOs, + BpmProcessDefinitionExtDO::getProcessDefinitionId); + // 执行查询,并返回 + return BpmProcessDefinitionConvert.INSTANCE.convertList3(processDefinitions, processDefinitionDOMap); + } + + @Override + public PageResult getProcessDefinitionPage(BpmProcessDefinitionPageReqVO pageVO) { + ProcessDefinitionQuery definitionQuery = repositoryService.createProcessDefinitionQuery(); + if (StrUtil.isNotBlank(pageVO.getKey())) { + definitionQuery.processDefinitionKey(pageVO.getKey()); + } + + // 执行查询 + List processDefinitions = definitionQuery.orderByProcessDefinitionVersion().desc() + .listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); + + if (CollUtil.isEmpty(processDefinitions)) { + return new PageResult<>(emptyList(), definitionQuery.count()); + } + // 获得 Deployment Map + Set deploymentIds = new HashSet<>(); + processDefinitions.forEach(definition -> addIfNotNull(deploymentIds, definition.getDeploymentId())); + Map deploymentMap = getDeploymentMap(deploymentIds); + + // 获得 BpmProcessDefinitionDO Map + List processDefinitionDOs = processDefinitionMapper.selectListByProcessDefinitionIds( + convertList(processDefinitions, ProcessDefinition::getId)); + Map processDefinitionDOMap = convertMap(processDefinitionDOs, + BpmProcessDefinitionExtDO::getProcessDefinitionId); + + // 获得 Form Map + Set formIds = convertSet(processDefinitionDOs, BpmProcessDefinitionExtDO::getFormId); + Map formMap = formService.getFormMap(formIds); + + // 拼接结果 + long definitionCount = definitionQuery.count(); + return new PageResult<>(BpmProcessDefinitionConvert.INSTANCE.convertList(processDefinitions, deploymentMap, + processDefinitionDOMap, formMap), definitionCount); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleService.java new file mode 100644 index 0000000..051dd63 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleService.java @@ -0,0 +1,97 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.lang.Nullable; + +import javax.validation.Valid; +import java.util.List; +import java.util.Set; + +/** + * BPM 任务分配规则 Service 接口 + * + * @author 芋道源码 + */ +public interface BpmTaskAssignRuleService { + + /** + * 获得流程定义的任务分配规则数组 + * + * @param processDefinitionId 流程定义的编号 + * @param taskDefinitionKey 流程任务定义的 Key。允许空 + * @return 任务规则数组 + */ + List getTaskAssignRuleListByProcessDefinitionId(String processDefinitionId, + @Nullable String taskDefinitionKey); + + /** + * 获得流程模型的任务规则数组 + * + * @param modelId 流程模型的编号 + * @return 任务规则数组 + */ + List getTaskAssignRuleListByModelId(String modelId); + + /** + * 获得流程定义的任务分配规则数组 + * + * @param modelId 流程模型的编号 + * @param processDefinitionId 流程定义的编号 + * @return 任务规则数组 + */ + List getTaskAssignRuleList(String modelId, String processDefinitionId); + + /** + * 创建任务分配规则 + * + * @param reqVO 创建信息 + * @return 规则编号 + */ + Long createTaskAssignRule(@Valid BpmTaskAssignRuleCreateReqVO reqVO); + + /** + * 更新任务分配规则 + * + * @param reqVO 创建信息 + */ + void updateTaskAssignRule(@Valid BpmTaskAssignRuleUpdateReqVO reqVO); + + /** + * 判断指定流程模型和流程定义的分配规则是否相等 + * + * @param modelId 流程模型编号 + * @param processDefinitionId 流程定义编号 + * @return 是否相等 + */ + boolean isTaskAssignRulesEquals(String modelId, String processDefinitionId); + + /** + * 将流程流程模型的任务分配规则,复制一份给流程定义 + * 目的:每次流程模型部署时,都会生成一个新的流程定义,此时考虑到每次部署的流程不可变性,所以需要复制一份给该流程定义 + * + * @param fromModelId 流程模型编号 + * @param toProcessDefinitionId 流程定义编号 + */ + void copyTaskAssignRules(String fromModelId, String toProcessDefinitionId); + + /** + * 校验流程模型的任务分配规则全部都配置了 + * 目的:如果有规则未配置,会导致流程任务找不到负责人,进而流程无法进行下去! + * + * @param id 流程模型编号 + */ + void checkTaskAssignRuleAllConfig(String id); + + /** + * 计算当前执行任务的处理人 + * + * @param execution 执行任务 + * @return 处理人的编号数组 + */ + Set calculateTaskCandidateUsers(DelegateExecution execution); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java new file mode 100644 index 0000000..9ef9363 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java @@ -0,0 +1,357 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.framework.flowable.core.util.BpmnModelUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmTaskAssignRuleConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper; +import cn.iocoder.yudao.module.bpm.enums.DictTypeConstants; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum; +import cn.iocoder.yudao.module.bpm.framework.flowable.core.behavior.script.BpmTaskAssignScript; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.PostApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import cn.iocoder.yudao.module.system.api.permission.PermissionApi; +import cn.iocoder.yudao.module.system.api.permission.RoleApi; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.UserTask; +import org.flowable.common.engine.api.FlowableException; +import org.flowable.engine.delegate.DelegateExecution; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.*; +import java.util.function.Function; + +import static cn.hutool.core.text.CharSequenceUtil.format; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; + +/** + * BPM 任务分配规则 Service 实现类 + */ +@Service +@Validated +@Slf4j +public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { + + @Resource + private BpmTaskAssignRuleMapper taskRuleMapper; + @Resource + @Lazy // 解决循环依赖 + private BpmModelService modelService; + @Resource + @Lazy // 解决循环依赖 + private BpmProcessDefinitionService processDefinitionService; + @Resource + private BpmUserGroupService userGroupService; + @Resource + private RoleApi roleApi; + @Resource + private DeptApi deptApi; + @Resource + private PostApi postApi; + @Resource + private AdminUserApi adminUserApi; + @Resource + private DictDataApi dictDataApi; + @Resource + private PermissionApi permissionApi; + @Resource + @Lazy // 解决循环依赖 + private BpmProcessInstanceService processInstanceService; + /** + * 任务分配脚本 + */ + private Map scriptMap = Collections.emptyMap(); + + @Resource + public void setScripts(List scripts) { + this.scriptMap = convertMap(scripts, script -> script.getEnum().getId()); + } + + @Override + public List getTaskAssignRuleListByProcessDefinitionId(String processDefinitionId, + String taskDefinitionKey) { + return taskRuleMapper.selectListByProcessDefinitionId(processDefinitionId, taskDefinitionKey); + } + + @Override + public List getTaskAssignRuleListByModelId(String modelId) { + return taskRuleMapper.selectListByModelId(modelId); + } + + @Override + public List getTaskAssignRuleList(String modelId, String processDefinitionId) { + // 获得规则 + List rules = Collections.emptyList(); + BpmnModel model = null; + if (StrUtil.isNotEmpty(modelId)) { + rules = getTaskAssignRuleListByModelId(modelId); + model = modelService.getBpmnModel(modelId); + } else if (StrUtil.isNotEmpty(processDefinitionId)) { + rules = getTaskAssignRuleListByProcessDefinitionId(processDefinitionId, null); + model = processDefinitionService.getBpmnModel(processDefinitionId); + } + if (model == null) { + return Collections.emptyList(); + } + // 获得用户任务,只有用户任务才可以设置分配规则 + List userTasks = BpmnModelUtils.getBpmnModelElements(model, UserTask.class); + if (CollUtil.isEmpty(userTasks)) { + return Collections.emptyList(); + } + // 转换数据 + return BpmTaskAssignRuleConvert.INSTANCE.convertList(userTasks, rules); + } + + @Override + public Long createTaskAssignRule(@Valid BpmTaskAssignRuleCreateReqVO reqVO) { + // 校验参数 + validTaskAssignRuleOptions(reqVO.getType(), reqVO.getOptions()); + // 校验是否已经配置 + BpmTaskAssignRuleDO existRule = + taskRuleMapper.selectListByModelIdAndTaskDefinitionKey(reqVO.getModelId(), reqVO.getTaskDefinitionKey()); + if (existRule != null) { + throw exception(TASK_ASSIGN_RULE_EXISTS, reqVO.getModelId(), reqVO.getTaskDefinitionKey()); + } + + // 存储 + BpmTaskAssignRuleDO rule = BpmTaskAssignRuleConvert.INSTANCE.convert(reqVO) + .setProcessDefinitionId(BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL); // 只有流程模型,才允许新建 + taskRuleMapper.insert(rule); + return rule.getId(); + } + + @Override + public void updateTaskAssignRule(@Valid BpmTaskAssignRuleUpdateReqVO reqVO) { + // 校验参数 + validTaskAssignRuleOptions(reqVO.getType(), reqVO.getOptions()); + // 校验是否存在 + BpmTaskAssignRuleDO existRule = taskRuleMapper.selectById(reqVO.getId()); + if (existRule == null) { + throw exception(TASK_ASSIGN_RULE_NOT_EXISTS); + } + // 只允许修改流程模型的规则 + if (!Objects.equals(BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL, existRule.getProcessDefinitionId())) { + throw exception(TASK_UPDATE_FAIL_NOT_MODEL); + } + + // 执行更新 + taskRuleMapper.updateById(BpmTaskAssignRuleConvert.INSTANCE.convert(reqVO)); + } + + @Override + public boolean isTaskAssignRulesEquals(String modelId, String processDefinitionId) { + // 调用 VO 接口的原因是,过滤掉流程模型不需要的规则,保持和 copyTaskAssignRules 方法的一致性 + List modelRules = getTaskAssignRuleList(modelId, null); + List processInstanceRules = getTaskAssignRuleList(null, processDefinitionId); + if (modelRules.size() != processInstanceRules.size()) { + return false; + } + + // 遍历,匹配对应的规则 + Map processInstanceRuleMap = + CollectionUtils.convertMap(processInstanceRules, BpmTaskAssignRuleRespVO::getTaskDefinitionKey); + for (BpmTaskAssignRuleRespVO modelRule : modelRules) { + BpmTaskAssignRuleRespVO processInstanceRule = processInstanceRuleMap.get(modelRule.getTaskDefinitionKey()); + if (processInstanceRule == null) { + return false; + } + if (!ObjectUtil.equals(modelRule.getType(), processInstanceRule.getType()) || !ObjectUtil.equal( + modelRule.getOptions(), processInstanceRule.getOptions())) { + return false; + } + } + return true; + } + + @Override + public void copyTaskAssignRules(String fromModelId, String toProcessDefinitionId) { + List rules = getTaskAssignRuleList(fromModelId, null); + if (CollUtil.isEmpty(rules)) { + return; + } + // 开始复制 + List newRules = BpmTaskAssignRuleConvert.INSTANCE.convertList2(rules); + newRules.forEach(rule -> rule.setProcessDefinitionId(toProcessDefinitionId).setId(null).setCreateTime(null) + .setUpdateTime(null)); + taskRuleMapper.insertBatch(newRules); + } + + @Override + public void checkTaskAssignRuleAllConfig(String id) { + // 一个用户任务都没配置,所以无需配置规则 + List taskAssignRules = getTaskAssignRuleList(id, null); + if (CollUtil.isEmpty(taskAssignRules)) { + return; + } + // 校验未配置规则的任务 + taskAssignRules.forEach(rule -> { + if (CollUtil.isEmpty(rule.getOptions())) { + throw exception(MODEL_DEPLOY_FAIL_TASK_ASSIGN_RULE_NOT_CONFIG, rule.getTaskDefinitionName()); + } + }); + } + + private void validTaskAssignRuleOptions(Integer type, Set options) { + if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.ROLE.getType())) { + roleApi.validRoleList(options); + } else if (ObjectUtils.equalsAny(type, BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType(), + BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType())) { + deptApi.validateDeptList(options); + } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.POST.getType())) { + postApi.validPostList(options); + } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER.getType())) { + adminUserApi.validateUserList(options); + } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.USER_GROUP.getType())) { + userGroupService.validUserGroups(options); + } else if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.SCRIPT.getType())) { + dictDataApi.validateDictDataList(DictTypeConstants.TASK_ASSIGN_SCRIPT, + CollectionUtils.convertSet(options, String::valueOf)); + } else { + throw new IllegalArgumentException(format("未知的规则类型({})", type)); + } + } + + @Override + @DataPermission(enable = false) // 忽略数据权限,不然分配会存在问题 + public Set calculateTaskCandidateUsers(DelegateExecution execution) { + // 1. 先从提前选好的审批人中获取 + List assignee = processInstanceService.getAssigneeByProcessInstanceIdAndTaskDefinitionKey( + execution.getProcessInstanceId(), execution.getCurrentActivityId()); + if (CollUtil.isNotEmpty(assignee)) { + // TODO @hai:new HashSet 即可 + return convertSet(assignee, Function.identity()); + } + // 2. 通过分配规则,计算审批人 + BpmTaskAssignRuleDO rule = getTaskRule(execution); + return calculateTaskCandidateUsers(execution, rule); + } + + @VisibleForTesting + BpmTaskAssignRuleDO getTaskRule(DelegateExecution execution) { + List taskRules = getTaskAssignRuleListByProcessDefinitionId( + execution.getProcessDefinitionId(), execution.getCurrentActivityId()); + if (CollUtil.isEmpty(taskRules)) { + throw new FlowableException(format("流程任务({}/{}/{}) 找不到符合的任务规则", + execution.getId(), execution.getProcessDefinitionId(), execution.getCurrentActivityId())); + } + if (taskRules.size() > 1) { + throw new FlowableException(format("流程任务({}/{}/{}) 找到过多任务规则({})", + execution.getId(), execution.getProcessDefinitionId(), execution.getCurrentActivityId())); + } + return taskRules.get(0); + } + + @VisibleForTesting + Set calculateTaskCandidateUsers(DelegateExecution execution, BpmTaskAssignRuleDO rule) { + Set assigneeUserIds = null; + if (Objects.equals(BpmTaskAssignRuleTypeEnum.ROLE.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByRole(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.DEPT_MEMBER.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByDeptMember(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.DEPT_LEADER.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByDeptLeader(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.POST.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByPost(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.USER.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByUser(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.USER_GROUP.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByUserGroup(rule); + } else if (Objects.equals(BpmTaskAssignRuleTypeEnum.SCRIPT.getType(), rule.getType())) { + assigneeUserIds = calculateTaskCandidateUsersByScript(execution, rule); + } + + // 移除被禁用的用户 + removeDisableUsers(assigneeUserIds); + // 如果候选人为空,抛出异常 + if (CollUtil.isEmpty(assigneeUserIds)) { + log.error("[calculateTaskCandidateUsers][流程任务({}/{}/{}) 任务规则({}) 找不到候选人]", execution.getId(), + execution.getProcessDefinitionId(), execution.getCurrentActivityId(), toJsonString(rule)); + throw exception(TASK_CREATE_FAIL_NO_CANDIDATE_USER); + } + return assigneeUserIds; + } + + private Set calculateTaskCandidateUsersByRole(BpmTaskAssignRuleDO rule) { + return permissionApi.getUserRoleIdListByRoleIds(rule.getOptions()); + } + + private Set calculateTaskCandidateUsersByDeptMember(BpmTaskAssignRuleDO rule) { + List users = adminUserApi.getUserListByDeptIds(rule.getOptions()); + return convertSet(users, AdminUserRespDTO::getId); + } + + private Set calculateTaskCandidateUsersByDeptLeader(BpmTaskAssignRuleDO rule) { + List depts = deptApi.getDeptList(rule.getOptions()); + return convertSet(depts, DeptRespDTO::getLeaderUserId); + } + + private Set calculateTaskCandidateUsersByPost(BpmTaskAssignRuleDO rule) { + List users = adminUserApi.getUserListByPostIds(rule.getOptions()); + return convertSet(users, AdminUserRespDTO::getId); + } + + private Set calculateTaskCandidateUsersByUser(BpmTaskAssignRuleDO rule) { + return rule.getOptions(); + } + + private Set calculateTaskCandidateUsersByUserGroup(BpmTaskAssignRuleDO rule) { + List userGroups = userGroupService.getUserGroupList(rule.getOptions()); + Set userIds = new HashSet<>(); + userGroups.forEach(group -> userIds.addAll(group.getMemberUserIds())); + return userIds; + } + + private Set calculateTaskCandidateUsersByScript(DelegateExecution execution, BpmTaskAssignRuleDO rule) { + // 获得对应的脚本 + List scripts = new ArrayList<>(rule.getOptions().size()); + rule.getOptions().forEach(id -> { + BpmTaskAssignScript script = scriptMap.get(id); + if (script == null) { + throw exception(TASK_ASSIGN_SCRIPT_NOT_EXISTS, id); + } + scripts.add(script); + }); + // 逐个计算任务 + Set userIds = new HashSet<>(); + scripts.forEach(script -> CollUtil.addAll(userIds, script.calculateTaskCandidateUsers(execution))); + return userIds; + } + + @VisibleForTesting + void removeDisableUsers(Set assigneeUserIds) { + if (CollUtil.isEmpty(assigneeUserIds)) { + return; + } + Map userMap = adminUserApi.getUserMap(assigneeUserIds); + assigneeUserIds.removeIf(id -> { + AdminUserRespDTO user = userMap.get(id); + return user == null || !CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus()); + }); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupService.java new file mode 100644 index 0000000..da18510 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupService.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import java.util.*; +import javax.validation.*; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 用户组 Service 接口 + * + * @author 芋道源码 + */ +public interface BpmUserGroupService { + + /** + * 创建用户组 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createUserGroup(@Valid BpmUserGroupCreateReqVO createReqVO); + + /** + * 更新用户组 + * + * @param updateReqVO 更新信息 + */ + void updateUserGroup(@Valid BpmUserGroupUpdateReqVO updateReqVO); + + /** + * 删除用户组 + * + * @param id 编号 + */ + void deleteUserGroup(Long id); + + /** + * 获得用户组 + * + * @param id 编号 + * @return 用户组 + */ + BpmUserGroupDO getUserGroup(Long id); + + /** + * 获得用户组列表 + * + * @param ids 编号 + * @return 用户组列表 + */ + List getUserGroupList(Collection ids); + + /** + * 获得指定状态的用户组列表 + * + * @param status 状态 + * @return 用户组列表 + */ + List getUserGroupListByStatus(Integer status); + + /** + * 获得用户组分页 + * + * @param pageReqVO 分页查询 + * @return 用户组分页 + */ + PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO); + + /** + * 校验用户组们是否有效。如下情况,视为无效: + * 1. 用户组编号不存在 + * 2. 用户组被禁用 + * + * @param ids 用户组编号数组 + */ + void validUserGroups(Set ids); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceImpl.java new file mode 100644 index 0000000..e6a93b4 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceImpl.java @@ -0,0 +1,111 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmUserGroupConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmUserGroupMapper; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; + +/** + * 用户组 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class BpmUserGroupServiceImpl implements BpmUserGroupService { + + @Resource + private BpmUserGroupMapper userGroupMapper; + + @Override + public Long createUserGroup(BpmUserGroupCreateReqVO createReqVO) { + // 插入 + BpmUserGroupDO userGroup = BpmUserGroupConvert.INSTANCE.convert(createReqVO); + userGroupMapper.insert(userGroup); + // 返回 + return userGroup.getId(); + } + + @Override + public void updateUserGroup(BpmUserGroupUpdateReqVO updateReqVO) { + // 校验存在 + this.validateUserGroupExists(updateReqVO.getId()); + // 更新 + BpmUserGroupDO updateObj = BpmUserGroupConvert.INSTANCE.convert(updateReqVO); + userGroupMapper.updateById(updateObj); + } + + @Override + public void deleteUserGroup(Long id) { + // 校验存在 + this.validateUserGroupExists(id); + // 删除 + userGroupMapper.deleteById(id); + } + + private void validateUserGroupExists(Long id) { + if (userGroupMapper.selectById(id) == null) { + throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS); + } + } + + @Override + public BpmUserGroupDO getUserGroup(Long id) { + return userGroupMapper.selectById(id); + } + + @Override + public List getUserGroupList(Collection ids) { + return userGroupMapper.selectBatchIds(ids); + } + + + @Override + public List getUserGroupListByStatus(Integer status) { + return userGroupMapper.selectListByStatus(status); + } + + @Override + public PageResult getUserGroupPage(BpmUserGroupPageReqVO pageReqVO) { + return userGroupMapper.selectPage(pageReqVO); + } + + @Override + public void validUserGroups(Set ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得用户组信息 + List userGroups = userGroupMapper.selectBatchIds(ids); + Map userGroupMap = CollectionUtils.convertMap(userGroups, BpmUserGroupDO::getId); + // 校验 + ids.forEach(id -> { + BpmUserGroupDO userGroup = userGroupMap.get(id); + if (userGroup == null) { + throw ServiceExceptionUtil.exception(USER_GROUP_NOT_EXISTS); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(userGroup.getStatus())) { + throw exception(USER_GROUP_IS_DISABLE, userGroup.getName()); + } + }); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmFormFieldRespDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmFormFieldRespDTO.java new file mode 100644 index 0000000..1606192 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmFormFieldRespDTO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.service.definition.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Bpm 表单的 Field 表单项 Response DTO + * 字段的定义,可见 https://github.com/JakHuang/form-generator/issues/46 文档 + * + * @author 芋道源码 + */ +@Data +public class BpmFormFieldRespDTO { + + /** + * 表单标题 + */ + private String label; + /** + * 表单字段的属性名,可自定义 + */ + @JsonProperty(value = "vModel") + private String vModel; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmModelMetaInfoRespDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmModelMetaInfoRespDTO.java new file mode 100644 index 0000000..3a36b0e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmModelMetaInfoRespDTO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.service.definition.dto; + +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; +import lombok.Data; + +/** + * BPM 流程 MetaInfo Response DTO + * 主要用于 { Model#setMetaInfo(String)} 的存储 + * + * @author 芋道源码 + */ +@Data +public class BpmModelMetaInfoRespDTO { + + /** + * 流程描述 + */ + private String description; + /** + * 表单类型 + */ + private Integer formType; + /** + * 表单编号 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + */ + private Long formId; + /** + * 自定义表单的提交路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomCreatePath; + /** + * 自定义表单的查看路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomViewPath; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO.java new file mode 100644 index 0000000..80b939e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.bpm.service.definition.dto; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum; +import lombok.Data; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; +import java.util.Objects; + +/** + * 流程定义创建 Request DTO + */ +@Data +public class BpmProcessDefinitionCreateReqDTO { + + // ========== 模型相关 ========== + + /** + * 流程模型的编号 + */ + @NotEmpty(message = "流程模型编号不能为空") + private String modelId; + /** + * 流程标识 + */ + @NotEmpty(message = "流程标识不能为空") + private String key; + /** + * 流程名称 + */ + @NotEmpty(message = "流程名称不能为空") + private String name; + /** + * 流程描述 + */ + private String description; + /** + * 流程分类 + * 参见 bpm_model_category 数据字典 + */ + @NotEmpty(message = "流程分类不能为空") + private String category; + /** + * BPMN XML + */ + @NotEmpty(message = "BPMN XML 不能为空") + private byte[] bpmnBytes; + + // ========== 表单相关 ========== + + /** + * 表单类型 + */ + private Integer formType; + /** + * 动态表单编号 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + */ + private Long formId; + /** + * 表单的配置 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + */ + private String formConf; + /** + * 表单项的数组 + * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时 + */ + private List formFields; + /** + * 自定义表单的提交路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomCreatePath; + /** + * 自定义表单的查看路径,使用 Vue 的路由地址 + * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时 + */ + private String formCustomViewPath; + + @AssertTrue(message = "流程表单信息不全") + public boolean isNormalFormTypeValid() { + return true; + + } + + @AssertTrue(message = "业务表单信息不全") + public boolean isNormalCustomTypeValid() { + return true; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageService.java new file mode 100644 index 0000000..ff51ae3 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageService.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.bpm.service.message; + +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; + +import javax.validation.Valid; + +/** + * BPM 消息 Service 接口 + * + * TODO 芋艿:未来支持消息的可配置;不同的流程,在什么场景下,需要发送什么消息,消息的内容是什么; + * + * @author 芋道源码 + */ +public interface BpmMessageService { + + /** + * 发送流程实例被通过的消息 + * + * @param reqDTO 发送信息 + */ + void sendMessageWhenProcessInstanceApprove(@Valid BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO); + + /** + * 发送流程实例被不通过的消息 + * + * @param reqDTO 发送信息 + */ + void sendMessageWhenProcessInstanceReject(@Valid BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO); + + /** + * 发送任务被分配的消息 + * + * @param reqDTO 发送信息 + */ + void sendMessageWhenTaskAssigned(@Valid BpmMessageSendWhenTaskCreatedReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageServiceImpl.java new file mode 100644 index 0000000..0323701 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/BpmMessageServiceImpl.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.bpm.service.message; + +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.module.bpm.convert.message.BpmMessageConvert; +import cn.iocoder.yudao.module.bpm.enums.message.BpmMessageEnum; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; +import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; +import cn.iocoder.yudao.module.system.api.sms.SmsSendApi; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * BPM 消息 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class BpmMessageServiceImpl implements BpmMessageService { + + @Resource + private SmsSendApi smsSendApi; + + @Resource + private WebProperties webProperties; + + @Override + public void sendMessageWhenProcessInstanceApprove(BpmMessageSendWhenProcessInstanceApproveReqDTO reqDTO) { + Map templateParams = new HashMap<>(); + templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); + templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(), + BpmMessageEnum.PROCESS_INSTANCE_APPROVE.getSmsTemplateCode(), templateParams)); + } + + @Override + public void sendMessageWhenProcessInstanceReject(BpmMessageSendWhenProcessInstanceRejectReqDTO reqDTO) { + Map templateParams = new HashMap<>(); + templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); + templateParams.put("reason", reqDTO.getReason()); + templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getStartUserId(), + BpmMessageEnum.PROCESS_INSTANCE_REJECT.getSmsTemplateCode(), templateParams)); + } + + @Override + public void sendMessageWhenTaskAssigned(BpmMessageSendWhenTaskCreatedReqDTO reqDTO) { + Map templateParams = new HashMap<>(); + templateParams.put("processInstanceName", reqDTO.getProcessInstanceName()); + templateParams.put("taskName", reqDTO.getTaskName()); + templateParams.put("startUserNickname", reqDTO.getStartUserNickname()); + templateParams.put("detailUrl", getProcessInstanceDetailUrl(reqDTO.getProcessInstanceId())); + smsSendApi.sendSingleSmsToAdmin(BpmMessageConvert.INSTANCE.convert(reqDTO.getAssigneeUserId(), + BpmMessageEnum.TASK_ASSIGNED.getSmsTemplateCode(), templateParams)); + } + + private String getProcessInstanceDetailUrl(String taskId) { + return webProperties.getAdminUi().getUrl() + "/bpm/process-instance/detail?id=" + taskId; + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceApproveReqDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceApproveReqDTO.java new file mode 100644 index 0000000..7c37734 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceApproveReqDTO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.bpm.service.message.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * BPM 发送流程实例被通过 Request DTO + */ +@Data +public class BpmMessageSendWhenProcessInstanceApproveReqDTO { + + /** + * 流程实例的编号 + */ + @NotEmpty(message = "流程实例的编号不能为空") + private String processInstanceId; + /** + * 流程实例的名字 + */ + @NotEmpty(message = "流程实例的名字不能为空") + private String processInstanceName; + @NotNull(message = "发起人的用户编号") + private Long startUserId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceRejectReqDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceRejectReqDTO.java new file mode 100644 index 0000000..69a266b --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceRejectReqDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.bpm.service.message.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * BPM 发送流程实例被不通过 Request DTO + */ +@Data +public class BpmMessageSendWhenProcessInstanceRejectReqDTO { + + /** + * 流程实例的编号 + */ + @NotEmpty(message = "流程实例的编号不能为空") + private String processInstanceId; + /** + * 流程实例的名字 + */ + @NotEmpty(message = "流程实例的名字不能为空") + private String processInstanceName; + @NotNull(message = "发起人的用户编号") + private Long startUserId; + + /** + * 不通过理由 + */ + @NotEmpty(message = "不通过理由不能为空") + private String reason; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenTaskCreatedReqDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenTaskCreatedReqDTO.java new file mode 100644 index 0000000..7cb0e3d --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/message/dto/BpmMessageSendWhenTaskCreatedReqDTO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.bpm.service.message.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * BPM 发送任务被分配 Request DTO + */ +@Data +public class BpmMessageSendWhenTaskCreatedReqDTO { + + /** + * 流程实例的编号 + */ + @NotEmpty(message = "流程实例的编号不能为空") + private String processInstanceId; + /** + * 流程实例的名字 + */ + @NotEmpty(message = "流程实例的名字不能为空") + private String processInstanceName; + @NotNull(message = "发起人的用户编号") + private Long startUserId; + @NotEmpty(message = "发起人的昵称") + private String startUserNickname; + + /** + * 流程任务的编号 + */ + @NotEmpty(message = "流程任务的编号不能为空") + private String taskId; + /** + * 流程任务的名字 + */ + @NotEmpty(message = "流程任务的名字不能为空") + private String taskName; + + /** + * 审批人的用户编号 + */ + @NotNull(message = "审批人的用户编号不能为空") + private Long assigneeUserId; + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java new file mode 100644 index 0000000..a851f40 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveService.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.bpm.service.oa; + + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; + +import javax.validation.Valid; + +/** + * 请假申请 Service 接口 + * + * @author jason + * @author 芋道源码 + */ +public interface BpmOALeaveService { + + /** + * 创建请假申请 + * + * @param userId 用户编号 + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createLeave(Long userId, @Valid BpmOALeaveCreateReqVO createReqVO); + + /** + * 更新请假申请的状态 + * + * @param id 编号 + * @param result 结果 + */ + void updateLeaveResult(Long id, Integer result); + + /** + * 获得请假申请 + * + * @param id 编号 + * @return 请假申请 + */ + BpmOALeaveDO getLeave(Long id); + + /** + * 获得请假申请分页 + * + * @param userId 用户编号 + * @param pageReqVO 分页查询 + * @return 请假申请分页 + */ + PageResult getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java new file mode 100644 index 0000000..16f50aa --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.bpm.service.oa; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; +import cn.iocoder.yudao.module.bpm.convert.oa.BpmOALeaveConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOALeaveMapper; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_LEAVE_NOT_EXISTS; + +/** + * OA 请假申请 Service 实现类 + * + * @author jason + * @author 芋道源码 + */ +@Service +@Validated +public class BpmOALeaveServiceImpl implements BpmOALeaveService { + + /** + * OA 请假对应的流程定义 KEY + */ + public static final String PROCESS_KEY = "oa_leave"; + + @Resource + private BpmOALeaveMapper leaveMapper; + + @Resource + private BpmProcessInstanceApi processInstanceApi; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createLeave(Long userId, BpmOALeaveCreateReqVO createReqVO) { + // 插入 OA 请假单 + long day = LocalDateTimeUtil.between(createReqVO.getStartTime(), createReqVO.getEndTime()).toDays(); + BpmOALeaveDO leave = BpmOALeaveConvert.INSTANCE.convert(createReqVO).setUserId(userId).setDay(day) + .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); + leaveMapper.insert(leave); + + // 发起 BPM 流程 + Map processInstanceVariables = new HashMap<>(); + processInstanceVariables.put("day", day); + String processInstanceId = processInstanceApi.createProcessInstance(userId, + new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(PROCESS_KEY) + .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(leave.getId()))); + + // 将工作流的编号,更新到 OA 请假单中 + leaveMapper.updateById(new BpmOALeaveDO().setId(leave.getId()).setProcessInstanceId(processInstanceId)); + return leave.getId(); + } + + @Override + public void updateLeaveResult(Long id, Integer result) { + validateLeaveExists(id); + leaveMapper.updateById(new BpmOALeaveDO().setId(id).setResult(result)); + } + + private void validateLeaveExists(Long id) { + if (leaveMapper.selectById(id) == null) { + throw exception(OA_LEAVE_NOT_EXISTS); + } + } + + @Override + public BpmOALeaveDO getLeave(Long id) { + return leaveMapper.selectById(id); + } + + @Override + public PageResult getLeavePage(Long userId, BpmOALeavePageReqVO pageReqVO) { + return leaveMapper.selectPage(userId, pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/listener/BpmOALeaveResultListener.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/listener/BpmOALeaveResultListener.java new file mode 100644 index 0000000..2354070 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/listener/BpmOALeaveResultListener.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.bpm.service.oa.listener; + +import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEvent; +import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventListener; +import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveService; +import cn.iocoder.yudao.module.bpm.service.oa.BpmOALeaveServiceImpl; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * OA 请假单的结果的监听器实现类 + * + * @author 芋道源码 + */ +@Component +public class BpmOALeaveResultListener extends BpmProcessInstanceResultEventListener { + + @Resource + private BpmOALeaveService leaveService; + + @Override + protected String getProcessDefinitionKey() { + return BpmOALeaveServiceImpl.PROCESS_KEY; + } + + @Override + protected void onEvent(BpmProcessInstanceResultEvent event) { + leaveService.updateLeaveResult(Long.parseLong(event.getBusinessKey()), event.getResult()); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityService.java new file mode 100644 index 0000000..4bed164 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityService.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.bpm.service.task; + +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO; +import org.flowable.engine.history.HistoricActivityInstance; + +import java.util.List; + +/** + * BPM 活动实例 Service 接口 + * + * @author 芋道源码 + */ +public interface BpmActivityService { + + /** + * 获得指定流程实例的活动实例列表 + * + * @param processInstanceId 流程实例的编号 + * @return 活动实例列表 + */ + List getActivityListByProcessInstanceId(String processInstanceId); + + /** + * 获得执行编号对应的活动实例 + * + * @param executionId 执行编号 + * @return 活动实例 + */ + List getHistoricActivityListByExecutionId(String executionId); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityServiceImpl.java new file mode 100644 index 0000000..c06445e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmActivityServiceImpl.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.service.task; + +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.activity.BpmActivityRespVO; +import cn.iocoder.yudao.module.bpm.convert.task.BpmActivityConvert; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.HistoryService; +import org.flowable.engine.history.HistoricActivityInstance; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * BPM 活动实例 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Slf4j +@Validated +public class BpmActivityServiceImpl implements BpmActivityService { + + @Resource + private HistoryService historyService; + + @Override + public List getActivityListByProcessInstanceId(String processInstanceId) { + List activityList = historyService.createHistoricActivityInstanceQuery() + .processInstanceId(processInstanceId).list(); + return BpmActivityConvert.INSTANCE.convertList(activityList); + } + + @Override + public List getHistoricActivityListByExecutionId(String executionId) { + return historyService.createHistoricActivityInstanceQuery().executionId(executionId).list(); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java new file mode 100644 index 0000000..4dbd1bf --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceService.java @@ -0,0 +1,169 @@ +package cn.iocoder.yudao.module.bpm.service.task; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; +import org.flowable.engine.delegate.event.FlowableCancelledEvent; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.runtime.ProcessInstance; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 流程实例 Service 接口 + * + * @author 芋道源码 + */ +public interface BpmProcessInstanceService { + + /** + * 获得流程实例 + * + * @param id 流程实例的编号 + * @return 流程实例 + */ + ProcessInstance getProcessInstance(String id); + + /** + * 获得流程实例列表 + * + * @param ids 流程实例的编号集合 + * @return 流程实例列表 + */ + List getProcessInstances(Set ids); + + /** + * 获得流程实例 Map + * + * @param ids 流程实例的编号集合 + * @return 流程实例列表 Map + */ + default Map getProcessInstanceMap(Set ids) { + return CollectionUtils.convertMap(getProcessInstances(ids), ProcessInstance::getProcessInstanceId); + } + + /** + * 获得流程实例名字 Map + * + * @param ids 流程实例的编号集合 + * @return 对应的映射关系 + */ + default Map getProcessInstanceNameMap(Set ids) { + return CollectionUtils.convertMap(getProcessInstances(ids), + ProcessInstance::getProcessInstanceId, ProcessInstance::getName); + } + + /** + * 获得流程实例的分页 + * + * @param userId 用户编号 + * @param pageReqVO 分页请求 + * @return 流程实例的分页 + */ + PageResult getMyProcessInstancePage(Long userId, + @Valid BpmProcessInstanceMyPageReqVO pageReqVO); + + /** + * 创建流程实例(提供给前端) + * + * @param userId 用户编号 + * @param createReqVO 创建信息 + * @return 实例的编号 + */ + String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO); + + /** + * 创建流程实例(提供给内部) + * + * @param userId 用户编号 + * @param createReqDTO 创建信息 + * @return 实例的编号 + */ + String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO); + + /** + * 获得流程实例 VO 信息 + * + * @param id 流程实例的编号 + * @return 流程实例 + */ + BpmProcessInstanceRespVO getProcessInstanceVO(String id); + + /** + * 取消流程实例 + * + * @param userId 用户编号 + * @param cancelReqVO 取消信息 + */ + void cancelProcessInstance(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO); + + /** + * 获得历史的流程实例 + * + * @param id 流程实例的编号 + * @return 历史的流程实例 + */ + HistoricProcessInstance getHistoricProcessInstance(String id); + + /** + * 获得历史的流程实例列表 + * + * @param ids 流程实例的编号集合 + * @return 历史的流程实例列表 + */ + List getHistoricProcessInstances(Set ids); + + /** + * 获得历史的流程实例 Map + * + * @param ids 流程实例的编号集合 + * @return 历史的流程实例列表 Map + */ + default Map getHistoricProcessInstanceMap(Set ids) { + return CollectionUtils.convertMap(getHistoricProcessInstances(ids), HistoricProcessInstance::getId); + } + + /** + * 创建 ProcessInstance 拓展记录 + * + * @param instance 流程任务 + */ + void createProcessInstanceExt(ProcessInstance instance); + + /** + * 更新 ProcessInstance 拓展记录为取消 + * + * @param event 流程取消事件 + */ + void updateProcessInstanceExtCancel(FlowableCancelledEvent event); + + /** + * 更新 ProcessInstance 拓展记录为完成 + * + * @param instance 流程任务 + */ + void updateProcessInstanceExtComplete(ProcessInstance instance); + + /** + * 更新 ProcessInstance 拓展记录为不通过 + * + * @param id 流程编号 + * @param reason 理由。例如说,审批不通过时,需要传递该值 + */ + void updateProcessInstanceExtReject(String id, String reason); + + // TODO @hai:改成 getProcessInstanceAssigneesByTaskDefinitionKey(String id, String taskDefinitionKey) + /** + * 获取流程实例中,取出指定流程任务提前指定的审批人 + * + * @param processInstanceId 流程实例的编号 + * @param taskDefinitionKey 流程任务定义的 key + * @return 审批人集合 + */ + List getAssigneeByProcessInstanceIdAndTaskDefinitionKey(String processInstanceId, String taskDefinitionKey); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java new file mode 100644 index 0000000..07c7a66 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.bpm.service.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.number.NumberUtils; import cn.iocoder.yudao.framework.flowable.core.context.FlowableContextHolder; import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.*; import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum; import cn.iocoder.yudao.module.bpm.framework.bpm.core.event.BpmProcessInstanceResultEventPublisher; import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.HistoryService; import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.event.FlowableCancelledEvent; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Valid; import java.time.LocalDateTime; import java.util.*; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; /** * 流程实例 Service 实现类 *

    * ProcessDefinition & ProcessInstance & Execution & Task 的关系: * 1. *

    * HistoricProcessInstance & ProcessInstance 的关系: * 1. *

    * 简单来说,前者 = 历史 + 运行中的流程实例,后者仅是运行中的流程实例 * * @author 芋道源码 */ @Service @Validated @Slf4j public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService { @Resource private RuntimeService runtimeService; @Resource private BpmProcessInstanceExtMapper processInstanceExtMapper; @Resource @Lazy // 解决循环依赖 private BpmTaskService taskService; @Resource private BpmProcessDefinitionService processDefinitionService; @Resource private HistoryService historyService; @Resource private AdminUserApi adminUserApi; @Resource private DeptApi deptApi; @Resource private BpmProcessInstanceResultEventPublisher processInstanceResultEventPublisher; @Resource private BpmMessageService messageService; @Override public ProcessInstance getProcessInstance(String id) { return runtimeService.createProcessInstanceQuery() .includeProcessVariables() .processInstanceId(id) .singleResult(); } @Override public List getProcessInstances(Set ids) { return runtimeService.createProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public PageResult getMyProcessInstancePage(Long userId, BpmProcessInstanceMyPageReqVO pageReqVO) { // 通过 BpmProcessInstanceExtDO 表,先查询到对应的分页 PageResult pageResult = processInstanceExtMapper.selectPage(userId, pageReqVO); if (CollUtil.isEmpty(pageResult.getList())) { return new PageResult<>(pageResult.getTotal()); } // 获得流程 Task Map List processInstanceIds = convertList(pageResult.getList(), BpmProcessInstanceExtDO::getProcessInstanceId); Map> taskMap = taskService.getTaskMapByProcessInstanceIds(processInstanceIds); // 转换返回 return BpmProcessInstanceConvert.INSTANCE.convertPage(pageResult, taskMap); } @Override @Transactional(rollbackFor = Exception.class) public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition(createReqVO.getProcessDefinitionId()); // 发起流程 return createProcessInstance0(userId, definition, createReqVO.getVariables(), null, createReqVO.getAssignee()); } @Override public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getActiveProcessDefinition(createReqDTO.getProcessDefinitionKey()); // 发起流程 return createProcessInstance0(userId, definition, createReqDTO.getVariables(), createReqDTO.getBusinessKey(), createReqDTO.getAssignee()); } @Override public BpmProcessInstanceRespVO getProcessInstanceVO(String id) { // 获得流程实例 HistoricProcessInstance processInstance = getHistoricProcessInstance(id); if (processInstance == null) { return null; } BpmProcessInstanceExtDO processInstanceExt = processInstanceExtMapper.selectByProcessInstanceId(id); Assert.notNull(processInstanceExt, "流程实例拓展({}) 不存在", id); // 获得流程定义 ProcessDefinition processDefinition = processDefinitionService .getProcessDefinition(processInstance.getProcessDefinitionId()); Assert.notNull(processDefinition, "流程定义({}) 不存在", processInstance.getProcessDefinitionId()); BpmProcessDefinitionExtDO processDefinitionExt = processDefinitionService.getProcessDefinitionExt( processInstance.getProcessDefinitionId()); Assert.notNull(processDefinitionExt, "流程定义拓展({}) 不存在", id); String bpmnXml = processDefinitionService.getProcessDefinitionBpmnXML(processInstance.getProcessDefinitionId()); // 获得 User AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(processInstance.getStartUserId())); DeptRespDTO dept = null; if (startUser != null) { dept = deptApi.getDept(startUser.getDeptId()); } // 拼接结果 return BpmProcessInstanceConvert.INSTANCE.convert2(processInstance, processInstanceExt, processDefinition, processDefinitionExt, bpmnXml, startUser, dept); } @Override public void cancelProcessInstance(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) { // 校验流程实例存在 ProcessInstance instance = getProcessInstance(cancelReqVO.getId()); if (instance == null) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS); } // 只能取消自己的 if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF); } // 通过删除流程实例,实现流程实例的取消, // 删除流程实例,正则执行任务 ACT_RU_TASK. 任务会被删除。通过历史表查询 deleteProcessInstance(cancelReqVO.getId(), BpmProcessInstanceDeleteReasonEnum.CANCEL_TASK.format(cancelReqVO.getReason())); } /** * 获得历史的流程实例 * * @param id 流程实例的编号 * @return 历史的流程实例 */ @Override public HistoricProcessInstance getHistoricProcessInstance(String id) { return historyService.createHistoricProcessInstanceQuery().processInstanceId(id).singleResult(); } @Override public List getHistoricProcessInstances(Set ids) { return historyService.createHistoricProcessInstanceQuery().processInstanceIds(ids).list(); } @Override public void createProcessInstanceExt(ProcessInstance instance) { // 获得流程定义 ProcessDefinition definition = processDefinitionService.getProcessDefinition2(instance.getProcessDefinitionId()); // 插入 BpmProcessInstanceExtDO 对象 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getId()) .setProcessDefinitionId(definition.getId()) .setName(instance.getProcessDefinitionName()) .setStartUserId(Long.valueOf(instance.getStartUserId())) .setCategory(definition.getCategory()) .setStatus(BpmProcessInstanceStatusEnum.RUNNING.getStatus()) .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); processInstanceExtMapper.insert(instanceExtDO); } @Override public void updateProcessInstanceExtCancel(FlowableCancelledEvent event) { // 判断是否为 Reject 不通过。如果是,则不进行更新. // 因为,updateProcessInstanceExtReject 方法,已经进行更新了 if (BpmProcessInstanceDeleteReasonEnum.isRejectReason((String) event.getCause())) { return; } // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(event.getProcessInstanceId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(event.getProcessInstanceId()) .setEndTime(LocalDateTime.now()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Override public void updateProcessInstanceExtComplete(ProcessInstance instance) { // 需要主动查询,因为 instance 只有 id 属性 // 另外,此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId()); // 更新拓展表 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO() .setProcessInstanceId(instance.getProcessInstanceId()) .setEndTime(LocalDateTime.now()) // 由于 ProcessInstance 里没有办法拿到 endTime,所以这里设置 .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()); // 如果正常完全,说明审批通过 processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被通过的消息 messageService.sendMessageWhenProcessInstanceApprove(BpmProcessInstanceConvert.INSTANCE.convert2ApprovedReq(instance)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } @Override @Transactional(rollbackFor = Exception.class) public void updateProcessInstanceExtReject(String id, String reason) { // 需要主动查询,因为 instance 只有 id 属性 ProcessInstance processInstance = getProcessInstance(id); // 删除流程实例,以实现驳回任务时,取消整个审批流程 deleteProcessInstance(id, StrUtil.format(BpmProcessInstanceDeleteReasonEnum.REJECT_TASK.format(reason))); // 更新 status + result // 注意,不能和上面的逻辑更换位置。因为 deleteProcessInstance 会触发流程的取消,进而调用 updateProcessInstanceExtCancel 方法, // 设置 result 为 BpmProcessInstanceStatusEnum.CANCEL,显然和 result 不一定是一致的 BpmProcessInstanceExtDO instanceExtDO = new BpmProcessInstanceExtDO().setProcessInstanceId(id) .setStatus(BpmProcessInstanceStatusEnum.FINISH.getStatus()) .setResult(BpmProcessInstanceResultEnum.REJECT.getResult()); processInstanceExtMapper.updateByProcessInstanceId(instanceExtDO); // 发送流程被不通过的消息 messageService.sendMessageWhenProcessInstanceReject(BpmProcessInstanceConvert.INSTANCE.convert2RejectReq(processInstance, reason)); // 发送流程实例的状态事件 processInstanceResultEventPublisher.sendProcessInstanceResultEvent( BpmProcessInstanceConvert.INSTANCE.convert(this, processInstance, instanceExtDO.getResult())); } private void deleteProcessInstance(String id, String reason) { runtimeService.deleteProcessInstance(id, reason); } private String createProcessInstance0(Long userId, ProcessDefinition definition, Map variables, String businessKey, Map> assignee) { // 校验流程定义 if (definition == null) { throw exception(PROCESS_DEFINITION_NOT_EXISTS); } if (definition.isSuspended()) { throw exception(PROCESS_DEFINITION_IS_SUSPENDED); } // 设置上下文信息 // TODO @hai:要不往 variables 存到一个全局固定 key 里,减少对上下文的依赖 FlowableContextHolder.setAssignee(assignee); // 创建流程实例 ProcessInstance instance = runtimeService.createProcessInstanceBuilder() .processDefinitionId(definition.getId()) .businessKey(businessKey) .name(definition.getName().trim()) .variables(variables) .start(); // 设置流程名字 runtimeService.setProcessInstanceName(instance.getId(), definition.getName()); // 补全流程实例的拓展表 processInstanceExtMapper.updateByProcessInstanceId(new BpmProcessInstanceExtDO().setProcessInstanceId(instance.getId()) .setFormVariables(variables).setAssignee(assignee)); return instance.getId(); } @Override public List getAssigneeByProcessInstanceIdAndTaskDefinitionKey(String processInstanceId, String taskDefinitionKey) { // 1. 先从上下文获取,首次提交数据库中查询不到 List result = FlowableContextHolder.getAssigneeByTaskDefinitionKey(taskDefinitionKey); if (CollUtil.isNotEmpty(result)) { return result; } // 2. 从数据库中获取 BpmProcessInstanceExtDO instance = processInstanceExtMapper.selectByProcessInstanceId(processInstanceId); if (instance == null) { throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS); } if (CollUtil.isNotEmpty(instance.getAssignee())) { return instance.getAssignee().get(taskDefinitionKey); } return Collections.emptyList(); } } \ No newline at end of file diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java new file mode 100644 index 0000000..50b7f8e --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -0,0 +1,195 @@ +package cn.iocoder.yudao.module.bpm.service.task; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; +import org.flowable.task.api.Task; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 流程任务实例 Service 接口 + * + * @author jason + * @author 芋道源码 + */ +public interface BpmTaskService { + + /** + * 获得待办的流程任务分页 + * + * @param userId 用户编号 + * @param pageReqVO 分页请求 + * @return 流程任务分页 + */ + PageResult getTodoTaskPage(Long userId, BpmTaskTodoPageReqVO pageReqVO); + + /** + * 获得已办的流程任务分页 + * + * @param userId 用户编号 + * @param pageReqVO 分页请求 + * @return 流程任务分页 + */ + PageResult getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageReqVO); + + /** + * 获得流程任务 Map + * + * @param processInstanceIds 流程实例的编号数组 + * @return 流程任务 Map + */ + default Map> getTaskMapByProcessInstanceIds(List processInstanceIds) { + return CollectionUtils.convertMultiMap(getTasksByProcessInstanceIds(processInstanceIds), + Task::getProcessInstanceId); + } + + /** + * 获得流程任务列表 + * + * @param processInstanceIds 流程实例的编号数组 + * @return 流程任务列表 + */ + List getTasksByProcessInstanceIds(List processInstanceIds); + + /** + * 获得指令流程实例的流程任务列表,包括所有状态的 + * + * @param processInstanceId 流程实例的编号 + * @return 流程任务列表 + */ + List getTaskListByProcessInstanceId(String processInstanceId); + + + /** + * 通过任务 ID 集合,获取任务扩展表信息集合 + * + * @param taskIdList 任务 ID 集合 + * @return 任务列表 + */ + List getTaskListByTaskIdList(List taskIdList); + + /** + * 通过任务 + * + * @param userId 用户编号 + * @param reqVO 通过请求 + */ + void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO); + + /** + * 不通过任务 + * + * @param userId 用户编号 + * @param reqVO 不通过请求 + */ + void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO); + + /** + * 将流程任务分配给指定用户 + * + * @param userId 用户编号 + * @param reqVO 分配请求 + */ + void updateTaskAssignee(Long userId, BpmTaskUpdateAssigneeReqVO reqVO); + + /** + * 将流程任务分配给指定用户 + * + * @param id 流程任务编号 + * @param userId 用户编号 + */ + void updateTaskAssignee(String id, Long userId); + + /** + * 创建 Task 拓展记录 + * + * @param task 任务实体 + */ + void createTaskExt(Task task); + + /** + * 更新 Task 拓展记录为完成 + * + * @param task 任务实体 + */ + void updateTaskExtComplete(Task task); + + /** + * 更新 Task 拓展记录为已取消 + * + * @param taskId 任务的编号 + */ + void updateTaskExtCancel(String taskId); + + /** + * 更新 Task 拓展记录,并发送通知 + * + * @param task 任务实体 + */ + void updateTaskExtAssign(Task task); + + Task getTask(String id); + + /** + * 获取当前任务的可回退的流程集合 + * + * @param taskId 当前的任务 ID + * @return 可以回退的节点列表 + */ + List getReturnTaskList(String taskId); + + /** + * 将任务回退到指定的 targetDefinitionKey 位置 + * + * @param userId 用户编号 + * @param reqVO 回退的任务key和当前所在的任务ID + */ + void returnTask(Long userId, BpmTaskReturnReqVO reqVO); + + + /** + * 将指定任务委派给其他人处理,等接收人处理后再回到原审批人手中审批 + * + * @param userId 用户编号 + * @param reqVO 被委派人和被委派的任务编号理由参数 + */ + void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO); + + /** + * 任务加签 + * + * @param userId 被加签的用户和任务 ID,加签类型 + * @param reqVO 当前用户 ID + */ + void createSignTask(Long userId, BpmTaskAddSignReqVO reqVO); + + /** + * 任务减签名 + * + * @param userId 当前用户ID + * @param reqVO 被减签的任务 ID,理由 + */ + void deleteSignTask(Long userId, BpmTaskSubSignReqVO reqVO); + + /** + * 获取指定任务的子任务和审批人信息 + * + * @param parentId 指定任务ID + * @return 子任务列表 + */ + List getChildrenTaskList(String parentId); + + /** + * 通过任务 ID,查询任务名 Map + * + * @param taskIds 任务 ID + * @return 任务 ID 与名字的 Map + */ + Map getTaskNameByTaskIds(Collection taskIds); + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java new file mode 100644 index 0000000..a3b01ba --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -0,0 +1,979 @@ +package cn.iocoder.yudao.module.bpm.service.task; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.number.NumberUtils; +import cn.iocoder.yudao.framework.common.util.object.PageUtils; +import cn.iocoder.yudao.framework.flowable.core.util.BpmnModelUtils; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; +import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmTaskExtMapper; +import cn.iocoder.yudao.module.bpm.enums.task.BpmCommentTypeEnum; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceDeleteReasonEnum; +import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum; +import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskAddSignTypeEnum; +import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; +import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; +import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import lombok.extern.slf4j.Slf4j; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.FlowElement; +import org.flowable.bpmn.model.UserTask; +import org.flowable.engine.HistoryService; +import org.flowable.engine.ManagementService; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.DelegationState; +import org.flowable.task.api.Task; +import org.flowable.task.api.TaskInfo; +import org.flowable.task.api.TaskQuery; +import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; +import org.flowable.task.service.impl.persistence.entity.TaskEntity; +import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronization; +import org.springframework.transaction.support.TransactionSynchronizationManager; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Stream; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; + +/** + * 流程任务实例 Service 实现类 + * + * @author 芋道源码 + * @author jason + */ +@Slf4j +@Service +public class BpmTaskServiceImpl implements BpmTaskService { + + @Resource + private TaskService taskService; + @Resource + private HistoryService historyService; + @Resource + private RuntimeService runtimeService; + + @Resource + private BpmProcessInstanceService processInstanceService; + @Resource + private BpmModelService bpmModelService; + @Resource + private BpmMessageService messageService; + + @Resource + private AdminUserApi adminUserApi; + @Resource + private DeptApi deptApi; + + @Resource + private BpmTaskExtMapper taskExtMapper; + + @Resource + private ManagementService managementService; + + @Override + public PageResult getTodoTaskPage(Long userId, BpmTaskTodoPageReqVO pageVO) { + // 查询待办任务 + TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(String.valueOf(userId)) // 分配给自己 + .orderByTaskCreateTime().desc(); // 创建时间倒序 + if (StrUtil.isNotBlank(pageVO.getName())) { + taskQuery.taskNameLike("%" + pageVO.getName() + "%"); + } + if (ArrayUtil.get(pageVO.getCreateTime(), 0) != null) { + taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getCreateTime()[0])); + } + if (ArrayUtil.get(pageVO.getCreateTime(), 1) != null) { + taskQuery.taskCreatedBefore(DateUtils.of(pageVO.getCreateTime()[1])); + } + // 执行查询 + List tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); + if (CollUtil.isEmpty(tasks)) { + return PageResult.empty(taskQuery.count()); + } + + // 获得 ProcessInstance Map + Map processInstanceMap = + processInstanceService.getProcessInstanceMap(convertSet(tasks, Task::getProcessInstanceId)); + // 获得 User Map + Map userMap = adminUserApi.getUserMap( + convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); + // 拼接结果 + return new PageResult<>(BpmTaskConvert.INSTANCE.convertList1(tasks, processInstanceMap, userMap), + taskQuery.count()); + } + + @Override + public PageResult getDoneTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) { + // 查询已办任务 + HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery().finished() // 已完成 + .taskAssignee(String.valueOf(userId)) // 分配给自己 + .orderByHistoricTaskInstanceEndTime().desc(); // 审批时间倒序 + if (StrUtil.isNotBlank(pageVO.getName())) { + taskQuery.taskNameLike("%" + pageVO.getName() + "%"); + } + if (pageVO.getBeginCreateTime() != null) { + taskQuery.taskCreatedAfter(DateUtils.of(pageVO.getBeginCreateTime())); + } + if (pageVO.getEndCreateTime() != null) { + taskQuery.taskCreatedBefore(DateUtils.of(pageVO.getEndCreateTime())); + } + // 执行查询 + List tasks = taskQuery.listPage(PageUtils.getStart(pageVO), pageVO.getPageSize()); + if (CollUtil.isEmpty(tasks)) { + return PageResult.empty(taskQuery.count()); + } + + // 获得 TaskExtDO Map + List bpmTaskExtDOs = + taskExtMapper.selectListByTaskIds(convertSet(tasks, HistoricTaskInstance::getId)); + Map bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); + // 获得 ProcessInstance Map + Map historicProcessInstanceMap = + processInstanceService.getHistoricProcessInstanceMap( + convertSet(tasks, HistoricTaskInstance::getProcessInstanceId)); + // 获得 User Map + Map userMap = adminUserApi.getUserMap( + convertSet(historicProcessInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()))); + // 拼接结果 + return new PageResult<>( + BpmTaskConvert.INSTANCE.convertList2(tasks, bpmTaskExtDOMap, historicProcessInstanceMap, userMap), + taskQuery.count()); + } + + @Override + public List getTasksByProcessInstanceIds(List processInstanceIds) { + if (CollUtil.isEmpty(processInstanceIds)) { + return Collections.emptyList(); + } + return taskService.createTaskQuery().processInstanceIdIn(processInstanceIds).list(); + } + + @Override + public List getTaskListByProcessInstanceId(String processInstanceId) { + // 获得任务列表 + List tasks = historyService.createHistoricTaskInstanceQuery() + .processInstanceId(processInstanceId) + .orderByHistoricTaskInstanceStartTime().desc() // 创建时间倒序 + .list(); + if (CollUtil.isEmpty(tasks)) { + return Collections.emptyList(); + } + + // 获得 TaskExtDO Map + List bpmTaskExtDOs = taskExtMapper.selectListByTaskIds(convertSet(tasks, HistoricTaskInstance::getId)); + Map bpmTaskExtDOMap = convertMap(bpmTaskExtDOs, BpmTaskExtDO::getTaskId); + // 获得 ProcessInstance Map + HistoricProcessInstance processInstance = processInstanceService.getHistoricProcessInstance(processInstanceId); + // 获得 User Map + Set userIds = convertSet(tasks, task -> NumberUtils.parseLong(task.getAssignee())); + userIds.add(NumberUtils.parseLong(processInstance.getStartUserId())); + Map userMap = adminUserApi.getUserMap(userIds); + // 获得 Dept Map + Map deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); + + // 拼接数据 + List result = BpmTaskConvert.INSTANCE.convertList3(tasks, bpmTaskExtDOMap, processInstance, userMap, deptMap); + return BpmTaskConvert.INSTANCE.convertChildrenList(result); + } + + @Override + public List getTaskListByTaskIdList(List taskIdList) { + return taskExtMapper.selectListByTaskIds(taskIdList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) { + // 1.1 校验任务存在 + Task task = validateTask(userId, reqVO.getId()); + // 1.2 校验流程实例存在 + ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); + if (instance == null) { + throw exception(PROCESS_INSTANCE_NOT_EXISTS); + } + + // 情况一:被委派的任务,不调用 complete 去完成任务 + if (DelegationState.PENDING.equals(task.getDelegationState())) { + approveDelegateTask(reqVO, task); + return; + } + + // 情况二:后加签的任务 + if (BpmTaskAddSignTypeEnum.AFTER.getType().equals(task.getScopeType())) { + // 后加签处理 + approveAfterSignTask(task, reqVO); + return; + } + + // 情况三:自己审批的任务,调用 complete 去完成任务 + // 完成任务,审批通过 + taskService.complete(task.getId(), instance.getProcessVariables()); + // 更新任务拓展表为通过 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()) + .setReason(reqVO.getReason())); + // 处理加签任务 + handleParentTask(task); + } + + + /** + * 审批通过存在“后加签”的任务。 + *

    + * 注意:该任务不能马上完成,需要一个中间状态(SIGN_AFTER),并激活剩余所有子任务(PROCESS)为可审批处理 + * + * @param task 当前任务 + * @param reqVO 前端请求参数 + */ + private void approveAfterSignTask(Task task, BpmTaskApproveReqVO reqVO) { + // 1. 有向后加签,则该任务状态临时设置为 ADD_SIGN_AFTER 状态 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.SIGN_AFTER.getResult()) + .setReason(reqVO.getReason()).setEndTime(LocalDateTime.now())); + + // 2. 激活子任务 + List childrenTaskIdList = getChildrenTaskIdList(task.getId()); + for (String childrenTaskId : childrenTaskIdList) { + taskService.resolveTask(childrenTaskId); + } + // 2.1 更新任务扩展表中子任务为进行中 + taskExtMapper.updateBatchByTaskIdList(childrenTaskIdList, + new BpmTaskExtDO().setResult(BpmProcessInstanceResultEnum.PROCESS.getResult())); + } + + /** + * 处理当前任务的父任务,主要处理“加签”的情况 + * + * @param task 当前任务 + */ + private void handleParentTask(Task task) { + String parentTaskId = task.getParentTaskId(); + if (StrUtil.isBlank(parentTaskId)) { + return; + } + // 1. 判断当前任务的父任务是否还有子任务 + Long childrenTaskCount = getChildrenTaskCount(parentTaskId); + if (childrenTaskCount > 0) { + return; + } + // 2. 获取父任务 + Task parentTask = validateTaskExist(parentTaskId); + + // 3. 处理加签情况 + String scopeType = parentTask.getScopeType(); + if(!validateSignType(scopeType)){ + return; + } + // 3.1 情况一:处理向前加签 + if (BpmTaskAddSignTypeEnum.BEFORE.getType().equals(scopeType)) { + // 3.1.1 如果是向前加签的任务,则调用 resolveTask 指派父任务,将 owner 重新赋值给父任务的 assignee,这样它就可以被审批 + taskService.resolveTask(parentTaskId); + // 3.1.2 更新任务拓展表为处理中 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(parentTask.getId()).setResult(BpmProcessInstanceResultEnum.PROCESS.getResult())); + } else if (BpmTaskAddSignTypeEnum.AFTER.getType().equals(scopeType)) { + // 3.2 情况二:处理向后加签 + handleParentTaskForAfterSign(parentTask); + } + + // 4. 子任务已处理完成,清空 scopeType 字段,修改 parentTask 信息,方便后续可以继续向前后向后加签 + // 再查询一次的原因是避免报错:Task was updated by another transaction concurrently + // 因为前面处理后可能会导致 parentTask rev 字段被修改,需要重新获取最新的 + parentTask = getTask(parentTaskId); + if (parentTask == null) { + // 为空的情况是:已经通过 handleAfterSign 方法将任务完成了,所以 ru_task 表会查不到数据 + return; + } + clearTaskScopeTypeAndSave(parentTask); + } + + + /** + * 处理后加签任务 + * + * @param parentTask 当前审批任务的父任务 + */ + // TODO @海:这个逻辑,怎么感觉可以是 parentTask 的 parent,再去调用 handleParentTask 方法;可以微信聊下; + private void handleParentTaskForAfterSign(Task parentTask) { + String parentTaskId = parentTask.getId(); + // 1. 更新 parentTask 的任务拓展表为通过,并调用 complete 完成自己 + BpmTaskExtDO currentTaskExt = taskExtMapper.selectByTaskId(parentTask.getId()); + BpmTaskExtDO currentTaskExtUpdateObj = new BpmTaskExtDO().setTaskId(parentTask.getId()) + .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()); + if (currentTaskExt.getEndTime() == null) { + // 1.1 有这个判断是因为,以前没设置过结束时间,才去设置 + currentTaskExtUpdateObj.setEndTime(LocalDateTime.now()); + } + taskExtMapper.updateByTaskId(currentTaskExtUpdateObj); + // 1.2 完成自己(因为它已经没有子任务,所以也可以完成) + taskService.complete(parentTaskId); + + // 2. 如果有父级,递归查询上级任务是否都已经完成 + if (StrUtil.isEmpty(parentTask.getParentTaskId())) { + return; + } + // 2.1 判断整条链路的任务是否完成 + // 例如从 A 任务加签了一个 B 任务,B 任务又加签了一个 C 任务,C 任务加签了 D 任务 + // 此时,D 任务完成,要一直往上找到祖先任务 A调用 complete 方法完成 A 任务 + boolean allChildrenTaskFinish = true; + while (StrUtil.isNotBlank(parentTask.getParentTaskId())) { + parentTask = validateTaskExist(parentTask.getParentTaskId()); + BpmTaskExtDO parentTaskExt = taskExtMapper.selectByTaskId(parentTask.getId()); + if (parentTaskExt == null) { + break; + } + boolean currentTaskFinish = BpmProcessInstanceResultEnum.isEndResult(parentTaskExt.getResult()); + // 2.2 如果 allChildrenTaskFinish 已经被赋值为 false,则不会再赋值为 true,因为整个链路没有完成 + if (allChildrenTaskFinish) { + allChildrenTaskFinish = currentTaskFinish; + } + // 2.3 任务已完成则不处理 + if (currentTaskFinish) { + continue; + } + + // 3 处理非完成状态的任务 + // 3.1 判断当前任务的父任务是否还有子任务 + Long childrenTaskCount = getChildrenTaskCount(parentTaskExt.getTaskId()); + if (childrenTaskCount > 0) { + continue; + } + // 3.2 没有子任务,判断当前任务状态是否为 ADD_SIGN_BEFORE 待前加签任务完成 + if (BpmProcessInstanceResultEnum.SIGN_BEFORE.getResult().equals(parentTaskExt.getResult())) { + // 3.3 需要修改该任务状态为处理中 + taskService.resolveTask(parentTaskExt.getTaskId()); + parentTaskExt.setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); + taskExtMapper.updateByTaskId(parentTaskExt); + } + // 3.4 清空 scopeType 字段,用于任务没有子任务时使用该方法,方便任务可以再次被不同的方式加签 + parentTask = validateTaskExist(parentTaskExt.getTaskId()); + clearTaskScopeTypeAndSave(parentTask); + } + + // 4. 完成最后的顶级祖先任务 + if (allChildrenTaskFinish) { + taskService.complete(parentTask.getId()); + } + } + + /** + * 清空 scopeType 字段,用于任务没有子任务时使用该方法,方便任务可以再次被不同的方式加签 + * + * @param task 需要被清空的任务 + */ + private void clearTaskScopeTypeAndSave(Task task) { + TaskEntityImpl taskImpl = (TaskEntityImpl) task; + taskImpl.setScopeType(null); + taskService.saveTask(task); + } + + /** + * 获取子任务个数 + * + * @param parentTaskId 父任务 ID + * @return 剩余子任务个数 + */ + private Long getChildrenTaskCount(String parentTaskId) { + String tableName = managementService.getTableName(TaskEntity.class); + String sql = "SELECT COUNT(1) from " + tableName + " WHERE PARENT_TASK_ID_=#{parentTaskId}"; + return taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).count(); + } + + /** + * 审批被委派的任务 + * + * @param reqVO 前端请求参数,包含当前任务ID,审批意见等 + * @param task 当前被审批的任务 + */ + private void approveDelegateTask(BpmTaskApproveReqVO reqVO, Task task) { + // 1. 添加审批意见 + AdminUserRespDTO currentUser = adminUserApi.getUser(WebFrameworkUtils.getLoginUserId()); + AdminUserRespDTO sourceApproveUser = adminUserApi.getUser(NumberUtils.parseLong(task.getOwner())); + Assert.notNull(sourceApproveUser, "委派任务找不到原审批人,需要检查数据"); + String comment = StrUtil.format("[{}]完成委派任务,任务重新回到[{}]手中,审批意见为:{}", currentUser.getNickname(), + sourceApproveUser.getNickname(), reqVO.getReason()); + taskService.addComment(reqVO.getId(), task.getProcessInstanceId(), + BpmCommentTypeEnum.DELEGATE.getType().toString(), comment); + + // 2.1 调用 resolveTask 完成任务。 + // 底层调用 TaskHelper.changeTaskAssignee(task, task.getOwner()):将 owner 设置为 assignee + taskService.resolveTask(task.getId()); + // 2.2 更新任务拓展表为【处理中】 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()) + .setReason(reqVO.getReason())); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) { + Task task = validateTask(userId, reqVO.getId()); + // 校验流程实例存在 + ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); + if (instance == null) { + throw exception(PROCESS_INSTANCE_NOT_EXISTS); + } + + // 更新流程实例为不通过 + processInstanceService.updateProcessInstanceExtReject(instance.getProcessInstanceId(), reqVO.getReason()); + + // 更新任务拓展表为不通过 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.REJECT.getResult()) + .setEndTime(LocalDateTime.now()).setReason(reqVO.getReason())); + } + + @Override + public void updateTaskAssignee(Long userId, BpmTaskUpdateAssigneeReqVO reqVO) { + // 校验任务存在 + Task task = validateTask(userId, reqVO.getId()); + // 更新负责人 + updateTaskAssignee(task.getId(), reqVO.getAssigneeUserId()); + } + + @Override + public void updateTaskAssignee(String id, Long userId) { + taskService.setAssignee(id, String.valueOf(userId)); + } + + /** + * 校验任务是否存在, 并且是否是分配给自己的任务 + * + * @param userId 用户 id + * @param taskId task id + */ + private Task validateTask(Long userId, String taskId) { + Task task = validateTaskExist(taskId); + if (!Objects.equals(userId, NumberUtils.parseLong(task.getAssignee()))) { + throw exception(TASK_OPERATE_FAIL_ASSIGN_NOT_SELF); + } + return task; + } + + @Override + public void createTaskExt(Task task) { + BpmTaskExtDO taskExtDO = BpmTaskConvert.INSTANCE.convert2TaskExt(task) + .setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()); + // 向后加签生成的任务,状态不能为进行中,需要等前面父任务完成 + if (BpmTaskAddSignTypeEnum.AFTER_CHILDREN_TASK.getType().equals(task.getScopeType())) { + taskExtDO.setResult(BpmProcessInstanceResultEnum.WAIT_BEFORE_TASK.getResult()); + } + taskExtMapper.insert(taskExtDO); + } + + @Override + public void updateTaskExtComplete(Task task) { + BpmTaskExtDO taskExtDO = BpmTaskConvert.INSTANCE.convert2TaskExt(task) + .setResult(BpmProcessInstanceResultEnum.APPROVE.getResult()) // 不设置也问题不大,因为 Complete 一般是审核通过,已经设置 + .setEndTime(LocalDateTime.now()); + taskExtMapper.updateByTaskId(taskExtDO); + } + + @Override + public void updateTaskExtCancel(String taskId) { + // 需要在事务提交后,才进行查询。不然查询不到历史的原因 + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { + + @Override + public void afterCommit() { + // 可能只是活动,不是任务,所以查询不到 + HistoricTaskInstance task = getHistoricTask(taskId); + if (task == null) { + return; + } + + // 如果任务拓展表已经是完成的状态,则跳过 + BpmTaskExtDO taskExt = taskExtMapper.selectByTaskId(taskId); + if (taskExt == null) { + log.error("[updateTaskExtCancel][taskId({}) 查找不到对应的记录,可能存在问题]", taskId); + return; + } + // 如果已经是最终的结果,则跳过 + if (BpmProcessInstanceResultEnum.isEndResult(taskExt.getResult())) { + log.error("[updateTaskExtCancel][taskId({}) 处于结果({}),无需进行更新]", taskId, taskExt.getResult()); + return; + } + + // 更新任务 + taskExtMapper.updateById(new BpmTaskExtDO().setId(taskExt.getId()).setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()) + .setEndTime(LocalDateTime.now()).setReason(BpmProcessInstanceDeleteReasonEnum.translateReason(task.getDeleteReason()))); + } + + }); + } + + @Override + public void updateTaskExtAssign(Task task) { + BpmTaskExtDO taskExtDO = + new BpmTaskExtDO().setAssigneeUserId(NumberUtils.parseLong(task.getAssignee())).setTaskId(task.getId()); + taskExtMapper.updateByTaskId(taskExtDO); + // 发送通知。在事务提交时,批量执行操作,所以直接查询会无法查询到 ProcessInstance,所以这里是通过监听事务的提交来实现。 + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { + @Override + public void afterCommit() { + if (StrUtil.isNotEmpty(task.getAssignee())) { + ProcessInstance processInstance = + processInstanceService.getProcessInstance(task.getProcessInstanceId()); + AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(processInstance.getStartUserId())); + messageService.sendMessageWhenTaskAssigned( + BpmTaskConvert.INSTANCE.convert(processInstance, startUser, task)); + } + } + }); + } + + private Task validateTaskExist(String id) { + Task task = getTask(id); + if (task == null) { + throw exception(TASK_NOT_EXISTS); + } + return task; + } + + @Override + public Task getTask(String id) { + return taskService.createTaskQuery().taskId(id).singleResult(); + } + + private HistoricTaskInstance getHistoricTask(String id) { + return historyService.createHistoricTaskInstanceQuery().taskId(id).singleResult(); + } + + @Override + public List getReturnTaskList(String taskId) { + // 1. 校验当前任务 task 存在 + Task task = validateTaskExist(taskId); + // 根据流程定义获取流程模型信息 + BpmnModel bpmnModel = bpmModelService.getBpmnModelByDefinitionId(task.getProcessDefinitionId()); + FlowElement source = BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey()); + if (source == null) { + throw exception(TASK_NOT_EXISTS); + } + + // 2.1 查询该任务的前置任务节点的 key 集合 + List previousUserList = BpmnModelUtils.getPreviousUserTaskList(source, null, null); + if (CollUtil.isEmpty(previousUserList)) { + return Collections.emptyList(); + } + // 2.2 过滤:只有串行可到达的节点,才可以回退。类似非串行、子流程无法退回 + previousUserList.removeIf(userTask -> !BpmnModelUtils.isSequentialReachable(source, userTask, null)); + return BpmTaskConvert.INSTANCE.convertList(previousUserList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) { + // 1.1 当前任务 task + Task task = validateTask(userId, reqVO.getId()); + if (task.isSuspended()) { + throw exception(TASK_IS_PENDING); + } + // 1.2 校验源头和目标节点的关系,并返回目标元素 + FlowElement targetElement = validateTargetTaskCanReturn(task.getTaskDefinitionKey(), reqVO.getTargetDefinitionKey(), task.getProcessDefinitionId()); + + // 2. 调用 flowable 框架的回退逻辑 + returnTask0(task, targetElement, reqVO); + + // 3. 更新任务扩展表 + taskExtMapper.updateByTaskId(new BpmTaskExtDO().setTaskId(task.getId()) + .setResult(BpmProcessInstanceResultEnum.BACK.getResult()) + .setEndTime(LocalDateTime.now()).setReason(reqVO.getReason())); + } + + /** + * 回退流程节点时,校验目标任务节点是否可回退 + * + * @param sourceKey 当前任务节点 Key + * @param targetKey 目标任务节点 key + * @param processDefinitionId 当前流程定义 ID + * @return 目标任务节点元素 + */ + private FlowElement validateTargetTaskCanReturn(String sourceKey, String targetKey, String processDefinitionId) { + // 1.1 获取流程模型信息 + BpmnModel bpmnModel = bpmModelService.getBpmnModelByDefinitionId(processDefinitionId); + // 1.3 获取当前任务节点元素 + FlowElement source = BpmnModelUtils.getFlowElementById(bpmnModel, sourceKey); + // 1.3 获取跳转的节点元素 + FlowElement target = BpmnModelUtils.getFlowElementById(bpmnModel, targetKey); + if (target == null) { + throw exception(TASK_TARGET_NODE_NOT_EXISTS); + } + + // 2.2 只有串行可到达的节点,才可以回退。类似非串行、子流程无法退回 + if (!BpmnModelUtils.isSequentialReachable(source, target, null)) { + throw exception(TASK_RETURN_FAIL_SOURCE_TARGET_ERROR); + } + return target; + } + + /** + * 执行回退逻辑 + * + * @param currentTask 当前回退的任务 + * @param targetElement 需要回退到的目标任务 + * @param reqVO 前端参数封装 + */ + public void returnTask0(Task currentTask, FlowElement targetElement, BpmTaskReturnReqVO reqVO) { + // 1. 获得所有需要回撤的任务 taskDefinitionKey,用于稍后的 moveActivityIdsToSingleActivityId 回撤 + // 1.1 获取所有正常进行的任务节点 Key + List taskList = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).list(); + List runTaskKeyList = convertList(taskList, Task::getTaskDefinitionKey); + // 1.2 通过 targetElement 的出口连线,计算在 runTaskKeyList 有哪些 key 需要被撤回 + // 为什么不直接使用 runTaskKeyList 呢?因为可能存在多个审批分支,例如说:A -> B -> C 和 D -> F,而只要 C 撤回到 A,需要排除掉 F + List returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList, null, null); + List returnTaskKeyList = convertList(returnUserTaskList, UserTask::getId); + + // 2. 给当前要被回退的 task 数组,设置回退意见 + taskList.forEach(task -> { + // 需要排除掉,不需要设置回退意见的任务 + if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) { + return; + } + taskService.addComment(task.getId(), currentTask.getProcessInstanceId(), + BpmCommentTypeEnum.BACK.getType().toString(), reqVO.getReason()); + }); + + // 3. 执行驳回 + runtimeService.createChangeActivityStateBuilder() + .processInstanceId(currentTask.getProcessInstanceId()) + .moveActivityIdsToSingleActivityId(returnTaskKeyList, // 当前要跳转的节点列表( 1 或多) + reqVO.getTargetDefinitionKey()) // targetKey 跳转到的节点(1) + .changeState(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO) { + // 1.1 校验任务 + Task task = validateTaskCanDelegate(userId, reqVO); + // 1.2 校验目标用户存在 + AdminUserRespDTO delegateUser = adminUserApi.getUser(reqVO.getDelegateUserId()); + if (delegateUser == null) { + throw exception(TASK_DELEGATE_FAIL_USER_NOT_EXISTS); + } + + // 2. 添加审批意见 + AdminUserRespDTO currentUser = adminUserApi.getUser(userId); + String comment = StrUtil.format("[{}]将任务委派给[{}],委派理由为:{}", currentUser.getNickname(), + delegateUser.getNickname(), reqVO.getReason()); + String taskId = reqVO.getId(); + taskService.addComment(taskId, task.getProcessInstanceId(), + BpmCommentTypeEnum.DELEGATE.getType().toString(), comment); + + // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee) + taskService.setOwner(taskId, task.getAssignee()); + // 3.2 执行委派,将任务委派给 receiveId + taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString()); + // 3.3 更新任务拓展表为【委派】 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.DELEGATE.getResult()) + .setReason(reqVO.getReason())); + } + + /** + * 校验任务委派参数 + * + * @param userId 用户编号 + * @param reqVO 任务编号,接收人ID + * @return 当前任务信息 + */ + private Task validateTaskCanDelegate(Long userId, BpmTaskDelegateReqVO reqVO) { + // 校验任务 + Task task = validateTask(userId, reqVO.getId()); + // 校验当前审批人和被委派人不是同一人 + if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) { + throw exception(TASK_DELEGATE_FAIL_USER_REPEAT); + } + return task; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void createSignTask(Long userId, BpmTaskAddSignReqVO reqVO) { + // 1. 获取和校验任务 + TaskEntityImpl taskEntity = validateAddSign(userId, reqVO); + List userList = adminUserApi.getUserList(reqVO.getUserIdList()); + if (CollUtil.isEmpty(userList)) { + throw exception(TASK_ADD_SIGN_USER_NOT_EXIST); + } + + // 2. 处理当前任务 + // 2.1 开启计数功能,主要用于为了让表 ACT_RU_TASK 中的 SUB_TASK_COUNT_ 字段记录下总共有多少子任务,后续可能有用 + taskEntity.setCountEnabled(true); + if (reqVO.getType().equals(BpmTaskAddSignTypeEnum.BEFORE.getType())) { + // 2.2 向前加签,设置 owner,置空 assign。等子任务都完成后,再调用 resolveTask 重新将 owner 设置为 assign + // 原因是:不能和向前加签的子任务一起审批,需要等前面的子任务都完成才能审批 + taskEntity.setOwner(taskEntity.getAssignee()); + taskEntity.setAssignee(null); + // 2.3 更新扩展表状态 + taskExtMapper.updateByTaskId( + new BpmTaskExtDO().setTaskId(taskEntity.getId()) + .setResult(BpmProcessInstanceResultEnum.SIGN_BEFORE.getResult()) + .setReason(reqVO.getReason())); + } + // 2.4 记录加签方式,完成任务时需要用到判断 + taskEntity.setScopeType(reqVO.getType()); + // 2.5 保存当前任务修改后的值 + taskService.saveTask(taskEntity); + + // 3. 创建加签任务 + createSignTask(convertList(reqVO.getUserIdList(), String::valueOf), taskEntity); + + // 4. 记录加签 comment,拼接结果为: [当前用户]向前加签/向后加签给了[多个用户],理由为:reason + AdminUserRespDTO currentUser = adminUserApi.getUser(userId); + String comment = StrUtil.format(BpmCommentTypeEnum.ADD_SIGN.getComment(), currentUser.getNickname(), + BpmTaskAddSignTypeEnum.formatDesc(reqVO.getType()), String.join(",", convertList(userList, AdminUserRespDTO::getNickname)), reqVO.getReason()); + taskService.addComment(reqVO.getId(), taskEntity.getProcessInstanceId(), + BpmCommentTypeEnum.ADD_SIGN.getType().toString(), comment); + } + + + /** + * 校验任务的加签是否一致 + *

    + * 1. 如果存在“向前加签”的任务,则不能“向后加签” + * 2. 如果存在“向后加签”的任务,则不能“向前加签” + * + * @param userId 当前用户 ID + * @param reqVO 请求参数,包含任务 ID 和加签类型 + * @return 当前任务 + */ + private TaskEntityImpl validateAddSign(Long userId, BpmTaskAddSignReqVO reqVO) { + TaskEntityImpl taskEntity = (TaskEntityImpl) validateTask(userId, reqVO.getId()); + // 向前加签和向后加签不能同时存在 + if (StrUtil.isNotBlank(taskEntity.getScopeType()) + && ObjectUtil.notEqual(BpmTaskAddSignTypeEnum.AFTER_CHILDREN_TASK.getType(), taskEntity.getScopeType()) + && ObjectUtil.notEqual(taskEntity.getScopeType(), reqVO.getType())) { + throw exception(TASK_ADD_SIGN_TYPE_ERROR, + BpmTaskAddSignTypeEnum.formatDesc(taskEntity.getScopeType()), BpmTaskAddSignTypeEnum.formatDesc(reqVO.getType())); + } + // 同一个 key 的任务,审批人不重复 + List taskList = taskService.createTaskQuery().processInstanceId(taskEntity.getProcessInstanceId()) + .taskDefinitionKey(taskEntity.getTaskDefinitionKey()).list(); + List currentAssigneeList = convertList(taskList, task -> NumberUtils.parseLong(task.getAssignee())); + // 保留交集在 currentAssigneeList 中 + currentAssigneeList.retainAll(reqVO.getUserIdList()); + if (CollUtil.isNotEmpty(currentAssigneeList)) { + List userList = adminUserApi.getUserList(currentAssigneeList); + throw exception(TASK_ADD_SIGN_USER_REPEAT, String.join(",", convertList(userList, AdminUserRespDTO::getNickname))); + } + return taskEntity; + } + + /** + * 创建加签子任务 + * + * @param addSingUserIdList 被加签的用户 ID + * @param taskEntity 被加签的任务 + */ + private void createSignTask(List addSingUserIdList, TaskEntityImpl taskEntity) { + if (CollUtil.isEmpty(addSingUserIdList)) { + return; + } + // 创建加签人的新任务,全部基于 taskEntity 为父任务来创建 + for (String addSignId : addSingUserIdList) { + if (StrUtil.isBlank(addSignId)) { + continue; + } + createSignTask(taskEntity, addSignId); + } + } + + /** + * 创建加签子任务 + * + * @param parentTask 父任务 + * @param assignee 子任务的执行人 + */ + private void createSignTask(TaskEntityImpl parentTask, String assignee) { + // 1. 生成子任务 + TaskEntityImpl task = (TaskEntityImpl) taskService.newTask(IdUtil.fastSimpleUUID()); + task = BpmTaskConvert.INSTANCE.convert(task, parentTask); + if (BpmTaskAddSignTypeEnum.BEFORE.getType().equals(parentTask.getScopeType())) { + // 2.1 前加签,设置审批人 + task.setAssignee(assignee); + } else { + // 2.2.1 设置 owner 不设置 assignee 是因为不能同时审批,需要等父任务完成 + task.setOwner(assignee); + // 2.2.2 设置向后加签任务的 scopeType 为 afterChildrenTask,用于设置任务扩展表的状态 + task.setScopeType(BpmTaskAddSignTypeEnum.AFTER_CHILDREN_TASK.getType()); + } + // 2. 保存子任务 + taskService.saveTask(task); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteSignTask(Long userId, BpmTaskSubSignReqVO reqVO) { + // 1.1 校验 task 可以被减签 + Task task = validateSubSign(reqVO.getId()); + // 1.2 校验取消人存在 + AdminUserRespDTO cancelUser = null; + if (StrUtil.isNotBlank(task.getAssignee())) { + cancelUser = adminUserApi.getUser(NumberUtils.parseLong(task.getAssignee())); + } + if (cancelUser == null && StrUtil.isNotBlank(task.getOwner())) { + cancelUser = adminUserApi.getUser(NumberUtils.parseLong(task.getOwner())); + } + Assert.notNull(cancelUser, "任务中没有所有者和审批人,数据错误"); + + // 2. 删除任务和对应子任务 + // 2.1 获取所有需要删除的任务 ID ,包含当前任务和所有子任务 + List allTaskIdList = getAllChildTaskIds(task.getId()); + // 2.2 删除任务和所有子任务 + taskService.deleteTasks(allTaskIdList); + // 2.3 修改扩展表状态为取消 + AdminUserRespDTO user = adminUserApi.getUser(userId); + taskExtMapper.updateBatchByTaskIdList(allTaskIdList, new BpmTaskExtDO().setResult(BpmProcessInstanceResultEnum.CANCEL.getResult()) + .setReason(StrUtil.format("由于{}操作[减签],任务被取消", user.getNickname()))); + + // 3. 记录日志到父任务中。先记录日志是因为,通过 handleParentTask 方法之后,任务可能被完成了,并且不存在了,会报异常,所以先记录 + String comment = StrUtil.format(BpmCommentTypeEnum.SUB_SIGN.getComment(), user.getNickname(), cancelUser.getNickname()); + taskService.addComment(task.getParentTaskId(), task.getProcessInstanceId(), + BpmCommentTypeEnum.SUB_SIGN.getType().toString(), comment); + + // 4. 处理当前任务的父任务 + handleParentTask(task); + } + + /** + * 校验任务是否能被减签 + * + * @param id 任务ID + * @return 任务信息 + */ + private Task validateSubSign(String id) { + Task task = validateTaskExist(id); + + // 必须有 scopeType + String scopeType = task.getScopeType(); + if (StrUtil.isEmpty(scopeType)) { + throw exception(TASK_SUB_SIGN_NO_PARENT); + } + // 并且值为 向前和向后加签 + if (!validateSignType(scopeType)) { + throw exception(TASK_SUB_SIGN_NO_PARENT); + } + return task; + } + + /** + * 判断当前类型是否为加签 + * @param scopeType 任务的 scopeType + * @return 当前 scopeType 为加签则返回 true + */ + private boolean validateSignType(String scopeType){ + return StrUtil.equalsAny(scopeType,BpmTaskAddSignTypeEnum.BEFORE.getType(),scopeType, BpmTaskAddSignTypeEnum.AFTER.getType()); + } + + /** + * 获取所有要被取消的删除的任务 ID 集合 + * + * @param parentTaskId 父级任务ID + * @return 所有任务ID + */ + public List getAllChildTaskIds(String parentTaskId) { + List allChildTaskIds = new ArrayList<>(); + // 1. 递归获取子级 + Stack stack = new Stack<>(); + // 1.1 将根任务ID入栈 + stack.push(parentTaskId); + //控制遍历的次数不超过 Byte.MAX_VALUE,避免脏数据造成死循环 + int count = 0; + // TODO @海:< 的前后空格,要注意哈; + while (!stack.isEmpty() && count childrenTaskIdList = getChildrenTaskIdList(taskId); + if (CollUtil.isNotEmpty(childrenTaskIdList)) { + for (String childTaskId : childrenTaskIdList) { + // 1.5 将子任务ID入栈,以便后续处理 + stack.push(childTaskId); + } + } + count++; + } + return allChildTaskIds; + } + + /** + * 获取指定父级任务的所有子任务 ID 集合 + * + * @param parentTaskId 父任务 ID + * @return 所有子任务的 ID 集合 + */ + private List getChildrenTaskIdList(String parentTaskId) { + return convertList(getChildrenTaskList0(parentTaskId), Task::getId); + } + + /** + * 获取指定父级任务的所有子任务 ID 集合 + * + * @param parentTaskId 父任务 ID + * @return 所有子任务的 ID 集合 + */ + private List getChildrenTaskList0(String parentTaskId) { + String tableName = managementService.getTableName(TaskEntity.class); + // taskService.createTaskQuery() 没有 parentId 参数,所以写 sql 查询 + String sql = "select ID_,OWNER_,ASSIGNEE_ from " + tableName + " where PARENT_TASK_ID_=#{parentTaskId}"; + return taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).list(); + } + + + @Override + public List getChildrenTaskList(String parentId) { + // 1. 只查询进行中的任务 后加签的任务,可能不存在 assignee,所以还需要查询 owner + List taskList = getChildrenTaskList0(parentId); + if (CollUtil.isEmpty(taskList)) { + return Collections.emptyList(); + } + List childrenTaskIdList = convertList(taskList, Task::getId); + + // 2.1 将 owner 和 assignee 统一到一个集合中 + List userIds = convertListByFlatMap(taskList, control -> + Stream.of(NumberUtils.parseLong(control.getAssignee()), NumberUtils.parseLong(control.getOwner())) + .filter(Objects::nonNull)); + // 2.2 组装数据 + Map userMap = adminUserApi.getUserMap(userIds); + List taskExtList = taskExtMapper.selectProcessListByTaskIds(childrenTaskIdList); + Map idTaskMap = convertMap(taskList, TaskInfo::getId); + return BpmTaskConvert.INSTANCE.convertList(taskExtList, userMap, idTaskMap); + } + + @Override + public Map getTaskNameByTaskIds(Collection taskIds) { + if (CollUtil.isEmpty(taskIds)) { + return Collections.emptyMap(); + } + List tasks = taskService.createTaskQuery().taskIds(taskIds).list(); + return convertMap(tasks, Task::getId, Task::getName); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyService.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyService.java new file mode 100644 index 0000000..208749a --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyService.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.bpm.service.task.cc; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyMyPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; + +/** + * 流程抄送 Service 接口 + * + * 现在是在审批的时候进行流程抄送 + */ +public interface BpmProcessInstanceCopyService { + + // TODO 芋艿:这块要 review 下;思考下~~ + /** + * 抄送 + * @param sourceInfo 抄送源信息,方便抄送处理 + * @return + */ + boolean makeCopy(BpmCandidateSourceInfo sourceInfo); + + /** + * 流程实例的抄送 + * + * @param userId 当前登录用户 + * @param createReqVO 创建的抄送请求 + */ + void createProcessInstanceCopy(Long userId, BpmProcessInstanceCopyCreateReqVO createReqVO); + + /** + * 抄送的流程的分页 + * @param userId 当前登录用户 + * @param pageReqVO 分页请求 + * @return 抄送的分页结果 + */ + PageResult getMyProcessInstanceCopyPage(Long userId, + BpmProcessInstanceCopyMyPageReqVO pageReqVO); +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyServiceImpl.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyServiceImpl.java new file mode 100644 index 0000000..d533196 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/BpmProcessInstanceCopyServiceImpl.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.module.bpm.service.task.cc; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyMyPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.cc.BpmProcessInstanceCopyDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.cc.BpmProcessInstanceCopyMapper; +import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfo; +import cn.iocoder.yudao.module.bpm.service.candidate.BpmCandidateSourceInfoProcessorChain; +import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; +import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; +import cn.iocoder.yudao.module.bpm.service.task.cc.dto.BpmDelegateExecutionDTO; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.Task; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; + +/** + * 流程抄送 Service 实现类 + * + * @author kyle + */ +@Service +@Validated +@Slf4j +public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopyService { + + @Resource + private BpmProcessInstanceCopyMapper processInstanceCopyMapper; + + @Resource + private RuntimeService runtimeService; + + @Resource + private BpmCandidateSourceInfoProcessorChain processorChain; + + @Resource + @Lazy + private BpmTaskService bpmTaskService; + @Resource + @Lazy + private BpmProcessInstanceService bpmProcessInstanceService; + + @Override + public boolean makeCopy(BpmCandidateSourceInfo sourceInfo) { + if (null == sourceInfo) { + return false; + } + + Task task = bpmTaskService.getTask(sourceInfo.getTaskId()); + if (ObjectUtil.isNull(task)) { + return false; + } + String processInstanceId = task.getProcessInstanceId(); + if (StrUtil.isBlank(processInstanceId)) { + return false; + } + DelegateExecution executionEntity = new BpmDelegateExecutionDTO(processInstanceId); + Set ccCandidates = processorChain.calculateTaskCandidateUsers(executionEntity, sourceInfo); + if (CollUtil.isEmpty(ccCandidates)) { + log.warn("相关抄送人不存在 {}", sourceInfo.getTaskId()); + return false; + } else { + BpmProcessInstanceCopyDO copyDO = new BpmProcessInstanceCopyDO(); + // 调用 + // 设置任务id + copyDO.setTaskId(sourceInfo.getTaskId()); + copyDO.setTaskName(task.getName()); + copyDO.setProcessInstanceId(processInstanceId); + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + if (null == processInstance) { + log.warn("相关流程实例不存在 {}", sourceInfo.getTaskId()); + return false; + } + copyDO.setStartUserId(Long.parseLong(processInstance.getStartUserId())); + copyDO.setProcessInstanceName(processInstance.getName()); + copyDO.setCategory(null); // TODO 芋艿:貌似新版本,没 processInstance.getProcessDefinitionCategory() 字段? + copyDO.setReason(sourceInfo.getReason()); + copyDO.setCreator(sourceInfo.getCreator()); + copyDO.setCreateTime(LocalDateTime.now()); + List copyList = new ArrayList<>(ccCandidates.size()); + for (Long userId : ccCandidates) { + BpmProcessInstanceCopyDO copy = BeanUtil.copyProperties(copyDO, BpmProcessInstanceCopyDO.class); + copy.setUserId(userId); + copyList.add(copy); + } + return processInstanceCopyMapper.insertBatch(copyList); + } + } + + @Override + public void createProcessInstanceCopy(Long userId, BpmProcessInstanceCopyCreateReqVO reqVO) { + // 1.1 校验任务存在 + Task task = bpmTaskService.getTask(reqVO.getTaskId()); + if (ObjectUtil.isNull(task)) { + throw exception(ErrorCodeConstants.TASK_NOT_EXISTS); + } + // 1.2 校验流程存在 + String processInstanceId = task.getProcessInstanceId(); + ProcessInstance processInstance = bpmProcessInstanceService.getProcessInstance(processInstanceId); + if (processInstance == null) { + log.warn("[createProcessInstanceCopy][任务({}) 对应的流程不存在]", reqVO.getTaskId()); + throw exception(ErrorCodeConstants.PROCESS_INSTANCE_NOT_EXISTS); + } + + // 2. 创建抄送流程 + BpmProcessInstanceCopyDO copy = new BpmProcessInstanceCopyDO() + .setTaskId(reqVO.getTaskId()).setTaskName(task.getName()) + .setProcessInstanceId(processInstanceId).setStartUserId(Long.valueOf(processInstance.getStartUserId())) + .setProcessInstanceName(processInstance.getName()) + .setCategory(null) // TODO 芋艿:貌似新版本,没 processInstance.getProcessDefinitionCategory() 字段? + .setReason(reqVO.getReason()); + processInstanceCopyMapper.insert(copy); + } + + @Override + public PageResult getMyProcessInstanceCopyPage(Long userId, BpmProcessInstanceCopyMyPageReqVO pageReqVO) { + return processInstanceCopyMapper.selectPage(userId, pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/dto/BpmDelegateExecutionDTO.java b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/dto/BpmDelegateExecutionDTO.java new file mode 100644 index 0000000..d010d89 --- /dev/null +++ b/yudao-module/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/cc/dto/BpmDelegateExecutionDTO.java @@ -0,0 +1,439 @@ +package cn.iocoder.yudao.module.bpm.service.task.cc.dto; + +import org.flowable.bpmn.model.FlowElement; +import org.flowable.bpmn.model.FlowableListener; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ReadOnlyDelegateExecution; +import org.flowable.variable.api.persistence.entity.VariableInstance; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 仅为了传输processInstanceId + */ +public class BpmDelegateExecutionDTO implements DelegateExecution { + + public BpmDelegateExecutionDTO(String getProcessInstanceId) { + this.getProcessInstanceId = getProcessInstanceId; + } + + private final String getProcessInstanceId; + + @Override + public String getId() { + return null; + } + + @Override + public String getProcessInstanceId() { + return null; + } + + @Override + public String getRootProcessInstanceId() { + return null; + } + + @Override + public String getEventName() { + return null; + } + + @Override + public void setEventName(String eventName) { + + } + + @Override + public String getProcessInstanceBusinessKey() { + return null; + } + + @Override + public String getProcessInstanceBusinessStatus() { + return null; + } + + @Override + public String getProcessDefinitionId() { + return null; + } + + @Override + public String getPropagatedStageInstanceId() { + return null; + } + + @Override + public String getParentId() { + return null; + } + + @Override + public String getSuperExecutionId() { + return null; + } + + @Override + public String getCurrentActivityId() { + return null; + } + + @Override + public String getTenantId() { + return null; + } + + @Override + public FlowElement getCurrentFlowElement() { + return null; + } + + @Override + public void setCurrentFlowElement(FlowElement flowElement) { + + } + + @Override + public FlowableListener getCurrentFlowableListener() { + return null; + } + + @Override + public void setCurrentFlowableListener(FlowableListener currentListener) { + + } + + @Override + public ReadOnlyDelegateExecution snapshotReadOnly() { + return null; + } + + @Override + public DelegateExecution getParent() { + return null; + } + + @Override + public List getExecutions() { + return null; + } + + @Override + public void setActive(boolean isActive) { + + } + + @Override + public boolean isActive() { + return false; + } + + @Override + public boolean isEnded() { + return false; + } + + @Override + public void setConcurrent(boolean isConcurrent) { + + } + + @Override + public boolean isConcurrent() { + return false; + } + + @Override + public boolean isProcessInstanceType() { + return false; + } + + @Override + public void inactivate() { + + } + + @Override + public boolean isScope() { + return false; + } + + @Override + public void setScope(boolean isScope) { + + } + + @Override + public boolean isMultiInstanceRoot() { + return false; + } + + @Override + public void setMultiInstanceRoot(boolean isMultiInstanceRoot) { + + } + + @Override + public Map getVariables() { + return null; + } + + @Override + public Map getVariableInstances() { + return null; + } + + @Override + public Map getVariables(Collection collection) { + return null; + } + + @Override + public Map getVariableInstances(Collection collection) { + return null; + } + + @Override + public Map getVariables(Collection collection, boolean b) { + return null; + } + + @Override + public Map getVariableInstances(Collection collection, boolean b) { + return null; + } + + @Override + public Map getVariablesLocal() { + return null; + } + + @Override + public Map getVariableInstancesLocal() { + return null; + } + + @Override + public Map getVariablesLocal(Collection collection) { + return null; + } + + @Override + public Map getVariableInstancesLocal(Collection collection) { + return null; + } + + @Override + public Map getVariablesLocal(Collection collection, boolean b) { + return null; + } + + @Override + public Map getVariableInstancesLocal(Collection collection, boolean b) { + return null; + } + + @Override + public Object getVariable(String s) { + return null; + } + + @Override + public VariableInstance getVariableInstance(String s) { + return null; + } + + @Override + public Object getVariable(String s, boolean b) { + return null; + } + + @Override + public VariableInstance getVariableInstance(String s, boolean b) { + return null; + } + + @Override + public Object getVariableLocal(String s) { + return null; + } + + @Override + public VariableInstance getVariableInstanceLocal(String s) { + return null; + } + + @Override + public Object getVariableLocal(String s, boolean b) { + return null; + } + + @Override + public VariableInstance getVariableInstanceLocal(String s, boolean b) { + return null; + } + + @Override + public T getVariable(String s, Class aClass) { + return null; + } + + @Override + public T getVariableLocal(String s, Class aClass) { + return null; + } + + @Override + public Set getVariableNames() { + return null; + } + + @Override + public Set getVariableNamesLocal() { + return null; + } + + @Override + public void setVariable(String s, Object o) { + + } + + @Override + public void setVariable(String s, Object o, boolean b) { + + } + + @Override + public Object setVariableLocal(String s, Object o) { + return null; + } + + @Override + public Object setVariableLocal(String s, Object o, boolean b) { + return null; + } + + @Override + public void setVariables(Map map) { + + } + + @Override + public void setVariablesLocal(Map map) { + + } + + @Override + public boolean hasVariables() { + return false; + } + + @Override + public boolean hasVariablesLocal() { + return false; + } + + @Override + public boolean hasVariable(String s) { + return false; + } + + @Override + public boolean hasVariableLocal(String s) { + return false; + } + + @Override + public void removeVariable(String s) { + + } + + @Override + public void removeVariableLocal(String s) { + + } + + @Override + public void removeVariables(Collection collection) { + + } + + @Override + public void removeVariablesLocal(Collection collection) { + + } + + @Override + public void removeVariables() { + + } + + @Override + public void removeVariablesLocal() { + + } + + @Override + public void setTransientVariable(String s, Object o) { + + } + + @Override + public void setTransientVariableLocal(String s, Object o) { + + } + + @Override + public void setTransientVariables(Map map) { + + } + + @Override + public Object getTransientVariable(String s) { + return null; + } + + @Override + public Map getTransientVariables() { + return null; + } + + @Override + public void setTransientVariablesLocal(Map map) { + + } + + @Override + public Object getTransientVariableLocal(String s) { + return null; + } + + @Override + public Map getTransientVariablesLocal() { + return null; + } + + @Override + public void removeTransientVariableLocal(String s) { + + } + + @Override + public void removeTransientVariable(String s) { + + } + + @Override + public void removeTransientVariables() { + + } + + @Override + public void removeTransientVariablesLocal() { + + } +} diff --git a/yudao-module/yudao-module-infra-api/pom.xml b/yudao-module/yudao-module-infra-api/pom.xml new file mode 100644 index 0000000..f4af4a9 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/pom.xml @@ -0,0 +1,33 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-infra-api + jar + + ${project.artifactId} + + infra 模块 API,暴露给其它模块调用 + + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java new file mode 100644 index 0000000..c41c6e0 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.api.file; + +/** + * 文件 API 接口 + * + * @author 芋道源码 + */ +public interface FileApi { + + /** + * 保存文件,并返回文件的访问路径 + * + * @param content 文件内容 + * @return 文件路径 + */ + default String createFile(byte[] content) { + return createFile(null, null, content); + } + + /** + * 保存文件,并返回文件的访问路径 + * + * @param path 文件路径 + * @param content 文件内容 + * @return 文件路径 + */ + default String createFile(String path, byte[] content) { + return createFile(null, path, content); + } + + /** + * 保存文件,并返回文件的访问路径 + * + * @param name 文件名称 + * @param path 文件路径 + * @param content 文件内容 + * @return 文件路径 + */ + String createFile(String name, String path, byte[] content); + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApi.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApi.java new file mode 100644 index 0000000..ed3f3ee --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApi.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.infra.api.logger; + +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; + +import javax.validation.Valid; + +/** + * API 访问日志的 API 接口 + * + * @author 芋道源码 + */ +public interface ApiAccessLogApi { + + /** + * 创建 API 访问日志 + * + * @param createDTO 创建信息 + */ + void createApiAccessLog(@Valid ApiAccessLogCreateReqDTO createDTO); + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApi.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApi.java new file mode 100644 index 0000000..9b53c66 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApi.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.infra.api.logger; + +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; + +import javax.validation.Valid; + +/** + * API 错误日志的 API 接口 + * + * @author 芋道源码 + */ +public interface ApiErrorLogApi { + + /** + * 创建 API 错误日志 + * + * @param createDTO 创建信息 + */ + void createApiErrorLog(@Valid ApiErrorLogCreateReqDTO createDTO); + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java new file mode 100644 index 0000000..a284cf3 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.infra.api.logger.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * API 访问日志 + * + * @author 芋道源码 + */ +@Data +public class ApiAccessLogCreateReqDTO { + + /** + * 链路追踪编号 + */ + private String traceId; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 应用名 + */ + @NotNull(message = "应用名不能为空") + private String applicationName; + + /** + * 请求方法名 + */ + @NotNull(message = "http 请求方法不能为空") + private String requestMethod; + /** + * 访问地址 + */ + @NotNull(message = "访问地址不能为空") + private String requestUrl; + /** + * 请求参数 + */ + @NotNull(message = "请求参数不能为空") + private String requestParams; + /** + * 用户 IP + */ + @NotNull(message = "ip 不能为空") + private String userIp; + /** + * 浏览器 UA + */ + @NotNull(message = "User-Agent 不能为空") + private String userAgent; + + /** + * 开始请求时间 + */ + @NotNull(message = "开始请求时间不能为空") + private LocalDateTime beginTime; + /** + * 结束请求时间 + */ + @NotNull(message = "结束请求时间不能为空") + private LocalDateTime endTime; + /** + * 执行时长,单位:毫秒 + */ + @NotNull(message = "执行时长不能为空") + private Integer duration; + /** + * 结果码 + */ + @NotNull(message = "错误码不能为空") + private Integer resultCode; + /** + * 结果提示 + */ + private String resultMsg; + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java new file mode 100644 index 0000000..6b1cc8e --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.infra.api.logger.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * API 错误日志 + * + * @author 芋道源码 + */ +@Data +public class ApiErrorLogCreateReqDTO { + + /** + * 链路编号 + */ + private String traceId; + /** + * 账号编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 应用名 + */ + @NotNull(message = "应用名不能为空") + private String applicationName; + + /** + * 请求方法名 + */ + @NotNull(message = "http 请求方法不能为空") + private String requestMethod; + /** + * 访问地址 + */ + @NotNull(message = "访问地址不能为空") + private String requestUrl; + /** + * 请求参数 + */ + @NotNull(message = "请求参数不能为空") + private String requestParams; + /** + * 用户 IP + */ + @NotNull(message = "ip 不能为空") + private String userIp; + /** + * 浏览器 UA + */ + @NotNull(message = "User-Agent 不能为空") + private String userAgent; + + /** + * 异常时间 + */ + @NotNull(message = "异常时间不能为空") + private LocalDateTime exceptionTime; + /** + * 异常名 + */ + @NotNull(message = "异常名不能为空") + private String exceptionName; + /** + * 异常发生的类全名 + */ + @NotNull(message = "异常发生的类全名不能为空") + private String exceptionClassName; + /** + * 异常发生的类文件 + */ + @NotNull(message = "异常发生的类文件不能为空") + private String exceptionFileName; + /** + * 异常发生的方法名 + */ + @NotNull(message = "异常发生的方法名不能为空") + private String exceptionMethodName; + /** + * 异常发生的方法所在行 + */ + @NotNull(message = "异常发生的方法所在行不能为空") + private Integer exceptionLineNumber; + /** + * 异常的栈轨迹异常的栈轨迹 + */ + @NotNull(message = "异常的栈轨迹不能为空") + private String exceptionStackTrace; + /** + * 异常导致的根消息 + */ + @NotNull(message = "异常导致的根消息不能为空") + private String exceptionRootCauseMessage; + /** + * 异常导致的消息 + */ + @NotNull(message = "异常导致的消息不能为空") + private String exceptionMessage; + + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java new file mode 100644 index 0000000..9ed9a77 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java @@ -0,0 +1,4 @@ +/** + * infra API 包,定义暴露给其它模块的 API + */ +package cn.iocoder.yudao.module.infra.api; diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApi.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApi.java new file mode 100644 index 0000000..38582c2 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApi.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.infra.api.websocket; + +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; + +/** + * WebSocket 发送器的 API 接口 + * + * 对 WebSocketMessageSender 进行封装,提供给其它模块使用 + * + * @author 芋道源码 + */ +public interface WebSocketSenderApi { + + /** + * 发送消息给指定用户 + * + * @param userType 用户类型 + * @param userId 用户编号 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(Integer userType, Long userId, String messageType, String messageContent); + + /** + * 发送消息给指定用户类型 + * + * @param userType 用户类型 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(Integer userType, String messageType, String messageContent); + + /** + * 发送消息给指定 Session + * + * @param sessionId Session 编号 + * @param messageType 消息类型 + * @param messageContent 消息内容,JSON 格式 + */ + void send(String sessionId, String messageType, String messageContent); + + default void sendObject(Integer userType, Long userId, String messageType, Object messageContent) { + send(userType, userId, messageType, JsonUtils.toJsonString(messageContent)); + } + + default void sendObject(Integer userType, String messageType, Object messageContent) { + send(userType, messageType, JsonUtils.toJsonString(messageContent)); + } + + default void sendObject(String sessionId, String messageType, Object messageContent) { + send(sessionId, messageType, JsonUtils.toJsonString(messageContent)); + } + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/DictTypeConstants.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/DictTypeConstants.java new file mode 100644 index 0000000..53ab807 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/DictTypeConstants.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.infra.enums; + +/** + * Infra 字典类型的枚举类 + * + * @author 芋道源码 + */ +public interface DictTypeConstants { + + String REDIS_TIMEOUT_TYPE = "infra_redis_timeout_type"; // Redis 超时类型 + + String JOB_STATUS = "infra_job_status"; // 定时任务状态的枚举 + String JOB_LOG_STATUS = "infra_job_log_status"; // 定时任务日志状态的枚举 + + String API_ERROR_LOG_PROCESS_STATUS = "infra_api_error_log_process_status"; // API 错误日志的处理状态的枚举 + + String CONFIG_TYPE = "infra_config_type"; // 参数配置类型 + String BOOLEAN_STRING = "infra_boolean_string"; // Boolean 是否类型 + +} diff --git a/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..4719500 --- /dev/null +++ b/yudao-module/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.infra.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + +/** + * Infra 错误码枚举类 + * + * infra 系统,使用 1-001-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== 参数配置 1-001-000-000 ========== + ErrorCode CONFIG_NOT_EXISTS = new ErrorCode(1_001_000_001, "参数配置不存在"); + ErrorCode CONFIG_KEY_DUPLICATE = new ErrorCode(1_001_000_002, "参数配置 key 重复"); + ErrorCode CONFIG_CAN_NOT_DELETE_SYSTEM_TYPE = new ErrorCode(1_001_000_003, "不能删除类型为系统内置的参数配置"); + ErrorCode CONFIG_GET_VALUE_ERROR_IF_VISIBLE = new ErrorCode(1_001_000_004, "获取参数配置失败,原因:不允许获取不可见配置"); + + // ========== 定时任务 1-001-001-000 ========== + ErrorCode JOB_NOT_EXISTS = new ErrorCode(1_001_001_000, "定时任务不存在"); + ErrorCode JOB_HANDLER_EXISTS = new ErrorCode(1_001_001_001, "定时任务的处理器已经存在"); + ErrorCode JOB_CHANGE_STATUS_INVALID = new ErrorCode(1_001_001_002, "只允许修改为开启或者关闭状态"); + ErrorCode JOB_CHANGE_STATUS_EQUALS = new ErrorCode(1_001_001_003, "定时任务已经处于该状态,无需修改"); + ErrorCode JOB_UPDATE_ONLY_NORMAL_STATUS = new ErrorCode(1_001_001_004, "只有开启状态的任务,才可以修改"); + ErrorCode JOB_CRON_EXPRESSION_VALID = new ErrorCode(1_001_001_005, "CRON 表达式不正确"); + + // ========== API 错误日志 1-001-002-000 ========== + ErrorCode API_ERROR_LOG_NOT_FOUND = new ErrorCode(1_001_002_000, "API 错误日志不存在"); + ErrorCode API_ERROR_LOG_PROCESSED = new ErrorCode(1_001_002_001, "API 错误日志已处理"); + + // ========= 文件相关 1-001-003-000 ================= + ErrorCode FILE_PATH_EXISTS = new ErrorCode(1_001_003_000, "文件路径已存在"); + ErrorCode FILE_NOT_EXISTS = new ErrorCode(1_001_003_001, "文件不存在"); + ErrorCode FILE_IS_EMPTY = new ErrorCode(1_001_003_002, "文件为空"); + + // ========== 代码生成器 1-001-004-000 ========== + ErrorCode CODEGEN_TABLE_EXISTS = new ErrorCode(1_003_001_000, "表定义已经存在"); + ErrorCode CODEGEN_IMPORT_TABLE_NULL = new ErrorCode(1_003_001_001, "导入的表不存在"); + ErrorCode CODEGEN_IMPORT_COLUMNS_NULL = new ErrorCode(1_003_001_002, "导入的字段不存在"); + ErrorCode CODEGEN_TABLE_NOT_EXISTS = new ErrorCode(1_003_001_004, "表定义不存在"); + ErrorCode CODEGEN_COLUMN_NOT_EXISTS = new ErrorCode(1_003_001_005, "字段义不存在"); + ErrorCode CODEGEN_SYNC_COLUMNS_NULL = new ErrorCode(1_003_001_006, "同步的字段不存在"); + ErrorCode CODEGEN_SYNC_NONE_CHANGE = new ErrorCode(1_003_001_007, "同步失败,不存在改变"); + ErrorCode CODEGEN_TABLE_INFO_TABLE_COMMENT_IS_NULL = new ErrorCode(1_003_001_008, "数据库的表注释未填写"); + ErrorCode CODEGEN_TABLE_INFO_COLUMN_COMMENT_IS_NULL = new ErrorCode(1_003_001_009, "数据库的表字段({})注释未填写"); + ErrorCode CODEGEN_MASTER_TABLE_NOT_EXISTS = new ErrorCode(1_003_001_010, "主表(id={})定义不存在,请检查"); + ErrorCode CODEGEN_SUB_COLUMN_NOT_EXISTS = new ErrorCode(1_003_001_011, "子表的字段(id={})不存在,请检查"); + ErrorCode CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_TABLE = new ErrorCode(1_003_001_012, "主表生成代码失败,原因:它没有子表"); + ErrorCode CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_COLUMN = new ErrorCode(1_003_001_013, "主表生成代码失败,原因:它的子表({})没有字段"); + + // ========== 文件配置 1-001-006-000 ========== + ErrorCode FILE_CONFIG_NOT_EXISTS = new ErrorCode(1_001_006_000, "文件配置不存在"); + ErrorCode FILE_CONFIG_DELETE_FAIL_MASTER = new ErrorCode(1_001_006_001, "该文件配置不允许删除,原因:它是主配置,删除会导致无法上传文件"); + + // ========== 数据源配置 1-001-007-000 ========== + ErrorCode DATA_SOURCE_CONFIG_NOT_EXISTS = new ErrorCode(1_001_007_000, "数据源配置不存在"); + ErrorCode DATA_SOURCE_CONFIG_NOT_OK = new ErrorCode(1_001_007_001, "数据源配置不正确,无法进行连接"); + + // ========== 数据源配置 1-001-107-000 ========== + ErrorCode DEMO_STUDENT_NOT_EXISTS = new ErrorCode(1_001_107_000, "学生不存在"); + + // ========== 学生 1-001-201-000 ========== + ErrorCode DEMO01_CONTACT_NOT_EXISTS = new ErrorCode(1_001_201_000, "示例联系人不存在"); + ErrorCode DEMO02_CATEGORY_NOT_EXISTS = new ErrorCode(1_001_201_001, "示例分类不存在"); + ErrorCode DEMO02_CATEGORY_EXITS_CHILDREN = new ErrorCode(1_001_201_002, "存在存在子示例分类,无法删除"); + ErrorCode DEMO02_CATEGORY_PARENT_NOT_EXITS = new ErrorCode(1_001_201_003,"父级示例分类不存在"); + ErrorCode DEMO02_CATEGORY_PARENT_ERROR = new ErrorCode(1_001_201_004, "不能设置自己为父示例分类"); + ErrorCode DEMO02_CATEGORY_NAME_DUPLICATE = new ErrorCode(1_001_201_005, "已经存在该名字的示例分类"); + ErrorCode DEMO02_CATEGORY_PARENT_IS_CHILD = new ErrorCode(1_001_201_006, "不能设置自己的子示例分类为父示例分类"); + ErrorCode DEMO03_STUDENT_NOT_EXISTS = new ErrorCode(1_001_201_007, "学生不存在"); + ErrorCode DEMO03_GRADE_NOT_EXISTS = new ErrorCode(1_001_201_008, "学生班级不存在"); + ErrorCode DEMO03_GRADE_EXISTS = new ErrorCode(1_001_201_009, "学生班级已存在"); + +} diff --git a/yudao-module/yudao-module-infra-biz/pom.xml b/yudao-module/yudao-module-infra-biz/pom.xml new file mode 100644 index 0000000..51bba8e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/pom.xml @@ -0,0 +1,126 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-infra-biz + jar + + ${project.artifactId} + + infra 模块,主要提供两块能力: + 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 + 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + cn.iocoder.boot + yudao-module-infra-api + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-operatelog + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + cn.iocoder.boot + yudao-spring-boot-starter-websocket + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + com.baomidou + mybatis-plus-generator + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-job + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-excel + + + + org.apache.velocity + velocity-engine-core + + + + cn.smallbun.screw + screw-core + + + + + cn.iocoder.boot + yudao-spring-boot-starter-monitor + + + + de.codecentric + spring-boot-admin-starter-server + + + + + cn.iocoder.boot + yudao-spring-boot-starter-file + + + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java new file mode 100644 index 0000000..05fb946 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.infra.api.file; + +import cn.iocoder.yudao.module.infra.service.file.FileService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 文件 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class FileApiImpl implements FileApi { + + @Resource + private FileService fileService; + + @Override + public String createFile(String name, String path, byte[] content) { + return fileService.createFile(name, path, content); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApiImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApiImpl.java new file mode 100644 index 0000000..2daa4a1 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApiImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.api.logger; + +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * API 访问日志的 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ApiAccessLogApiImpl implements ApiAccessLogApi { + + @Resource + private ApiAccessLogService apiAccessLogService; + + @Override + public void createApiAccessLog(ApiAccessLogCreateReqDTO createDTO) { + apiAccessLogService.createApiAccessLog(createDTO); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApiImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApiImpl.java new file mode 100644 index 0000000..cdb0ec2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApiImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.api.logger; + +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * API 访问日志的 API 接口 + * + * @author 芋道源码 + */ +@Service +@Validated +public class ApiErrorLogApiImpl implements ApiErrorLogApi { + + @Resource + private ApiErrorLogService apiErrorLogService; + + @Override + public void createApiErrorLog(ApiErrorLogCreateReqDTO createDTO) { + apiErrorLogService.createApiErrorLog(createDTO); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java new file mode 100644 index 0000000..af01680 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.infra.api; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApiImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApiImpl.java new file mode 100644 index 0000000..046cd2f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/websocket/WebSocketSenderApiImpl.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.infra.api.websocket; + +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * WebSocket 发送器的 API 实现类 + * + * @author 芋道源码 + */ +@Component +public class WebSocketSenderApiImpl implements WebSocketSenderApi { + + @Resource + private WebSocketMessageSender webSocketMessageSender; + + @Override + public void send(Integer userType, Long userId, String messageType, String messageContent) { + webSocketMessageSender.send(userType, userId, messageType, messageContent); + } + + @Override + public void send(Integer userType, String messageType, String messageContent) { + webSocketMessageSender.send(userType, messageType, messageContent); + } + + @Override + public void send(String sessionId, String messageType, String messageContent) { + webSocketMessageSender.send(sessionId, messageType, messageContent); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/CodegenController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/CodegenController.java new file mode 100644 index 0000000..ee989d5 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/CodegenController.java @@ -0,0 +1,151 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.ZipUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenPreviewRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenUpdateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO; +import cn.iocoder.yudao.module.infra.convert.codegen.CodegenConvert; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import cn.iocoder.yudao.module.infra.service.codegen.CodegenService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 代码生成器") +@RestController +@RequestMapping("/infra/codegen") +@Validated +public class CodegenController { + + @Resource + private CodegenService codegenService; + + @GetMapping("/db/table/list") + @Operation(tags = "代码生成器",summary = "获得数据库自带的表定义列表", description = "会过滤掉已经导入 Codegen 的表") + @Parameters({ + @Parameter(name = "dataSourceConfigId", description = "数据源配置的编号", required = true, example = "1"), + @Parameter(name = "name", description = "表名,模糊匹配", example = "yudao"), + @Parameter(name = "comment", description = "描述,模糊匹配", example = "芋道") + }) + @PreAuthorize("@ss.hasPermission('infra:codegen:query')") + public CommonResult> getDatabaseTableList( + @RequestParam(value = "dataSourceConfigId") Long dataSourceConfigId, + @RequestParam(value = "name", required = false) String name, + @RequestParam(value = "comment", required = false) String comment) { + return success(codegenService.getDatabaseTableList(dataSourceConfigId, name, comment)); + } + + @GetMapping("/table/list") + @Operation(tags = "代码生成器",summary = "获得表定义列表") + @Parameter(name = "dataSourceConfigId", description = "数据源配置的编号", required = true, example = "1") + @PreAuthorize("@ss.hasPermission('infra:codegen:query')") + public CommonResult> getCodegenTableList(@RequestParam(value = "dataSourceConfigId") Long dataSourceConfigId) { + List list = codegenService.getCodegenTableList(dataSourceConfigId); + return success(BeanUtils.toBean(list, CodegenTableRespVO.class)); + } + + @GetMapping("/table/page") + @Operation(tags = "代码生成器",summary = "获得表定义分页") + @PreAuthorize("@ss.hasPermission('infra:codegen:query')") + public CommonResult> getCodegenTablePage(@Valid CodegenTablePageReqVO pageReqVO) { + PageResult pageResult = codegenService.getCodegenTablePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, CodegenTableRespVO.class)); + } + + @GetMapping("/detail") + @Operation(tags = "代码生成器",summary = "获得表和字段的明细") + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:codegen:query')") + public CommonResult getCodegenDetail(@RequestParam("tableId") Long tableId) { + CodegenTableDO table = codegenService.getCodegenTable(tableId); + List columns = codegenService.getCodegenColumnListByTableId(tableId); + // 拼装返回 + return success(CodegenConvert.INSTANCE.convert(table, columns)); + } + + @Operation(tags = "代码生成器",summary = "基于数据库的表结构,创建代码生成器的表和字段定义") + @PostMapping("/create-list") + @PreAuthorize("@ss.hasPermission('infra:codegen:create')") + public CommonResult> createCodegenList(@Valid @RequestBody CodegenCreateListReqVO reqVO) { + return success(codegenService.createCodegenList(getLoginUserId(), reqVO)); + } + + @Operation(tags = "代码生成器",summary = "更新数据库的表和字段定义") + @PutMapping("/update") + @PreAuthorize("@ss.hasPermission('infra:codegen:update')") + public CommonResult updateCodegen(@Valid @RequestBody CodegenUpdateReqVO updateReqVO) { + codegenService.updateCodegen(updateReqVO); + return success(true); + } + + @Operation(tags = "代码生成器",summary = "基于数据库的表结构,同步数据库的表和字段定义") + @PutMapping("/sync-from-db") + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:codegen:update')") + public CommonResult syncCodegenFromDB(@RequestParam("tableId") Long tableId) { + codegenService.syncCodegenFromDB(tableId); + return success(true); + } + + @Operation(tags = "代码生成器",summary = "删除数据库的表和字段定义") + @DeleteMapping("/delete") + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:codegen:delete')") + public CommonResult deleteCodegen(@RequestParam("tableId") Long tableId) { + codegenService.deleteCodegen(tableId); + return success(true); + } + + @Operation(tags = "代码生成器",summary = "预览生成代码") + @GetMapping("/preview") + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:codegen:preview')") + public CommonResult> previewCodegen(@RequestParam("tableId") Long tableId) { + Map codes = codegenService.generationCodes(tableId); + return success(CodegenConvert.INSTANCE.convert(codes)); + } + + @Operation(tags = "代码生成器",summary = "下载生成代码") + @GetMapping("/download") + @Parameter(name = "tableId", description = "表编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:codegen:download')") + public void downloadCodegen(@RequestParam("tableId") Long tableId, + HttpServletResponse response) throws IOException { + // 生成代码 + Map codes = codegenService.generationCodes(tableId); + // 构建 zip 包 + String[] paths = codes.keySet().toArray(new String[0]); + ByteArrayInputStream[] ins = codes.values().stream().map(IoUtil::toUtf8Stream).toArray(ByteArrayInputStream[]::new); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipUtil.zip(outputStream, paths, ins); + // 输出 + ServletUtils.writeAttachment(response, "codegen.zip", outputStream.toByteArray()); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java new file mode 100644 index 0000000..efce9ed --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 基于数据库的表结构,创建代码生成器的表和字段定义 Request VO") +@Data +public class CodegenCreateListReqVO { + + @Schema(description = "数据源配置的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "数据源配置的编号不能为空") + private Long dataSourceConfigId; + + @Schema(description = "表名数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1, 2, 3]") + @NotNull(message = "表名数组不能为空") + private List tableNames; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java new file mode 100644 index 0000000..f7d8a62 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo; + +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column.CodegenColumnRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 代码生成表和字段的明细 Response VO") +@Data +public class CodegenDetailRespVO { + + @Schema(description = "表定义") + private CodegenTableRespVO table; + + @Schema(description = "字段定义") + private List columns; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java new file mode 100644 index 0000000..ffd924a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 代码生成预览 Response VO,注意,每个文件都是一个该对象") +@Data +public class CodegenPreviewRespVO { + + @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "java/cn/iocoder/yudao/adminserver/modules/system/controller/test/SysTestDemoController.java") + private String filePath; + + @Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "Hello World") + private String code; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java new file mode 100644 index 0000000..78db9fb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo; + +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column.CodegenColumnSaveReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTableSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 代码生成表和字段的修改 Request VO") +@Data +public class CodegenUpdateReqVO { + + @Valid // 校验内嵌的字段 + @NotNull(message = "表定义不能为空") + private CodegenTableSaveReqVO table; + + @Valid // 校验内嵌的字段 + @NotNull(message = "字段定义不能为空") + private List columns; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java new file mode 100644 index 0000000..f5384ab --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 代码生成字段定义 Response VO") +@Data +public class CodegenColumnRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "表编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long tableId; + + @Schema(description = "字段名", requiredMode = Schema.RequiredMode.REQUIRED, example = "user_age") + private String columnName; + + @Schema(description = "字段类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "int(11)") + private String dataType; + + @Schema(description = "字段描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "年龄") + private String columnComment; + + @Schema(description = "是否允许为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean nullable; + + @Schema(description = "是否主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean primaryKey; + + @Schema(description = "是否自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean autoIncrement; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer ordinalPosition; + + @Schema(description = "Java 属性类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "userAge") + private String javaType; + + @Schema(description = "Java 属性名", requiredMode = Schema.RequiredMode.REQUIRED, example = "Integer") + private String javaField; + + @Schema(description = "字典类型", example = "sys_gender") + private String dictType; + + @Schema(description = "数据示例", example = "1024") + private String example; + + @Schema(description = "是否为 Create 创建操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean createOperation; + + @Schema(description = "是否为 Update 更新操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean updateOperation; + + @Schema(description = "是否为 List 查询操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean listOperation; + + @Schema(description = "List 查询操作的条件类型,参见 CodegenColumnListConditionEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "LIKE") + private String listOperationCondition; + + @Schema(description = "是否为 List 查询操作的返回字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean listOperationResult; + + @Schema(description = "显示类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "input") + private String htmlType; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java new file mode 100644 index 0000000..7882aa7 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 代码生成字段定义创建/修改 Request VO") +@Data +public class CodegenColumnSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "表编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "表编号不能为空") + private Long tableId; + + @Schema(description = "字段名", requiredMode = Schema.RequiredMode.REQUIRED, example = "user_age") + @NotNull(message = "字段名不能为空") + private String columnName; + + @Schema(description = "字段类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "int(11)") + @NotNull(message = "字段类型不能为空") + private String dataType; + + @Schema(description = "字段描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "年龄") + @NotNull(message = "字段描述不能为空") + private String columnComment; + + @Schema(description = "是否允许为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否允许为空不能为空") + private Boolean nullable; + + @Schema(description = "是否主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + @NotNull(message = "是否主键不能为空") + private Boolean primaryKey; + + @Schema(description = "是否自增", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否自增不能为空") + private Boolean autoIncrement; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @NotNull(message = "排序不能为空") + private Integer ordinalPosition; + + @Schema(description = "Java 属性类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "userAge") + @NotNull(message = "Java 属性类型不能为空") + private String javaType; + + @Schema(description = "Java 属性名", requiredMode = Schema.RequiredMode.REQUIRED, example = "Integer") + @NotNull(message = "Java 属性名不能为空") + private String javaField; + + @Schema(description = "字典类型", example = "sys_gender") + private String dictType; + + @Schema(description = "数据示例", example = "1024") + private String example; + + @Schema(description = "是否为 Create 创建操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否为 Create 创建操作的字段不能为空") + private Boolean createOperation; + + @Schema(description = "是否为 Update 更新操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + @NotNull(message = "是否为 Update 更新操作的字段不能为空") + private Boolean updateOperation; + + @Schema(description = "是否为 List 查询操作的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否为 List 查询操作的字段不能为空") + private Boolean listOperation; + + @Schema(description = "List 查询操作的条件类型,参见 CodegenColumnListConditionEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "LIKE") + @NotNull(message = "List 查询操作的条件类型不能为空") + private String listOperationCondition; + + @Schema(description = "是否为 List 查询操作的返回字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否为 List 查询操作的返回字段不能为空") + private Boolean listOperationResult; + + @Schema(description = "显示类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "input") + @NotNull(message = "显示类型不能为空") + private String htmlType; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java new file mode 100644 index 0000000..032a9d8 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 表定义分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CodegenTablePageReqVO extends PageParam { + + @Schema(description = "表名称,模糊匹配", example = "yudao") + private String tableName; + + @Schema(description = "表描述,模糊匹配", example = "芋道") + private String tableComment; + + @Schema(description = "实体,模糊匹配", example = "Yudao") + private String className; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java new file mode 100644 index 0000000..8b438b2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 代码生成表定义 Response VO") +@Data +public class CodegenTableRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "生成场景,参见 CodegenSceneEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer scene; + + @Schema(description = "表名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + private String tableName; + + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String tableComment; + + @Schema(description = "备注", example = "我是备注") + private String remark; + + @Schema(description = "模块名", requiredMode = Schema.RequiredMode.REQUIRED, example = "system") + private String moduleName; + + @Schema(description = "业务名", requiredMode = Schema.RequiredMode.REQUIRED, example = "codegen") + private String businessName; + + @Schema(description = "类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "CodegenTable") + private String className; + + @Schema(description = "类描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "代码生成器的表定义") + private String classComment; + + @Schema(description = "作者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + private String author; + + @Schema(description = "模板类型,参见 CodegenTemplateTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer templateType; + + @Schema(description = "前端类型,参见 CodegenFrontTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + private Integer frontType; + + @Schema(description = "父菜单编号", example = "1024") + private Long parentMenuId; + + @Schema(description = "主表的编号", example = "2048") + private Long masterTableId; + @Schema(description = "子表关联主表的字段编号", example = "4096") + private Long subJoinColumnId; + @Schema(description = "主表与子表是否一对多", example = "4096") + private Boolean subJoinMany; + + @Schema(description = "树表的父字段编号", example = "8192") + private Long treeParentColumnId; + @Schema(description = "树表的名字字段编号", example = "16384") + private Long treeNameColumnId; + + @Schema(description = "主键编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer dataSourceConfigId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime updateTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java new file mode 100644 index 0000000..19c75b0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/CodegenTableSaveReqVO.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 代码生成表定义创建/修改 Response VO") +@Data +public class CodegenTableSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "生成场景,参见 CodegenSceneEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "导入类型不能为空") + private Integer scene; + + @Schema(description = "表名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotNull(message = "表名称不能为空") + private String tableName; + + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotNull(message = "表描述不能为空") + private String tableComment; + + @Schema(description = "备注", example = "我是备注") + private String remark; + + @Schema(description = "模块名", requiredMode = Schema.RequiredMode.REQUIRED, example = "system") + @NotNull(message = "模块名不能为空") + private String moduleName; + + @Schema(description = "业务名", requiredMode = Schema.RequiredMode.REQUIRED, example = "codegen") + @NotNull(message = "业务名不能为空") + private String businessName; + + @Schema(description = "类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "CodegenTable") + @NotNull(message = "类名称不能为空") + private String className; + + @Schema(description = "类描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "代码生成器的表定义") + @NotNull(message = "类描述不能为空") + private String classComment; + + @Schema(description = "作者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + @NotNull(message = "作者不能为空") + private String author; + + @Schema(description = "模板类型,参见 CodegenTemplateTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "模板类型不能为空") + private Integer templateType; + + @Schema(description = "前端类型,参见 CodegenFrontTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + @NotNull(message = "前端类型不能为空") + private Integer frontType; + + @Schema(description = "父菜单编号", example = "1024") + private Long parentMenuId; + + @Schema(description = "主表的编号", example = "2048") + private Long masterTableId; + @Schema(description = "子表关联主表的字段编号", example = "4096") + private Long subJoinColumnId; + @Schema(description = "主表与子表是否一对多", example = "4096") + private Boolean subJoinMany; + + @Schema(description = "树表的父字段编号", example = "8192") + private Long treeParentColumnId; + @Schema(description = "树表的名字字段编号", example = "16384") + private Long treeNameColumnId; + + @AssertTrue(message = "上级菜单不能为空,请前往 [修改生成配置 -> 生成信息] 界面,设置“上级菜单”字段") + @JsonIgnore + public boolean isParentMenuIdValid() { + // 生成场景为管理后台时,必须设置上级菜单,不然生成的菜单 SQL 是无父级菜单的 + return ObjectUtil.notEqual(getScene(), CodegenSceneEnum.ADMIN.getScene()) + || getParentMenuId() != null; + } + + @AssertTrue(message = "关联的父表信息不全") + @JsonIgnore + public boolean isSubValid() { + return ObjectUtil.notEqual(getTemplateType(), CodegenTemplateTypeEnum.SUB) + || (ObjectUtil.isAllNotEmpty(masterTableId, subJoinColumnId, subJoinMany)); + } + + @AssertTrue(message = "关联的树表信息不全") + @JsonIgnore + public boolean isTreeValid() { + return ObjectUtil.notEqual(templateType, CodegenTemplateTypeEnum.TREE) + || (ObjectUtil.isAllNotEmpty(treeParentColumnId, treeNameColumnId)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java new file mode 100644 index 0000000..a1f683c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 数据库的表定义 Response VO") +@Data +public class DatabaseTableRespVO { + + @Schema(description = "表名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yuanma") + private String name; + + @Schema(description = "表描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + private String comment; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/ConfigController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/ConfigController.java new file mode 100644 index 0000000..c6b6806 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/ConfigController.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.infra.controller.admin.config; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.*; +import cn.iocoder.yudao.module.infra.convert.config.ConfigConvert; +import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; +import cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants; +import cn.iocoder.yudao.module.infra.service.config.ConfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 参数配置") +@RestController +@RequestMapping("/infra/config") +@Validated +public class ConfigController { + + @Resource + private ConfigService configService; + + @PostMapping("/create") + @Operation(tags = "参数配置",summary = "创建参数配置") + @PreAuthorize("@ss.hasPermission('infra:config:create')") + public CommonResult createConfig(@Valid @RequestBody ConfigSaveReqVO createReqVO) { + return success(configService.createConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "参数配置",summary = "修改参数配置") + @PreAuthorize("@ss.hasPermission('infra:config:update')") + public CommonResult updateConfig(@Valid @RequestBody ConfigSaveReqVO updateReqVO) { + configService.updateConfig(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "参数配置",summary = "删除参数配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:config:delete')") + public CommonResult deleteConfig(@RequestParam("id") Long id) { + configService.deleteConfig(id); + return success(true); + } + + @GetMapping(value = "/get") + @Operation(tags = "参数配置",summary = "获得参数配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:config:query')") + public CommonResult getConfig(@RequestParam("id") Long id) { + return success(ConfigConvert.INSTANCE.convert(configService.getConfig(id))); + } + + @GetMapping(value = "/get-value-by-key") + @Operation(tags = "参数配置",summary = "根据参数键名查询参数值", description = "不可见的配置,不允许返回给前端") + @Parameter(name = "key", description = "参数键", required = true, example = "yunai.biz.username") + public CommonResult getConfigKey(@RequestParam("key") String key) { + ConfigDO config = configService.getConfigByKey(key); + if (config == null) { + return success(null); + } + if (!config.getVisible()) { + throw exception(ErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_VISIBLE); + } + return success(config.getValue()); + } + + @GetMapping("/page") + @Operation(tags = "参数配置",summary = "获取参数配置分页") + @PreAuthorize("@ss.hasPermission('infra:config:query')") + public CommonResult> getConfigPage(@Valid ConfigPageReqVO pageReqVO) { + PageResult page = configService.getConfigPage(pageReqVO); + return success(ConfigConvert.INSTANCE.convertPage(page)); + } + + @GetMapping("/export") + @Operation(tags = "参数配置",summary = "导出参数配置") + @PreAuthorize("@ss.hasPermission('infra:config:export')") + @OperateLog(type = EXPORT) + public void exportConfig(@Valid ConfigPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configService.getConfigPage(exportReqVO).getList(); + // 输出 + ExcelUtils.write(response, "参数配置.xls", "数据", ConfigRespVO.class, + ConfigConvert.INSTANCE.convertList(list)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigPageReqVO.java new file mode 100644 index 0000000..8caec39 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigPageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.infra.controller.admin.config.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 参数配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConfigPageReqVO extends PageParam { + + @Schema(description = "数据源名称,模糊匹配", example = "名称") + private String name; + + @Schema(description = "参数键名,模糊匹配", example = "yunai.db.username") + private String key; + + @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", example = "1") + private Integer type; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java new file mode 100644 index 0000000..b4f642f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigRespVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.infra.controller.admin.config.vo; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 参数配置信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ConfigRespVO { + + @Schema(description = "参数配置序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("参数配置序号") + private Long id; + + @Schema(description = "参数分类", requiredMode = Schema.RequiredMode.REQUIRED, example = "biz") + @ExcelProperty("参数分类") + private String category; + + @Schema(description = "参数名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "数据库名") + @ExcelProperty("参数名称") + private String name; + + @Schema(description = "参数键名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yunai.db.username") + @ExcelProperty("参数键名") + private String key; + + @Schema(description = "参数键值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("参数键值") + private String value; + + @Schema(description = "参数类型,参见 SysConfigTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "参数类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.CONFIG_TYPE) + private Integer type; + + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @ExcelProperty(value = "是否可见", converter = DictConvert.class) + @DictFormat(DictTypeConstants.BOOLEAN_STRING) + private Boolean visible; + + @Schema(description = "备注", example = "备注一下很帅气!") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java new file mode 100644 index 0000000..59aaa48 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.infra.controller.admin.config.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 参数配置创建/修改 Request VO") +@Data +public class ConfigSaveReqVO { + + @Schema(description = "参数配置序号", example = "1024") + private Long id; + + @Schema(description = "参数分组", requiredMode = Schema.RequiredMode.REQUIRED, example = "biz") + @NotEmpty(message = "参数分组不能为空") + @Size(max = 50, message = "参数名称不能超过 50 个字符") + private String category; + + @Schema(description = "参数名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "数据库名") + @NotBlank(message = "参数名称不能为空") + @Size(max = 100, message = "参数名称不能超过 100 个字符") + private String name; + + @Schema(description = "参数键名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yunai.db.username") + @NotBlank(message = "参数键名长度不能为空") + @Size(max = 100, message = "参数键名长度不能超过 100 个字符") + private String key; + + @Schema(description = "参数键值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotBlank(message = "参数键值不能为空") + @Size(max = 500, message = "参数键值长度不能超过 500 个字符") + private String value; + + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否可见不能为空") + private Boolean visible; + + @Schema(description = "备注", example = "备注一下很帅气!") + private String remark; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DataSourceConfigController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DataSourceConfigController.java new file mode 100644 index 0000000..f608bcd --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DataSourceConfigController.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.infra.controller.admin.db; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; +import cn.iocoder.yudao.module.infra.service.db.DataSourceConfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 数据源配置") +@RestController +@RequestMapping("/infra/data-source-config") +@Validated +public class DataSourceConfigController { + + @Resource + private DataSourceConfigService dataSourceConfigService; + + @PostMapping("/create") + @Operation(tags = "数据库文档",summary = "创建数据源配置") + @PreAuthorize("@ss.hasPermission('infra:data-source-config:create')") + public CommonResult createDataSourceConfig(@Valid @RequestBody DataSourceConfigSaveReqVO createReqVO) { + return success(dataSourceConfigService.createDataSourceConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "数据库文档",summary = "更新数据源配置") + @PreAuthorize("@ss.hasPermission('infra:data-source-config:update')") + public CommonResult updateDataSourceConfig(@Valid @RequestBody DataSourceConfigSaveReqVO updateReqVO) { + dataSourceConfigService.updateDataSourceConfig(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "数据库文档",summary = "删除数据源配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:data-source-config:delete')") + public CommonResult deleteDataSourceConfig(@RequestParam("id") Long id) { + dataSourceConfigService.deleteDataSourceConfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "数据库文档",summary = "获得数据源配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:data-source-config:query')") + public CommonResult getDataSourceConfig(@RequestParam("id") Long id) { + DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(id); + return success(BeanUtils.toBean(config, DataSourceConfigRespVO.class)); + } + + @GetMapping("/list") + @Operation(tags = "数据库文档",summary = "获得数据源配置列表") + @PreAuthorize("@ss.hasPermission('infra:data-source-config:query')") + public CommonResult> getDataSourceConfigList() { + List list = dataSourceConfigService.getDataSourceConfigList(); + return success(BeanUtils.toBean(list, DataSourceConfigRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DatabaseDocController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DatabaseDocController.java new file mode 100644 index 0000000..c3b84f8 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/DatabaseDocController.java @@ -0,0 +1,154 @@ +package cn.iocoder.yudao.module.infra.controller.admin.db; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.smallbun.screw.core.Configuration; +import cn.smallbun.screw.core.engine.EngineConfig; +import cn.smallbun.screw.core.engine.EngineFileType; +import cn.smallbun.screw.core.engine.EngineTemplateType; +import cn.smallbun.screw.core.execute.DocumentationExecute; +import cn.smallbun.screw.core.process.ProcessConfig; +import com.baomidou.dynamic.datasource.creator.DataSourceProperty; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.util.Arrays; + +@Tag(name = "管理后台 - 数据库文档") +@RestController +@RequestMapping("/infra/db-doc") +public class DatabaseDocController { + + @Resource + private DynamicDataSourceProperties dynamicDataSourceProperties; + + private static final String FILE_OUTPUT_DIR = System.getProperty("java.io.tmpdir") + File.separator + + "db-doc"; + private static final String DOC_FILE_NAME = "数据库文档"; + private static final String DOC_VERSION = "1.0.0"; + private static final String DOC_DESCRIPTION = "文档描述"; + + @GetMapping("/export-html") + @Operation(tags = "数据库文档",summary = "导出 html 格式的数据文档") + @Parameter(name = "deleteFile", description = "是否删除在服务器本地生成的数据库文档", example = "true") + public void exportHtml(@RequestParam(defaultValue = "true") Boolean deleteFile, + HttpServletResponse response) throws IOException { + doExportFile(EngineFileType.HTML, deleteFile, response); + } + + @GetMapping("/export-word") + @Operation(tags = "数据库文档",summary = "导出 word 格式的数据文档") + @Parameter(name = "deleteFile", description = "是否删除在服务器本地生成的数据库文档", example = "true") + public void exportWord(@RequestParam(defaultValue = "true") Boolean deleteFile, + HttpServletResponse response) throws IOException { + doExportFile(EngineFileType.WORD, deleteFile, response); + } + + @GetMapping("/export-markdown") + @Operation(tags = "数据库文档",summary = "导出 markdown 格式的数据文档") + @Parameter(name = "deleteFile", description = "是否删除在服务器本地生成的数据库文档", example = "true") + public void exportMarkdown(@RequestParam(defaultValue = "true") Boolean deleteFile, + HttpServletResponse response) throws IOException { + doExportFile(EngineFileType.MD, deleteFile, response); + } + + private void doExportFile(EngineFileType fileOutputType, Boolean deleteFile, + HttpServletResponse response) throws IOException { + String docFileName = DOC_FILE_NAME + "_" + IdUtil.fastSimpleUUID(); + String filePath = doExportFile(fileOutputType, docFileName); + String downloadFileName = DOC_FILE_NAME + fileOutputType.getFileSuffix(); //下载后的文件名 + try { + // 读取,返回 + ServletUtils.writeAttachment(response, downloadFileName, FileUtil.readBytes(filePath)); + } finally { + handleDeleteFile(deleteFile, filePath); + } + } + + /** + * 输出文件,返回文件路径 + * + * @param fileOutputType 文件类型 + * @param fileName 文件名, 无需 ".docx" 等文件后缀 + * @return 生成的文件所在路径 + */ + private String doExportFile(EngineFileType fileOutputType, String fileName) { + try (HikariDataSource dataSource = buildDataSource()) { + // 创建 screw 的配置 + Configuration config = Configuration.builder() + .version(DOC_VERSION) // 版本 + .description(DOC_DESCRIPTION) // 描述 + .dataSource(dataSource) // 数据源 + .engineConfig(buildEngineConfig(fileOutputType, fileName)) // 引擎配置 + .produceConfig(buildProcessConfig()) // 处理配置 + .build(); + + // 执行 screw,生成数据库文档 + new DocumentationExecute(config).execute(); + + return FILE_OUTPUT_DIR + File.separator + fileName + fileOutputType.getFileSuffix(); + } + } + + private void handleDeleteFile(Boolean deleteFile, String filePath) { + if (!deleteFile) { + return; + } + FileUtil.del(filePath); + } + + /** + * 创建数据源 + */ + // TODO 芋艿:screw 暂时不支持 druid,尴尬 + private HikariDataSource buildDataSource() { + // 获得 DataSource 数据源,目前只支持首个 + String primary = dynamicDataSourceProperties.getPrimary(); + DataSourceProperty dataSourceProperty = dynamicDataSourceProperties.getDatasource().get(primary); + // 创建 HikariConfig 配置类 + HikariConfig hikariConfig = new HikariConfig(); + hikariConfig.setJdbcUrl(dataSourceProperty.getUrl()); + hikariConfig.setUsername(dataSourceProperty.getUsername()); + hikariConfig.setPassword(dataSourceProperty.getPassword()); + hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息 + // 创建数据源 + return new HikariDataSource(hikariConfig); + } + + /** + * 创建 screw 的引擎配置 + */ + private static EngineConfig buildEngineConfig(EngineFileType fileOutputType, String docFileName) { + return EngineConfig.builder() + .fileOutputDir(FILE_OUTPUT_DIR) // 生成文件路径 + .openOutputDir(false) // 打开目录 + .fileType(fileOutputType) // 文件类型 + .produceType(EngineTemplateType.velocity) // 文件类型 + .fileName(docFileName) // 自定义文件名称 + .build(); + } + + /** + * 创建 screw 的处理配置,一般可忽略 + * 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 + */ + private static ProcessConfig buildProcessConfig() { + return ProcessConfig.builder() + .ignoreTablePrefix(Arrays.asList("QRTZ_", "ACT_", "FLW_")) // 忽略表前缀 + .build(); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java new file mode 100644 index 0000000..f979528 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.controller.admin.db.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 数据源配置 Response VO") +@Data +public class DataSourceConfigRespVO { + + @Schema(description = "主键编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer id; + + @Schema(description = "数据源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") + private String name; + + @Schema(description = "数据源连接", requiredMode = Schema.RequiredMode.REQUIRED, example = "jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro") + private String url; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "root") + private String username; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java new file mode 100644 index 0000000..54d231f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.infra.controller.admin.db.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 数据源配置创建/修改 Request VO") +@Data +public class DataSourceConfigSaveReqVO { + + @Schema(description = "主键编号", example = "1024") + private Long id; + + @Schema(description = "数据源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") + @NotNull(message = "数据源名称不能为空") + private String name; + + @Schema(description = "数据源连接", requiredMode = Schema.RequiredMode.REQUIRED, example = "jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro") + @NotNull(message = "数据源连接不能为空") + private String url; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "root") + @NotNull(message = "用户名不能为空") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @NotNull(message = "密码不能为空") + private String password; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/Demo01ContactController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/Demo01ContactController.java new file mode 100644 index 0000000..6df47a2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/Demo01ContactController.java @@ -0,0 +1,93 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import cn.iocoder.yudao.module.infra.service.demo.demo01.Demo01ContactService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 示例联系人") +@RestController +@RequestMapping("/infra/demo01-contact") +@Validated +public class Demo01ContactController { + + @Resource + private Demo01ContactService demo01ContactService; + + @PostMapping("/create") + @Operation(tags = "示例管理",summary = "创建示例联系人") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:create')") + public CommonResult createDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO createReqVO) { + return success(demo01ContactService.createDemo01Contact(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "示例管理",summary = "更新示例联系人") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:update')") + public CommonResult updateDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO updateReqVO) { + demo01ContactService.updateDemo01Contact(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "示例管理",summary = "删除示例联系人") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:delete')") + public CommonResult deleteDemo01Contact(@RequestParam("id") Long id) { + demo01ContactService.deleteDemo01Contact(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "示例管理",summary = "获得示例联系人") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:query')") + public CommonResult getDemo01Contact(@RequestParam("id") Long id) { + Demo01ContactDO demo01Contact = demo01ContactService.getDemo01Contact(id); + return success(BeanUtils.toBean(demo01Contact, Demo01ContactRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "示例管理",summary = "获得示例联系人分页") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:query')") + public CommonResult> getDemo01ContactPage(@Valid Demo01ContactPageReqVO pageReqVO) { + PageResult pageResult = demo01ContactService.getDemo01ContactPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, Demo01ContactRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "示例管理",summary = "导出示例联系人 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:export')") + @OperateLog(type = EXPORT) + public void exportDemo01ContactExcel(@Valid Demo01ContactPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = demo01ContactService.getDemo01ContactPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "示例联系人.xls", "数据", Demo01ContactRespVO.class, + BeanUtils.toBean(list, Demo01ContactRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java new file mode 100644 index 0000000..d337d2d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 示例联系人分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class Demo01ContactPageReqVO extends PageParam { + + @Schema(description = "名字", example = "张三") + private String name; + + @Schema(description = "性别", example = "1") + private Integer sex; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java new file mode 100644 index 0000000..5d176c2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 示例联系人 Response VO") +@Data +@ExcelIgnoreUnannotated +public class Demo01ContactRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21555") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("名字") + private String name; + + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "性别", converter = DictConvert.class) + @DictFormat("system_user_sex") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Integer sex; + + @Schema(description = "出生年", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("出生年") + private LocalDateTime birthday; + + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @ExcelProperty("简介") + private String description; + + @Schema(description = "头像") + @ExcelProperty("头像") + private String avatar; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java new file mode 100644 index 0000000..94157ed --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 示例联系人新增/修改 Request VO") +@Data +public class Demo01ContactSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21555") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "名字不能为空") + private String name; + + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "性别不能为空") + private Integer sex; + + @Schema(description = "出生年", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "出生年不能为空") + private LocalDateTime birthday; + + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @NotEmpty(message = "简介不能为空") + private String description; + + @Schema(description = "头像") + private String avatar; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java new file mode 100644 index 0000000..c86414f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/Demo02CategoryController.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo02; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import cn.iocoder.yudao.module.infra.service.demo.demo02.Demo02CategoryService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 示例分类") +@RestController +@RequestMapping("/infra/demo02-category") +@Validated +public class Demo02CategoryController { + + @Resource + private Demo02CategoryService demo02CategoryService; + + @PostMapping("/create") + @Operation(tags = "示例管理",summary = "创建示例分类") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:create')") + public CommonResult createDemo02Category(@Valid @RequestBody Demo02CategorySaveReqVO createReqVO) { + return success(demo02CategoryService.createDemo02Category(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "示例管理",summary = "更新示例分类") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:update')") + public CommonResult updateDemo02Category(@Valid @RequestBody Demo02CategorySaveReqVO updateReqVO) { + demo02CategoryService.updateDemo02Category(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "示例管理",summary = "删除示例分类") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:demo02-category:delete')") + public CommonResult deleteDemo02Category(@RequestParam("id") Long id) { + demo02CategoryService.deleteDemo02Category(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "示例管理",summary = "获得示例分类") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:query')") + public CommonResult getDemo02Category(@RequestParam("id") Long id) { + Demo02CategoryDO demo02Category = demo02CategoryService.getDemo02Category(id); + return success(BeanUtils.toBean(demo02Category, Demo02CategoryRespVO.class)); + } + + @GetMapping("/list") + @Operation(tags = "示例管理",summary = "获得示例分类列表") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:query')") + public CommonResult> getDemo02CategoryList(@Valid Demo02CategoryListReqVO listReqVO) { + List list = demo02CategoryService.getDemo02CategoryList(listReqVO); + return success(BeanUtils.toBean(list, Demo02CategoryRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "示例管理",summary = "导出示例分类 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo02-category:export')") + @OperateLog(type = EXPORT) + public void exportDemo02CategoryExcel(@Valid Demo02CategoryListReqVO listReqVO, + HttpServletResponse response) throws IOException { + List list = demo02CategoryService.getDemo02CategoryList(listReqVO); + // 导出 Excel + ExcelUtils.write(response, "示例分类.xls", "数据", Demo02CategoryRespVO.class, + BeanUtils.toBean(list, Demo02CategoryRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java new file mode 100644 index 0000000..69fcfd9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryListReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 示例分类列表 Request VO") +@Data +public class Demo02CategoryListReqVO { + + @Schema(description = "名字", example = "芋艿") + private String name; + + @Schema(description = "父级编号", example = "6080") + private Long parentId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java new file mode 100644 index 0000000..1f2efd4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategoryRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 示例分类 Response VO") +@Data +@ExcelIgnoreUnannotated +public class Demo02CategoryRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10304") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("名字") + private String name; + + @Schema(description = "父级编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6080") + @ExcelProperty("父级编号") + private Long parentId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java new file mode 100644 index 0000000..3cc5012 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo02/vo/Demo02CategorySaveReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 示例分类新增/修改 Request VO") +@Data +public class Demo02CategorySaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10304") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "名字不能为空") + private String name; + + @Schema(description = "父级编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "6080") + @NotNull(message = "父级编号不能为空") + private Long parentId; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/Demo03StudentController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/Demo03StudentController.java new file mode 100644 index 0000000..05b1d56 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/Demo03StudentController.java @@ -0,0 +1,197 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import cn.iocoder.yudao.module.infra.service.demo.demo03.Demo03StudentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 学生") +@RestController +@RequestMapping("/infra/demo03-student") +@Validated +public class Demo03StudentController { + + @Resource + private Demo03StudentService demo03StudentService; + + @PostMapping("/create") + @Operation(tags = "示例管理",summary = "创建学生") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:create')") + public CommonResult createDemo03Student(@Valid @RequestBody Demo03StudentSaveReqVO createReqVO) { + return success(demo03StudentService.createDemo03Student(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "示例管理",summary = "更新学生") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:update')") + public CommonResult updateDemo03Student(@Valid @RequestBody Demo03StudentSaveReqVO updateReqVO) { + demo03StudentService.updateDemo03Student(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "示例管理",summary = "删除学生") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:demo03-student:delete')") + public CommonResult deleteDemo03Student(@RequestParam("id") Long id) { + demo03StudentService.deleteDemo03Student(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "示例管理",summary = "获得学生") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult getDemo03Student(@RequestParam("id") Long id) { + Demo03StudentDO demo03Student = demo03StudentService.getDemo03Student(id); + return success(BeanUtils.toBean(demo03Student, Demo03StudentRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "示例管理",summary = "获得学生分页") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult> getDemo03StudentPage(@Valid Demo03StudentPageReqVO pageReqVO) { + PageResult pageResult = demo03StudentService.getDemo03StudentPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, Demo03StudentRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "示例管理",summary = "导出学生 Excel") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:export')") + @OperateLog(type = EXPORT) + public void exportDemo03StudentExcel(@Valid Demo03StudentPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = demo03StudentService.getDemo03StudentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "学生.xls", "数据", Demo03StudentRespVO.class, + BeanUtils.toBean(list, Demo03StudentRespVO.class)); + } + + // ==================== 子表(学生课程) ==================== + + @GetMapping("/demo03-course/page") + @Operation(tags = "示例管理",summary = "获得学生课程分页") + @Parameter(name = "studentId", description = "学生编号") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult> getDemo03CoursePage(PageParam pageReqVO, + @RequestParam("studentId") Long studentId) { + return success(demo03StudentService.getDemo03CoursePage(pageReqVO, studentId)); + } + + @PostMapping("/demo03-course/create") + @Operation(tags = "示例管理",summary = "创建学生课程") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:create')") + public CommonResult createDemo03Course(@Valid @RequestBody Demo03CourseDO demo03Course) { + return success(demo03StudentService.createDemo03Course(demo03Course)); + } + + @PutMapping("/demo03-course/update") + @Operation(tags = "示例管理",summary = "更新学生课程") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:update')") + public CommonResult updateDemo03Course(@Valid @RequestBody Demo03CourseDO demo03Course) { + demo03StudentService.updateDemo03Course(demo03Course); + return success(true); + } + + @DeleteMapping("/demo03-course/delete") + @Parameter(name = "id", description = "编号", required = true) + @Operation(tags = "示例管理",summary = "删除学生课程") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:delete')") + public CommonResult deleteDemo03Course(@RequestParam("id") Long id) { + demo03StudentService.deleteDemo03Course(id); + return success(true); + } + + @GetMapping("/demo03-course/get") + @Operation(tags = "示例管理",summary = "获得学生课程") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult getDemo03Course(@RequestParam("id") Long id) { + return success(demo03StudentService.getDemo03Course(id)); + } + + @GetMapping("/demo03-course/list-by-student-id") + @Operation(tags = "示例管理",summary = "获得学生课程列表") + @Parameter(name = "studentId", description = "学生编号") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult> getDemo03CourseListByStudentId(@RequestParam("studentId") Long studentId) { + return success(demo03StudentService.getDemo03CourseListByStudentId(studentId)); + } + + // ==================== 子表(学生班级) ==================== + + @GetMapping("/demo03-grade/page") + @Operation(tags = "示例管理",summary = "获得学生班级分页") + @Parameter(name = "studentId", description = "学生编号") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult> getDemo03GradePage(PageParam pageReqVO, + @RequestParam("studentId") Long studentId) { + return success(demo03StudentService.getDemo03GradePage(pageReqVO, studentId)); + } + + @PostMapping("/demo03-grade/create") + @Operation(tags = "示例管理",summary = "创建学生班级") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:create')") + public CommonResult createDemo03Grade(@Valid @RequestBody Demo03GradeDO demo03Grade) { + return success(demo03StudentService.createDemo03Grade(demo03Grade)); + } + + @PutMapping("/demo03-grade/update") + @Operation(tags = "示例管理",summary = "更新学生班级") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:update')") + public CommonResult updateDemo03Grade(@Valid @RequestBody Demo03GradeDO demo03Grade) { + demo03StudentService.updateDemo03Grade(demo03Grade); + return success(true); + } + + @DeleteMapping("/demo03-grade/delete") + @Parameter(name = "id", description = "编号", required = true) + @Operation(tags = "示例管理",summary = "删除学生班级") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:delete')") + public CommonResult deleteDemo03Grade(@RequestParam("id") Long id) { + demo03StudentService.deleteDemo03Grade(id); + return success(true); + } + + @GetMapping("/demo03-grade/get") + @Operation(tags = "示例管理",summary = "获得学生班级") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult getDemo03Grade(@RequestParam("id") Long id) { + return success(demo03StudentService.getDemo03Grade(id)); + } + + @GetMapping("/demo03-grade/get-by-student-id") + @Operation(tags = "示例管理",summary = "获得学生班级") + @Parameter(name = "studentId", description = "学生编号") + @PreAuthorize("@ss.hasPermission('infra:demo03-student:query')") + public CommonResult getDemo03GradeByStudentId(@RequestParam("studentId") Long studentId) { + return success(demo03StudentService.getDemo03GradeByStudentId(studentId)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/package-info.java new file mode 100644 index 0000000..79682e2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo03; \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java new file mode 100644 index 0000000..6834991 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo; + +import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 学生分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class Demo03StudentPageReqVO extends PageParam { + + @Schema(description = "名字", example = "芋艿") + private String name; + + @Schema(description = "性别") + private Integer sex; + + @Schema(description = "简介", example = "随便") + private String description; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java new file mode 100644 index 0000000..5ae784f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentRespVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; + +@Schema(description = "管理后台 - 学生 Response VO") +@Data +@ExcelIgnoreUnannotated +public class Demo03StudentRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8525") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("名字") + private String name; + + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty(value = "性别", converter = DictConvert.class) + @DictFormat("system_user_sex") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private Integer sex; + + @Schema(description = "出生日期", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("出生日期") + private LocalDateTime birthday; + + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") + @ExcelProperty("简介") + private String description; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java new file mode 100644 index 0000000..d3393a7 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo03/vo/Demo03StudentSaveReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.time.LocalDateTime; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; + +@Schema(description = "管理后台 - 学生新增/修改 Request VO") +@Data +public class Demo03StudentSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8525") + private Long id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "名字不能为空") + private String name; + + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "性别不能为空") + private Integer sex; + + @Schema(description = "出生日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "出生日期不能为空") + private LocalDateTime birthday; + + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") + @NotEmpty(message = "简介不能为空") + private String description; + + + private List demo03Courses; + + private Demo03GradeDO demo03Grade; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/package-info.java new file mode 100644 index 0000000..c448646 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/package-info.java @@ -0,0 +1,8 @@ +/** + * 代码生成示例 + * + * 1. demo01:单表(增删改查) + * 2. demo02:单表(树形结构) + * 3. demo03:主子表(标准模式)+ 主子表(ERP 模式)+ 主子表(内嵌模式) + */ +package cn.iocoder.yudao.module.infra.controller.admin.demo; \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.http b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.http new file mode 100644 index 0000000..499f64d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.http @@ -0,0 +1,45 @@ +### 请求 /infra/file-config/create 接口 => 成功 +POST {{baseUrl}}/infra/file-config/create +Content-Type: application/json +tenant-id: {{adminTenentId}} +Authorization: Bearer {{token}} + +{ + "name": "S3 - 七牛云", + "remark": "", + "storage": 20, + "config": { + "accessKey": "b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8", + "accessSecret": "kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP", + "bucket": "ruoyi-vue-pro", + "endpoint": "s3-cn-south-1.qiniucs.com", + "domain": "http://test.yudao.iocoder.cn", + "region": "oss-cn-beijing" + } +} + +### 请求 /infra/file-config/update 接口 => 成功 +PUT {{baseUrl}}/infra/file-config/update +Content-Type: application/json +tenant-id: {{adminTenentId}} +Authorization: Bearer {{token}} + +{ + "id": 2, + "name": "S3 - 七牛云", + "remark": "", + "config": { + "accessKey": "b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8", + "accessSecret": "kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP", + "bucket": "ruoyi-vue-pro", + "endpoint": "s3-cn-south-1.qiniucs.com", + "domain": "http://test.yudao.iocoder.cn", + "region": "oss-cn-beijing" + } +} + +### 请求 /infra/file-config/test 接口 => 成功 +GET {{baseUrl}}/infra/file-config/test?id=2 +Content-Type: application/json +tenant-id: {{adminTenentId}} +Authorization: Bearer {{token}} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.java new file mode 100644 index 0000000..2dfb5ef --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileConfigController.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; +import cn.iocoder.yudao.module.infra.service.file.FileConfigService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 文件配置") +@RestController +@RequestMapping("/infra/file-config") +@Validated +public class FileConfigController { + + @Resource + private FileConfigService fileConfigService; + + @PostMapping("/create") + @Operation(tags = "文件管理",summary = "创建文件配置") + @PreAuthorize("@ss.hasPermission('infra:file-config:create')") + public CommonResult createFileConfig(@Valid @RequestBody FileConfigSaveReqVO createReqVO) { + return success(fileConfigService.createFileConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "文件管理",summary = "更新文件配置") + @PreAuthorize("@ss.hasPermission('infra:file-config:update')") + public CommonResult updateFileConfig(@Valid @RequestBody FileConfigSaveReqVO updateReqVO) { + fileConfigService.updateFileConfig(updateReqVO); + return success(true); + } + + @PutMapping("/update-master") + @Operation(tags = "文件管理",summary = "更新文件配置为 Master") + @PreAuthorize("@ss.hasPermission('infra:file-config:update')") + public CommonResult updateFileConfigMaster(@RequestParam("id") Long id) { + fileConfigService.updateFileConfigMaster(id); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "文件管理",summary = "删除文件配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:file-config:delete')") + public CommonResult deleteFileConfig(@RequestParam("id") Long id) { + fileConfigService.deleteFileConfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "文件管理",summary = "获得文件配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:file-config:query')") + public CommonResult getFileConfig(@RequestParam("id") Long id) { + FileConfigDO config = fileConfigService.getFileConfig(id); + return success(BeanUtils.toBean(config, FileConfigRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "文件管理",summary = "获得文件配置分页") + @PreAuthorize("@ss.hasPermission('infra:file-config:query')") + public CommonResult> getFileConfigPage(@Valid FileConfigPageReqVO pageVO) { + PageResult pageResult = fileConfigService.getFileConfigPage(pageVO); + return success(BeanUtils.toBean(pageResult, FileConfigRespVO.class)); + } + + @GetMapping("/test") + @Operation(tags = "文件管理",summary = "测试文件配置是否正确") + @PreAuthorize("@ss.hasPermission('infra:file-config:query')") + public CommonResult testFileConfig(@RequestParam("id") Long id) throws Exception { + String url = fileConfigService.testFileConfig(id); + return success(url); + } +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java new file mode 100644 index 0000000..75b1349 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java @@ -0,0 +1,158 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.*; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; +import cn.iocoder.yudao.module.infra.service.file.FileService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import java.util.HashMap; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 文件存储") +@RestController +@RequestMapping("/infra/file") +@Validated +@Slf4j +public class FileController { + + @Resource + private FileService fileService; + + @PostMapping("/upload") + @Operation(tags = "文件管理",summary = "上传文件", description = "模式一:后端上传文件") + @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 + public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws Exception { + MultipartFile file = uploadReqVO.getFile(); + String fileName = file.getOriginalFilename(); + //微信图片_20230905094700.png + //查询当天是否存在该名称 + + + // String fileName = uploadReqVO.getPath(); + //jeeLowCode修改 + //判断当天是否有该名称了 + + //根据天来分类 + String today = DateUtil.today(); + String publicPath="upload/"+today+"/"; + String path=publicPath+fileName; + + fileName = fileService.getUniqueFileName(fileName, path); + path=publicPath+fileName; + + return success(fileService.createFile(fileName, path, IoUtil.readBytes(file.getInputStream()))); + } + + @PostMapping("/jeelowcode/upload") + @Operation(tags = "文件管理",summary = "上传文件", description = "模式一:后端上传文件") + @OperateLog(logArgs = false) // 上传文件,没有记录操作日志的必要 + public CommonResult> jeeLowCodeUploadFile(FileUploadReqVO uploadReqVO) throws Exception { + MultipartFile file = uploadReqVO.getFile(); + String fileName = file.getOriginalFilename(); + //微信图片_20230905094700.png + Long tenantId =-1L; + Long userId =-1L; + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + if(loginUser!=null){ + tenantId = loginUser.getTenantId(); + userId = loginUser.getId(); + } + //根据天来分类 + String today = DateUtil.today(); + String publicPath="upload/"+tenantId+"/"+today+"/"+userId+"/"; //upload/租户id/20240720/用户id/aa.jpg + String path=publicPath+fileName; + + fileName = fileService.getUniqueFileName(fileName, path); + path=publicPath+fileName; + + String fileUrl = fileService.createFile(fileName, path, IoUtil.readBytes(file.getInputStream())); + + Map resultMap=new HashMap<>(); + resultMap.put("fileUrl",fileUrl); + return success(resultMap); + } + + + + @GetMapping("/presigned-url") + @Operation(tags = "文件管理",summary = "获取文件预签名地址", description = "模式二:前端上传文件:用于前端直接上传七牛、阿里云 OSS 等文件存储器") + public CommonResult getFilePresignedUrl(@RequestParam("path") String path) throws Exception { + return success(fileService.getFilePresignedUrl(path)); + } + + @PostMapping("/create") + @Operation(tags = "文件管理",summary = "创建文件", description = "模式二:前端上传文件:配合 presigned-url 接口,记录上传了上传的文件") + public CommonResult createFile(@Valid @RequestBody FileCreateReqVO createReqVO) { + return success(fileService.createFile(createReqVO)); + } + + @DeleteMapping("/delete") + @Operation(tags = "文件管理",summary = "删除文件") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('infra:file:delete')") + public CommonResult deleteFile(@RequestParam("id") Long id) throws Exception { + fileService.deleteFile(id); + return success(true); + } + + @GetMapping("/{configId}/get/**") + @PermitAll + @Operation(tags = "文件管理",summary = "下载文件") + @Parameter(name = "configId", description = "配置编号", required = true) + public void getFileContent(HttpServletRequest request, + HttpServletResponse response, + @PathVariable("configId") Long configId) throws Exception { + // 获取请求的路径 + String path = StrUtil.subAfter(request.getRequestURI(), "/get/", false); + if (StrUtil.isEmpty(path)) { + throw new IllegalArgumentException("结尾的 path 路径必须传递"); + } + // 解码,解决中文路径的问题 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/807/ + path = URLUtil.decode(path); + + // 读取内容 + byte[] content = fileService.getFileContent(configId, path); + if (content == null) { + log.warn("[getFileContent][configId({}) path({}) 文件不存在]", configId, path); + response.setStatus(HttpStatus.NOT_FOUND.value()); + return; + } + ServletUtils.writeAttachment(response, path, content); + } + + @GetMapping("/page") + @Operation(tags = "文件管理",summary = "获得文件分页") + @PreAuthorize("@ss.hasPermission('infra:file:query')") + public CommonResult> getFilePage(@Valid FilePageReqVO pageVO) { + PageResult pageResult = fileService.getFilePage(pageVO); + return success(BeanUtils.toBean(pageResult, FileRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java new file mode 100644 index 0000000..481fa2a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.config; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 文件配置分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class FileConfigPageReqVO extends PageParam { + + @Schema(description = "配置名", example = "S3 - 阿里云") + private String name; + + @Schema(description = "存储器", example = "1") + private Integer storage; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java new file mode 100644 index 0000000..e3bb6fe --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.config; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 文件配置 Response VO") +@Data +public class FileConfigRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "配置名", requiredMode = Schema.RequiredMode.REQUIRED, example = "S3 - 阿里云") + private String name; + + @Schema(description = "存储器,参见 FileStorageEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer storage; + + @Schema(description = "是否为主配置", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean master; + + @Schema(description = "存储配置", requiredMode = Schema.RequiredMode.REQUIRED) + private FileClientConfig config; + + @Schema(description = "备注", example = "我是备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java new file mode 100644 index 0000000..b346ee6 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.config; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Map; + +@Schema(description = "管理后台 - 文件配置创建/修改 Request VO") +@Data +public class FileConfigSaveReqVO { + + @Schema(description = "编号", example = "1") + private Long id; + + @Schema(description = "配置名", requiredMode = Schema.RequiredMode.REQUIRED, example = "S3 - 阿里云") + @NotNull(message = "配置名不能为空") + private String name; + + @Schema(description = "存储器,参见 FileStorageEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "存储器不能为空") + private Integer storage; + + @Schema(description = "存储配置,配置是动态参数,所以使用 Map 接收", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "存储配置不能为空") + private Map config; + + @Schema(description = "备注", example = "我是备注") + private String remark; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java new file mode 100644 index 0000000..2497618 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileCreateReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 文件创建 Request VO") +@Data +public class FileCreateReqVO { + + @NotNull(message = "文件配置编号不能为空") + @Schema(description = "文件配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11") + private Long configId; + + @NotNull(message = "文件路径不能为空") + @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") + private String path; + + @NotNull(message = "原文件名不能为空") + @Schema(description = "原文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") + private String name; + + @NotNull(message = "文件 URL不能为空") + @Schema(description = "文件 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/yudao.jpg") + private String url; + + @Schema(description = "文件 MIME 类型", example = "application/octet-stream") + private String type; + + @Schema(description = "文件大小", example = "2048", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer size; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePageReqVO.java new file mode 100644 index 0000000..21c1178 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 文件分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class FilePageReqVO extends PageParam { + + @Schema(description = "文件路径,模糊匹配", example = "yudao") + private String path; + + @Schema(description = "文件类型,模糊匹配", example = "jpg") + private String type; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java new file mode 100644 index 0000000..926133e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Schema(description = "管理后台 - 文件预签名地址 Response VO") +@Data +public class FilePresignedUrlRespVO { + + @Schema(description = "配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11") + private Long configId; + + @Schema(description = "文件上传 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://s3.cn-south-1.qiniucs.com/ruoyi-vue-pro/758d3a5387507358c7236de4c8f96de1c7f5097ff6a7722b34772fb7b76b140f.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=3TvrJ70gl2Gt6IBe7_IZT1F6i_k0iMuRtyEv4EyS%2F20240217%2Fcn-south-1%2Fs3%2Faws4_request&X-Amz-Date=20240217T123222Z&X-Amz-Expires=600&X-Amz-SignedHeaders=host&X-Amz-Signature=a29f33770ab79bf523ccd4034d0752ac545f3c2a3b17baa1eb4e280cfdccfda5") + private String uploadUrl; + + /** + * 为什么要返回 url 字段? + * + * 前端上传完文件后,需要使用该 URL 进行访问 + */ + @Schema(description = "文件访问 URL", requiredMode = Schema.RequiredMode.REQUIRED, + example = "https://test.yudao.iocoder.cn/758d3a5387507358c7236de4c8f96de1c7f5097ff6a7722b34772fb7b76b140f.png") + private String url; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java new file mode 100644 index 0000000..a0357da --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 文件 Response VO,不返回 content 字段,太大") +@Data +public class FileRespVO { + + @Schema(description = "文件编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "配置编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11") + private Long configId; + + @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") + private String path; + + @Schema(description = "原文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao.jpg") + private String name; + + @Schema(description = "文件 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/yudao.jpg") + private String url; + + @Schema(description = "文件MIME类型", example = "application/octet-stream") + private String type; + + @Schema(description = "文件大小", example = "2048", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer size; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java new file mode 100644 index 0000000..b60b9a1 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 上传文件 Request VO") +@Data +public class FileUploadReqVO { + + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "文件附件不能为空") + private MultipartFile file; + + @Schema(description = "文件附件", example = "yudaoyuanma.png") + private String path; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java new file mode 100644 index 0000000..7763796 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobController.java @@ -0,0 +1,140 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.framework.quartz.core.util.CronUtils; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; +import cn.iocoder.yudao.module.infra.service.job.JobService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.quartz.SchedulerException; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 定时任务") +@RestController +@RequestMapping("/infra/job") +@Validated +public class JobController { + + @Resource + private JobService jobService; + + @PostMapping("/create") + @Operation(tags = "定时任务",summary = "创建定时任务") + @PreAuthorize("@ss.hasPermission('infra:job:create')") + public CommonResult createJob(@Valid @RequestBody JobSaveReqVO createReqVO) + throws SchedulerException { + return success(jobService.createJob(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "定时任务",summary = "更新定时任务") + @PreAuthorize("@ss.hasPermission('infra:job:update')") + public CommonResult updateJob(@Valid @RequestBody JobSaveReqVO updateReqVO) + throws SchedulerException { + jobService.updateJob(updateReqVO); + return success(true); + } + + @PutMapping("/update-status") + @Operation(tags = "定时任务",summary = "更新定时任务的状态") + @Parameters({ + @Parameter(name = "id", description = "编号", required = true, example = "1024"), + @Parameter(name = "status", description = "状态", required = true, example = "1"), + }) + @PreAuthorize("@ss.hasPermission('infra:job:update')") + public CommonResult updateJobStatus(@RequestParam(value = "id") Long id, @RequestParam("status") Integer status) + throws SchedulerException { + jobService.updateJobStatus(id, status); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "定时任务",summary = "删除定时任务") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:job:delete')") + public CommonResult deleteJob(@RequestParam("id") Long id) + throws SchedulerException { + jobService.deleteJob(id); + return success(true); + } + + @PutMapping("/trigger") + @Operation(tags = "定时任务",summary = "触发定时任务") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:job:trigger')") + public CommonResult triggerJob(@RequestParam("id") Long id) throws SchedulerException { + jobService.triggerJob(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "定时任务",summary = "获得定时任务") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:job:query')") + public CommonResult getJob(@RequestParam("id") Long id) { + JobDO job = jobService.getJob(id); + return success(BeanUtils.toBean(job, JobRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "定时任务",summary = "获得定时任务分页") + @PreAuthorize("@ss.hasPermission('infra:job:query')") + public CommonResult> getJobPage(@Valid JobPageReqVO pageVO) { + PageResult pageResult = jobService.getJobPage(pageVO); + return success(BeanUtils.toBean(pageResult, JobRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "定时任务",summary = "导出定时任务 Excel") + @PreAuthorize("@ss.hasPermission('infra:job:export')") + @OperateLog(type = EXPORT) + public void exportJobExcel(@Valid JobPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = jobService.getJobPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "定时任务.xls", "数据", JobRespVO.class, + BeanUtils.toBean(list, JobRespVO.class)); + } + + @GetMapping("/get_next_times") + @Operation(tags = "定时任务",summary = "获得定时任务的下 n 次执行时间") + @Parameters({ + @Parameter(name = "id", description = "编号", required = true, example = "1024"), + @Parameter(name = "count", description = "数量", example = "5") + }) + @PreAuthorize("@ss.hasPermission('infra:job:query')") + public CommonResult> getJobNextTimes( + @RequestParam("id") Long id, + @RequestParam(value = "count", required = false, defaultValue = "5") Integer count) { + JobDO job = jobService.getJob(id); + if (job == null) { + return success(Collections.emptyList()); + } + return success(CronUtils.getNextTimes(job.getCronExpression(), count)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobLogController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobLogController.java new file mode 100644 index 0000000..15601b9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/JobLogController.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; +import cn.iocoder.yudao.module.infra.service.job.JobLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 定时任务日志") +@RestController +@RequestMapping("/infra/job-log") +@Validated +public class JobLogController { + + @Resource + private JobLogService jobLogService; + + @GetMapping("/get") + @Operation(tags = "定时任务",summary = "获得定时任务日志") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('infra:job:query')") + public CommonResult getJobLog(@RequestParam("id") Long id) { + JobLogDO jobLog = jobLogService.getJobLog(id); + return success(BeanUtils.toBean(jobLog, JobLogRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "定时任务",summary = "获得定时任务日志分页") + @PreAuthorize("@ss.hasPermission('infra:job:query')") + public CommonResult> getJobLogPage(@Valid JobLogPageReqVO pageVO) { + PageResult pageResult = jobLogService.getJobLogPage(pageVO); + return success(BeanUtils.toBean(pageResult, JobLogRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "定时任务",summary = "导出定时任务日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:job:export')") + @OperateLog(type = EXPORT) + public void exportJobLogExcel(@Valid JobLogPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = jobLogService.getJobLogPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "任务日志.xls", "数据", JobLogRespVO.class, + BeanUtils.toBean(list, JobLogRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobPageReqVO.java new file mode 100644 index 0000000..3328335 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobPageReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 定时任务分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class JobPageReqVO extends PageParam { + + @Schema(description = "任务名称,模糊匹配", example = "测试任务") + private String name; + + @Schema(description = "任务状态,参见 JobStatusEnum 枚举", example = "1") + private Integer status; + + @Schema(description = "处理器的名字,模糊匹配", example = "sysUserSessionTimeoutJob") + private String handlerName; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java new file mode 100644 index 0000000..25683f8 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobRespVO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 定时任务 Response VO") +@Data +@ExcelIgnoreUnannotated +public class JobRespVO { + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("任务编号") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试任务") + @ExcelProperty("任务名称") + private String name; + + @Schema(description = "任务状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "任务状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.JOB_STATUS) + private Integer status; + + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") + @ExcelProperty("处理器的名字") + private String handlerName; + + @Schema(description = "处理器的参数", example = "yudao") + @ExcelProperty("处理器的参数") + private String handlerParam; + + @Schema(description = "CRON 表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0/10 * * * * ? *") + @ExcelProperty("CRON 表达式") + private String cronExpression; + + @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + @NotNull(message = "重试次数不能为空") + private Integer retryCount; + + @Schema(description = "重试间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") + private Integer retryInterval; + + @Schema(description = "监控超时时间", example = "1000") + @ExcelProperty("监控超时时间") + private Integer monitorTimeout; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java new file mode 100644 index 0000000..0fb986e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/job/JobSaveReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job.vo.job; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 定时任务创建/修改 Request VO") +@Data +public class JobSaveReqVO { + + @Schema(description = "任务编号", example = "1024") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试任务") + @NotEmpty(message = "任务名称不能为空") + private String name; + + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") + @NotEmpty(message = "处理器的名字不能为空") + private String handlerName; + + @Schema(description = "处理器的参数", example = "yudao") + private String handlerParam; + + @Schema(description = "CRON 表达式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0/10 * * * * ? *") + @NotEmpty(message = "CRON 表达式不能为空") + private String cronExpression; + + @Schema(description = "重试次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + @NotNull(message = "重试次数不能为空") + private Integer retryCount; + + @Schema(description = "重试间隔", requiredMode = Schema.RequiredMode.REQUIRED, example = "1000") + @NotNull(message = "重试间隔不能为空") + private Integer retryInterval; + + @Schema(description = "监控超时时间", example = "1000") + private Integer monitorTimeout; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java new file mode 100644 index 0000000..1d3d496 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 定时任务日志分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class JobLogPageReqVO extends PageParam { + + @Schema(description = "任务编号", example = "10") + private Long jobId; + + @Schema(description = "处理器的名字,模糊匹配") + private String handlerName; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "开始执行时间") + private LocalDateTime beginTime; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "结束执行时间") + private LocalDateTime endTime; + + @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举") + private Integer status; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java new file mode 100644 index 0000000..543339d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/job/vo/log/JobLogRespVO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.infra.controller.admin.job.vo.log; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 定时任务日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class JobLogRespVO { + + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("日志编号") + private Long id; + + @Schema(description = "任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("任务编号") + private Long jobId; + + @Schema(description = "处理器的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "sysUserSessionTimeoutJob") + @ExcelProperty("处理器的名字") + private String handlerName; + + @Schema(description = "处理器的参数", example = "yudao") + @ExcelProperty("处理器的参数") + private String handlerParam; + + @Schema(description = "第几次执行", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("第几次执行") + private Integer executeIndex; + + @Schema(description = "开始执行时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("开始执行时间") + private LocalDateTime beginTime; + + @Schema(description = "结束执行时间") + @ExcelProperty("结束执行时间") + private LocalDateTime endTime; + + @Schema(description = "执行时长", example = "123") + @ExcelProperty("执行时长") + private Integer duration; + + @Schema(description = "任务状态,参见 JobLogStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "任务状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.JOB_STATUS) + private Integer status; + + @Schema(description = "结果数据", example = "执行成功") + @ExcelProperty("结果数据") + private String result; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiAccessLogController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiAccessLogController.java new file mode 100644 index 0000000..489976d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiAccessLogController.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; +import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - API 访问日志") +@RestController +@RequestMapping("/infra/api-access-log") +@Validated +public class ApiAccessLogController { + + @Resource + private ApiAccessLogService apiAccessLogService; + + @GetMapping("/page") + @Operation(tags = "日志管理",summary = "获得API 访问日志分页") + @PreAuthorize("@ss.hasPermission('infra:api-access-log:query')") + public CommonResult> getApiAccessLogPage(@Valid ApiAccessLogPageReqVO pageReqVO) { + PageResult pageResult = apiAccessLogService.getApiAccessLogPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ApiAccessLogRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "日志管理",summary = "导出API 访问日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:api-access-log:export')") + @OperateLog(type = EXPORT) + public void exportApiAccessLogExcel(@Valid ApiAccessLogPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = apiAccessLogService.getApiAccessLogPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "API 访问日志.xls", "数据", ApiAccessLogRespVO.class, + BeanUtils.toBean(list, ApiAccessLogRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiErrorLogController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiErrorLogController.java new file mode 100644 index 0000000..b3e302e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiErrorLogController.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; +import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - API 错误日志") +@RestController +@RequestMapping("/infra/api-error-log") +@Validated +public class ApiErrorLogController { + + @Resource + private ApiErrorLogService apiErrorLogService; + + @PutMapping("/update-status") + @Operation(tags = "日志管理",summary = "更新 API 错误日志的状态") + @Parameters({ + @Parameter(name = "id", description = "编号", required = true, example = "1024"), + @Parameter(name = "processStatus", description = "处理状态", required = true, example = "1") + }) + @PreAuthorize("@ss.hasPermission('infra:api-error-log:update-status')") + public CommonResult updateApiErrorLogProcess(@RequestParam("id") Long id, + @RequestParam("processStatus") Integer processStatus) { + apiErrorLogService.updateApiErrorLogProcess(id, processStatus, getLoginUserId()); + return success(true); + } + + @GetMapping("/page") + @Operation(tags = "日志管理",summary = "获得 API 错误日志分页") + @PreAuthorize("@ss.hasPermission('infra:api-error-log:query')") + public CommonResult> getApiErrorLogPage(@Valid ApiErrorLogPageReqVO pageReqVO) { + PageResult pageResult = apiErrorLogService.getApiErrorLogPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ApiErrorLogRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "日志管理",summary = "导出 API 错误日志 Excel") + @PreAuthorize("@ss.hasPermission('infra:api-error-log:export')") + @OperateLog(type = EXPORT) + public void exportApiErrorLogExcel(@Valid ApiErrorLogPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = apiErrorLogService.getApiErrorLogPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "API 错误日志.xls", "数据", ApiErrorLogRespVO.class, + BeanUtils.toBean(list, ApiErrorLogRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java new file mode 100644 index 0000000..c17c111 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - API 访问日志分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ApiAccessLogPageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "666") + private Long userId; + + @Schema(description = "用户类型", example = "2") + private Integer userType; + + @Schema(description = "应用名", example = "dashboard") + private String applicationName; + + @Schema(description = "请求地址,模糊匹配", example = "/xxx/yyy") + private String requestUrl; + + @Schema(description = "开始时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] beginTime; + + @Schema(description = "执行时长,大于等于,单位:毫秒", example = "100") + private Integer duration; + + @Schema(description = "结果码", example = "0") + private Integer resultCode; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java new file mode 100644 index 0000000..5e3f3c9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - API 访问日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ApiAccessLogRespVO { + + @Schema(description = "日志主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("日志主键") + private Long id; + + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002") + @ExcelProperty("链路追踪编号") + private String traceId; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + @ExcelProperty("用户编号") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty(value = "用户类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.USER_TYPE) + private Integer userType; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") + @ExcelProperty("应用名") + private String applicationName; + + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") + @ExcelProperty("请求方法名") + private String requestMethod; + + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy") + @ExcelProperty("请求地址") + private String requestUrl; + + @Schema(description = "请求参数") + @ExcelProperty("请求参数") + private String requestParams; + + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") + @ExcelProperty("用户 IP") + private String userIp; + + @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") + @ExcelProperty("浏览器 UA") + private String userAgent; + + @Schema(description = "开始请求时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("开始请求时间") + private LocalDateTime beginTime; + + @Schema(description = "结束请求时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("结束请求时间") + private LocalDateTime endTime; + + @Schema(description = "执行时长", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + @ExcelProperty("执行时长") + private Integer duration; + + @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @ExcelProperty("结果码") + private Integer resultCode; + + @Schema(description = "结果提示", example = "芋道源码,牛逼!") + @ExcelProperty("结果提示") + private String resultMsg; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java new file mode 100644 index 0000000..2ceb0d0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - API 错误日志分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ApiErrorLogPageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "666") + private Long userId; + + @Schema(description = "用户类型", example = "1") + private Integer userType; + + @Schema(description = "应用名", example = "dashboard") + private String applicationName; + + @Schema(description = "请求地址", example = "/xx/yy") + private String requestUrl; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "异常发生时间") + private LocalDateTime[] exceptionTime; + + @Schema(description = "处理状态", example = "0") + private Integer processStatus; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java new file mode 100644 index 0000000..53f52f0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java @@ -0,0 +1,112 @@ +package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - API 错误日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ApiErrorLogRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("编号") + private Integer id; + + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002") + @ExcelProperty("链路追踪编号") + private String traceId; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + @ExcelProperty("用户编号") + private Integer userId; + + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "用户类型", converter = DictConvert.class) + @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.USER_TYPE) + private Integer userType; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") + @ExcelProperty("应用名") + private String applicationName; + + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") + @ExcelProperty("请求方法名") + private String requestMethod; + + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xx/yy") + @ExcelProperty("请求地址") + private String requestUrl; + + @Schema(description = "请求参数", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("请求参数") + private String requestParams; + + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") + @ExcelProperty("用户 IP") + private String userIp; + + @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") + @ExcelProperty("浏览器 UA") + private String userAgent; + + @Schema(description = "异常发生时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常发生时间") + private LocalDateTime exceptionTime; + + @Schema(description = "异常名", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常名") + private String exceptionName; + + @Schema(description = "异常导致的消息", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常导致的消息") + private String exceptionMessage; + + @Schema(description = "异常导致的根消息", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常导致的根消息") + private String exceptionRootCauseMessage; + + @Schema(description = "异常的栈轨迹", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常的栈轨迹") + private String exceptionStackTrace; + + @Schema(description = "异常发生的类全名", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常发生的类全名") + private String exceptionClassName; + + @Schema(description = "异常发生的类文件", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常发生的类文件") + private String exceptionFileName; + + @Schema(description = "异常发生的方法名", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常发生的方法名") + private String exceptionMethodName; + + @Schema(description = "异常发生的方法所在行", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("异常发生的方法所在行") + private Integer exceptionLineNumber; + + @Schema(description = "处理状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @ExcelProperty(value = "处理状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.API_ERROR_LOG_PROCESS_STATUS) + private Integer processStatus; + + @Schema(description = "处理时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("处理时间") + private LocalDateTime processTime; + + @Schema(description = "处理用户编号", example = "233") + @ExcelProperty("处理用户编号") + private Integer processUserId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.http b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.http new file mode 100644 index 0000000..8a0e70f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.http @@ -0,0 +1,4 @@ +### 请求 /infra/redis/get-monitor-info 接口 => 成功 +GET {{baseUrl}}/infra/redis/get-monitor-info +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.java new file mode 100644 index 0000000..b548897 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/RedisController.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.infra.controller.admin.redis; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.infra.controller.admin.redis.vo.RedisMonitorRespVO; +import cn.iocoder.yudao.module.infra.convert.redis.RedisConvert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.data.redis.connection.RedisServerCommands; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Properties; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - Redis 监控") +@RestController +@RequestMapping("/infra/redis") +public class RedisController { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @GetMapping("/get-monitor-info") + @Operation(tags = "Redis 监控",summary = "获得 Redis 监控信息") + @PreAuthorize("@ss.hasPermission('infra:redis:get-monitor-info')") + public CommonResult getRedisMonitorInfo() { + // 获得 Redis 统计信息 + Properties info = stringRedisTemplate.execute((RedisCallback) RedisServerCommands::info); + Long dbSize = stringRedisTemplate.execute(RedisServerCommands::dbSize); + Properties commandStats = stringRedisTemplate.execute(( + RedisCallback) connection -> connection.info("commandstats")); + assert commandStats != null; // 断言,避免警告 + // 拼接结果返回 + return success(RedisConvert.INSTANCE.build(info, dbSize, commandStats)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java new file mode 100644 index 0000000..cc0aa27 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.infra.controller.admin.redis.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; + +import java.util.List; +import java.util.Properties; + +@Schema(description = "管理后台 - Redis 监控信息 Response VO") +@Data +@Builder +@AllArgsConstructor +public class RedisMonitorRespVO { + + @Schema(description = "Redis info 指令结果,具体字段,查看 Redis 文档", requiredMode = Schema.RequiredMode.REQUIRED) + private Properties info; + + @Schema(description = "Redis key 数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long dbSize; + + @Schema(description = "CommandStat 数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List commandStats; + + @Schema(description = "Redis 命令统计结果") + @Data + @Builder + @AllArgsConstructor + public static class CommandStat { + + @Schema(description = "Redis 命令", requiredMode = Schema.RequiredMode.REQUIRED, example = "get") + private String command; + + @Schema(description = "调用次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long calls; + + @Schema(description = "消耗 CPU 秒数", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private Long usec; + + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/AppFileController.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/AppFileController.java new file mode 100644 index 0000000..7afd223 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/AppFileController.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.infra.controller.app.file; + +import cn.hutool.core.io.IoUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.infra.controller.app.file.vo.AppFileUploadReqVO; +import cn.iocoder.yudao.module.infra.service.file.FileService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 文件存储") +@RestController +@RequestMapping("/infra/file") +@Validated +@Slf4j +public class AppFileController { + + @Resource + private FileService fileService; + + @PostMapping("/upload") + @Operation(tags = "APP接口",summary = "上传文件") + public CommonResult uploadFile(AppFileUploadReqVO uploadReqVO) throws Exception { + MultipartFile file = uploadReqVO.getFile(); + String path = uploadReqVO.getPath(); + return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/vo/AppFileUploadReqVO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/vo/AppFileUploadReqVO.java new file mode 100644 index 0000000..04666c1 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/file/vo/AppFileUploadReqVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.infra.controller.app.file.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +@Schema(description = "用户 App - 上传文件 Request VO") +@Data +public class AppFileUploadReqVO { + + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "文件附件不能为空") + private MultipartFile file; + + @Schema(description = "文件附件", example = "yudaoyuanma.png") + private String path; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/package-info.java new file mode 100644 index 0000000..d0f921f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/app/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.infra.controller.app; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/package-info.java new file mode 100644 index 0000000..04fde2f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 RESTful API 给前端: + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分 + */ +package cn.iocoder.yudao.module.infra.controller; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/codegen/CodegenConvert.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/codegen/CodegenConvert.java new file mode 100644 index 0000000..feb4b23 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/codegen/CodegenConvert.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.infra.convert.codegen; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenPreviewRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.column.CodegenColumnRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import com.baomidou.mybatisplus.generator.config.po.TableField; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import org.apache.ibatis.type.JdbcType; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; +import org.mapstruct.Named; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface CodegenConvert { + + CodegenConvert INSTANCE = Mappers.getMapper(CodegenConvert.class); + + // ========== TableInfo 相关 ========== + + @Mappings({ + @Mapping(source = "name", target = "tableName"), + @Mapping(source = "comment", target = "tableComment"), + }) + CodegenTableDO convert(TableInfo bean); + + List convertList(List list); + + @Mappings({ + @Mapping(source = "name", target = "columnName"), + @Mapping(source = "metaInfo.jdbcType", target = "dataType", qualifiedByName = "getDataType"), + @Mapping(source = "comment", target = "columnComment"), + @Mapping(source = "metaInfo.nullable", target = "nullable"), + @Mapping(source = "keyFlag", target = "primaryKey"), + @Mapping(source = "keyIdentityFlag", target = "autoIncrement"), + @Mapping(source = "columnType.type", target = "javaType"), + @Mapping(source = "propertyName", target = "javaField"), + }) + CodegenColumnDO convert(TableField bean); + + @Named("getDataType") + default String getDataType(JdbcType jdbcType) { + return jdbcType.name(); + } + + // ========== 其它 ========== + + default CodegenDetailRespVO convert(CodegenTableDO table, List columns) { + CodegenDetailRespVO respVO = new CodegenDetailRespVO(); + respVO.setTable(BeanUtils.toBean(table, CodegenTableRespVO.class)); + respVO.setColumns(BeanUtils.toBean(columns, CodegenColumnRespVO.class)); + return respVO; + } + + default List convert(Map codes) { + return CollectionUtils.convertList(codes.entrySet(), + entry -> new CodegenPreviewRespVO().setFilePath(entry.getKey()).setCode(entry.getValue())); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/config/ConfigConvert.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/config/ConfigConvert.java new file mode 100644 index 0000000..92094b0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/config/ConfigConvert.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.infra.convert.config; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigRespVO; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface ConfigConvert { + + ConfigConvert INSTANCE = Mappers.getMapper(ConfigConvert.class); + + PageResult convertPage(PageResult page); + + List convertList(List list); + + @Mapping(source = "configKey", target = "key") + ConfigRespVO convert(ConfigDO bean); + + @Mapping(source = "key", target = "configKey") + ConfigDO convert(ConfigSaveReqVO bean); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/file/FileConfigConvert.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/file/FileConfigConvert.java new file mode 100644 index 0000000..7df2b57 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/file/FileConfigConvert.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.infra.convert.file; + +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * 文件配置 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface FileConfigConvert { + + FileConfigConvert INSTANCE = Mappers.getMapper(FileConfigConvert.class); + + @Mapping(target = "config", ignore = true) + FileConfigDO convert(FileConfigSaveReqVO bean); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/package-info.java new file mode 100644 index 0000000..8e27593 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 POJO 类的实体转换 + * + * 目前使用 MapStruct 框架 + */ +package cn.iocoder.yudao.module.infra.convert; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/redis/RedisConvert.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/redis/RedisConvert.java new file mode 100644 index 0000000..0c8ca98 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/redis/RedisConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.infra.convert.redis; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.infra.controller.admin.redis.vo.RedisMonitorRespVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.ArrayList; +import java.util.Properties; + +@Mapper +public interface RedisConvert { + + RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class); + + default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) { + RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize) + .commandStats(new ArrayList<>(commandStats.size())).build(); + commandStats.forEach((key, value) -> { + respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder() + .command(StrUtil.subAfter((String) key, "cmdstat_", false)) + .calls(Long.valueOf(StrUtil.subBetween((String) value, "calls=", ","))) + .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ","))) + .build()); + }); + return respVO; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md new file mode 100644 index 0000000..8153487 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java new file mode 100644 index 0000000..3681622 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java @@ -0,0 +1,142 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.codegen; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.generator.config.po.TableField; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 代码生成 column 字段定义 + * + * @author 芋道源码 + */ +@TableName(value = "infra_codegen_column", autoResultMap = true) +@KeySequence("infra_codegen_column_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class CodegenColumnDO extends BaseDO { + + /** + * ID 编号 + */ + @TableId + private Long id; + /** + * 表编号 + *

    + * 关联 {@link CodegenTableDO#getId()} + */ + private Long tableId; + + // ========== 表相关字段 ========== + + /** + * 字段名 + * + * 关联 {@link TableField#getName()} + */ + private String columnName; + /** + * 数据库字段类型 + * + * 关联 {@link TableField.MetaInfo#getJdbcType()} + */ + private String dataType; + /** + * 字段描述 + * + * 关联 {@link TableField#getComment()} + */ + private String columnComment; + /** + * 是否允许为空 + * + * 关联 {@link TableField.MetaInfo#isNullable()} + */ + private Boolean nullable; + /** + * 是否主键 + * + * 关联 {@link TableField#isKeyFlag()} + */ + private Boolean primaryKey; + /** + * 是否自增 + * + * 关联 {@link TableField#isKeyIdentityFlag()} + */ + private Boolean autoIncrement; + /** + * 排序 + */ + private Integer ordinalPosition; + + // ========== Java 相关字段 ========== + + /** + * Java 属性类型 + * + * 例如说 String、Boolean 等等 + * + * 关联 {@link TableField#getColumnType()} + */ + private String javaType; + /** + * Java 属性名 + * + * 关联 {@link TableField#getPropertyName()} + */ + private String javaField; + /** + * 字典类型 + *

    + * 关联 DictTypeDO 的 type 属性 + */ + private String dictType; + /** + * 数据示例,主要用于生成 Swagger 注解的 example 字段 + */ + private String example; + + // ========== CRUD 相关字段 ========== + + /** + * 是否为 Create 创建操作的字段 + */ + private Boolean createOperation; + /** + * 是否为 Update 更新操作的字段 + */ + private Boolean updateOperation; + /** + * 是否为 List 查询操作的字段 + */ + private Boolean listOperation; + /** + * List 查询操作的条件类型 + *

    + * 枚举 {@link CodegenColumnListConditionEnum} + */ + private String listOperationCondition; + /** + * 是否为 List 查询操作的返回字段 + */ + private Boolean listOperationResult; + + // ========== UI 相关字段 ========== + + /** + * 显示类型 + *

    + * 枚举 {@link CodegenColumnHtmlTypeEnum} + */ + private String htmlType; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java new file mode 100644 index 0000000..faee817 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java @@ -0,0 +1,158 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.codegen; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenFrontTypeEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 代码生成 table 表定义 + * + * @author 芋道源码 + */ +@TableName(value = "infra_codegen_table", autoResultMap = true) +@KeySequence("infra_codegen_table_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +public class CodegenTableDO extends BaseDO { + + /** + * ID 编号 + */ + @TableId + private Long id; + + /** + * 数据源编号 + * + * 关联 {@link DataSourceConfigDO#getId()} + */ + private Long dataSourceConfigId; + /** + * 生成场景 + * + * 枚举 {@link CodegenSceneEnum} + */ + private Integer scene; + + // ========== 表相关字段 ========== + + /** + * 表名称 + * + * 关联 {@link TableInfo#getName()} + */ + private String tableName; + /** + * 表描述 + * + * 关联 {@link TableInfo#getComment()} + */ + private String tableComment; + /** + * 备注 + */ + private String remark; + + // ========== 类相关字段 ========== + + /** + * 模块名,即一级目录 + * + * 例如说,system、infra、tool 等等 + */ + private String moduleName; + /** + * 业务名,即二级目录 + * + * 例如说,user、permission、dict 等等 + */ + private String businessName; + /** + * 类名称(首字母大写) + * + * 例如说,SysUser、SysMenu、SysDictData 等等 + */ + private String className; + /** + * 类描述 + */ + private String classComment; + /** + * 作者 + */ + private String author; + + // ========== 生成相关字段 ========== + + /** + * 模板类型 + * + * 枚举 {@link CodegenTemplateTypeEnum} + */ + private Integer templateType; + /** + * 代码生成的前端类型 + * + * 枚举 {@link CodegenFrontTypeEnum} + */ + private Integer frontType; + + // ========== 菜单相关字段 ========== + + /** + * 父菜单编号 + * + * 关联 MenuDO 的 id 属性 + */ + private Long parentMenuId; + + // ========== 主子表相关字段 ========== + + /** + * 主表的编号 + * + * 关联 {@link CodegenTableDO#getId()} + */ + private Long masterTableId; + /** + * 【自己】子表关联主表的字段编号 + * + * 关联 {@link CodegenColumnDO#getId()} + */ + private Long subJoinColumnId; + /** + * 主表与子表是否一对多 + * + * true:一对多 + * false:一对一 + */ + private Boolean subJoinMany; + + // ========== 树表相关字段 ========== + + /** + * 树表的父字段编号 + * + * 关联 {@link CodegenColumnDO#getId()} + */ + private Long treeParentColumnId; + /** + * 树表的名字字段编号 + * + * 名字的用途:新增或修改时,select 框展示的字段 + * + * 关联 {@link CodegenColumnDO#getId()} + */ + private Long treeNameColumnId; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java new file mode 100644 index 0000000..03b6770 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.config; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 参数配置表 + * + * @author 芋道源码 + */ +@TableName("infra_config") +@KeySequence("infra_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConfigDO extends BaseDO { + + /** + * 参数主键 + */ + @TableId + private Long id; + /** + * 参数分类 + */ + private String category; + /** + * 参数名称 + */ + private String name; + /** + * 参数键名 + * + * 支持多 DB 类型时,无法直接使用 key + @TableField("config_key") 来实现转换,原因是 "config_key" AS key 而存在报错 + */ + private String configKey; + /** + * 参数键值 + */ + private String value; + /** + * 参数类型 + * + * 枚举 {@link ConfigTypeEnum} + */ + private Integer type; + /** + * 是否可见 + * + * 不可见的参数,一般是敏感参数,前端不可获取 + */ + private Boolean visible; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java new file mode 100644 index 0000000..138babe --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.db; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.EncryptTypeHandler; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 数据源配置 + * + * @author 芋道源码 + */ +@TableName(value = "infra_data_source_config", autoResultMap = true) +@KeySequence("infra_data_source_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +public class DataSourceConfigDO extends BaseDO { + + /** + * 主键编号 - Master 数据源 + */ + public static final Long ID_MASTER = 0L; + + /** + * 主键编号 + */ + private Long id; + /** + * 连接名 + */ + private String name; + + /** + * 数据源连接 + */ + private String url; + /** + * 用户名 + */ + private String username; + /** + * 密码 + */ + @TableField(typeHandler = EncryptTypeHandler.class) + private String password; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java new file mode 100644 index 0000000..f9294a4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 示例联系人 DO + * + * @author 芋道源码 + */ +@TableName("infra_demo01_contact") +@KeySequence("infra_demo01_contact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Demo01ContactDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 名字 + */ + private String name; + /** + * 性别 + * + * 枚举 {@link TODO system_user_sex 对应的类} + */ + private Integer sex; + /** + * 出生年 + */ + private LocalDateTime birthday; + /** + * 简介 + */ + private String description; + /** + * 头像 + */ + private String avatar; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java new file mode 100644 index 0000000..1c3d4ea --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 示例分类 DO + * + * @author 芋道源码 + */ +@TableName("infra_demo02_category") +@KeySequence("infra_demo02_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Demo02CategoryDO extends BaseDO { + + public static final Long PARENT_ID_ROOT = 0L; + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 名字 + */ + private String name; + /** + * 父级编号 + */ + private Long parentId; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java new file mode 100644 index 0000000..bf265a8 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 学生课程 DO + * + * @author 芋道源码 + */ +@TableName("infra_demo03_course") +@KeySequence("infra_demo03_course_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Demo03CourseDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 学生编号 + */ + private Long studentId; + /** + * 名字 + */ + private String name; + /** + * 分数 + */ + private Integer score; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java new file mode 100644 index 0000000..a0e8ed7 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 学生班级 DO + * + * @author 芋道源码 + */ +@TableName("infra_demo03_grade") +@KeySequence("infra_demo03_grade_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Demo03GradeDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 学生编号 + */ + private Long studentId; + /** + * 名字 + */ + private String name; + /** + * 班主任 + */ + private String teacher; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java new file mode 100644 index 0000000..cf88d25 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 学生 DO + * + * @author 芋道源码 + */ +@TableName("infra_demo03_student") +@KeySequence("infra_demo03_student_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Demo03StudentDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 名字 + */ + private String name; + /** + * 性别 + * + * 枚举 {@link TODO system_user_sex 对应的类} + */ + private Integer sex; + /** + * 出生日期 + */ + private LocalDateTime birthday; + /** + * 简介 + */ + private String description; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java new file mode 100644 index 0000000..c30a9d5 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.file; + +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +/** + * 文件配置表 + * + * @author 芋道源码 + */ +@TableName(value = "infra_file_config", autoResultMap = true) +@KeySequence("infra_file_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FileConfigDO extends BaseDO { + + /** + * 配置编号,数据库自增 + */ + private Long id; + /** + * 配置名 + */ + private String name; + /** + * 存储器 + * + * 枚举 {@link FileStorageEnum} + */ + private Integer storage; + /** + * 备注 + */ + private String remark; + /** + * 是否为主配置 + * + * 由于我们可以配置多个文件配置,默认情况下,使用主配置进行文件的上传 + */ + private Boolean master; + + /** + * 支付渠道配置 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private FileClientConfig config; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java new file mode 100644 index 0000000..e19a1ce --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.file; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 文件内容表 + * + * 专门用于存储 {@link cn.iocoder.yudao.framework.file.core.client.db.DBFileClient} 的文件内容 + * + * @author 芋道源码 + */ +@TableName("infra_file_content") +@KeySequence("infra_file_content_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FileContentDO extends BaseDO { + + /** + * 编号,数据库自增 + */ + @TableId(type = IdType.INPUT) + private String id; + /** + * 配置编号 + * + * 关联 {@link FileConfigDO#getId()} + */ + private Long configId; + /** + * 路径,即文件名 + */ + private String path; + /** + * 文件内容 + */ + private byte[] content; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java new file mode 100644 index 0000000..c0fb007 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.file; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 文件表 + * 每次文件上传,都会记录一条记录到该表中 + * + * @author 芋道源码 + */ +@TableName("infra_file") +@KeySequence("infra_file_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class FileDO extends BaseDO { + + /** + * 编号,数据库自增 + */ + private Long id; + /** + * 配置编号 + * + * 关联 {@link FileConfigDO#getId()} + */ + private Long configId; + /** + * 原文件名 + */ + private String name; + /** + * 路径,即文件名 + */ + private String path; + /** + * 访问地址 + */ + private String url; + /** + * 文件的 MIME 类型,例如 "application/octet-stream" + */ + private String type; + /** + * 文件大小 + */ + private Integer size; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java new file mode 100644 index 0000000..18b245a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.job; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 定时任务 DO + * + * @author 芋道源码 + */ +@TableName("infra_job") +@KeySequence("infra_job_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class JobDO extends BaseDO { + + /** + * 任务编号 + */ + @TableId + private Long id; + /** + * 任务名称 + */ + private String name; + /** + * 任务状态 + * + * 枚举 {@link JobStatusEnum} + */ + private Integer status; + /** + * 处理器的名字 + */ + private String handlerName; + /** + * 处理器的参数 + */ + private String handlerParam; + /** + * CRON 表达式 + */ + private String cronExpression; + + // ========== 重试相关字段 ========== + /** + * 重试次数 + * 如果不重试,则设置为 0 + */ + private Integer retryCount; + /** + * 重试间隔,单位:毫秒 + * 如果没有间隔,则设置为 0 + */ + private Integer retryInterval; + + // ========== 监控相关字段 ========== + /** + * 监控超时时间,单位:毫秒 + * 为空时,表示不监控 + * + * 注意,这里的超时的目的,不是进行任务的取消,而是告警任务的执行时间过长 + */ + private Integer monitorTimeout; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java new file mode 100644 index 0000000..2d4cbaf --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.job; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * 定时任务的执行日志 + * + * @author 芋道源码 + */ +@TableName("infra_job_log") +@KeySequence("infra_job_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class JobLogDO extends BaseDO { + + /** + * 日志编号 + */ + private Long id; + /** + * 任务编号 + * + * 关联 {@link JobDO#getId()} + */ + private Long jobId; + /** + * 处理器的名字 + * + * 冗余字段 {@link JobDO#getHandlerName()} + */ + private String handlerName; + /** + * 处理器的参数 + * + * 冗余字段 {@link JobDO#getHandlerParam()} + */ + private String handlerParam; + /** + * 第几次执行 + * + * 用于区分是不是重试执行。如果是重试执行,则 index 大于 1 + */ + private Integer executeIndex; + + /** + * 开始执行时间 + */ + private LocalDateTime beginTime; + /** + * 结束执行时间 + */ + private LocalDateTime endTime; + /** + * 执行时长,单位:毫秒 + */ + private Integer duration; + /** + * 状态 + * + * 枚举 {@link JobLogStatusEnum} + */ + private Integer status; + /** + * 结果数据 + * + * 成功时,使用 {@link JobHandler#execute(String)} 的结果 + * 失败时,使用 {@link JobHandler#execute(String)} 的异常堆栈 + */ + private String result; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java new file mode 100644 index 0000000..ab4292b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.logger; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * API 访问日志 + * + * @author 芋道源码 + */ +@TableName("infra_api_access_log") +@KeySequence(value = "infra_api_access_log_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ApiAccessLogDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。 + */ + private String traceId; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 应用名 + * + * 目前读取 `spring.application.name` 配置项 + */ + private String applicationName; + + // ========== 请求相关字段 ========== + + /** + * 请求方法名 + */ + private String requestMethod; + /** + * 访问地址 + */ + private String requestUrl; + /** + * 请求参数 + * + * query: Query String + * body: Quest Body + */ + private String requestParams; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + + // ========== 执行相关字段 ========== + + /** + * 开始请求时间 + */ + private LocalDateTime beginTime; + /** + * 结束请求时间 + */ + private LocalDateTime endTime; + /** + * 执行时长,单位:毫秒 + */ + private Integer duration; + /** + * 结果码 + * + * 目前使用的 {@link CommonResult#getCode()} 属性 + */ + private Integer resultCode; + /** + * 结果提示 + * + * 目前使用的 {@link CommonResult#getMsg()} 属性 + */ + private String resultMsg; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java new file mode 100644 index 0000000..7dc0409 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java @@ -0,0 +1,156 @@ +package cn.iocoder.yudao.module.infra.dal.dataobject.logger; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.enums.logger.ApiErrorLogProcessStatusEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * API 异常数据 + * + * @author 芋道源码 + */ +@TableName("infra_api_error_log") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@KeySequence(value = "infra_api_error_log_seq") +public class ApiErrorLogDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 用户编号 + */ + private Long userId; + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。 + */ + private String traceId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 应用名 + * + * 目前读取 spring.application.name + */ + private String applicationName; + + // ========== 请求相关字段 ========== + + /** + * 请求方法名 + */ + private String requestMethod; + /** + * 访问地址 + */ + private String requestUrl; + /** + * 请求参数 + * + * query: Query String + * body: Quest Body + */ + private String requestParams; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + + // ========== 异常相关字段 ========== + + /** + * 异常发生时间 + */ + private LocalDateTime exceptionTime; + /** + * 异常名 + * + * {@link Throwable#getClass()} 的类全名 + */ + private String exceptionName; + /** + * 异常导致的消息 + * + * {@link cn.hutool.core.exceptions.ExceptionUtil#getMessage(Throwable)} + */ + private String exceptionMessage; + /** + * 异常导致的根消息 + * + * {@link cn.hutool.core.exceptions.ExceptionUtil#getRootCauseMessage(Throwable)} + */ + private String exceptionRootCauseMessage; + /** + * 异常的栈轨迹 + * + * {@link org.apache.commons.lang3.exception.ExceptionUtils#getStackTrace(Throwable)} + */ + private String exceptionStackTrace; + /** + * 异常发生的类全名 + * + * {@link StackTraceElement#getClassName()} + */ + private String exceptionClassName; + /** + * 异常发生的类文件 + * + * {@link StackTraceElement#getFileName()} + */ + private String exceptionFileName; + /** + * 异常发生的方法名 + * + * {@link StackTraceElement#getMethodName()} + */ + private String exceptionMethodName; + /** + * 异常发生的方法所在行 + * + * {@link StackTraceElement#getLineNumber()} + */ + private Integer exceptionLineNumber; + + // ========== 处理相关字段 ========== + + /** + * 处理状态 + * + * 枚举 {@link ApiErrorLogProcessStatusEnum} + */ + private Integer processStatus; + /** + * 处理时间 + */ + private LocalDateTime processTime; + /** + * 处理用户编号 + * + * 关联 cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO.SysUserDO#getId() + */ + private Long processUserId; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java new file mode 100644 index 0000000..3f1aedb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.codegen; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface CodegenColumnMapper extends BaseMapperX { + + default List selectListByTableId(Long tableId) { + return selectList(new LambdaQueryWrapperX() + .eq(CodegenColumnDO::getTableId, tableId) + .orderByAsc(CodegenColumnDO::getId)); + } + + default void deleteListByTableId(Long tableId) { + delete(new LambdaQueryWrapperX() + .eq(CodegenColumnDO::getTableId, tableId)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenTableMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenTableMapper.java new file mode 100644 index 0000000..f196700 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenTableMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.codegen; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface CodegenTableMapper extends BaseMapperX { + + default CodegenTableDO selectByTableNameAndDataSourceConfigId(String tableName, Long dataSourceConfigId) { + return selectOne(CodegenTableDO::getTableName, tableName, + CodegenTableDO::getDataSourceConfigId, dataSourceConfigId); + } + + default PageResult selectPage(CodegenTablePageReqVO pageReqVO) { + return selectPage(pageReqVO, new LambdaQueryWrapperX() + .likeIfPresent(CodegenTableDO::getTableName, pageReqVO.getTableName()) + .likeIfPresent(CodegenTableDO::getTableComment, pageReqVO.getTableComment()) + .likeIfPresent(CodegenTableDO::getClassName, pageReqVO.getClassName()) + .betweenIfPresent(CodegenTableDO::getCreateTime, pageReqVO.getCreateTime()) + .orderByDesc(CodegenTableDO::getUpdateTime) + ); + } + + default List selectListByDataSourceConfigId(Long dataSourceConfigId) { + return selectList(CodegenTableDO::getDataSourceConfigId, dataSourceConfigId); + } + + default List selectListByTemplateTypeAndMasterTableId(Integer templateType, Long masterTableId) { + return selectList(CodegenTableDO::getTemplateType, templateType, + CodegenTableDO::getMasterTableId, masterTableId); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java new file mode 100644 index 0000000..466403c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.config; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ConfigMapper extends BaseMapperX { + + default ConfigDO selectByKey(String key) { + return selectOne(ConfigDO::getConfigKey, key); + } + + default PageResult selectPage(ConfigPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ConfigDO::getName, reqVO.getName()) + .likeIfPresent(ConfigDO::getConfigKey, reqVO.getKey()) + .eqIfPresent(ConfigDO::getType, reqVO.getType()) + .betweenIfPresent(ConfigDO::getCreateTime, reqVO.getCreateTime())); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/db/DataSourceConfigMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/db/DataSourceConfigMapper.java new file mode 100644 index 0000000..5ad8be4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/db/DataSourceConfigMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.db; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 数据源配置 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface DataSourceConfigMapper extends BaseMapperX { +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java new file mode 100644 index 0000000..f5f3cdb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo01; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 示例联系人 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface Demo01ContactMapper extends BaseMapperX { + + default PageResult selectPage(Demo01ContactPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(Demo01ContactDO::getName, reqVO.getName()) + .eqIfPresent(Demo01ContactDO::getSex, reqVO.getSex()) + .betweenIfPresent(Demo01ContactDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(Demo01ContactDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java new file mode 100644 index 0000000..b16e18f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo02; + +import java.util.*; + +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 示例分类 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface Demo02CategoryMapper extends BaseMapperX { + + default List selectList(Demo02CategoryListReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(Demo02CategoryDO::getName, reqVO.getName()) + .eqIfPresent(Demo02CategoryDO::getParentId, reqVO.getParentId()) + .betweenIfPresent(Demo02CategoryDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(Demo02CategoryDO::getId)); + } + + default Demo02CategoryDO selectByParentIdAndName(Long parentId, String name) { + return selectOne(Demo02CategoryDO::getParentId, parentId, Demo02CategoryDO::getName, name); + } + + default Long selectCountByParentId(Long parentId) { + return selectCount(Demo02CategoryDO::getParentId, parentId); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java new file mode 100644 index 0000000..3cb3aa5 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03CourseMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 学生课程 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface Demo03CourseMapper extends BaseMapperX { + + default PageResult selectPage(PageParam reqVO, Long studentId) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(Demo03CourseDO::getStudentId, studentId) + .orderByDesc(Demo03CourseDO::getId)); + } + + default List selectListByStudentId(Long studentId) { + return selectList(Demo03CourseDO::getStudentId, studentId); + } + + default int deleteByStudentId(Long studentId) { + return delete(Demo03CourseDO::getStudentId, studentId); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java new file mode 100644 index 0000000..0440cc4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03GradeMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 学生班级 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface Demo03GradeMapper extends BaseMapperX { + + default PageResult selectPage(PageParam reqVO, Long studentId) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eq(Demo03GradeDO::getStudentId, studentId) + .orderByDesc(Demo03GradeDO::getId)); + } + + default Demo03GradeDO selectByStudentId(Long studentId) { + return selectOne(Demo03GradeDO::getStudentId, studentId); + } + + default int deleteByStudentId(Long studentId) { + return delete(Demo03GradeDO::getStudentId, studentId); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java new file mode 100644 index 0000000..00659d0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/Demo03StudentMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.*; + +/** + * 学生 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface Demo03StudentMapper extends BaseMapperX { + + default PageResult selectPage(Demo03StudentPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(Demo03StudentDO::getName, reqVO.getName()) + .eqIfPresent(Demo03StudentDO::getSex, reqVO.getSex()) + .eqIfPresent(Demo03StudentDO::getDescription, reqVO.getDescription()) + .betweenIfPresent(Demo03StudentDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(Demo03StudentDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileConfigMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileConfigMapper.java new file mode 100644 index 0000000..c0e2af3 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileConfigMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.file; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FileConfigMapper extends BaseMapperX { + + default PageResult selectPage(FileConfigPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(FileConfigDO::getName, reqVO.getName()) + .eqIfPresent(FileConfigDO::getStorage, reqVO.getStorage()) + .betweenIfPresent(FileConfigDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(FileConfigDO::getId)); + } + + default FileConfigDO selectByMaster() { + return selectOne(FileConfigDO::getMaster, true); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentDAOImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentDAOImpl.java new file mode 100644 index 0000000..2492c80 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentDAOImpl.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.file; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.file.core.client.db.DBFileContentFrameworkDAO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileContentDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Optional; + +@Repository +public class FileContentDAOImpl implements DBFileContentFrameworkDAO { + + @Resource + private FileContentMapper fileContentMapper; + + @Override + public void insert(Long configId, String path, byte[] content) { + FileContentDO entity = new FileContentDO().setConfigId(configId) + .setPath(path).setContent(content); + fileContentMapper.insert(entity); + } + + @Override + public void delete(Long configId, String path) { + fileContentMapper.delete(buildQuery(configId, path)); + } + + @Override + public byte[] selectContent(Long configId, String path) { + List list = fileContentMapper.selectList( + buildQuery(configId, path).select(FileContentDO::getContent).orderByDesc(FileContentDO::getId)); + return Optional.ofNullable(CollUtil.getFirst(list)) + .map(FileContentDO::getContent) + .orElse(null); + } + + private LambdaQueryWrapper buildQuery(Long configId, String path) { + return new LambdaQueryWrapper() + .eq(FileContentDO::getConfigId, configId) + .eq(FileContentDO::getPath, path); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentMapper.java new file mode 100644 index 0000000..501979d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileContentMapper.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.file; + +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileContentDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface FileContentMapper extends BaseMapper { +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileMapper.java new file mode 100644 index 0000000..11233a4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileMapper.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.file; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件操作 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface FileMapper extends BaseMapperX { + + default PageResult selectPage(FilePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(FileDO::getPath, reqVO.getPath()) + .likeIfPresent(FileDO::getType, reqVO.getType()) + .betweenIfPresent(FileDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(FileDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobLogMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobLogMapper.java new file mode 100644 index 0000000..58ac6da --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobLogMapper.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; + +/** + * 任务日志 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface JobLogMapper extends BaseMapperX { + + default PageResult selectPage(JobLogPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(JobLogDO::getJobId, reqVO.getJobId()) + .likeIfPresent(JobLogDO::getHandlerName, reqVO.getHandlerName()) + .geIfPresent(JobLogDO::getBeginTime, reqVO.getBeginTime()) + .leIfPresent(JobLogDO::getEndTime, reqVO.getEndTime()) + .eqIfPresent(JobLogDO::getStatus, reqVO.getStatus()) + .orderByDesc(JobLogDO::getId) // ID 倒序 + ); + } + + /** + * 物理删除指定时间之前的日志 + * + * @param createTime 最大时间 + * @param limit 删除条数,防止一次删除太多 + * @return 删除条数 + */ + @Delete("DELETE FROM infra_job_log WHERE create_time < #{createTime} LIMIT #{limit}") + Integer deleteByCreateTimeLt(@Param("createTime") LocalDateTime createTime, @Param("limit") Integer limit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java new file mode 100644 index 0000000..c585dbb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/job/JobMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 定时任务 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface JobMapper extends BaseMapperX { + + default JobDO selectByHandlerName(String handlerName) { + return selectOne(JobDO::getHandlerName, handlerName); + } + + default PageResult selectPage(JobPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(JobDO::getName, reqVO.getName()) + .eqIfPresent(JobDO::getStatus, reqVO.getStatus()) + .likeIfPresent(JobDO::getHandlerName, reqVO.getHandlerName()) + ); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiAccessLogMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiAccessLogMapper.java new file mode 100644 index 0000000..dce3082 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiAccessLogMapper.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; + +/** + * API 访问日志 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ApiAccessLogMapper extends BaseMapperX { + + default PageResult selectPage(ApiAccessLogPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ApiAccessLogDO::getUserId, reqVO.getUserId()) + .eqIfPresent(ApiAccessLogDO::getUserType, reqVO.getUserType()) + .eqIfPresent(ApiAccessLogDO::getApplicationName, reqVO.getApplicationName()) + .likeIfPresent(ApiAccessLogDO::getRequestUrl, reqVO.getRequestUrl()) + .betweenIfPresent(ApiAccessLogDO::getBeginTime, reqVO.getBeginTime()) + .geIfPresent(ApiAccessLogDO::getDuration, reqVO.getDuration()) + .eqIfPresent(ApiAccessLogDO::getResultCode, reqVO.getResultCode()) + .orderByDesc(ApiAccessLogDO::getId) + ); + } + + /** + * 物理删除指定时间之前的日志 + * + * @param createTime 最大时间 + * @param limit 删除条数,防止一次删除太多 + * @return 删除条数 + */ + @Delete("DELETE FROM infra_api_access_log WHERE create_time < #{createTime} LIMIT #{limit}") + Integer deleteByCreateTimeLt(@Param("createTime") LocalDateTime createTime, @Param("limit") Integer limit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiErrorLogMapper.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiErrorLogMapper.java new file mode 100644 index 0000000..b597d79 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiErrorLogMapper.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.infra.dal.mysql.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; + +/** + * API 错误日志 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface ApiErrorLogMapper extends BaseMapperX { + + default PageResult selectPage(ApiErrorLogPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ApiErrorLogDO::getUserId, reqVO.getUserId()) + .eqIfPresent(ApiErrorLogDO::getUserType, reqVO.getUserType()) + .eqIfPresent(ApiErrorLogDO::getApplicationName, reqVO.getApplicationName()) + .likeIfPresent(ApiErrorLogDO::getRequestUrl, reqVO.getRequestUrl()) + .betweenIfPresent(ApiErrorLogDO::getExceptionTime, reqVO.getExceptionTime()) + .eqIfPresent(ApiErrorLogDO::getProcessStatus, reqVO.getProcessStatus()) + .orderByDesc(ApiErrorLogDO::getId) + ); + } + + /** + * 物理删除指定时间之前的日志 + * + * @param createTime 最大时间 + * @param limit 删除条数,防止一次删除太多 + * @return 删除条数 + */ + @Delete("DELETE FROM infra_api_error_log WHERE create_time < #{createTime} LIMIT #{limit}") + Integer deleteByCreateTimeLt(@Param("createTime") LocalDateTime createTime, @Param("limit")Integer limit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java new file mode 100644 index 0000000..2c0cdbb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.infra.enums.codegen; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 代码生成器的字段 HTML 展示枚举 + */ +@AllArgsConstructor +@Getter +public enum CodegenColumnHtmlTypeEnum { + + INPUT("input"), // 文本框 + TEXTAREA("textarea"), // 文本域 + SELECT("select"), // 下拉框 + RADIO("radio"), // 单选框 + CHECKBOX("checkbox"), // 复选框 + DATETIME("datetime"), // 日期控件 + IMAGE_UPLOAD("imageUpload"), // 上传图片 + FILE_UPLOAD("fileUpload"), // 上传文件 + EDITOR("editor"), // 富文本控件 + ; + + /** + * 条件 + */ + private final String type; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnListConditionEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnListConditionEnum.java new file mode 100644 index 0000000..7098700 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenColumnListConditionEnum.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.enums.codegen; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 代码生成器的字段过滤条件枚举 + */ +@AllArgsConstructor +@Getter +public enum CodegenColumnListConditionEnum { + + EQ("="), + NE("!="), + GT(">"), + GTE(">="), + LT("<"), + LTE("<="), + LIKE("LIKE"), + BETWEEN("BETWEEN"); + + /** + * 条件 + */ + private final String condition; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenFrontTypeEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenFrontTypeEnum.java new file mode 100644 index 0000000..b7d2403 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenFrontTypeEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.infra.enums.codegen; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 代码生成的前端类型枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum CodegenFrontTypeEnum { + + VUE2(10), // Vue2 Element UI 标准模版 + VUE3(20), // Vue3 Element Plus 标准模版 + VUE3_SCHEMA(21), // Vue3 Element Plus Schema 模版 + VUE3_VBEN(30), // Vue3 VBEN 模版 + ; + + /** + * 类型 + */ + private final Integer type; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenSceneEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenSceneEnum.java new file mode 100644 index 0000000..f1fdea0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenSceneEnum.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.enums.codegen; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import static cn.hutool.core.util.ArrayUtil.*; + +/** + * 代码生成的场景枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum CodegenSceneEnum { + + ADMIN(1, "管理后台", "admin", ""), + APP(2, "用户 APP", "app", "App"); + + /** + * 场景 + */ + private final Integer scene; + /** + * 场景名 + */ + private final String name; + /** + * 基础包名 + */ + private final String basePackage; + /** + * Controller 和 VO 类的前缀 + */ + private final String prefixClass; + + public static CodegenSceneEnum valueOf(Integer scene) { + return firstMatch(sceneEnum -> sceneEnum.getScene().equals(scene), values()); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenTemplateTypeEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenTemplateTypeEnum.java new file mode 100644 index 0000000..9a21833 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenTemplateTypeEnum.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.infra.enums.codegen; + +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Objects; + +/** + * 代码生成模板类型 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum CodegenTemplateTypeEnum { + + ONE(1), // 单表(增删改查) + TREE(2), // 树表(增删改查) + + MASTER_NORMAL(10), // 主子表 - 主表 - 普通模式 + MASTER_ERP(11), // 主子表 - 主表 - ERP 模式 + MASTER_INNER(12), // 主子表 - 主表 - 内嵌模式 + SUB(15), // 主子表 - 子表 + ; + + /** + * 类型 + */ + private final Integer type; + + /** + * 是否为主表 + * + * @param type 类型 + * @return 是否主表 + */ + public static boolean isMaster(Integer type) { + return ObjectUtils.equalsAny(type, + MASTER_NORMAL.type, MASTER_ERP.type, MASTER_INNER.type); + } + + /** + * 是否为树表 + * + * @param type 类型 + * @return 是否树表 + */ + public static boolean isTree(Integer type) { + return Objects.equals(type, TREE.type); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/config/ConfigTypeEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/config/ConfigTypeEnum.java new file mode 100644 index 0000000..15c2015 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/config/ConfigTypeEnum.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.infra.enums.config; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ConfigTypeEnum { + + /** + * 系统配置 + */ + SYSTEM(1), + /** + * 自定义配置 + */ + CUSTOM(2); + + private final Integer type; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobLogStatusEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobLogStatusEnum.java new file mode 100644 index 0000000..9567053 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobLogStatusEnum.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.enums.job; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 任务日志的状态枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum JobLogStatusEnum { + + RUNNING(0), // 运行中 + SUCCESS(1), // 成功 + FAILURE(2); // 失败 + + /** + * 状态 + */ + private final Integer status; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobStatusEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobStatusEnum.java new file mode 100644 index 0000000..3d9ec3f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/job/JobStatusEnum.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.infra.enums.job; + +import com.google.common.collect.Sets; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.quartz.impl.jdbcjobstore.Constants; + +import java.util.Collections; +import java.util.Set; + +/** + * 任务状态的枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum JobStatusEnum { + + /** + * 初始化中 + */ + INIT(0, Collections.emptySet()), + /** + * 开启 + */ + NORMAL(1, Sets.newHashSet(Constants.STATE_WAITING, Constants.STATE_ACQUIRED, Constants.STATE_BLOCKED)), + /** + * 暂停 + */ + STOP(2, Sets.newHashSet(Constants.STATE_PAUSED, Constants.STATE_PAUSED_BLOCKED)); + + /** + * 状态 + */ + private final Integer status; + /** + * 对应的 Quartz 触发器的状态集合 + */ + private final Set quartzStates; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java new file mode 100644 index 0000000..b309753 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.infra.enums.logger; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * API 异常数据的处理状态 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum ApiErrorLogProcessStatusEnum { + + INIT(0, "未处理"), + DONE(1, "已处理"), + IGNORE(2, "已忽略"); + + /** + * 状态 + */ + private final Integer status; + /** + * 资源类型名 + */ + private final String name; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/package-info.java new file mode 100644 index 0000000..0749e8e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.infra.enums; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenConfiguration.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenConfiguration.java new file mode 100644 index 0000000..d49723d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenConfiguration.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.infra.framework.codegen.config; + +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(CodegenProperties.class) +public class CodegenConfiguration { +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenProperties.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenProperties.java new file mode 100644 index 0000000..4039a70 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/config/CodegenProperties.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.infra.framework.codegen.config; + +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenFrontTypeEnum; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Collection; + +@ConfigurationProperties(prefix = "yudao.codegen") +@Validated +@Data +public class CodegenProperties { + + /** + * 生成的 Java 代码的基础包 + */ + @NotNull(message = "Java 代码的基础包不能为空") + private String basePackage; + + /** + * 数据库名数组 + */ + @NotEmpty(message = "数据库不能为空") + private Collection dbSchemas; + + /** + * 代码生成的前端类型(默认) + * + * 枚举 {@link CodegenFrontTypeEnum#getType()} + */ + @NotNull(message = "代码生成的前端类型不能为空") + private Integer frontType; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/package-info.java new file mode 100644 index 0000000..cf1d22c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/codegen/package-info.java @@ -0,0 +1,4 @@ +/** + * 代码生成器 + */ +package cn.iocoder.yudao.module.infra.framework.codegen; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/config/AdminServerConfiguration.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/config/AdminServerConfiguration.java new file mode 100644 index 0000000..0c29865 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/config/AdminServerConfiguration.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.infra.framework.monitor.config; + +import de.codecentric.boot.admin.server.config.EnableAdminServer; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableAdminServer +public class AdminServerConfiguration { +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/package-info.java new file mode 100644 index 0000000..f52e72c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/package-info.java @@ -0,0 +1,4 @@ +/** + * 使用 Spring Boot Admin 实现简单的监控平台 + */ +package cn.iocoder.yudao.module.infra.framework.monitor; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/《芋道 Spring Boot 监控工具 Admin 入门》.md b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/《芋道 Spring Boot 监控工具 Admin 入门》.md new file mode 100644 index 0000000..a1e3676 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/monitor/《芋道 Spring Boot 监控工具 Admin 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/package-info.java new file mode 100644 index 0000000..77a646a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 infra 模块的 framework 封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.infra.framework; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java new file mode 100644 index 0000000..2f22f4f --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/config/SecurityConfiguration.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.infra.framework.security.config; + +import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; + +/** + * Infra 模块的 Security 配置 + */ +@Configuration(proxyBeanMethods = false, value = "infraSecurityConfiguration") +public class SecurityConfiguration { + + @Value("${spring.boot.admin.context-path:''}") + private String adminSeverContextPath; + + @Bean("infraAuthorizeRequestsCustomizer") + public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() { + return new AuthorizeRequestsCustomizer() { + + @Override + public void customize(ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry) { + // Swagger 接口文档 + registry.antMatchers("/v3/api-docs/**").permitAll() + .antMatchers("/swagger-ui.html").permitAll() + .antMatchers("/swagger-ui/**").permitAll() + .antMatchers("/swagger-resources/**").anonymous() + .antMatchers("/webjars/**").anonymous() + .antMatchers("/*/api-docs").anonymous(); + // Spring Boot Actuator 的安全配置 + registry.antMatchers("/actuator").anonymous() + .antMatchers("/actuator/**").anonymous(); + // Druid 监控 + registry.antMatchers("/druid/**").anonymous(); + // Spring Boot Admin Server 的安全配置 + registry.antMatchers(adminSeverContextPath).anonymous() + .antMatchers(adminSeverContextPath + "/**").anonymous(); + // 文件读取 + registry.antMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll(); + } + + }; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/core/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/core/package-info.java new file mode 100644 index 0000000..7762626 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/security/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.infra.framework.security.core; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/config/InfraWebConfiguration.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/config/InfraWebConfiguration.java new file mode 100644 index 0000000..09f2c2b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/config/InfraWebConfiguration.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.framework.web.config; + +import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration; +import org.springdoc.core.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * infra 模块的 web 组件的 Configuration + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class InfraWebConfiguration { + + /** + * infra 模块的 API 分组 + */ + @Bean + public GroupedOpenApi infraGroupedOpenApi() { + return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("infra"); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/package-info.java new file mode 100644 index 0000000..6fb49bf --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/framework/web/package-info.java @@ -0,0 +1,4 @@ +/** + * infra 模块的 web 配置 + */ +package cn.iocoder.yudao.module.infra.framework.web; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/job/JobLogCleanJob.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/job/JobLogCleanJob.java new file mode 100644 index 0000000..3f9d293 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/job/JobLogCleanJob.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.infra.job.job; + +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.infra.service.job.JobLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import javax.annotation.Resource; + +/** + * 物理删除 N 天前的任务日志的 Job + * + * @author j-sentinel + */ +@Slf4j +@Component +public class JobLogCleanJob implements JobHandler { + + @Resource + private JobLogService jobLogService; + + /** + * 清理超过(14)天的日志 + */ + private static final Integer JOB_CLEAN_RETAIN_DAY = 14; + + /** + * 每次删除间隔的条数,如果值太高可能会造成数据库的压力过大 + */ + private static final Integer DELETE_LIMIT = 100; + + @Override + @TenantIgnore + public String execute(String param) { + Integer count = jobLogService.cleanJobLog(JOB_CLEAN_RETAIN_DAY, DELETE_LIMIT); + log.info("[execute][定时执行清理定时任务日志数量 ({}) 个]", count); + return String.format("定时执行清理定时任务日志数量 %s 个", count); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/AccessLogCleanJob.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/AccessLogCleanJob.java new file mode 100644 index 0000000..9ddab41 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/AccessLogCleanJob.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.job.logger; + +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 物理删除 N 天前的访问日志的 Job + * + * @author j-sentinel + */ +@Component +@Slf4j +public class AccessLogCleanJob implements JobHandler { + + @Resource + private ApiAccessLogService apiAccessLogService; + + /** + * 清理超过(14)天的日志 + */ + private static final Integer JOB_CLEAN_RETAIN_DAY = 14; + + /** + * 每次删除间隔的条数,如果值太高可能会造成数据库的压力过大 + */ + private static final Integer DELETE_LIMIT = 100; + + @Override + @TenantIgnore + public String execute(String param) { + Integer count = apiAccessLogService.cleanAccessLog(JOB_CLEAN_RETAIN_DAY, DELETE_LIMIT); + log.info("[execute][定时执行清理访问日志数量 ({}) 个]", count); + return String.format("定时执行清理错误日志数量 %s 个", count); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/ErrorLogCleanJob.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/ErrorLogCleanJob.java new file mode 100644 index 0000000..9b50aaf --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/job/logger/ErrorLogCleanJob.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.infra.job.logger; + +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 物理删除 N 天前的错误日志的 Job + * + * @author j-sentinel + */ +@Slf4j +@Component +public class ErrorLogCleanJob implements JobHandler { + + @Resource + private ApiErrorLogService apiErrorLogService; + + /** + * 清理超过(14)天的日志 + */ + private static final Integer JOB_CLEAN_RETAIN_DAY = 14; + + /** + * 每次删除间隔的条数,如果值太高可能会造成数据库的压力过大 + */ + private static final Integer DELETE_LIMIT = 100; + + @Override + @TenantIgnore + public String execute(String param) { + Integer count = apiErrorLogService.cleanErrorLog(JOB_CLEAN_RETAIN_DAY,DELETE_LIMIT); + log.info("[execute][定时执行清理错误日志数量 ({}) 个]", count); + return String.format("定时执行清理错误日志数量 %s 个", count); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/consumer/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/consumer/package-info.java new file mode 100644 index 0000000..5ba5264 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/consumer/package-info.java @@ -0,0 +1,4 @@ +/** + * 消息队列的消费者 + */ +package cn.iocoder.yudao.module.infra.mq.consumer; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/message/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/message/package-info.java new file mode 100644 index 0000000..19edb02 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/message/package-info.java @@ -0,0 +1,4 @@ +/** + * 消息队列的消息 + */ +package cn.iocoder.yudao.module.infra.mq.message; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/producer/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/producer/package-info.java new file mode 100644 index 0000000..343179c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/mq/producer/package-info.java @@ -0,0 +1,4 @@ +/** + * 消息队列的生产者 + */ +package cn.iocoder.yudao.module.infra.mq.producer; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/package-info.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/package-info.java new file mode 100644 index 0000000..b45e7a2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/package-info.java @@ -0,0 +1,9 @@ +/** + * infra 模块,主要提供两块能力: + * 1. 我们放基础设施的运维与管理,支撑上层的通用与核心业务。 例如说:定时任务的管理、服务器的信息等等 + * 2. 研发工具,提升研发效率与质量。 例如说:代码生成器、接口文档等等 + * + * 1. Controller URL:以 /infra/ 开头,避免和其它 Module 冲突 + * 2. DataObject 表名:以 infra_ 开头,方便在数据库中区分 + */ +package cn.iocoder.yudao.module.infra; diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenService.java new file mode 100644 index 0000000..00e36af --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenService.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.infra.service.codegen; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenUpdateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; + +import java.util.List; +import java.util.Map; + +/** + * 代码生成 Service 接口 + * + * @author 芋道源码 + */ +public interface CodegenService { + + /** + * 基于数据库的表结构,创建代码生成器的表定义 + * + * @param userId 用户编号 + * @param reqVO 表信息 + * @return 创建的表定义的编号数组 + */ + List createCodegenList(Long userId, CodegenCreateListReqVO reqVO); + + /** + * 更新数据库的表和字段定义 + * + * @param updateReqVO 更新信息 + */ + void updateCodegen(CodegenUpdateReqVO updateReqVO); + + /** + * 基于数据库的表结构,同步数据库的表和字段定义 + * + * @param tableId 表编号 + */ + void syncCodegenFromDB(Long tableId); + + /** + * 删除数据库的表和字段定义 + * + * @param tableId 数据编号 + */ + void deleteCodegen(Long tableId); + + /** + * 获得表定义列表 + * + * @param dataSourceConfigId 数据源配置的编号 + * @return 表定义列表 + */ + List getCodegenTableList(Long dataSourceConfigId); + + /** + * 获得表定义分页 + * + * @param pageReqVO 分页条件 + * @return 表定义分页 + */ + PageResult getCodegenTablePage(CodegenTablePageReqVO pageReqVO); + + /** + * 获得表定义 + * + * @param id 表编号 + * @return 表定义 + */ + CodegenTableDO getCodegenTable(Long id); + + /** + * 获得指定表的字段定义数组 + * + * @param tableId 表编号 + * @return 字段定义数组 + */ + List getCodegenColumnListByTableId(Long tableId); + + /** + * 执行指定表的代码生成 + * + * @param tableId 表编号 + * @return 生成结果。key 为文件路径,value 为对应的代码内容 + */ + Map generationCodes(Long tableId); + + /** + * 获得数据库自带的表定义列表 + * + * @param dataSourceConfigId 数据源的配置编号 + * @param name 表名称 + * @param comment 表描述 + * @return 表定义列表 + */ + List getDatabaseTableList(Long dataSourceConfigId, String name, String comment); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenServiceImpl.java new file mode 100644 index 0000000..34f83cb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/CodegenServiceImpl.java @@ -0,0 +1,288 @@ +package cn.iocoder.yudao.module.infra.service.codegen; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.CodegenUpdateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.DatabaseTableRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenColumnMapper; +import cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenTableMapper; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import cn.iocoder.yudao.module.infra.framework.codegen.config.CodegenProperties; +import cn.iocoder.yudao.module.infra.service.codegen.inner.CodegenBuilder; +import cn.iocoder.yudao.module.infra.service.codegen.inner.CodegenEngine; +import cn.iocoder.yudao.module.infra.service.db.DatabaseTableService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import com.baomidou.mybatisplus.generator.config.po.TableField; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.google.common.annotations.VisibleForTesting; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.function.BiPredicate; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 代码生成 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class CodegenServiceImpl implements CodegenService { + + @Resource + private DatabaseTableService databaseTableService; + + @Resource + private CodegenTableMapper codegenTableMapper; + @Resource + private CodegenColumnMapper codegenColumnMapper; + + @Resource + private AdminUserApi userApi; + + @Resource + private CodegenBuilder codegenBuilder; + @Resource + private CodegenEngine codegenEngine; + + @Resource + private CodegenProperties codegenProperties; + + @Override + @Transactional(rollbackFor = Exception.class) + public List createCodegenList(Long userId, CodegenCreateListReqVO reqVO) { + List ids = new ArrayList<>(reqVO.getTableNames().size()); + // 遍历添加。虽然效率会低一点,但是没必要做成完全批量,因为不会这么大量 + reqVO.getTableNames().forEach(tableName -> ids.add(createCodegen(userId, reqVO.getDataSourceConfigId(), tableName))); + return ids; + } + + private Long createCodegen(Long userId, Long dataSourceConfigId, String tableName) { + // 从数据库中,获得数据库表结构 + TableInfo tableInfo = databaseTableService.getTable(dataSourceConfigId, tableName); + // 导入 + return createCodegen0(userId, dataSourceConfigId, tableInfo); + } + + private Long createCodegen0(Long userId, Long dataSourceConfigId, TableInfo tableInfo) { + // 校验导入的表和字段非空 + validateTableInfo(tableInfo); + // 校验是否已经存在 + if (codegenTableMapper.selectByTableNameAndDataSourceConfigId(tableInfo.getName(), + dataSourceConfigId) != null) { + throw exception(CODEGEN_TABLE_EXISTS); + } + + // 构建 CodegenTableDO 对象,插入到 DB 中 + CodegenTableDO table = codegenBuilder.buildTable(tableInfo); + table.setDataSourceConfigId(dataSourceConfigId); + table.setScene(CodegenSceneEnum.ADMIN.getScene()); // 默认配置下,使用管理后台的模板 + table.setFrontType(codegenProperties.getFrontType()); + table.setAuthor(userApi.getUser(userId).getNickname()); + codegenTableMapper.insert(table); + + // 构建 CodegenColumnDO 数组,插入到 DB 中 + List columns = codegenBuilder.buildColumns(table.getId(), tableInfo.getFields()); + // 如果没有主键,则使用第一个字段作为主键 + if (!tableInfo.isHavePrimaryKey()) { + columns.get(0).setPrimaryKey(true); + } + codegenColumnMapper.insertBatch(columns); + return table.getId(); + } + + @VisibleForTesting + void validateTableInfo(TableInfo tableInfo) { + if (tableInfo == null) { + throw exception(CODEGEN_IMPORT_TABLE_NULL); + } + if (StrUtil.isEmpty(tableInfo.getComment())) { + throw exception(CODEGEN_TABLE_INFO_TABLE_COMMENT_IS_NULL); + } + if (CollUtil.isEmpty(tableInfo.getFields())) { + throw exception(CODEGEN_IMPORT_COLUMNS_NULL); + } + tableInfo.getFields().forEach(field -> { + if (StrUtil.isEmpty(field.getComment())) { + throw exception(CODEGEN_TABLE_INFO_COLUMN_COMMENT_IS_NULL, field.getName()); + } + }); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateCodegen(CodegenUpdateReqVO updateReqVO) { + // 校验是否已经存在 + if (codegenTableMapper.selectById(updateReqVO.getTable().getId()) == null) { + throw exception(CODEGEN_TABLE_NOT_EXISTS); + } + // 校验主表字段存在 + if (Objects.equals(updateReqVO.getTable().getTemplateType(), CodegenTemplateTypeEnum.SUB.getType())) { + if (codegenTableMapper.selectById(updateReqVO.getTable().getMasterTableId()) == null) { + throw exception(CODEGEN_MASTER_TABLE_NOT_EXISTS, updateReqVO.getTable().getMasterTableId()); + } + if (CollUtil.findOne(updateReqVO.getColumns(), // 关联主表的字段不存在 + column -> column.getId().equals(updateReqVO.getTable().getSubJoinColumnId())) == null) { + throw exception(CODEGEN_SUB_COLUMN_NOT_EXISTS, updateReqVO.getTable().getSubJoinColumnId()); + } + } + + // 更新 table 表定义 + CodegenTableDO updateTableObj = BeanUtils.toBean(updateReqVO.getTable(), CodegenTableDO.class); + codegenTableMapper.updateById(updateTableObj); + // 更新 column 字段定义 + List updateColumnObjs = BeanUtils.toBean(updateReqVO.getColumns(), CodegenColumnDO.class); + updateColumnObjs.forEach(updateColumnObj -> codegenColumnMapper.updateById(updateColumnObj)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void syncCodegenFromDB(Long tableId) { + // 校验是否已经存在 + CodegenTableDO table = codegenTableMapper.selectById(tableId); + if (table == null) { + throw exception(CODEGEN_TABLE_NOT_EXISTS); + } + // 从数据库中,获得数据库表结构 + TableInfo tableInfo = databaseTableService.getTable(table.getDataSourceConfigId(), table.getTableName()); + // 执行同步 + syncCodegen0(tableId, tableInfo); + } + + private void syncCodegen0(Long tableId, TableInfo tableInfo) { + // 1. 校验导入的表和字段非空 + validateTableInfo(tableInfo); + List tableFields = tableInfo.getFields(); + + // 2. 构建 CodegenColumnDO 数组,只同步新增的字段 + List codegenColumns = codegenColumnMapper.selectListByTableId(tableId); + Set codegenColumnNames = convertSet(codegenColumns, CodegenColumnDO::getColumnName); + + // 3.1 计算需要【修改】的字段,插入时重新插入,删除时将原来的删除 + Map codegenColumnDOMap = convertMap(codegenColumns, CodegenColumnDO::getColumnName); + BiPredicate primaryKeyPredicate = + (tableField, codegenColumn) -> tableField.getMetaInfo().getJdbcType().name().equals(codegenColumn.getDataType()) + && tableField.getMetaInfo().isNullable() == codegenColumn.getNullable() + && tableField.isKeyFlag() == codegenColumn.getPrimaryKey() + && tableField.getComment().equals(codegenColumn.getColumnComment()); + Set modifyFieldNames = tableFields.stream() + .filter(tableField -> codegenColumnDOMap.get(tableField.getColumnName()) != null + && !primaryKeyPredicate.test(tableField, codegenColumnDOMap.get(tableField.getColumnName()))) + .map(TableField::getColumnName) + .collect(Collectors.toSet()); + // 3.2 计算需要【删除】的字段 + Set tableFieldNames = convertSet(tableFields, TableField::getName); + Set deleteColumnIds = codegenColumns.stream() + .filter(column -> (!tableFieldNames.contains(column.getColumnName())) || modifyFieldNames.contains(column.getColumnName())) + .map(CodegenColumnDO::getId).collect(Collectors.toSet()); + // 移除已经存在的字段 + tableFields.removeIf(column -> codegenColumnNames.contains(column.getColumnName()) && (!modifyFieldNames.contains(column.getColumnName()))); + if (CollUtil.isEmpty(tableFields) && CollUtil.isEmpty(deleteColumnIds)) { + throw exception(CODEGEN_SYNC_NONE_CHANGE); + } + + // 4.1 插入新增的字段 + List columns = codegenBuilder.buildColumns(tableId, tableFields); + codegenColumnMapper.insertBatch(columns); + // 4.2 删除不存在的字段 + if (CollUtil.isNotEmpty(deleteColumnIds)) { + codegenColumnMapper.deleteBatchIds(deleteColumnIds); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteCodegen(Long tableId) { + // 校验是否已经存在 + if (codegenTableMapper.selectById(tableId) == null) { + throw exception(CODEGEN_TABLE_NOT_EXISTS); + } + + // 删除 table 表定义 + codegenTableMapper.deleteById(tableId); + // 删除 column 字段定义 + codegenColumnMapper.deleteListByTableId(tableId); + } + + @Override + public List getCodegenTableList(Long dataSourceConfigId) { + return codegenTableMapper.selectListByDataSourceConfigId(dataSourceConfigId); + } + + @Override + public PageResult getCodegenTablePage(CodegenTablePageReqVO pageReqVO) { + return codegenTableMapper.selectPage(pageReqVO); + } + + @Override + public CodegenTableDO getCodegenTable(Long id) { + return codegenTableMapper.selectById(id); + } + + @Override + public List getCodegenColumnListByTableId(Long tableId) { + return codegenColumnMapper.selectListByTableId(tableId); + } + + @Override + public Map generationCodes(Long tableId) { + // 校验是否已经存在 + CodegenTableDO table = codegenTableMapper.selectById(tableId); + if (table == null) { + throw exception(CODEGEN_TABLE_NOT_EXISTS); + } + List columns = codegenColumnMapper.selectListByTableId(tableId); + if (CollUtil.isEmpty(columns)) { + throw exception(CODEGEN_COLUMN_NOT_EXISTS); + } + + // 如果是主子表,则加载对应的子表信息 + List subTables = null; + List> subColumnsList = null; + if (CodegenTemplateTypeEnum.isMaster(table.getTemplateType())) { + // 校验子表存在 + subTables = codegenTableMapper.selectListByTemplateTypeAndMasterTableId( + CodegenTemplateTypeEnum.SUB.getType(), tableId); + if (CollUtil.isEmpty(subTables)) { + throw exception(CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_TABLE); + } + // 校验子表的关联字段存在 + subColumnsList = new ArrayList<>(); + for (CodegenTableDO subTable : subTables) { + List subColumns = codegenColumnMapper.selectListByTableId(subTable.getId()); + if (CollUtil.findOne(subColumns, column -> column.getId().equals(subTable.getSubJoinColumnId())) == null) { + throw exception(CODEGEN_SUB_COLUMN_NOT_EXISTS, subTable.getId()); + } + subColumnsList.add(subColumns); + } + } + + // 执行生成 + return codegenEngine.execute(table, columns, subTables, subColumnsList); + } + + @Override + public List getDatabaseTableList(Long dataSourceConfigId, String name, String comment) { + List tables = databaseTableService.getTableList(dataSourceConfigId, name, comment); + // 移除在 Codegen 中,已经存在的 + Set existsTables = convertSet( + codegenTableMapper.selectListByDataSourceConfigId(dataSourceConfigId), CodegenTableDO::getTableName); + tables.removeIf(table -> existsTables.contains(table.getName())); + return BeanUtils.toBean(tables, DatabaseTableRespVO.class); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java new file mode 100644 index 0000000..b529c49 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java @@ -0,0 +1,221 @@ +package cn.iocoder.yudao.module.infra.service.codegen.inner; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.infra.convert.codegen.CodegenConvert; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import com.baomidou.mybatisplus.generator.config.po.TableField; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.google.common.collect.Sets; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.*; + +import static cn.hutool.core.text.CharSequenceUtil.*; +import static cn.hutool.core.util.RandomUtil.randomEle; +import static cn.hutool.core.util.RandomUtil.randomInt; + +/** + * 代码生成器的 Builder,负责: + * 1. 将数据库的表 {@link TableInfo} 定义,构建成 {@link CodegenTableDO} + * 2. 将数据库的列 {@link TableField} 构定义,建成 {@link CodegenColumnDO} + */ +@Component +public class CodegenBuilder { + + /** + * 字段名与 {@link CodegenColumnListConditionEnum} 的默认映射 + * 注意,字段的匹配以后缀的方式 + */ + private static final Map COLUMN_LIST_OPERATION_CONDITION_MAPPINGS = + MapUtil.builder() + .put("name", CodegenColumnListConditionEnum.LIKE) + .put("time", CodegenColumnListConditionEnum.BETWEEN) + .put("date", CodegenColumnListConditionEnum.BETWEEN) + .build(); + + /** + * 字段名与 {@link CodegenColumnHtmlTypeEnum} 的默认映射 + * 注意,字段的匹配以后缀的方式 + */ + private static final Map COLUMN_HTML_TYPE_MAPPINGS = + MapUtil.builder() + .put("status", CodegenColumnHtmlTypeEnum.RADIO) + .put("sex", CodegenColumnHtmlTypeEnum.RADIO) + .put("type", CodegenColumnHtmlTypeEnum.SELECT) + .put("image", CodegenColumnHtmlTypeEnum.IMAGE_UPLOAD) + .put("file", CodegenColumnHtmlTypeEnum.FILE_UPLOAD) + .put("content", CodegenColumnHtmlTypeEnum.EDITOR) + .put("description", CodegenColumnHtmlTypeEnum.EDITOR) + .put("demo", CodegenColumnHtmlTypeEnum.EDITOR) + .put("time", CodegenColumnHtmlTypeEnum.DATETIME) + .put("date", CodegenColumnHtmlTypeEnum.DATETIME) + .build(); + + /** + * 多租户编号的字段名 + */ + public static final String TENANT_ID_FIELD = "tenantId"; + /** + * {@link cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO} 的字段 + */ + public static final Set BASE_DO_FIELDS = new HashSet<>(); + /** + * 新增操作,不需要传递的字段 + */ + private static final Set CREATE_OPERATION_EXCLUDE_COLUMN = Sets.newHashSet("id"); + /** + * 修改操作,不需要传递的字段 + */ + private static final Set UPDATE_OPERATION_EXCLUDE_COLUMN = Sets.newHashSet(); + /** + * 列表操作的条件,不需要传递的字段 + */ + private static final Set LIST_OPERATION_EXCLUDE_COLUMN = Sets.newHashSet("id"); + /** + * 列表操作的结果,不需要返回的字段 + */ + private static final Set LIST_OPERATION_RESULT_EXCLUDE_COLUMN = Sets.newHashSet(); + + static { + Arrays.stream(ReflectUtil.getFields(BaseDO.class)).forEach(field -> BASE_DO_FIELDS.add(field.getName())); + BASE_DO_FIELDS.add(TENANT_ID_FIELD); + // 处理 OPERATION 相关的字段 + CREATE_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS); + UPDATE_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS); + LIST_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS); + LIST_OPERATION_EXCLUDE_COLUMN.remove("createTime"); // 创建时间,还是可能需要传递的 + LIST_OPERATION_RESULT_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS); + LIST_OPERATION_RESULT_EXCLUDE_COLUMN.remove("createTime"); // 创建时间,还是需要返回的 + } + + public CodegenTableDO buildTable(TableInfo tableInfo) { + CodegenTableDO table = CodegenConvert.INSTANCE.convert(tableInfo); + initTableDefault(table); + return table; + } + + /** + * 初始化 Table 表的默认字段 + * + * @param table 表定义 + */ + private void initTableDefault(CodegenTableDO table) { + // 以 system_dept 举例子。moduleName 为 system、businessName 为 dept、className 为 Dept + // 如果希望以 System 前缀,则可以手动在【代码生成 - 修改生成配置 - 基本信息】,将实体类名称改为 SystemDept 即可 + String tableName = table.getTableName().toLowerCase(); + // 第一步,_ 前缀的前面,作为 module 名字;第二步,moduleName 必须小写; + table.setModuleName(subBefore(tableName, '_', false).toLowerCase()); + // 第一步,第一个 _ 前缀的后面,作为 module 名字; 第二步,可能存在多个 _ 的情况,转换成驼峰; 第三步,businessName 必须小写; + table.setBusinessName(toCamelCase(subAfter(tableName, '_', false)).toLowerCase()); + // 驼峰 + 首字母大写;第一步,第一个 _ 前缀的后面,作为 class 名字;第二步,驼峰命名 + table.setClassName(upperFirst(toCamelCase(subAfter(tableName, '_', false)))); + // 去除结尾的表,作为类描述 + table.setClassComment(StrUtil.removeSuffixIgnoreCase(table.getTableComment(), "表")); + table.setTemplateType(CodegenTemplateTypeEnum.ONE.getType()); + } + + public List buildColumns(Long tableId, List tableFields) { + List columns = CodegenConvert.INSTANCE.convertList(tableFields); + int index = 1; + for (CodegenColumnDO column : columns) { + column.setTableId(tableId); + column.setOrdinalPosition(index++); + // 特殊处理:Byte => Integer + if (Byte.class.getSimpleName().equals(column.getJavaType())) { + column.setJavaType(Integer.class.getSimpleName()); + } + // 初始化 Column 列的默认字段 + processColumnOperation(column); // 处理 CRUD 相关的字段的默认值 + processColumnUI(column); // 处理 UI 相关的字段的默认值 + processColumnExample(column); // 处理字段的 swagger example 示例 + } + return columns; + } + + private void processColumnOperation(CodegenColumnDO column) { + // 处理 createOperation 字段 + column.setCreateOperation(!CREATE_OPERATION_EXCLUDE_COLUMN.contains(column.getJavaField()) + && !column.getPrimaryKey()); // 对于主键,创建时无需传递 + // 处理 updateOperation 字段 + column.setUpdateOperation(!UPDATE_OPERATION_EXCLUDE_COLUMN.contains(column.getJavaField()) + || column.getPrimaryKey()); // 对于主键,更新时需要传递 + // 处理 listOperation 字段 + column.setListOperation(!LIST_OPERATION_EXCLUDE_COLUMN.contains(column.getJavaField()) + && !column.getPrimaryKey()); // 对于主键,列表过滤不需要传递 + // 处理 listOperationCondition 字段 + COLUMN_LIST_OPERATION_CONDITION_MAPPINGS.entrySet().stream() + .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey())) + .findFirst().ifPresent(entry -> column.setListOperationCondition(entry.getValue().getCondition())); + if (column.getListOperationCondition() == null) { + column.setListOperationCondition(CodegenColumnListConditionEnum.EQ.getCondition()); + } + // 处理 listOperationResult 字段 + column.setListOperationResult(!LIST_OPERATION_RESULT_EXCLUDE_COLUMN.contains(column.getJavaField())); + } + + private void processColumnUI(CodegenColumnDO column) { + // 基于后缀进行匹配 + COLUMN_HTML_TYPE_MAPPINGS.entrySet().stream() + .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey())) + .findFirst().ifPresent(entry -> column.setHtmlType(entry.getValue().getType())); + // 如果是 Boolean 类型时,设置为 radio 类型. + if (Boolean.class.getSimpleName().equals(column.getJavaType())) { + column.setHtmlType(CodegenColumnHtmlTypeEnum.RADIO.getType()); + } + // 如果是 LocalDateTime 类型,则设置为 datetime 类型 + if (LocalDateTime.class.getSimpleName().equals(column.getJavaType())) { + column.setHtmlType(CodegenColumnHtmlTypeEnum.DATETIME.getType()); + } + // 兜底,设置默认为 input 类型 + if (column.getHtmlType() == null) { + column.setHtmlType(CodegenColumnHtmlTypeEnum.INPUT.getType()); + } + } + + /** + * 处理字段的 swagger example 示例 + * + * @param column 字段 + */ + private void processColumnExample(CodegenColumnDO column) { + // id、price、count 等可能是整数的后缀 + if (StrUtil.endWithAnyIgnoreCase(column.getJavaField(), "id", "price", "count")) { + column.setExample(String.valueOf(randomInt(1, Short.MAX_VALUE))); + return; + } + // name + if (StrUtil.endWithIgnoreCase(column.getJavaField(), "name")) { + column.setExample(randomEle(new String[]{"张三", "李四", "王五", "赵六", "芋艿"})); + return; + } + // status + if (StrUtil.endWithAnyIgnoreCase(column.getJavaField(), "status", "type")) { + column.setExample(randomEle(new String[]{"1", "2"})); + return; + } + // url + if (StrUtil.endWithIgnoreCase(column.getColumnName(), "url")) { + column.setExample("https://www.iocoder.cn"); + return; + } + // reason + if (StrUtil.endWithIgnoreCase(column.getColumnName(), "reason")) { + column.setExample(randomEle(new String[]{"不喜欢", "不对", "不好", "不香"})); + return; + } + // description、memo、remark + if (StrUtil.endWithAnyIgnoreCase(column.getColumnName(), "description", "memo", "remark")) { + column.setExample(randomEle(new String[]{"你猜", "随便", "你说的对"})); + return; + } + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java new file mode 100644 index 0000000..34ba50b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java @@ -0,0 +1,518 @@ +package cn.iocoder.yudao.module.infra.service.codegen.inner; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.template.TemplateConfig; +import cn.hutool.extra.template.TemplateEngine; +import cn.hutool.extra.template.engine.velocity.VelocityEngine; +import cn.hutool.system.SystemUtil; +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.common.util.string.StrUtils; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenFrontTypeEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum; +import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum; +import cn.iocoder.yudao.module.infra.framework.codegen.config.CodegenProperties; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.ImmutableTable; +import com.google.common.collect.Maps; +import com.google.common.collect.Table; +import lombok.Setter; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.*; + +import static cn.hutool.core.map.MapUtil.getStr; +import static cn.hutool.core.text.CharSequenceUtil.*; + +/** + * 代码生成的引擎,用于具体生成代码 + * 目前基于 {@link org.apache.velocity.app.Velocity} 模板引擎实现 + * + * 考虑到 Java 模板引擎的框架非常多,Freemarker、Velocity、Thymeleaf 等等,所以我们采用 hutool 封装的 {@link cn.hutool.extra.template.Template} 抽象 + * + * @author 芋道源码 + */ +@Component +public class CodegenEngine { + + /** + * 后端的模板配置 + * + * key:模板在 resources 的地址 + * value:生成的路径 + */ + private static final Map SERVER_TEMPLATES = MapUtil.builder(new LinkedHashMap<>()) // 有序 + // Java module-biz Main + .put(javaTemplatePath("controller/vo/pageReqVO"), javaModuleImplVOFilePath("PageReqVO")) + .put(javaTemplatePath("controller/vo/listReqVO"), javaModuleImplVOFilePath("ListReqVO")) + .put(javaTemplatePath("controller/vo/respVO"), javaModuleImplVOFilePath("RespVO")) + .put(javaTemplatePath("controller/vo/saveReqVO"), javaModuleImplVOFilePath("SaveReqVO")) + .put(javaTemplatePath("controller/controller"), javaModuleImplControllerFilePath()) + .put(javaTemplatePath("dal/do"), + javaModuleImplMainFilePath("dal/dataobject/${table.businessName}/${table.className}DO")) + .put(javaTemplatePath("dal/do_sub"), // 特殊:主子表专属逻辑 + javaModuleImplMainFilePath("dal/dataobject/${table.businessName}/${subTable.className}DO")) + .put(javaTemplatePath("dal/mapper"), + javaModuleImplMainFilePath("dal/mysql/${table.businessName}/${table.className}Mapper")) + .put(javaTemplatePath("dal/mapper_sub"), // 特殊:主子表专属逻辑 + javaModuleImplMainFilePath("dal/mysql/${table.businessName}/${subTable.className}Mapper")) + .put(javaTemplatePath("dal/mapper.xml"), mapperXmlFilePath()) + .put(javaTemplatePath("service/serviceImpl"), + javaModuleImplMainFilePath("service/${table.businessName}/${table.className}ServiceImpl")) + .put(javaTemplatePath("service/service"), + javaModuleImplMainFilePath("service/${table.businessName}/${table.className}Service")) + // Java module-biz Test + .put(javaTemplatePath("test/serviceTest"), + javaModuleImplTestFilePath("service/${table.businessName}/${table.className}ServiceImplTest")) + // Java module-api Main + .put(javaTemplatePath("enums/errorcode"), javaModuleApiMainFilePath("enums/ErrorCodeConstants_手动操作")) + // SQL + .put("codegen/sql/sql.vm", "sql/sql.sql") + .put("codegen/sql/h2.vm", "sql/h2.sql") + .build(); + + /** + * 后端的配置模版 + * + * key1:UI 模版的类型 {@link CodegenFrontTypeEnum#getType()} + * key2:模板在 resources 的地址 + * value:生成的路径 + */ + private static final Table FRONT_TEMPLATES = ImmutableTable.builder() + // Vue2 标准模版 + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/index.vue"), + vueFilePath("views/${table.moduleName}/${table.businessName}/index.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("api/api.js"), + vueFilePath("api/${table.moduleName}/${table.businessName}/index.js")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/form.vue"), + vueFilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/components/form_sub_normal.vue"), // 特殊:主子表专属逻辑 + vueFilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/components/form_sub_inner.vue"), // 特殊:主子表专属逻辑 + vueFilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/components/form_sub_erp.vue"), // 特殊:主子表专属逻辑 + vueFilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/components/list_sub_inner.vue"), // 特殊:主子表专属逻辑 + vueFilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}List.vue")) + .put(CodegenFrontTypeEnum.VUE2.getType(), vueTemplatePath("views/components/list_sub_erp.vue"), // 特殊:主子表专属逻辑 + vueFilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}List.vue")) + // Vue3 标准模版 + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/index.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/form.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/components/form_sub_normal.vue"), // 特殊:主子表专属逻辑 + vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/components/form_sub_inner.vue"), // 特殊:主子表专属逻辑 + vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/components/form_sub_erp.vue"), // 特殊:主子表专属逻辑 + vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/components/list_sub_inner.vue"), // 特殊:主子表专属逻辑 + vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}List.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/components/list_sub_erp.vue"), // 特殊:主子表专属逻辑 + vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}List.vue")) + .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("api/api.ts"), + vue3FilePath("api/${table.moduleName}/${table.businessName}/index.ts")) + // Vue3 Schema 模版 + .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/data.ts"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/${classNameVar}.data.ts")) + .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/index.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue")) + .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/form.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Form.vue")) + .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("api/api.ts"), + vue3FilePath("api/${table.moduleName}/${table.businessName}/index.ts")) + // Vue3 vben 模版 + .put(CodegenFrontTypeEnum.VUE3_VBEN.getType(), vue3VbenTemplatePath("views/data.ts"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/${classNameVar}.data.ts")) + .put(CodegenFrontTypeEnum.VUE3_VBEN.getType(), vue3VbenTemplatePath("views/index.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue")) + .put(CodegenFrontTypeEnum.VUE3_VBEN.getType(), vue3VbenTemplatePath("views/form.vue"), + vue3FilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Modal.vue")) + .put(CodegenFrontTypeEnum.VUE3_VBEN.getType(), vue3VbenTemplatePath("api/api.ts"), + vue3FilePath("api/${table.moduleName}/${table.businessName}/index.ts")) + .build(); + + @Resource + private CodegenProperties codegenProperties; + + /** + * 是否使用 jakarta 包,用于解决 Spring Boot 2.X 和 3.X 的兼容性问题 + * + * true - 使用 jakarta.validation.constraints.* + * false - 使用 javax.validation.constraints.* + */ + @Setter // 允许设置的原因,是因为单测需要手动改变 + private Boolean jakartaEnable; + + /** + * 模板引擎,由 hutool 实现 + */ + private final TemplateEngine templateEngine; + /** + * 全局通用变量映射 + */ + private final Map globalBindingMap = new HashMap<>(); + + public CodegenEngine() { + // 初始化 TemplateEngine 属性 + TemplateConfig config = new TemplateConfig(); + config.setResourceMode(TemplateConfig.ResourceMode.CLASSPATH); + this.templateEngine = new VelocityEngine(config); + // 设置 javaxEnable,按照是否使用 JDK17 来判断 + this.jakartaEnable = SystemUtil.getJavaInfo().isJavaVersionAtLeast(1700); // 17.00 * 100 + } + + @PostConstruct + @VisibleForTesting + void initGlobalBindingMap() { + // 全局配置 + globalBindingMap.put("basePackage", codegenProperties.getBasePackage()); + globalBindingMap.put("baseFrameworkPackage", codegenProperties.getBasePackage() + + '.' + "framework"); // 用于后续获取测试类的 package 地址 + globalBindingMap.put("jakartaPackage", jakartaEnable ? "jakarta" : "javax"); + // 全局 Java Bean + globalBindingMap.put("CommonResultClassName", CommonResult.class.getName()); + globalBindingMap.put("PageResultClassName", PageResult.class.getName()); + // VO 类,独有字段 + globalBindingMap.put("PageParamClassName", PageParam.class.getName()); + globalBindingMap.put("DictFormatClassName", DictFormat.class.getName()); + // DO 类,独有字段 + globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); + globalBindingMap.put("baseDOFields", CodegenBuilder.BASE_DO_FIELDS); + globalBindingMap.put("QueryWrapperClassName", LambdaQueryWrapperX.class.getName()); + globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName()); + // Util 工具类 + globalBindingMap.put("ServiceExceptionUtilClassName", ServiceExceptionUtil.class.getName()); + globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName()); + globalBindingMap.put("ExcelUtilsClassName", ExcelUtils.class.getName()); + globalBindingMap.put("LocalDateTimeUtilsClassName", LocalDateTimeUtils.class.getName()); + globalBindingMap.put("ObjectUtilsClassName", ObjectUtils.class.getName()); + globalBindingMap.put("DictConvertClassName", DictConvert.class.getName()); + globalBindingMap.put("OperateLogClassName", OperateLog.class.getName()); + globalBindingMap.put("OperateTypeEnumClassName", OperateTypeEnum.class.getName()); + globalBindingMap.put("BeanUtils", BeanUtils.class.getName()); + } + + /** + * 生成代码 + * + * @param table 表定义 + * @param columns table 的字段定义数组 + * @param subTables 子表数组,当且仅当主子表时使用 + * @param subColumnsList subTables 的字段定义数组 + * @return 生成的代码,key 是路径,value 是对应代码 + */ + public Map execute(CodegenTableDO table, List columns, + List subTables, List> subColumnsList) { + // 1.1 初始化 bindMap 上下文 + Map bindingMap = initBindingMap(table, columns, subTables, subColumnsList); + // 1.2 获得模版 + Map templates = getTemplates(table.getFrontType()); + + // 2. 执行生成 + Map result = Maps.newLinkedHashMapWithExpectedSize(templates.size()); // 有序 + templates.forEach((vmPath, filePath) -> { + // 2.1 特殊:主子表专属逻辑 + if (isSubTemplate(vmPath)) { + generateSubCode(table, subTables, result, vmPath, filePath, bindingMap); + return; + // 2.2 特殊:树表专属逻辑 + } else if (isPageReqVOTemplate(vmPath)) { + // 减少多余的类生成,例如说 PageVO.java 类 + if (CodegenTemplateTypeEnum.isTree(table.getTemplateType())) { + return; + } + } else if (isListReqVOTemplate(vmPath)) { + // 减少多余的类生成,例如说 ListVO.java 类 + if (!CodegenTemplateTypeEnum.isTree(table.getTemplateType())) { + return; + } + } + // 2.3 默认生成 + generateCode(result, vmPath, filePath, bindingMap); + }); + return result; + } + + private void generateCode(Map result, String vmPath, + String filePath, Map bindingMap) { + filePath = formatFilePath(filePath, bindingMap); + String content = templateEngine.getTemplate(vmPath).render(bindingMap); + // 格式化代码 + content = prettyCode(content); + result.put(filePath, content); + } + + private void generateSubCode(CodegenTableDO table, List subTables, + Map result, String vmPath, + String filePath, Map bindingMap) { + // 没有子表,所以不生成 + if (CollUtil.isEmpty(subTables)) { + return; + } + // 主子表的模式匹配。目的:过滤掉个性化的模版 + if (vmPath.contains("_normal") + && ObjectUtil.notEqual(table.getTemplateType(), CodegenTemplateTypeEnum.MASTER_NORMAL.getType())) { + return; + } + if (vmPath.contains("_erp") + && ObjectUtil.notEqual(table.getTemplateType(), CodegenTemplateTypeEnum.MASTER_ERP.getType())) { + return; + } + if (vmPath.contains("_inner") + && ObjectUtil.notEqual(table.getTemplateType(), CodegenTemplateTypeEnum.MASTER_INNER.getType())) { + return; + } + + // 逐个生成 + for (int i = 0; i < subTables.size(); i++) { + bindingMap.put("subIndex", i); + generateCode(result, vmPath, filePath, bindingMap); + } + bindingMap.remove("subIndex"); + } + + /** + * 格式化生成后的代码 + * + * 因为尽量让 vm 模版简单,所以统一的处理都在这个方法。 + * 如果不处理,Vue 的 Pretty 格式校验可能会报错 + * + * @param content 格式化前的代码 + * @return 格式化后的代码 + */ + private String prettyCode(String content) { + // Vue 界面:去除字段后面多余的 , 逗号,解决前端的 Pretty 代码格式检查的报错 + content = content.replaceAll(",\n}", "\n}").replaceAll(",\n }", "\n }"); + // Vue 界面:去除多的 dateFormatter,只有一个的情况下,说明没使用到 + if (StrUtil.count(content, "dateFormatter") == 1) { + content = StrUtils.removeLineContains(content, "dateFormatter"); + } + // Vue2 界面:修正 $refs + if (StrUtil.count(content, "this.refs") >= 1) { + content = content.replace("this.refs", "this.$refs"); + } + // Vue 界面:去除多的 dict 相关,只有一个的情况下,说明没使用到 + if (StrUtil.count(content, "getIntDictOptions") == 1) { + content = content.replace("getIntDictOptions, ", ""); + } + if (StrUtil.count(content, "getStrDictOptions") == 1) { + content = content.replace("getStrDictOptions, ", ""); + } + if (StrUtil.count(content, "getBoolDictOptions") == 1) { + content = content.replace("getBoolDictOptions, ", ""); + } + if (StrUtil.count(content, "DICT_TYPE.") == 0) { + content = StrUtils.removeLineContains(content, "DICT_TYPE"); + } + return content; + } + + private Map initBindingMap(CodegenTableDO table, List columns, + List subTables, List> subColumnsList) { + // 创建 bindingMap + Map bindingMap = new HashMap<>(globalBindingMap); + bindingMap.put("table", table); + bindingMap.put("columns", columns); + bindingMap.put("primaryColumn", CollectionUtils.findFirst(columns, CodegenColumnDO::getPrimaryKey)); // 主键字段 + bindingMap.put("sceneEnum", CodegenSceneEnum.valueOf(table.getScene())); + + // className 相关 + // 去掉指定前缀,将 TestDictType 转换成 DictType. 因为在 create 等方法后,不需要带上 Test 前缀 + String simpleClassName = removePrefix(table.getClassName(), upperFirst(table.getModuleName())); + bindingMap.put("simpleClassName", simpleClassName); + bindingMap.put("simpleClassName_underlineCase", toUnderlineCase(simpleClassName)); // 将 DictType 转换成 dict_type + bindingMap.put("classNameVar", lowerFirst(simpleClassName)); // 将 DictType 转换成 dictType,用于变量 + // 将 DictType 转换成 dict-type + String simpleClassNameStrikeCase = toSymbolCase(simpleClassName, '-'); + bindingMap.put("simpleClassName_strikeCase", simpleClassNameStrikeCase); + // permission 前缀 + bindingMap.put("permissionPrefix", table.getModuleName() + ":" + simpleClassNameStrikeCase); + + // 特殊:树表专属逻辑 + if (CodegenTemplateTypeEnum.isTree(table.getTemplateType())) { + CodegenColumnDO treeParentColumn = CollUtil.findOne(columns, + column -> Objects.equals(column.getId(), table.getTreeParentColumnId())); + bindingMap.put("treeParentColumn", treeParentColumn); + bindingMap.put("treeParentColumn_javaField_underlineCase", toUnderlineCase(treeParentColumn.getJavaField())); + CodegenColumnDO treeNameColumn = CollUtil.findOne(columns, + column -> Objects.equals(column.getId(), table.getTreeNameColumnId())); + bindingMap.put("treeNameColumn", treeNameColumn); + bindingMap.put("treeNameColumn_javaField_underlineCase", toUnderlineCase(treeNameColumn.getJavaField())); + } + + // 特殊:主子表专属逻辑 + if (CollUtil.isNotEmpty(subTables)) { + // 创建 bindingMap + bindingMap.put("subTables", subTables); + bindingMap.put("subColumnsList", subColumnsList); + List subPrimaryColumns = new ArrayList<>(); + List subJoinColumns = new ArrayList<>(); + List subJoinColumnStrikeCases = new ArrayList<>(); + List subSimpleClassNames = new ArrayList<>(); + List subClassNameVars = new ArrayList<>(); + List simpleClassNameUnderlineCases = new ArrayList<>(); + List subSimpleClassNameStrikeCases = new ArrayList<>(); + for (int i = 0; i < subTables.size(); i++) { + CodegenTableDO subTable = subTables.get(i); + List subColumns = subColumnsList.get(i); + subPrimaryColumns.add(CollectionUtils.findFirst(subColumns, CodegenColumnDO::getPrimaryKey)); // + CodegenColumnDO subColumn = CollectionUtils.findFirst(subColumns, // 关联的字段 + column -> Objects.equals(column.getId(), subTable.getSubJoinColumnId())); + subJoinColumns.add(subColumn); + subJoinColumnStrikeCases.add(toSymbolCase(subColumn.getJavaField(), '-')); // 将 DictType 转换成 dict-type + // className 相关 + String subSimpleClassName = removePrefix(subTable.getClassName(), upperFirst(subTable.getModuleName())); + subSimpleClassNames.add(subSimpleClassName); + simpleClassNameUnderlineCases.add(toUnderlineCase(subSimpleClassName)); // 将 DictType 转换成 dict_type + subClassNameVars.add(lowerFirst(subSimpleClassName)); // 将 DictType 转换成 dictType,用于变量 + subSimpleClassNameStrikeCases.add(toSymbolCase(subSimpleClassName, '-')); // 将 DictType 转换成 dict-type + } + bindingMap.put("subPrimaryColumns", subPrimaryColumns); + bindingMap.put("subJoinColumns", subJoinColumns); + bindingMap.put("subJoinColumn_strikeCases", subJoinColumnStrikeCases); + bindingMap.put("subSimpleClassNames", subSimpleClassNames); + bindingMap.put("simpleClassNameUnderlineCases", simpleClassNameUnderlineCases); + bindingMap.put("subClassNameVars", subClassNameVars); + bindingMap.put("subSimpleClassName_strikeCases", subSimpleClassNameStrikeCases); + } + return bindingMap; + } + + private Map getTemplates(Integer frontType) { + Map templates = new LinkedHashMap<>(); + templates.putAll(SERVER_TEMPLATES); + templates.putAll(FRONT_TEMPLATES.row(frontType)); + return templates; + } + + @SuppressWarnings("unchecked") + private String formatFilePath(String filePath, Map bindingMap) { + filePath = StrUtil.replace(filePath, "${basePackage}", + getStr(bindingMap, "basePackage").replaceAll("\\.", "/")); + filePath = StrUtil.replace(filePath, "${classNameVar}", + getStr(bindingMap, "classNameVar")); + filePath = StrUtil.replace(filePath, "${simpleClassName}", + getStr(bindingMap, "simpleClassName")); + // sceneEnum 包含的字段 + CodegenSceneEnum sceneEnum = (CodegenSceneEnum) bindingMap.get("sceneEnum"); + filePath = StrUtil.replace(filePath, "${sceneEnum.prefixClass}", sceneEnum.getPrefixClass()); + filePath = StrUtil.replace(filePath, "${sceneEnum.basePackage}", sceneEnum.getBasePackage()); + // table 包含的字段 + CodegenTableDO table = (CodegenTableDO) bindingMap.get("table"); + filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName()); + filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName()); + filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName()); + // 特殊:主子表专属逻辑 + Integer subIndex = (Integer) bindingMap.get("subIndex"); + if (subIndex != null) { + CodegenTableDO subTable = ((List) bindingMap.get("subTables")).get(subIndex); + filePath = StrUtil.replace(filePath, "${subTable.moduleName}", subTable.getModuleName()); + filePath = StrUtil.replace(filePath, "${subTable.businessName}", subTable.getBusinessName()); + filePath = StrUtil.replace(filePath, "${subTable.className}", subTable.getClassName()); + filePath = StrUtil.replace(filePath, "${subSimpleClassName}", + ((List) bindingMap.get("subSimpleClassNames")).get(subIndex)); + } + return filePath; + } + + private static String javaTemplatePath(String path) { + return "codegen/java/" + path + ".vm"; + } + + private static String javaModuleImplVOFilePath(String path) { + return javaModuleFilePath("controller/${sceneEnum.basePackage}/${table.businessName}/" + + "vo/${sceneEnum.prefixClass}${table.className}" + path, "biz", "main"); + } + + private static String javaModuleImplControllerFilePath() { + return javaModuleFilePath("controller/${sceneEnum.basePackage}/${table.businessName}/" + + "${sceneEnum.prefixClass}${table.className}Controller", "biz", "main"); + } + + private static String javaModuleImplMainFilePath(String path) { + return javaModuleFilePath(path, "biz", "main"); + } + + private static String javaModuleApiMainFilePath(String path) { + return javaModuleFilePath(path, "api", "main"); + } + + private static String javaModuleImplTestFilePath(String path) { + return javaModuleFilePath(path, "biz", "test"); + } + + private static String javaModuleFilePath(String path, String module, String src) { + return "yudao-module-${table.moduleName}/" + // 顶级模块 + "yudao-module-${table.moduleName}-" + module + "/" + // 子模块 + "src/" + src + "/java/${basePackage}/module/${table.moduleName}/" + path + ".java"; + } + + private static String mapperXmlFilePath() { + return "yudao-module-${table.moduleName}/" + // 顶级模块 + "yudao-module-${table.moduleName}-biz/" + // 子模块 + "src/main/resources/mapper/${table.businessName}/${table.className}Mapper.xml"; + } + + private static String vueTemplatePath(String path) { + return "codegen/vue/" + path + ".vm"; + } + + private static String vueFilePath(String path) { + return "yudao-ui-${sceneEnum.basePackage}-vue2/" + // 顶级目录 + "src/" + path; + } + + private static String vue3TemplatePath(String path) { + return "codegen/vue3/" + path + ".vm"; + } + + private static String vue3FilePath(String path) { + return "yudao-ui-${sceneEnum.basePackage}-vue3/" + // 顶级目录 + "src/" + path; + } + + private static String vue3SchemaTemplatePath(String path) { + return "codegen/vue3_schema/" + path + ".vm"; + } + + private static String vue3VbenTemplatePath(String path) { + return "codegen/vue3_vben/" + path + ".vm"; + } + + private static boolean isSubTemplate(String path) { + return path.contains("_sub"); + } + + private static boolean isPageReqVOTemplate(String path) { + return path.contains("pageReqVO"); + } + + private static boolean isListReqVOTemplate(String path) { + return path.contains("listReqVO"); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigService.java new file mode 100644 index 0000000..a697902 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigService.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.infra.service.config; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; + +import javax.validation.Valid; + +/** + * 参数配置 Service 接口 + * + * @author 芋道源码 + */ +public interface ConfigService { + + /** + * 创建参数配置 + * + * @param createReqVO 创建信息 + * @return 配置编号 + */ + Long createConfig(@Valid ConfigSaveReqVO createReqVO); + + /** + * 更新参数配置 + * + * @param updateReqVO 更新信息 + */ + void updateConfig(@Valid ConfigSaveReqVO updateReqVO); + + /** + * 删除参数配置 + * + * @param id 配置编号 + */ + void deleteConfig(Long id); + + /** + * 获得参数配置 + * + * @param id 配置编号 + * @return 参数配置 + */ + ConfigDO getConfig(Long id); + + /** + * 根据参数键,获得参数配置 + * + * @param key 配置键 + * @return 参数配置 + */ + ConfigDO getConfigByKey(String key); + + /** + * 获得参数配置分页列表 + * + * @param reqVO 分页条件 + * @return 分页列表 + */ + PageResult getConfigPage(@Valid ConfigPageReqVO reqVO); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceImpl.java new file mode 100644 index 0000000..6d14ad9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceImpl.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.infra.service.config; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.convert.config.ConfigConvert; +import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; +import cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigMapper; +import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 参数配置 Service 实现类 + */ +@Service +@Slf4j +@Validated +public class ConfigServiceImpl implements ConfigService { + + @Resource + private ConfigMapper configMapper; + + @Override + public Long createConfig(ConfigSaveReqVO createReqVO) { + // 校验参数配置 key 的唯一性 + validateConfigKeyUnique(null, createReqVO.getKey()); + + // 插入参数配置 + ConfigDO config = ConfigConvert.INSTANCE.convert(createReqVO); + config.setType(ConfigTypeEnum.CUSTOM.getType()); + configMapper.insert(config); + return config.getId(); + } + + @Override + public void updateConfig(ConfigSaveReqVO updateReqVO) { + // 校验自己存在 + validateConfigExists(updateReqVO.getId()); + // 校验参数配置 key 的唯一性 + validateConfigKeyUnique(updateReqVO.getId(), updateReqVO.getKey()); + + // 更新参数配置 + ConfigDO updateObj = ConfigConvert.INSTANCE.convert(updateReqVO); + configMapper.updateById(updateObj); + } + + @Override + public void deleteConfig(Long id) { + // 校验配置存在 + ConfigDO config = validateConfigExists(id); + // 内置配置,不允许删除 + if (ConfigTypeEnum.SYSTEM.getType().equals(config.getType())) { + throw exception(CONFIG_CAN_NOT_DELETE_SYSTEM_TYPE); + } + // 删除 + configMapper.deleteById(id); + } + + @Override + public ConfigDO getConfig(Long id) { + return configMapper.selectById(id); + } + + @Override + public ConfigDO getConfigByKey(String key) { + return configMapper.selectByKey(key); + } + + @Override + public PageResult getConfigPage(ConfigPageReqVO pageReqVO) { + return configMapper.selectPage(pageReqVO); + } + + @VisibleForTesting + public ConfigDO validateConfigExists(Long id) { + if (id == null) { + return null; + } + ConfigDO config = configMapper.selectById(id); + if (config == null) { + throw exception(CONFIG_NOT_EXISTS); + } + return config; + } + + @VisibleForTesting + public void validateConfigKeyUnique(Long id, String key) { + ConfigDO config = configMapper.selectByKey(key); + if (config == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的参数配置 + if (id == null) { + throw exception(CONFIG_KEY_DUPLICATE); + } + if (!config.getId().equals(id)) { + throw exception(CONFIG_KEY_DUPLICATE); + } + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigService.java new file mode 100644 index 0000000..2838f44 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigService.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.infra.service.db; + +import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 数据源配置 Service 接口 + * + * @author 芋道源码 + */ +public interface DataSourceConfigService { + + /** + * 创建数据源配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDataSourceConfig(@Valid DataSourceConfigSaveReqVO createReqVO); + + /** + * 更新数据源配置 + * + * @param updateReqVO 更新信息 + */ + void updateDataSourceConfig(@Valid DataSourceConfigSaveReqVO updateReqVO); + + /** + * 删除数据源配置 + * + * @param id 编号 + */ + void deleteDataSourceConfig(Long id); + + /** + * 获得数据源配置 + * + * @param id 编号 + * @return 数据源配置 + */ + DataSourceConfigDO getDataSourceConfig(Long id); + + /** + * 获得数据源配置列表 + * + * @return 数据源配置列表 + */ + List getDataSourceConfigList(); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigServiceImpl.java new file mode 100644 index 0000000..c5bcece --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigServiceImpl.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.infra.service.db; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.mybatis.core.util.JdbcUtils; +import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; +import cn.iocoder.yudao.module.infra.dal.mysql.db.DataSourceConfigMapper; +import com.baomidou.dynamic.datasource.creator.DataSourceProperty; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.DATA_SOURCE_CONFIG_NOT_EXISTS; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.DATA_SOURCE_CONFIG_NOT_OK; + +/** + * 数据源配置 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class DataSourceConfigServiceImpl implements DataSourceConfigService { + + @Resource + private DataSourceConfigMapper dataSourceConfigMapper; + + @Resource + private DynamicDataSourceProperties dynamicDataSourceProperties; + + @Override + public Long createDataSourceConfig(DataSourceConfigSaveReqVO createReqVO) { + DataSourceConfigDO config = BeanUtils.toBean(createReqVO, DataSourceConfigDO.class); + validateConnectionOK(config); + + // 插入 + dataSourceConfigMapper.insert(config); + // 返回 + return config.getId(); + } + + @Override + public void updateDataSourceConfig(DataSourceConfigSaveReqVO updateReqVO) { + // 校验存在 + validateDataSourceConfigExists(updateReqVO.getId()); + DataSourceConfigDO updateObj = BeanUtils.toBean(updateReqVO, DataSourceConfigDO.class); + validateConnectionOK(updateObj); + + // 更新 + dataSourceConfigMapper.updateById(updateObj); + } + + @Override + public void deleteDataSourceConfig(Long id) { + // 校验存在 + validateDataSourceConfigExists(id); + // 删除 + dataSourceConfigMapper.deleteById(id); + } + + private void validateDataSourceConfigExists(Long id) { + if (dataSourceConfigMapper.selectById(id) == null) { + throw exception(DATA_SOURCE_CONFIG_NOT_EXISTS); + } + } + + @Override + public DataSourceConfigDO getDataSourceConfig(Long id) { + // 如果 id 为 0,默认为 master 的数据源 + if (Objects.equals(id, DataSourceConfigDO.ID_MASTER)) { + return buildMasterDataSourceConfig(); + } + // 从 DB 中读取 + return dataSourceConfigMapper.selectById(id); + } + + @Override + public List getDataSourceConfigList() { + List result = dataSourceConfigMapper.selectList(); + // 补充 master 数据源 + result.add(0, buildMasterDataSourceConfig()); + return result; + } + + private void validateConnectionOK(DataSourceConfigDO config) { + boolean success = JdbcUtils.isConnectionOK(config.getUrl(), config.getUsername(), config.getPassword()); + if (!success) { + throw exception(DATA_SOURCE_CONFIG_NOT_OK); + } + } + + private DataSourceConfigDO buildMasterDataSourceConfig() { + String primary = dynamicDataSourceProperties.getPrimary(); + DataSourceProperty dataSourceProperty = dynamicDataSourceProperties.getDatasource().get(primary); + return new DataSourceConfigDO().setId(DataSourceConfigDO.ID_MASTER).setName(primary) + .setUrl(dataSourceProperty.getUrl()) + .setUsername(dataSourceProperty.getUsername()) + .setPassword(dataSourceProperty.getPassword()); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableService.java new file mode 100644 index 0000000..9fd2ee9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableService.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.infra.service.db; + +import com.baomidou.mybatisplus.generator.config.po.TableInfo; + +import java.util.List; + +/** + * 数据库表 Service + * + * @author 芋道源码 + */ +public interface DatabaseTableService { + + /** + * 获得表列表,基于表名称 + 表描述进行模糊匹配 + * + * @param dataSourceConfigId 数据源配置的编号 + * @param nameLike 表名称,模糊匹配 + * @param commentLike 表描述,模糊匹配 + * @return 表列表 + */ + List getTableList(Long dataSourceConfigId, String nameLike, String commentLike); + + /** + * 获得指定表名 + * + * @param dataSourceConfigId 数据源配置的编号 + * @param tableName 表名称 + * @return 表 + */ + TableInfo getTable(Long dataSourceConfigId, String tableName); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java new file mode 100644 index 0000000..9e89335 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.infra.service.db; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO; +import com.baomidou.mybatisplus.generator.config.DataSourceConfig; +import com.baomidou.mybatisplus.generator.config.GlobalConfig; +import com.baomidou.mybatisplus.generator.config.StrategyConfig; +import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.baomidou.mybatisplus.generator.config.rules.DateType; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 数据库表 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class DatabaseTableServiceImpl implements DatabaseTableService { + + @Resource + private DataSourceConfigService dataSourceConfigService; + + @Override + public List getTableList(Long dataSourceConfigId, String nameLike, String commentLike) { + List tables = getTableList0(dataSourceConfigId, null); + return tables.stream().filter(tableInfo -> (StrUtil.isEmpty(nameLike) || tableInfo.getName().contains(nameLike)) + && (StrUtil.isEmpty(commentLike) || tableInfo.getComment().contains(commentLike))) + .collect(Collectors.toList()); + } + + @Override + public TableInfo getTable(Long dataSourceConfigId, String name) { + return CollUtil.getFirst(getTableList0(dataSourceConfigId, name)); + } + + private List getTableList0(Long dataSourceConfigId, String name) { + // 获得数据源配置 + DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(dataSourceConfigId); + Assert.notNull(config, "数据源({}) 不存在!", dataSourceConfigId); + + // 使用 MyBatis Plus Generator 解析表结构 + DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder(config.getUrl(), config.getUsername(), + config.getPassword()).build(); + StrategyConfig.Builder strategyConfig = new StrategyConfig.Builder(); + if (StrUtil.isNotEmpty(name)) { + strategyConfig.addInclude(name); + } else { + // 移除工作流和定时任务前缀的表名 // TODO 未来做成可配置 + strategyConfig.addExclude("ACT_[\\S\\s]+|QRTZ_[\\S\\s]+|FLW_[\\S\\s]+"); + } + + GlobalConfig globalConfig = new GlobalConfig.Builder().dateType(DateType.TIME_PACK).build(); // 只使用 LocalDateTime 类型,不使用 LocalDate + ConfigBuilder builder = new ConfigBuilder(null, dataSourceConfig, strategyConfig.build(), + null, globalConfig, null); + // 按照名字排序 + List tables = builder.getTableInfoList(); + tables.sort(Comparator.comparing(TableInfo::getName)); + return tables; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactService.java new file mode 100644 index 0000000..e3a1b6d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo01; + +import javax.validation.*; + +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 示例联系人 Service 接口 + * + * @author 芋道源码 + */ +public interface Demo01ContactService { + + /** + * 创建示例联系人 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDemo01Contact(@Valid Demo01ContactSaveReqVO createReqVO); + + /** + * 更新示例联系人 + * + * @param updateReqVO 更新信息 + */ + void updateDemo01Contact(@Valid Demo01ContactSaveReqVO updateReqVO); + + /** + * 删除示例联系人 + * + * @param id 编号 + */ + void deleteDemo01Contact(Long id); + + /** + * 获得示例联系人 + * + * @param id 编号 + * @return 示例联系人 + */ + Demo01ContactDO getDemo01Contact(Long id); + + /** + * 获得示例联系人分页 + * + * @param pageReqVO 分页查询 + * @return 示例联系人分页 + */ + PageResult getDemo01ContactPage(Demo01ContactPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java new file mode 100644 index 0000000..cde4906 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo01; + +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo01.Demo01ContactMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 示例联系人 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class Demo01ContactServiceImpl implements Demo01ContactService { + + @Resource + private Demo01ContactMapper demo01ContactMapper; + + @Override + public Long createDemo01Contact(Demo01ContactSaveReqVO createReqVO) { + // 插入 + Demo01ContactDO demo01Contact = BeanUtils.toBean(createReqVO, Demo01ContactDO.class); + demo01ContactMapper.insert(demo01Contact); + // 返回 + return demo01Contact.getId(); + } + + @Override + public void updateDemo01Contact(Demo01ContactSaveReqVO updateReqVO) { + // 校验存在 + validateDemo01ContactExists(updateReqVO.getId()); + // 更新 + Demo01ContactDO updateObj = BeanUtils.toBean(updateReqVO, Demo01ContactDO.class); + demo01ContactMapper.updateById(updateObj); + } + + @Override + public void deleteDemo01Contact(Long id) { + // 校验存在 + validateDemo01ContactExists(id); + // 删除 + demo01ContactMapper.deleteById(id); + } + + private void validateDemo01ContactExists(Long id) { + if (demo01ContactMapper.selectById(id) == null) { + throw exception(DEMO01_CONTACT_NOT_EXISTS); + } + } + + @Override + public Demo01ContactDO getDemo01Contact(Long id) { + return demo01ContactMapper.selectById(id); + } + + @Override + public PageResult getDemo01ContactPage(Demo01ContactPageReqVO pageReqVO) { + return demo01ContactMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryService.java new file mode 100644 index 0000000..7980fdb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo02; + +import java.util.*; +import javax.validation.*; + +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; + +/** + * 示例分类 Service 接口 + * + * @author 芋道源码 + */ +public interface Demo02CategoryService { + + /** + * 创建示例分类 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDemo02Category(@Valid Demo02CategorySaveReqVO createReqVO); + + /** + * 更新示例分类 + * + * @param updateReqVO 更新信息 + */ + void updateDemo02Category(@Valid Demo02CategorySaveReqVO updateReqVO); + + /** + * 删除示例分类 + * + * @param id 编号 + */ + void deleteDemo02Category(Long id); + + /** + * 获得示例分类 + * + * @param id 编号 + * @return 示例分类 + */ + Demo02CategoryDO getDemo02Category(Long id); + + /** + * 获得示例分类列表 + * + * @param listReqVO 查询条件 + * @return 示例分类列表 + */ + List getDemo02CategoryList(Demo02CategoryListReqVO listReqVO); + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java new file mode 100644 index 0000000..7ab4ec5 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo02/Demo02CategoryServiceImpl.java @@ -0,0 +1,134 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo02; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategoryListReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo02.vo.Demo02CategorySaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo02.Demo02CategoryMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 示例分类 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class Demo02CategoryServiceImpl implements Demo02CategoryService { + + @Resource + private Demo02CategoryMapper demo02CategoryMapper; + + @Override + public Long createDemo02Category(Demo02CategorySaveReqVO createReqVO) { + // 校验父级编号的有效性 + validateParentDemo02Category(null, createReqVO.getParentId()); + // 校验名字的唯一性 + validateDemo02CategoryNameUnique(null, createReqVO.getParentId(), createReqVO.getName()); + + // 插入 + Demo02CategoryDO demo02Category = BeanUtils.toBean(createReqVO, Demo02CategoryDO.class); + demo02CategoryMapper.insert(demo02Category); + // 返回 + return demo02Category.getId(); + } + + @Override + public void updateDemo02Category(Demo02CategorySaveReqVO updateReqVO) { + // 校验存在 + validateDemo02CategoryExists(updateReqVO.getId()); + // 校验父级编号的有效性 + validateParentDemo02Category(updateReqVO.getId(), updateReqVO.getParentId()); + // 校验名字的唯一性 + validateDemo02CategoryNameUnique(updateReqVO.getId(), updateReqVO.getParentId(), updateReqVO.getName()); + + // 更新 + Demo02CategoryDO updateObj = BeanUtils.toBean(updateReqVO, Demo02CategoryDO.class); + demo02CategoryMapper.updateById(updateObj); + } + + @Override + public void deleteDemo02Category(Long id) { + // 校验存在 + validateDemo02CategoryExists(id); + // 校验是否有子示例分类 + if (demo02CategoryMapper.selectCountByParentId(id) > 0) { + throw exception(DEMO02_CATEGORY_EXITS_CHILDREN); + } + // 删除 + demo02CategoryMapper.deleteById(id); + } + + private void validateDemo02CategoryExists(Long id) { + if (demo02CategoryMapper.selectById(id) == null) { + throw exception(DEMO02_CATEGORY_NOT_EXISTS); + } + } + + private void validateParentDemo02Category(Long id, Long parentId) { + if (parentId == null || Demo02CategoryDO.PARENT_ID_ROOT.equals(parentId)) { + return; + } + // 1. 不能设置自己为父示例分类 + if (Objects.equals(id, parentId)) { + throw exception(DEMO02_CATEGORY_PARENT_ERROR); + } + // 2. 父示例分类不存在 + Demo02CategoryDO parentDemo02Category = demo02CategoryMapper.selectById(parentId); + if (parentDemo02Category == null) { + throw exception(DEMO02_CATEGORY_PARENT_NOT_EXITS); + } + // 3. 递归校验父示例分类,如果父示例分类是自己的子示例分类,则报错,避免形成环路 + if (id == null) { // id 为空,说明新增,不需要考虑环路 + return; + } + for (int i = 0; i < Short.MAX_VALUE; i++) { + // 3.1 校验环路 + parentId = parentDemo02Category.getParentId(); + if (Objects.equals(id, parentId)) { + throw exception(DEMO02_CATEGORY_PARENT_IS_CHILD); + } + // 3.2 继续递归下一级父示例分类 + if (parentId == null || Demo02CategoryDO.PARENT_ID_ROOT.equals(parentId)) { + break; + } + parentDemo02Category = demo02CategoryMapper.selectById(parentId); + if (parentDemo02Category == null) { + break; + } + } + } + + private void validateDemo02CategoryNameUnique(Long id, Long parentId, String name) { + Demo02CategoryDO demo02Category = demo02CategoryMapper.selectByParentIdAndName(parentId, name); + if (demo02Category == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的示例分类 + if (id == null) { + throw exception(DEMO02_CATEGORY_NAME_DUPLICATE); + } + if (!Objects.equals(demo02Category.getId(), id)) { + throw exception(DEMO02_CATEGORY_NAME_DUPLICATE); + } + } + + @Override + public Demo02CategoryDO getDemo02Category(Long id) { + return demo02CategoryMapper.selectById(id); + } + + @Override + public List getDemo02CategoryList(Demo02CategoryListReqVO listReqVO) { + return demo02CategoryMapper.selectList(listReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentService.java new file mode 100644 index 0000000..c9a4c59 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentService.java @@ -0,0 +1,158 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 学生 Service 接口 + * + * @author 芋道源码 + */ +public interface Demo03StudentService { + + /** + * 创建学生 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDemo03Student(@Valid Demo03StudentSaveReqVO createReqVO); + + /** + * 更新学生 + * + * @param updateReqVO 更新信息 + */ + void updateDemo03Student(@Valid Demo03StudentSaveReqVO updateReqVO); + + /** + * 删除学生 + * + * @param id 编号 + */ + void deleteDemo03Student(Long id); + + /** + * 获得学生 + * + * @param id 编号 + * @return 学生 + */ + Demo03StudentDO getDemo03Student(Long id); + + /** + * 获得学生分页 + * + * @param pageReqVO 分页查询 + * @return 学生分页 + */ + PageResult getDemo03StudentPage(Demo03StudentPageReqVO pageReqVO); + + + // ==================== 子表(学生课程) ==================== + + /** + * 获得学生课程列表 + * + * @param studentId 学生编号 + * @return 学生课程列表 + */ + List getDemo03CourseListByStudentId(Long studentId); + + /** + * 获得学生课程分页 + * + * @param pageReqVO 分页查询 + * @param studentId 学生编号 + * @return 学生课程分页 + */ + PageResult getDemo03CoursePage(PageParam pageReqVO, Long studentId); + + /** + * 创建学生课程 + * + * @param demo03Course 创建信息 + * @return 编号 + */ + Long createDemo03Course(@Valid Demo03CourseDO demo03Course); + + /** + * 更新学生课程 + * + * @param demo03Course 更新信息 + */ + void updateDemo03Course(@Valid Demo03CourseDO demo03Course); + + /** + * 删除学生课程 + * + * @param id 编号 + */ + void deleteDemo03Course(Long id); + + /** + * 获得学生课程 + * + * @param id 编号 + * @return 学生课程 + */ + Demo03CourseDO getDemo03Course(Long id); + + // ==================== 子表(学生班级) ==================== + + /** + * 获得学生班级 + * + * @param studentId 学生编号 + * @return 学生班级 + */ + Demo03GradeDO getDemo03GradeByStudentId(Long studentId); + + /** + * 获得学生班级分页 + * + * @param pageReqVO 分页查询 + * @param studentId 学生编号 + * @return 学生班级分页 + */ + PageResult getDemo03GradePage(PageParam pageReqVO, Long studentId); + + /** + * 创建学生班级 + * + * @param demo03Grade 创建信息 + * @return 编号 + */ + Long createDemo03Grade(@Valid Demo03GradeDO demo03Grade); + + /** + * 更新学生班级 + * + * @param demo03Grade 更新信息 + */ + void updateDemo03Grade(@Valid Demo03GradeDO demo03Grade); + + /** + * 删除学生班级 + * + * @param id 编号 + */ + void deleteDemo03Grade(Long id); + + /** + * 获得学生班级 + * + * @param id 编号 + * @return 学生班级 + */ + Demo03GradeDO getDemo03Grade(Long id); + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java new file mode 100644 index 0000000..7b69e4a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/Demo03StudentServiceImpl.java @@ -0,0 +1,217 @@ +package cn.iocoder.yudao.module.infra.service.demo.demo03; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo03.vo.Demo03StudentSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03CourseDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03GradeDO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo03.Demo03StudentDO; +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03CourseMapper; +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03GradeMapper; +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo03.Demo03StudentMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 学生 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class Demo03StudentServiceImpl implements Demo03StudentService { + + @Resource + private Demo03StudentMapper demo03StudentMapper; + @Resource + private Demo03CourseMapper demo03CourseMapper; + @Resource + private Demo03GradeMapper demo03GradeMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createDemo03Student(Demo03StudentSaveReqVO createReqVO) { + // 插入 + Demo03StudentDO demo03Student = BeanUtils.toBean(createReqVO, Demo03StudentDO.class); + demo03StudentMapper.insert(demo03Student); + + // 插入子表 + createDemo03CourseList(demo03Student.getId(), createReqVO.getDemo03Courses()); + createDemo03Grade(demo03Student.getId(), createReqVO.getDemo03Grade()); + // 返回 + return demo03Student.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateDemo03Student(Demo03StudentSaveReqVO updateReqVO) { + // 校验存在 + validateDemo03StudentExists(updateReqVO.getId()); + // 更新 + Demo03StudentDO updateObj = BeanUtils.toBean(updateReqVO, Demo03StudentDO.class); + demo03StudentMapper.updateById(updateObj); + + // 更新子表 + updateDemo03CourseList(updateReqVO.getId(), updateReqVO.getDemo03Courses()); + updateDemo03Grade(updateReqVO.getId(), updateReqVO.getDemo03Grade()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDemo03Student(Long id) { + // 校验存在 + validateDemo03StudentExists(id); + // 删除 + demo03StudentMapper.deleteById(id); + + // 删除子表 + deleteDemo03CourseByStudentId(id); + deleteDemo03GradeByStudentId(id); + } + + private void validateDemo03StudentExists(Long id) { + if (demo03StudentMapper.selectById(id) == null) { + throw exception(DEMO03_STUDENT_NOT_EXISTS); + } + } + + @Override + public Demo03StudentDO getDemo03Student(Long id) { + return demo03StudentMapper.selectById(id); + } + + @Override + public PageResult getDemo03StudentPage(Demo03StudentPageReqVO pageReqVO) { + return demo03StudentMapper.selectPage(pageReqVO); + } + + // ==================== 子表(学生课程) ==================== + + @Override + public List getDemo03CourseListByStudentId(Long studentId) { + return demo03CourseMapper.selectListByStudentId(studentId); + } + + private void createDemo03CourseList(Long studentId, List list) { + if (list != null) { + list.forEach(o -> o.setStudentId(studentId)); + } + demo03CourseMapper.insertBatch(list); + } + + private void updateDemo03CourseList(Long studentId, List list) { + deleteDemo03CourseByStudentId(studentId); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + createDemo03CourseList(studentId, list); + } + + private void deleteDemo03CourseByStudentId(Long studentId) { + demo03CourseMapper.deleteByStudentId(studentId); + } + + @Override + public PageResult getDemo03CoursePage(PageParam pageReqVO, Long studentId) { + return demo03CourseMapper.selectPage(pageReqVO, studentId); + } + + @Override + public Long createDemo03Course(Demo03CourseDO demo03Course) { + demo03CourseMapper.insert(demo03Course); + return demo03Course.getId(); + } + + @Override + public void updateDemo03Course(Demo03CourseDO demo03Course) { + demo03CourseMapper.updateById(demo03Course); + } + + @Override + public void deleteDemo03Course(Long id) { + demo03CourseMapper.deleteById(id); + } + + @Override + public Demo03CourseDO getDemo03Course(Long id) { + return demo03CourseMapper.selectById(id); + } + + // ==================== 子表(学生班级) ==================== + + @Override + public Demo03GradeDO getDemo03GradeByStudentId(Long studentId) { + return demo03GradeMapper.selectByStudentId(studentId); + } + + private void createDemo03Grade(Long studentId, Demo03GradeDO demo03Grade) { + if (demo03Grade == null) { + return; + } + demo03Grade.setStudentId(studentId); + demo03GradeMapper.insert(demo03Grade); + } + + private void updateDemo03Grade(Long studentId, Demo03GradeDO demo03Grade) { + if (demo03Grade == null) { + return; + } + demo03Grade.setStudentId(studentId); + demo03Grade.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 + demo03GradeMapper.insertOrUpdate(demo03Grade); + } + + private void deleteDemo03GradeByStudentId(Long studentId) { + demo03GradeMapper.deleteByStudentId(studentId); + } + + @Override + public PageResult getDemo03GradePage(PageParam pageReqVO, Long studentId) { + return demo03GradeMapper.selectPage(pageReqVO, studentId); + } + + @Override + public Long createDemo03Grade(Demo03GradeDO demo03Grade) { + // 校验是否已经存在 + if (demo03GradeMapper.selectByStudentId(demo03Grade.getStudentId()) != null) { + throw exception(DEMO03_GRADE_EXISTS); + } + demo03GradeMapper.insert(demo03Grade); + return demo03Grade.getId(); + } + + @Override + public void updateDemo03Grade(Demo03GradeDO demo03Grade) { + // 校验存在 + validateDemo03GradeExists(demo03Grade.getId()); + // 更新 + demo03GradeMapper.updateById(demo03Grade); + } + + @Override + public void deleteDemo03Grade(Long id) { + // 校验存在 + validateDemo03GradeExists(id); + // 删除 + demo03GradeMapper.deleteById(id); + } + + @Override + public Demo03GradeDO getDemo03Grade(Long id) { + return demo03GradeMapper.selectById(id); + } + + private void validateDemo03GradeExists(Long id) { + if (demo03GradeMapper.selectById(id) == null) { + throw exception(DEMO03_GRADE_NOT_EXISTS); + } + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigService.java new file mode 100644 index 0000000..e430880 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigService.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.infra.service.file; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.file.core.client.FileClient; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; + +import javax.validation.Valid; + +/** + * 文件配置 Service 接口 + * + * @author 芋道源码 + */ +public interface FileConfigService { + + /** + * 创建文件配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createFileConfig(@Valid FileConfigSaveReqVO createReqVO); + + /** + * 更新文件配置 + * + * @param updateReqVO 更新信息 + */ + void updateFileConfig(@Valid FileConfigSaveReqVO updateReqVO); + + /** + * 更新文件配置为 Master + * + * @param id 编号 + */ + void updateFileConfigMaster(Long id); + + /** + * 删除文件配置 + * + * @param id 编号 + */ + void deleteFileConfig(Long id); + + /** + * 获得文件配置 + * + * @param id 编号 + * @return 文件配置 + */ + FileConfigDO getFileConfig(Long id); + + /** + * 获得文件配置分页 + * + * @param pageReqVO 分页查询 + * @return 文件配置分页 + */ + PageResult getFileConfigPage(FileConfigPageReqVO pageReqVO); + + /** + * 测试文件配置是否正确,通过上传文件 + * + * @param id 编号 + * @return 文件 URL + */ + String testFileConfig(Long id) throws Exception; + + /** + * 获得指定编号的文件客户端 + * + * @param id 配置编号 + * @return 文件客户端 + */ + FileClient getFileClient(Long id); + + /** + * 获得 Master 文件客户端 + * + * @return 文件客户端 + */ + FileClient getMasterFileClient(); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImpl.java new file mode 100644 index 0000000..94ec1d9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImpl.java @@ -0,0 +1,190 @@ +package cn.iocoder.yudao.module.infra.service.file; + +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; +import cn.iocoder.yudao.framework.file.core.client.FileClient; +import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; +import cn.iocoder.yudao.framework.file.core.client.FileClientFactory; +import cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; +import cn.iocoder.yudao.module.infra.convert.file.FileConfigConvert; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; +import cn.iocoder.yudao.module.infra.dal.mysql.file.FileConfigMapper; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Validator; +import java.time.Duration; +import java.util.Map; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_CONFIG_DELETE_FAIL_MASTER; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_CONFIG_NOT_EXISTS; + +/** + * 文件配置 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class FileConfigServiceImpl implements FileConfigService { + + private static final Long CACHE_MASTER_ID = 0L; + + /** + * {@link FileClient} 缓存,通过它异步刷新 fileClientFactory + */ + @Getter + private final LoadingCache clientCache = buildAsyncReloadingCache(Duration.ofSeconds(10L), + new CacheLoader() { + + @Override + public FileClient load(Long id) { + FileConfigDO config = Objects.equals(CACHE_MASTER_ID, id) ? + fileConfigMapper.selectByMaster() : fileConfigMapper.selectById(id); + if (config != null) { + fileClientFactory.createOrUpdateFileClient(config.getId(), config.getStorage(), config.getConfig()); + } + return fileClientFactory.getFileClient(null == config ? id : config.getId()); + } + + }); + + @Resource + private FileClientFactory fileClientFactory; + + @Resource + private FileConfigMapper fileConfigMapper; + + @Resource + private Validator validator; + + @Override + public Long createFileConfig(FileConfigSaveReqVO createReqVO) { + FileConfigDO fileConfig = FileConfigConvert.INSTANCE.convert(createReqVO) + .setConfig(parseClientConfig(createReqVO.getStorage(), createReqVO.getConfig())) + .setMaster(false); // 默认非 master + fileConfigMapper.insert(fileConfig); + return fileConfig.getId(); + } + + @Override + public void updateFileConfig(FileConfigSaveReqVO updateReqVO) { + // 校验存在 + FileConfigDO config = validateFileConfigExists(updateReqVO.getId()); + // 更新 + FileConfigDO updateObj = FileConfigConvert.INSTANCE.convert(updateReqVO) + .setConfig(parseClientConfig(config.getStorage(), updateReqVO.getConfig())); + fileConfigMapper.updateById(updateObj); + + // 清空缓存 + clearCache(config.getId(), null); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateFileConfigMaster(Long id) { + // 校验存在 + validateFileConfigExists(id); + // 更新其它为非 master + fileConfigMapper.updateBatch(new FileConfigDO().setMaster(false)); + // 更新 + fileConfigMapper.updateById(new FileConfigDO().setId(id).setMaster(true)); + + // 清空缓存 + clearCache(null, true); + } + + private FileClientConfig parseClientConfig(Integer storage, Map config) { + // 获取配置类 + Class configClass = FileStorageEnum.getByStorage(storage) + .getConfigClass(); + FileClientConfig clientConfig = JsonUtils.parseObject2(JsonUtils.toJsonString(config), configClass); + // 参数校验 + ValidationUtils.validate(validator, clientConfig); + // 设置参数 + return clientConfig; + } + + @Override + public void deleteFileConfig(Long id) { + // 校验存在 + FileConfigDO config = validateFileConfigExists(id); + if (Boolean.TRUE.equals(config.getMaster())) { + throw exception(FILE_CONFIG_DELETE_FAIL_MASTER); + } + // 删除 + fileConfigMapper.deleteById(id); + + // 清空缓存 + clearCache(id, null); + } + + /** + * 清空指定文件配置 + * + * @param id 配置编号 + * @param master 是否主配置 + */ + private void clearCache(Long id, Boolean master) { + if (id != null) { + clientCache.invalidate(id); + } + if (Boolean.TRUE.equals(master)) { + clientCache.invalidate(CACHE_MASTER_ID); + } + } + + private FileConfigDO validateFileConfigExists(Long id) { + FileConfigDO config = fileConfigMapper.selectById(id); + if (config == null) { + throw exception(FILE_CONFIG_NOT_EXISTS); + } + return config; + } + + @Override + public FileConfigDO getFileConfig(Long id) { + return fileConfigMapper.selectById(id); + } + + @Override + public PageResult getFileConfigPage(FileConfigPageReqVO pageReqVO) { + return fileConfigMapper.selectPage(pageReqVO); + } + + @Override + public String testFileConfig(Long id) throws Exception { + // 校验存在 + validateFileConfigExists(id); + // 上传文件 + byte[] content = ResourceUtil.readBytes("file/erweima.jpg"); + return getFileClient(id).upload(content, IdUtil.fastSimpleUUID() + ".jpg", "image/jpeg"); + } + + @Override + public FileClient getFileClient(Long id) { + return clientCache.getUnchecked(id); + } + + @Override + public FileClient getMasterFileClient() { + return clientCache.getUnchecked(CACHE_MASTER_ID); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java new file mode 100644 index 0000000..230a69a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.infra.service.file; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileCreateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; + +/** + * 文件 Service 接口 + * + * @author 芋道源码 + */ +public interface FileService { + + /** + * 获得文件分页 + * + * @param pageReqVO 分页查询 + * @return 文件分页 + */ + PageResult getFilePage(FilePageReqVO pageReqVO); + + /** + * 保存文件,并返回文件的访问路径 + * + * @param name 文件名称 + * @param path 文件路径 + * @param content 文件内容 + * @return 文件路径 + */ + String createFile(String name, String path, byte[] content); + + /** + * 创建文件 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createFile(FileCreateReqVO createReqVO); + + /** + * 删除文件 + * + * @param id 编号 + */ + void deleteFile(Long id) throws Exception; + + /** + * 获得文件内容 + * + * @param configId 配置编号 + * @param path 文件路径 + * @return 文件内容 + */ + byte[] getFileContent(Long configId, String path) throws Exception; + + /** + * 生成文件预签名地址信息 + * + * @param path 文件路径 + * @return 预签名地址信息 + */ + FilePresignedUrlRespVO getFilePresignedUrl(String path) throws Exception; + + //获取当天唯一名称 + String getUniqueFileName(String fileName,String path); +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java new file mode 100644 index 0000000..610accc --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java @@ -0,0 +1,175 @@ +package cn.iocoder.yudao.module.infra.service.file; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.io.FileUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.file.core.client.FileClient; +import cn.iocoder.yudao.framework.file.core.client.s3.FilePresignedUrlRespDTO; +import cn.iocoder.yudao.framework.file.core.utils.FileTypeUtils; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileCreateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; +import cn.iocoder.yudao.module.infra.dal.mysql.file.FileMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.SneakyThrows; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; + +/** + * 文件 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class FileServiceImpl implements FileService { + + @Resource + private FileConfigService fileConfigService; + + @Resource + private FileMapper fileMapper; + + @Override + public PageResult getFilePage(FilePageReqVO pageReqVO) { + return fileMapper.selectPage(pageReqVO); + } + + @Override + @SneakyThrows + public String createFile(String name, String path, byte[] content) { + // 计算默认的 path 名 + String type = FileTypeUtils.getMineType(content, name); + if (StrUtil.isEmpty(path)) { + path = FileUtils.generatePath(content, name); + } + // 如果 name 为空,则使用 path 填充 + if (StrUtil.isEmpty(name)) { + name = path; + } + + // 上传到文件存储器 + FileClient client = fileConfigService.getMasterFileClient(); + Assert.notNull(client, "客户端(master) 不能为空"); + String url = client.upload(content, path, type); + + // 保存到数据库 + FileDO file = new FileDO(); + file.setConfigId(client.getId()); + file.setName(name); + file.setPath(path); + file.setUrl(url); + file.setType(type); + file.setSize(content.length); + fileMapper.insert(file); + return url; + } + + @Override + public Long createFile(FileCreateReqVO createReqVO) { + FileDO file = BeanUtils.toBean(createReqVO, FileDO.class); + fileMapper.insert(file); + return file.getId(); + } + + @Override + public void deleteFile(Long id) throws Exception { + // 校验存在 + FileDO file = validateFileExists(id); + + // 从文件存储器中删除 + FileClient client = fileConfigService.getFileClient(file.getConfigId()); + Assert.notNull(client, "客户端({}) 不能为空", file.getConfigId()); + client.delete(file.getPath()); + + // 删除记录 + fileMapper.deleteById(id); + } + + private FileDO validateFileExists(Long id) { + FileDO fileDO = fileMapper.selectById(id); + if (fileDO == null) { + throw exception(FILE_NOT_EXISTS); + } + return fileDO; + } + + @Override + public byte[] getFileContent(Long configId, String path) throws Exception { + FileClient client = fileConfigService.getFileClient(configId); + Assert.notNull(client, "客户端({}) 不能为空", configId); + return client.getContent(path); + } + + @Override + public FilePresignedUrlRespVO getFilePresignedUrl(String path) throws Exception { + FileClient fileClient = fileConfigService.getMasterFileClient(); + FilePresignedUrlRespDTO presignedObjectUrl = fileClient.getPresignedObjectUrl(path); + return BeanUtils.toBean(presignedObjectUrl, FilePresignedUrlRespVO.class, + object -> object.setConfigId(fileClient.getId())); + } + + //获取当天唯一名称 + @Override + public String getUniqueFileName(String fileName,String path){ + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(FileDO::getPath,path); + List fileDOList = fileMapper.selectList(wrapper); + if(fileDOList==null || fileDOList.size()==0){//当天不存在同名,可用 + return fileName; + } + + //存在同名,找出全部 + path=path.substring(0,path.lastIndexOf(".")); + + LambdaQueryWrapper likeWrapper=new LambdaQueryWrapper<>(); + likeWrapper.likeRight(FileDO::getPath,path); + List list = fileMapper.selectList(likeWrapper); + int fileIndex=1;//序号 + for(FileDO tmpFileDO:list){ + String name = tmpFileDO.getName(); + if(name.equals(fileName)){ + continue; + }else if(!name.contains("_")){ + continue; + }else if(!name.contains(".")){ + continue; + } + String substring = name.substring(name.lastIndexOf("_")+1, name.lastIndexOf(".")); + int nowIndex = 0; + try { + nowIndex = Integer.parseInt(substring); + } catch (NumberFormatException ignored){} + if(nowIndex>fileIndex){ + fileIndex = nowIndex; + } + } + fileIndex++; + + + String left = fileName.substring(0,fileName.lastIndexOf(".")); + String right = fileName.substring(fileName.lastIndexOf(".")+1); + + String newFileName=left+"_"+fileIndex+"."+right; + + return newFileName; + + } + +/* public static void main(String[] args) { + String str="微信图片_20230905094700_1.png"; + String left = str.substring(0,str.lastIndexOf(".")); + String right = str.substring(str.lastIndexOf(".")+1); + System.out.println(left+"."+right); + + }*/ + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogService.java new file mode 100644 index 0000000..f1e7e7c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogService.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.infra.service.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.quartz.core.service.JobLogFrameworkService; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; + +/** + * Job 日志 Service 接口 + * + * @author 芋道源码 + */ +public interface JobLogService extends JobLogFrameworkService { + + /** + * 获得定时任务 + * + * @param id 编号 + * @return 定时任务 + */ + JobLogDO getJobLog(Long id); + + /** + * 获得定时任务分页 + * + * @param pageReqVO 分页查询 + * @return 定时任务分页 + */ + PageResult getJobLogPage(JobLogPageReqVO pageReqVO); + + /** + * 清理 exceedDay 天前的任务日志 + * + * @param exceedDay 超过多少天就进行清理 + * @param deleteLimit 清理的间隔条数 + */ + Integer cleanJobLog(Integer exceedDay, Integer deleteLimit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImpl.java new file mode 100644 index 0000000..868fd1b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceImpl.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.infra.service.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; +import cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper; +import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; + +/** + * Job 日志 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class JobLogServiceImpl implements JobLogService { + + @Resource + private JobLogMapper jobLogMapper; + + @Override + public Long createJobLog(Long jobId, LocalDateTime beginTime, + String jobHandlerName, String jobHandlerParam, Integer executeIndex) { + JobLogDO log = JobLogDO.builder().jobId(jobId).handlerName(jobHandlerName) + .handlerParam(jobHandlerParam).executeIndex(executeIndex) + .beginTime(beginTime).status(JobLogStatusEnum.RUNNING.getStatus()).build(); + jobLogMapper.insert(log); + return log.getId(); + } + + @Override + @Async + public void updateJobLogResultAsync(Long logId, LocalDateTime endTime, Integer duration, boolean success, String result) { + try { + JobLogDO updateObj = JobLogDO.builder().id(logId).endTime(endTime).duration(duration) + .status(success ? JobLogStatusEnum.SUCCESS.getStatus() : JobLogStatusEnum.FAILURE.getStatus()) + .result(result).build(); + jobLogMapper.updateById(updateObj); + } catch (Exception ex) { + log.error("[updateJobLogResultAsync][logId({}) endTime({}) duration({}) success({}) result({})]", + logId, endTime, duration, success, result); + } + } + + @Override + @SuppressWarnings("DuplicatedCode") + public Integer cleanJobLog(Integer exceedDay, Integer deleteLimit) { + int count = 0; + LocalDateTime expireDate = LocalDateTime.now().minusDays(exceedDay); + // 循环删除,直到没有满足条件的数据 + for (int i = 0; i < Short.MAX_VALUE; i++) { + int deleteCount = jobLogMapper.deleteByCreateTimeLt(expireDate, deleteLimit); + count += deleteCount; + // 达到删除预期条数,说明到底了 + if (deleteCount < deleteLimit) { + break; + } + } + return count; + } + + @Override + public JobLogDO getJobLog(Long id) { + return jobLogMapper.selectById(id); + } + + @Override + public PageResult getJobLogPage(JobLogPageReqVO pageReqVO) { + return jobLogMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java new file mode 100644 index 0000000..928ed78 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobService.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.infra.service.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; +import org.quartz.SchedulerException; + +import javax.validation.Valid; + +/** + * 定时任务 Service 接口 + * + * @author 芋道源码 + */ +public interface JobService { + + /** + * 创建定时任务 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createJob(@Valid JobSaveReqVO createReqVO) throws SchedulerException; + + /** + * 更新定时任务 + * + * @param updateReqVO 更新信息 + */ + void updateJob(@Valid JobSaveReqVO updateReqVO) throws SchedulerException; + + /** + * 更新定时任务的状态 + * + * @param id 任务编号 + * @param status 状态 + */ + void updateJobStatus(Long id, Integer status) throws SchedulerException; + + /** + * 触发定时任务 + * + * @param id 任务编号 + */ + void triggerJob(Long id) throws SchedulerException; + + /** + * 删除定时任务 + * + * @param id 编号 + */ + void deleteJob(Long id) throws SchedulerException; + + /** + * 获得定时任务 + * + * @param id 编号 + * @return 定时任务 + */ + JobDO getJob(Long id); + + /** + * 获得定时任务分页 + * + * @param pageReqVO 分页查询 + * @return 定时任务分页 + */ + PageResult getJobPage(JobPageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java new file mode 100644 index 0000000..6f6068d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/job/JobServiceImpl.java @@ -0,0 +1,161 @@ +package cn.iocoder.yudao.module.infra.service.job; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; +import cn.iocoder.yudao.framework.quartz.core.util.CronUtils; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobSaveReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; +import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper; +import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; +import org.quartz.SchedulerException; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.containsAny; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * 定时任务 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class JobServiceImpl implements JobService { + + @Resource + private JobMapper jobMapper; + + @Resource + private SchedulerManager schedulerManager; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createJob(JobSaveReqVO createReqVO) throws SchedulerException { + validateCronExpression(createReqVO.getCronExpression()); + // 校验唯一性 + if (jobMapper.selectByHandlerName(createReqVO.getHandlerName()) != null) { + throw exception(JOB_HANDLER_EXISTS); + } + // 插入 + JobDO job = BeanUtils.toBean(createReqVO, JobDO.class); + job.setStatus(JobStatusEnum.INIT.getStatus()); + fillJobMonitorTimeoutEmpty(job); + jobMapper.insert(job); + + // 添加 Job 到 Quartz 中 + schedulerManager.addJob(job.getId(), job.getHandlerName(), job.getHandlerParam(), job.getCronExpression(), + createReqVO.getRetryCount(), createReqVO.getRetryInterval()); + // 更新 + JobDO updateObj = JobDO.builder().id(job.getId()).status(JobStatusEnum.NORMAL.getStatus()).build(); + jobMapper.updateById(updateObj); + + // 返回 + return job.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateJob(JobSaveReqVO updateReqVO) throws SchedulerException { + validateCronExpression(updateReqVO.getCronExpression()); + // 校验存在 + JobDO job = validateJobExists(updateReqVO.getId()); + // 只有开启状态,才可以修改.原因是,如果出暂停状态,修改 Quartz Job 时,会导致任务又开始执行 + if (!job.getStatus().equals(JobStatusEnum.NORMAL.getStatus())) { + throw exception(JOB_UPDATE_ONLY_NORMAL_STATUS); + } + // 更新 + JobDO updateObj = BeanUtils.toBean(updateReqVO, JobDO.class); + fillJobMonitorTimeoutEmpty(updateObj); + jobMapper.updateById(updateObj); + + // 更新 Job 到 Quartz 中 + schedulerManager.updateJob(job.getHandlerName(), updateReqVO.getHandlerParam(), updateReqVO.getCronExpression(), + updateReqVO.getRetryCount(), updateReqVO.getRetryInterval()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateJobStatus(Long id, Integer status) throws SchedulerException { + // 校验 status + if (!containsAny(status, JobStatusEnum.NORMAL.getStatus(), JobStatusEnum.STOP.getStatus())) { + throw exception(JOB_CHANGE_STATUS_INVALID); + } + // 校验存在 + JobDO job = validateJobExists(id); + // 校验是否已经为当前状态 + if (job.getStatus().equals(status)) { + throw exception(JOB_CHANGE_STATUS_EQUALS); + } + // 更新 Job 状态 + JobDO updateObj = JobDO.builder().id(id).status(status).build(); + jobMapper.updateById(updateObj); + + // 更新状态 Job 到 Quartz 中 + if (JobStatusEnum.NORMAL.getStatus().equals(status)) { // 开启 + schedulerManager.resumeJob(job.getHandlerName()); + } else { // 暂停 + schedulerManager.pauseJob(job.getHandlerName()); + } + } + + @Override + public void triggerJob(Long id) throws SchedulerException { + // 校验存在 + JobDO job = validateJobExists(id); + + // 触发 Quartz 中的 Job + schedulerManager.triggerJob(job.getId(), job.getHandlerName(), job.getHandlerParam()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteJob(Long id) throws SchedulerException { + // 校验存在 + JobDO job = validateJobExists(id); + // 更新 + jobMapper.deleteById(id); + + // 删除 Job 到 Quartz 中 + schedulerManager.deleteJob(job.getHandlerName()); + } + + private JobDO validateJobExists(Long id) { + JobDO job = jobMapper.selectById(id); + if (job == null) { + throw exception(JOB_NOT_EXISTS); + } + return job; + } + + private void validateCronExpression(String cronExpression) { + if (!CronUtils.isValid(cronExpression)) { + throw exception(JOB_CRON_EXPRESSION_VALID); + } + } + + @Override + public JobDO getJob(Long id) { + return jobMapper.selectById(id); + } + + @Override + public PageResult getJobPage(JobPageReqVO pageReqVO) { + return jobMapper.selectPage(pageReqVO); + } + + private static void fillJobMonitorTimeoutEmpty(JobDO job) { + if (job.getMonitorTimeout() == null) { + job.setMonitorTimeout(0); + } + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java new file mode 100644 index 0000000..fd4e841 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.infra.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; + +/** + * API 访问日志 Service 接口 + * + * @author 芋道源码 + */ +public interface ApiAccessLogService { + + /** + * 创建 API 访问日志 + * + * @param createReqDTO API 访问日志 + */ + void createApiAccessLog(ApiAccessLogCreateReqDTO createReqDTO); + + /** + * 获得 API 访问日志分页 + * + * @param pageReqVO 分页查询 + * @return API 访问日志分页 + */ + PageResult getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO); + + /** + * 清理 exceedDay 天前的访问日志 + * + * @param exceedDay 超过多少天就进行清理 + * @param deleteLimit 清理的间隔条数 + */ + Integer cleanAccessLog(Integer exceedDay, Integer deleteLimit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java new file mode 100644 index 0000000..2d9c05c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.infra.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; +import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; + +/** + * API 访问日志 Service 实现类 + * + * @author 芋道源码 + */ +@Slf4j +@Service +@Validated +public class ApiAccessLogServiceImpl implements ApiAccessLogService { + + @Resource + private ApiAccessLogMapper apiAccessLogMapper; + + @Override + public void createApiAccessLog(ApiAccessLogCreateReqDTO createDTO) { + ApiAccessLogDO apiAccessLog = BeanUtils.toBean(createDTO, ApiAccessLogDO.class); + apiAccessLogMapper.insert(apiAccessLog); + } + + @Override + public PageResult getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO) { + return apiAccessLogMapper.selectPage(pageReqVO); + } + + @Override + @SuppressWarnings("DuplicatedCode") + public Integer cleanAccessLog(Integer exceedDay, Integer deleteLimit) { + int count = 0; + LocalDateTime expireDate = LocalDateTime.now().minusDays(exceedDay); + // 循环删除,直到没有满足条件的数据 + for (int i = 0; i < Short.MAX_VALUE; i++) { + int deleteCount = apiAccessLogMapper.deleteByCreateTimeLt(expireDate, deleteLimit); + count += deleteCount; + // 达到删除预期条数,说明到底了 + if (deleteCount < deleteLimit) { + break; + } + } + return count; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java new file mode 100644 index 0000000..82eb3c4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.infra.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; + +/** + * API 错误日志 Service 接口 + * + * @author 芋道源码 + */ +public interface ApiErrorLogService { + + /** + * 创建 API 错误日志 + * + * @param createReqDTO API 错误日志 + */ + void createApiErrorLog(ApiErrorLogCreateReqDTO createReqDTO); + + /** + * 获得 API 错误日志分页 + * + * @param pageReqVO 分页查询 + * @return API 错误日志分页 + */ + PageResult getApiErrorLogPage(ApiErrorLogPageReqVO pageReqVO); + + /** + * 更新 API 错误日志已处理 + * + * @param id API 日志编号 + * @param processStatus 处理结果 + * @param processUserId 处理人 + */ + void updateApiErrorLogProcess(Long id, Integer processStatus, Long processUserId); + + /** + * 清理 exceedDay 天前的错误日志 + * + * @param exceedDay 超过多少天就进行清理 + * @param deleteLimit 清理的间隔条数 + */ + Integer cleanErrorLog(Integer exceedDay, Integer deleteLimit); + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java new file mode 100644 index 0000000..29d742d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.infra.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; +import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; +import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper; +import cn.iocoder.yudao.module.infra.enums.logger.ApiErrorLogProcessStatusEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; + +/** + * API 错误日志 Service 实现类 + * + * @author 芋道源码 + */ +@Slf4j +@Service +@Validated +public class ApiErrorLogServiceImpl implements ApiErrorLogService { + + @Resource + private ApiErrorLogMapper apiErrorLogMapper; + + @Override + public void createApiErrorLog(ApiErrorLogCreateReqDTO createDTO) { + ApiErrorLogDO apiErrorLog = BeanUtils.toBean(createDTO, ApiErrorLogDO.class) + .setProcessStatus(ApiErrorLogProcessStatusEnum.INIT.getStatus()); + apiErrorLogMapper.insert(apiErrorLog); + } + + @Override + public PageResult getApiErrorLogPage(ApiErrorLogPageReqVO pageReqVO) { + return apiErrorLogMapper.selectPage(pageReqVO); + } + + @Override + public void updateApiErrorLogProcess(Long id, Integer processStatus, Long processUserId) { + ApiErrorLogDO errorLog = apiErrorLogMapper.selectById(id); + if (errorLog == null) { + throw exception(API_ERROR_LOG_NOT_FOUND); + } + if (!ApiErrorLogProcessStatusEnum.INIT.getStatus().equals(errorLog.getProcessStatus())) { + throw exception(API_ERROR_LOG_PROCESSED); + } + // 标记处理 + apiErrorLogMapper.updateById(ApiErrorLogDO.builder().id(id).processStatus(processStatus) + .processUserId(processUserId).processTime(LocalDateTime.now()).build()); + } + + @Override + @SuppressWarnings("DuplicatedCode") + public Integer cleanErrorLog(Integer exceedDay, Integer deleteLimit) { + int count = 0; + LocalDateTime expireDate = LocalDateTime.now().minusDays(exceedDay); + // 循环删除,直到没有满足条件的数据 + for (int i = 0; i < Short.MAX_VALUE; i++) { + int deleteCount = apiErrorLogMapper.deleteByCreateTimeLt(expireDate, deleteLimit); + count += deleteCount; + // 达到删除预期条数,说明到底了 + if (deleteCount < deleteLimit) { + break; + } + } + return count; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/DemoWebSocketMessageListener.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/DemoWebSocketMessageListener.java new file mode 100644 index 0000000..9ccf607 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/DemoWebSocketMessageListener.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.infra.websocket; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener; +import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; +import cn.iocoder.yudao.framework.websocket.core.util.WebSocketFrameworkUtils; +import cn.iocoder.yudao.module.infra.websocket.message.DemoReceiveMessage; +import cn.iocoder.yudao.module.infra.websocket.message.DemoSendMessage; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.WebSocketSession; + +import javax.annotation.Resource; + +/** + * WebSocket 示例:单发消息 + * + * @author 芋道源码 + */ +@Component +public class DemoWebSocketMessageListener implements WebSocketMessageListener { + + @Resource + private WebSocketMessageSender webSocketMessageSender; + + @Override + public void onMessage(WebSocketSession session, DemoSendMessage message) { + Long fromUserId = WebSocketFrameworkUtils.getLoginUserId(session); + // 情况一:单发 + if (message.getToUserId() != null) { + DemoReceiveMessage toMessage = new DemoReceiveMessage().setFromUserId(fromUserId) + .setText(message.getText()).setSingle(true); + webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), message.getToUserId(), // 给指定用户 + "demo-message-receive", toMessage); + return; + } + // 情况二:群发 + DemoReceiveMessage toMessage = new DemoReceiveMessage().setFromUserId(fromUserId) + .setText(message.getText()).setSingle(false); + webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), // 给所有用户 + "demo-message-receive", toMessage); + } + + @Override + public String getType() { + return "demo-message-send"; + } + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoReceiveMessage.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoReceiveMessage.java new file mode 100644 index 0000000..03a246c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoReceiveMessage.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.infra.websocket.message; + +import lombok.Data; + +/** + * 示例:server -> client 同步消息 + * + * @author 芋道源码 + */ +@Data +public class DemoReceiveMessage { + + /** + * 接收人的编号 + */ + private Long fromUserId; + /** + * 内容 + */ + private String text; + + /** + * 是否单聊 + */ + private Boolean single; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoSendMessage.java b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoSendMessage.java new file mode 100644 index 0000000..f0c14f5 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/message/DemoSendMessage.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.infra.websocket.message; + +import lombok.Data; + +/** + * 示例:client -> server 发送消息 + * + * @author 芋道源码 + */ +@Data +public class DemoSendMessage { + + /** + * 发送给谁 + * + * 如果为空,说明发送给所有人 + */ + private Long toUserId; + /** + * 内容 + */ + private String text; + +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm new file mode 100644 index 0000000..32d00c7 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm @@ -0,0 +1,233 @@ +package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}; + +import org.springframework.web.bind.annotation.*; +import ${jakartaPackage}.annotation.Resource; +import org.springframework.validation.annotation.Validated; +#if ($sceneEnum.scene == 1)import org.springframework.security.access.prepost.PreAuthorize;#end + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import ${jakartaPackage}.validation.constraints.*; +import ${jakartaPackage}.validation.*; +import ${jakartaPackage}.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import ${PageParamClassName}; +import ${PageResultClassName}; +import ${CommonResultClassName}; +import ${BeanUtils}; +import static ${CommonResultClassName}.success; + +import ${ExcelUtilsClassName}; + +import ${OperateLogClassName}; +import static ${OperateTypeEnumClassName}.*; + +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; +#end +import ${basePackage}.module.${table.moduleName}.service.${table.businessName}.${table.className}Service; + +@Tag(name = "${sceneEnum.name} - ${table.classComment}") +@RestController +##二级的 businessName 暂时不算在 HTTP 路径上,可以根据需要写 +@RequestMapping("/${table.moduleName}/${simpleClassName_strikeCase}") +@Validated +public class ${sceneEnum.prefixClass}${table.className}Controller { + + @Resource + private ${table.className}Service ${classNameVar}Service; + + @PostMapping("/create") + @Operation(summary = "创建${table.classComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:create')") +#end + public CommonResult<${primaryColumn.javaType}> create${simpleClassName}(@Valid @RequestBody ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO) { + return success(${classNameVar}Service.create${simpleClassName}(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新${table.classComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:update')") +#end + public CommonResult update${simpleClassName}(@Valid @RequestBody ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO) { + ${classNameVar}Service.update${simpleClassName}(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除${table.classComment}") + @Parameter(name = "id", description = "编号", required = true) +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:delete')") +#end + public CommonResult delete${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) { + ${classNameVar}Service.delete${simpleClassName}(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得${table.classComment}") + @Parameter(name = "id", description = "编号", required = true, example = "1024") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult<${sceneEnum.prefixClass}${table.className}RespVO> get${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) { + ${table.className}DO ${classNameVar} = ${classNameVar}Service.get${simpleClassName}(id); + return success(BeanUtils.toBean(${classNameVar}, ${sceneEnum.prefixClass}${table.className}RespVO.class)); + } + +#if ( $table.templateType != 2 ) + @GetMapping("/page") + @Operation(summary = "获得${table.classComment}分页") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult> get${simpleClassName}Page(@Valid ${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) { + PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Page(pageReqVO); + return success(BeanUtils.toBean(pageResult, ${sceneEnum.prefixClass}${table.className}RespVO.class)); + } + +## 特殊:树表专属逻辑(树不需要分页接口) +#else + @GetMapping("/list") + @Operation(summary = "获得${table.classComment}列表") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult> get${simpleClassName}List(@Valid ${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO) { + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(listReqVO); + return success(BeanUtils.toBean(list, ${sceneEnum.prefixClass}${table.className}RespVO.class)); + } + +#end + @GetMapping("/export-excel") + @Operation(summary = "导出${table.classComment} Excel") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:export')") +#end + @OperateLog(type = EXPORT) +#if ( $table.templateType != 2 ) + public void export${simpleClassName}Excel(@Valid ${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}Page(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "${table.classComment}.xls", "数据", ${table.className}RespVO.class, + BeanUtils.toBean(list, ${table.className}RespVO.class)); + } +## 特殊:树表专属逻辑(树不需要分页接口) +#else + public void export${simpleClassName}Excel(@Valid ${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO, + HttpServletResponse response) throws IOException { + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(listReqVO); + // 导出 Excel + ExcelUtils.write(response, "${table.classComment}.xls", "数据", ${table.className}RespVO.class, + BeanUtils.toBean(list, ${table.className}RespVO.class)); + } +#end + +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段 +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 +#set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index)) +#set ($subJoinColumn_strikeCase = $subJoinColumn_strikeCases.get($index)) +#set ($subClassNameVar = $subClassNameVars.get($index)) + // ==================== 子表($subTable.classComment) ==================== + +## 情况一:MASTER_ERP 时,需要分查询页子表 +#if ( $table.templateType == 11 ) + @GetMapping("/${subSimpleClassName_strikeCase}/page") + @Operation(summary = "获得${subTable.classComment}分页") + @Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult> get${subSimpleClassName}Page(PageParam pageReqVO, + @RequestParam("${subJoinColumn.javaField}") ${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return success(${classNameVar}Service.get${subSimpleClassName}Page(pageReqVO, ${subJoinColumn.javaField})); + } + +## 情况二:非 MASTER_ERP 时,需要列表查询子表 +#else + #if ( $subTable.subJoinMany ) + @GetMapping("/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}") + @Operation(summary = "获得${subTable.classComment}列表") + @Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult> get${subSimpleClassName}ListBy${SubJoinColumnName}(@RequestParam("${subJoinColumn.javaField}") ${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return success(${classNameVar}Service.get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaField})); + } + + #else + @GetMapping("/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}") + @Operation(summary = "获得${subTable.classComment}") + @Parameter(name = "${subJoinColumn.javaField}", description = "${subJoinColumn.columnComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult<${subTable.className}DO> get${subSimpleClassName}By${SubJoinColumnName}(@RequestParam("${subJoinColumn.javaField}") ${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return success(${classNameVar}Service.get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaField})); + } + + #end +#end +## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 +#if ( $table.templateType == 11 ) + @PostMapping("/${subSimpleClassName_strikeCase}/create") + @Operation(summary = "创建${subTable.classComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:create')") +#end + public CommonResult<${subPrimaryColumn.javaType}> create${subSimpleClassName}(@Valid @RequestBody ${subTable.className}DO ${subClassNameVar}) { + return success(${classNameVar}Service.create${subSimpleClassName}(${subClassNameVar})); + } + + @PutMapping("/${subSimpleClassName_strikeCase}/update") + @Operation(summary = "更新${subTable.classComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:update')") +#end + public CommonResult update${subSimpleClassName}(@Valid @RequestBody ${subTable.className}DO ${subClassNameVar}) { + ${classNameVar}Service.update${subSimpleClassName}(${subClassNameVar}); + return success(true); + } + + @DeleteMapping("/${subSimpleClassName_strikeCase}/delete") + @Parameter(name = "id", description = "编号", required = true) + @Operation(summary = "删除${subTable.classComment}") +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:delete')") +#end + public CommonResult delete${subSimpleClassName}(@RequestParam("id") ${subPrimaryColumn.javaType} id) { + ${classNameVar}Service.delete${subSimpleClassName}(id); + return success(true); + } + + @GetMapping("/${subSimpleClassName_strikeCase}/get") + @Operation(summary = "获得${subTable.classComment}") + @Parameter(name = "id", description = "编号", required = true) +#if ($sceneEnum.scene == 1) + @PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')") +#end + public CommonResult<${subTable.className}DO> get${subSimpleClassName}(@RequestParam("id") ${subPrimaryColumn.javaType} id) { + return success(${classNameVar}Service.get${subSimpleClassName}(id)); + } + +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/listReqVO.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/listReqVO.vm new file mode 100644 index 0000000..46b6a25 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/listReqVO.vm @@ -0,0 +1,45 @@ +package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import ${PageParamClassName}; +#foreach ($column in $columns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#break +#end +#end +## 处理 LocalDateTime 字段的引入 +#foreach ($column in $columns) +#if (${column.listOperation} && ${column.javaType} == "LocalDateTime") +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +#break +#end +#end +## 字段模板 +#macro(columnTpl $prefix $prefixStr) + @Schema(description = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) + private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end; +#end + +@Schema(description = "${sceneEnum.name} - ${table.classComment}列表 Request VO") +@Data +public class ${sceneEnum.prefixClass}${table.className}ListReqVO { + +#foreach ($column in $columns) +#if (${column.listOperation})##查询操作 +#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 + @Schema(description = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private ${column.javaType}[] ${column.javaField}; +#else##情况二,非 Between 的时间 + #columnTpl('', '') +#end + +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm new file mode 100644 index 0000000..003bac9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm @@ -0,0 +1,47 @@ +package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import ${PageParamClassName}; +#foreach ($column in $columns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#break +#end +#end +## 处理 LocalDateTime 字段的引入 +#foreach ($column in $columns) +#if (${column.listOperationCondition} && ${column.javaType} == "LocalDateTime") +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +#break +#end +#end +## 字段模板 +#macro(columnTpl $prefix $prefixStr) + @Schema(description = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) + private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end; +#end + +@Schema(description = "${sceneEnum.name} - ${table.classComment}分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ${sceneEnum.prefixClass}${table.className}PageReqVO extends PageParam { + +#foreach ($column in $columns) +#if (${column.listOperation})##查询操作 +#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 + @Schema(description = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private ${column.javaType}[] ${column.javaField}; +#else##情况二,非 Between 的时间 + #columnTpl('', '') +#end + +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm new file mode 100644 index 0000000..54c1667 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm @@ -0,0 +1,54 @@ +package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +## 处理 BigDecimal 字段的引入 +import java.util.*; +#foreach ($column in $columns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#break +#end +#end +## 处理 LocalDateTime 字段的引入 +#foreach ($column in $columns) +#if (${column.listOperationResult} && ${column.javaType} == "LocalDateTime") +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +#break +#end +#end +## 处理 Excel 导出 +import com.alibaba.excel.annotation.*; +#foreach ($column in $columns) +#if ("$!column.dictType" != "")## 有设置数据字典 +import ${DictFormatClassName}; +import ${DictConvertClassName}; +#break +#end +#end + +@Schema(description = "${sceneEnum.name} - ${table.classComment} Response VO") +@Data +@ExcelIgnoreUnannotated +public class ${sceneEnum.prefixClass}${table.className}RespVO { + +## 逐个处理字段 +#foreach ($column in $columns) +#if (${column.listOperationResult}) +## 1. 处理 Swagger 注解 + @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end) +## 2. 处理 Excel 导出 +#if ("$!column.dictType" != "")##处理枚举值 + @ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class) + @DictFormat("${column.dictType}") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 +#else + @ExcelProperty("${column.columnComment}") +#end +## 3. 处理字段定义 + private ${column.javaType} ${column.javaField}; + +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/saveReqVO.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/saveReqVO.vm new file mode 100644 index 0000000..b432c75 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/controller/vo/saveReqVO.vm @@ -0,0 +1,64 @@ +package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import ${jakartaPackage}.validation.constraints.*; +## 处理 BigDecimal 字段的引入 +#foreach ($column in $columns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#break +#end +#end +## 处理 LocalDateTime 字段的引入 +#foreach ($column in $columns) +#if ((${column.createOperation} || ${column.updateOperation}) && ${column.javaType} == "LocalDateTime") +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +#break +#end +#end +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; +#end + +@Schema(description = "${sceneEnum.name} - ${table.classComment}新增/修改 Request VO") +@Data +public class ${sceneEnum.prefixClass}${table.className}SaveReqVO { + +## 逐个处理字段 +#foreach ($column in $columns) +#if (${column.createOperation} || ${column.updateOperation}) +## 1. 处理 Swagger 注解 + @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end) +## 2. 处理 Validator 参数校验 +#if (!${column.nullable} && !${column.primaryKey}) +#if (${column.javaType} == 'String') + @NotEmpty(message = "${column.columnComment}不能为空") +#else + @NotNull(message = "${column.columnComment}不能为空") +#end +#end +## 3. 处理字段定义 + private ${column.javaType} ${column.javaField}; + +#end +#end +## 特殊:主子表专属逻辑(非 ERP 模式) +#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) + #if ( $subTable.subJoinMany) + @Schema(description = "${subTable.classComment}列表") + private List<${subTable.className}DO> ${subClassNameVars.get($index)}s; + + #else + @Schema(description = "${subTable.classComment}") + private ${subTable.className}DO ${subClassNameVars.get($index)}; + + #end +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do.vm new file mode 100644 index 0000000..b019d6e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do.vm @@ -0,0 +1,52 @@ +package ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}; + +import lombok.*; +import java.util.*; +#foreach ($column in $columns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#end +#if (${column.javaType} == "LocalDateTime") +import java.time.LocalDateTime; +#end +#end +import com.baomidou.mybatisplus.annotation.*; +import ${BaseDOClassName}; + +/** + * ${table.classComment} DO + * + * @author ${table.author} + */ +@TableName("${table.tableName.toLowerCase()}") +@KeySequence("${table.tableName.toLowerCase()}_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ${table.className}DO extends BaseDO { + +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) + public static final Long ${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT = 0L; + +#end +#foreach ($column in $columns) +#if (!${baseDOFields.contains(${column.javaField})})##排除 BaseDO 的字段 + /** + * ${column.columnComment} + #if ("$!column.dictType" != "")##处理枚举值 + * + * 枚举 {@link TODO ${column.dictType} 对应的类} + #end + */ + #if (${column.primaryKey})##处理主键 + @TableId#if (${column.javaType} == 'String')(type = IdType.INPUT)#end + #end + private ${column.javaType} ${column.javaField}; +#end +#end + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do_sub.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do_sub.vm new file mode 100644 index 0000000..16be55e --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/do_sub.vm @@ -0,0 +1,49 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +package ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}; + +import lombok.*; +import java.util.*; +#foreach ($column in $subColumns) +#if (${column.javaType} == "BigDecimal") +import java.math.BigDecimal; +#end +#if (${column.javaType} == "LocalDateTime") +import java.time.LocalDateTime; +#end +#end +import com.baomidou.mybatisplus.annotation.*; +import ${BaseDOClassName}; + +/** + * ${subTable.classComment} DO + * + * @author ${subTable.author} + */ +@TableName("${subTable.tableName.toLowerCase()}") +@KeySequence("${subTable.tableName.toLowerCase()}_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ${subTable.className}DO extends BaseDO { + +#foreach ($column in $subColumns) +#if (!${baseDOFields.contains(${column.javaField})})##排除 BaseDO 的字段 + /** + * ${column.columnComment} + #if ("$!column.dictType" != "")##处理枚举值 + * + * 枚举 {@link TODO ${column.dictType} 对应的类} + #end + */ + #if (${column.primaryKey})##处理主键 + @TableId#if (${column.javaType} == 'String')(type = IdType.INPUT)#end + #end + private ${column.javaType} ${column.javaField}; +#end +#end + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm new file mode 100644 index 0000000..b98b471 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm @@ -0,0 +1,82 @@ +package ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}; + +import java.util.*; + +import ${PageResultClassName}; +import ${QueryWrapperClassName}; +import ${BaseMapperClassName}; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +import org.apache.ibatis.annotations.Mapper; +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; + +## 字段模板 +#macro(listCondition) +#foreach ($column in $columns) +#if (${column.listOperation}) +#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 +#if (${column.listOperationCondition} == "=")##情况一,= 的时候 + .eqIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == "!=")##情况二,!= 的时候 + .neIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == ">")##情况三,> 的时候 + .gtIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == ">=")##情况四,>= 的时候 + .geIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == "<")##情况五,< 的时候 + .ltIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == "<=")##情况五,<= 的时候 + .leIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == "LIKE")##情况七,Like 的时候 + .likeIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候 + .betweenIfPresent(${table.className}DO::get${JavaField}, reqVO.get${JavaField}()) +#end +#end +#end +#end +/** + * ${table.classComment} Mapper + * + * @author ${table.author} + */ +@Mapper +public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { + +## 特殊:树表专属逻辑(树不需要分页接口) +#if ( $table.templateType != 2 ) + default PageResult<${table.className}DO> selectPage(${sceneEnum.prefixClass}${table.className}PageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<${table.className}DO>() + #listCondition() + .orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序 + + } +#else + default List<${table.className}DO> selectList(${sceneEnum.prefixClass}${table.className}ListReqVO reqVO) { + return selectList(new LambdaQueryWrapperX<${table.className}DO>() + #listCondition() + .orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序 + + } +#end + +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写 +#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写 + default ${table.className}DO selectBy${TreeParentJavaField}And${TreeNameJavaField}(Long ${treeParentColumn.javaField}, String ${treeNameColumn.javaField}) { + return selectOne(${table.className}DO::get${TreeParentJavaField}, ${treeParentColumn.javaField}, ${table.className}DO::get${TreeNameJavaField}, ${treeNameColumn.javaField}); + } + + default Long selectCountBy${TreeParentJavaField}(${treeParentColumn.javaType} ${treeParentColumn.javaField}) { + return selectCount(${table.className}DO::get${TreeParentJavaField}, ${treeParentColumn.javaField}); + } + +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm new file mode 100644 index 0000000..290378d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper_sub.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper_sub.vm new file mode 100644 index 0000000..e5589e9 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/dal/mapper_sub.vm @@ -0,0 +1,51 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subJoinColumnsList.get($subIndex))##当前字段数组 +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 +package ${basePackage}.module.${subTable.moduleName}.dal.mysql.${subTable.businessName}; + +import java.util.*; + +import ${PageResultClassName}; +import ${PageParamClassName}; +import ${QueryWrapperClassName}; +import ${BaseMapperClassName}; +import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; +import org.apache.ibatis.annotations.Mapper; + +/** + * ${subTable.classComment} Mapper + * + * @author ${subTable.author} + */ +@Mapper +public interface ${subTable.className}Mapper extends BaseMapperX<${subTable.className}DO> { + +## 情况一:MASTER_ERP 时,需要分查询页子表 +#if ( $table.templateType == 11 ) + default PageResult<${subTable.className}DO> selectPage(PageParam reqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return selectPage(reqVO, new LambdaQueryWrapperX<${subTable.className}DO>() + .eq(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}) + .orderByDesc(${subTable.className}DO::getId));## 大多数情况下,id 倒序 + + } + +## 情况二:非 MASTER_ERP 时,需要列表查询子表 +#else + #if ( $subTable.subJoinMany) + default List<${subTable.className}DO> selectListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return selectList(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}); + } + + #else + default ${subTable.className}DO selectBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return selectOne(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}); + } + + #end + #end + default int deleteBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return delete(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm new file mode 100644 index 0000000..b7e21e6 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm @@ -0,0 +1,22 @@ +// TODO 待办:请将下面的错误码复制到 yudao-module-${table.moduleName}-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!! +// ========== ${table.classComment} TODO 补充编号 ========== +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${table.classComment}不存在"); +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_EXITS_CHILDREN = new ErrorCode(TODO 补充编号, "存在存在子${table.classComment},无法删除"); +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_NOT_EXITS = new ErrorCode(TODO 补充编号,"父级${table.classComment}不存在"); +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_ERROR = new ErrorCode(TODO 补充编号, "不能设置自己为父${table.classComment}"); +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE = new ErrorCode(TODO 补充编号, "已经存在该${treeNameColumn.columnComment}的${table.classComment}"); +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_PARENT_IS_CHILD = new ErrorCode(TODO 补充编号, "不能设置自己的子${table.className}为父${table.className}"); +#end +## 特殊:主子表专属逻辑 +#if ( $table.templateType == 11 )## 特殊:ERP 情况 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($simpleClassNameUnderlineCase = $simpleClassNameUnderlineCases.get($index)) +ErrorCode ${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${subTable.classComment}不存在"); +#if ( !$subTable.subJoinMany ) +ErrorCode ${simpleClassNameUnderlineCase.toUpperCase()}_EXISTS = new ErrorCode(TODO 补充编号, "${subTable.classComment}已存在"); +#end +#end +#end \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/service.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/service.vm new file mode 100644 index 0000000..c4ee4f0 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/service.vm @@ -0,0 +1,147 @@ +package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; + +import java.util.*; +import ${jakartaPackage}.validation.*; +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; +#end +import ${PageResultClassName}; +import ${PageParamClassName}; + +/** + * ${table.classComment} Service 接口 + * + * @author ${table.author} + */ +public interface ${table.className}Service { + + /** + * 创建${table.classComment} + * + * @param createReqVO 创建信息 + * @return 编号 + */ + ${primaryColumn.javaType} create${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO); + + /** + * 更新${table.classComment} + * + * @param updateReqVO 更新信息 + */ + void update${simpleClassName}(@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO); + + /** + * 删除${table.classComment} + * + * @param id 编号 + */ + void delete${simpleClassName}(${primaryColumn.javaType} id); + + /** + * 获得${table.classComment} + * + * @param id 编号 + * @return ${table.classComment} + */ + ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id); + +## 特殊:树表专属逻辑(树不需要分页接口) +#if ( $table.templateType != 2 ) + /** + * 获得${table.classComment}分页 + * + * @param pageReqVO 分页查询 + * @return ${table.classComment}分页 + */ + PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO); +#else + /** + * 获得${table.classComment}列表 + * + * @param listReqVO 查询条件 + * @return ${table.classComment}列表 + */ + List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO); +#end + +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段 +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 +#set ($subClassNameVar = $subClassNameVars.get($index)) + // ==================== 子表($subTable.classComment) ==================== + +## 情况一:MASTER_ERP 时,需要分查询页子表 +#if ( $table.templateType == 11 ) + /** + * 获得${subTable.classComment}分页 + * + * @param pageReqVO 分页查询 + * @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment} + * @return ${subTable.classComment}分页 + */ + PageResult<${subTable.className}DO> get${subSimpleClassName}Page(PageParam pageReqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField}); + +## 情况二:非 MASTER_ERP 时,需要列表查询子表 +#else + #if ( $subTable.subJoinMany ) + /** + * 获得${subTable.classComment}列表 + * + * @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment} + * @return ${subTable.classComment}列表 + */ + List<${subTable.className}DO> get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}); + + #else + /** + * 获得${subTable.classComment} + * + * @param ${subJoinColumn.javaField} ${subJoinColumn.columnComment} + * @return ${subTable.classComment} + */ + ${subTable.className}DO get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}); + + #end +#end +## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 +#if ( $table.templateType == 11 ) + /** + * 创建${subTable.classComment} + * + * @param ${subClassNameVar} 创建信息 + * @return 编号 + */ + ${subPrimaryColumn.javaType} create${subSimpleClassName}(@Valid ${subTable.className}DO ${subClassNameVar}); + + /** + * 更新${subTable.classComment} + * + * @param ${subClassNameVar} 更新信息 + */ + void update${subSimpleClassName}(@Valid ${subTable.className}DO ${subClassNameVar}); + + /** + * 删除${subTable.classComment} + * + * @param id 编号 + */ + void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id); + + /** + * 获得${subTable.classComment} + * + * @param id 编号 + * @return ${subTable.classComment} + */ + ${subTable.className}DO get${subSimpleClassName}(${subPrimaryColumn.javaType} id); + +#end +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm new file mode 100644 index 0000000..a8184e4 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm @@ -0,0 +1,350 @@ +package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; + +import org.springframework.stereotype.Service; +import ${jakartaPackage}.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; +#end +import ${PageResultClassName}; +import ${PageParamClassName}; +import ${BeanUtils}; + +import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +import ${basePackage}.module.${subTable.moduleName}.dal.mysql.${subTable.businessName}.${subTable.className}Mapper; +#end + +import static ${ServiceExceptionUtilClassName}.exception; +import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; + +/** + * ${table.classComment} Service 实现类 + * + * @author ${table.author} + */ +@Service +@Validated +public class ${table.className}ServiceImpl implements ${table.className}Service { + + @Resource + private ${table.className}Mapper ${classNameVar}Mapper; +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) + @Resource + private ${subTable.className}Mapper ${subClassNameVars.get($index)}Mapper; +#end + + @Override +## 特殊:主子表专属逻辑(非 ERP 模式) +#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) + @Transactional(rollbackFor = Exception.class) +#end + public ${primaryColumn.javaType} create${simpleClassName}(${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO) { +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写 +#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写 + // 校验${treeParentColumn.columnComment}的有效性 + validateParent${simpleClassName}(null, createReqVO.get${TreeParentJavaField}()); + // 校验${treeNameColumn.columnComment}的唯一性 + validate${simpleClassName}${TreeNameJavaField}Unique(null, createReqVO.get${TreeParentJavaField}(), createReqVO.get${TreeNameJavaField}()); + +#end + // 插入 + ${table.className}DO ${classNameVar} = BeanUtils.toBean(createReqVO, ${table.className}DO.class); + ${classNameVar}Mapper.insert(${classNameVar}); +## 特殊:主子表专属逻辑(非 ERP 模式) +#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) + + // 插入子表 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + #if ( $subTable.subJoinMany) + create${subSimpleClassName}List(${classNameVar}.getId(), createReqVO.get${subSimpleClassNames.get($index)}s()); + #else + create${subSimpleClassName}(${classNameVar}.getId(), createReqVO.get${subSimpleClassNames.get($index)}()); + #end +#end +#end + // 返回 + return ${classNameVar}.getId(); + } + + @Override +## 特殊:主子表专属逻辑(非 ERP 模式) +#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) + @Transactional(rollbackFor = Exception.class) +#end + public void update${simpleClassName}(${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO) { + // 校验存在 + validate${simpleClassName}Exists(updateReqVO.getId()); +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写 +#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写 + // 校验${treeParentColumn.columnComment}的有效性 + validateParent${simpleClassName}(updateReqVO.getId(), updateReqVO.get${TreeParentJavaField}()); + // 校验${treeNameColumn.columnComment}的唯一性 + validate${simpleClassName}${TreeNameJavaField}Unique(updateReqVO.getId(), updateReqVO.get${TreeParentJavaField}(), updateReqVO.get${TreeNameJavaField}()); + +#end + // 更新 + ${table.className}DO updateObj = BeanUtils.toBean(updateReqVO, ${table.className}DO.class); + ${classNameVar}Mapper.updateById(updateObj); +## 特殊:主子表专属逻辑(非 ERP 模式) +#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11) + + // 更新子表 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + #if ( $subTable.subJoinMany) + update${subSimpleClassName}List(updateReqVO.getId(), updateReqVO.get${subSimpleClassNames.get($index)}s()); + #else + update${subSimpleClassName}(updateReqVO.getId(), updateReqVO.get${subSimpleClassNames.get($index)}()); + #end +#end +#end + } + + @Override +## 特殊:主子表专属逻辑 +#if ( $subTables && $subTables.size() > 0) + @Transactional(rollbackFor = Exception.class) +#end + public void delete${simpleClassName}(${primaryColumn.javaType} id) { + // 校验存在 + validate${simpleClassName}Exists(id); +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +#set ($ParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写 + // 校验是否有子${table.classComment} + if (${classNameVar}Mapper.selectCountBy${ParentJavaField}(id) > 0) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_EXITS_CHILDREN); + } +#end + // 删除 + ${classNameVar}Mapper.deleteById(id); +## 特殊:主子表专属逻辑 +#if ( $subTables && $subTables.size() > 0) + + // 删除子表 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + delete${subSimpleClassName}By${SubJoinColumnName}(id); +#end +#end + } + + private void validate${simpleClassName}Exists(${primaryColumn.javaType} id) { + if (${classNameVar}Mapper.selectById(id) == null) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + } + +## 特殊:树表专属逻辑 +#if ( $table.templateType == 2 ) +#set ($TreeParentJavaField = $treeParentColumn.javaField.substring(0,1).toUpperCase() + ${treeParentColumn.javaField.substring(1)})##首字母大写 +#set ($TreeNameJavaField = $treeNameColumn.javaField.substring(0,1).toUpperCase() + ${treeNameColumn.javaField.substring(1)})##首字母大写 + private void validateParent${simpleClassName}(Long id, Long ${treeParentColumn.javaField}) { + if (${treeParentColumn.javaField} == null || ${simpleClassName}DO.${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT.equals(${treeParentColumn.javaField})) { + return; + } + // 1. 不能设置自己为父${table.classComment} + if (Objects.equals(id, ${treeParentColumn.javaField})) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_ERROR); + } + // 2. 父${table.classComment}不存在 + ${simpleClassName}DO parent${simpleClassName} = ${classNameVar}Mapper.selectById(${treeParentColumn.javaField}); + if (parent${simpleClassName} == null) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_NOT_EXITS); + } + // 3. 递归校验父${table.classComment},如果父${table.classComment}是自己的子${table.classComment},则报错,避免形成环路 + if (id == null) { // id 为空,说明新增,不需要考虑环路 + return; + } + for (int i = 0; i < Short.MAX_VALUE; i++) { + // 3.1 校验环路 + ${treeParentColumn.javaField} = parent${simpleClassName}.get${TreeParentJavaField}(); + if (Objects.equals(id, ${treeParentColumn.javaField})) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_PARENT_IS_CHILD); + } + // 3.2 继续递归下一级父${table.classComment} + if (${treeParentColumn.javaField} == null || ${simpleClassName}DO.${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT.equals(${treeParentColumn.javaField})) { + break; + } + parent${simpleClassName} = ${classNameVar}Mapper.selectById(${treeParentColumn.javaField}); + if (parent${simpleClassName} == null) { + break; + } + } + } + + private void validate${simpleClassName}${TreeNameJavaField}Unique(Long id, Long ${treeParentColumn.javaField}, String ${treeNameColumn.javaField}) { + ${simpleClassName}DO ${classNameVar} = ${classNameVar}Mapper.selectBy${TreeParentJavaField}And${TreeNameJavaField}(${treeParentColumn.javaField}, ${treeNameColumn.javaField}); + if (${classNameVar} == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的${table.classComment} + if (id == null) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE); + } + if (!Objects.equals(${classNameVar}.getId(), id)) { + throw exception(${simpleClassName_underlineCase.toUpperCase()}_${treeNameColumn_javaField_underlineCase.toUpperCase()}_DUPLICATE); + } + } + +#end + @Override + public ${table.className}DO get${simpleClassName}(${primaryColumn.javaType} id) { + return ${classNameVar}Mapper.selectById(id); + } + +## 特殊:树表专属逻辑(树不需要分页接口) +#if ( $table.templateType != 2 ) + @Override + public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) { + return ${classNameVar}Mapper.selectPage(pageReqVO); + } +#else + @Override + public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO) { + return ${classNameVar}Mapper.selectList(listReqVO); + } +#end + +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($simpleClassNameUnderlineCase = $simpleClassNameUnderlineCases.get($index)) +#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段 +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 +#set ($subClassNameVar = $subClassNameVars.get($index)) + // ==================== 子表($subTable.classComment) ==================== + +## 情况一:MASTER_ERP 时,需要分查询页子表 +#if ( $table.templateType == 11 ) + @Override + public PageResult<${subTable.className}DO> get${subSimpleClassName}Page(PageParam pageReqVO, ${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return ${subClassNameVars.get($index)}Mapper.selectPage(pageReqVO, ${subJoinColumn.javaField}); + } + +## 情况二:非 MASTER_ERP 时,需要列表查询子表 +#else + #if ( $subTable.subJoinMany ) + @Override + public List<${subTable.className}DO> get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return ${subClassNameVars.get($index)}Mapper.selectListBy${SubJoinColumnName}(${subJoinColumn.javaField}); + } + + #else + @Override + public ${subTable.className}DO get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaType} ${subJoinColumn.javaField}) { + return ${subClassNameVars.get($index)}Mapper.selectBy${SubJoinColumnName}(${subJoinColumn.javaField}); + } + + #end +#end +## 情况一:MASTER_ERP 时,支持单个的新增、修改、删除操作 +#if ( $table.templateType == 11 ) + @Override + public ${subPrimaryColumn.javaType} create${subSimpleClassName}(${subTable.className}DO ${subClassNameVar}) { +## 特殊:一对一时,需要保证只有一条,不能重复插入 +#if ( !$subTable.subJoinMany) + // 校验是否已经存在 + if (${subClassNameVars.get($index)}Mapper.selectBy${SubJoinColumnName}(${subClassNameVar}.get${SubJoinColumnName}()) != null) { + throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_EXISTS); + } + // 插入 +#end + ${subClassNameVars.get($index)}Mapper.insert(${subClassNameVar}); + return ${subClassNameVar}.getId(); + } + + @Override + public void update${subSimpleClassName}(${subTable.className}DO ${subClassNameVar}) { + // 校验存在 + validate${subSimpleClassName}Exists(${subClassNameVar}.getId()); + // 更新 + ${subClassNameVars.get($index)}Mapper.updateById(${subClassNameVar}); + } + + @Override + public void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id) { + // 校验存在 + validate${subSimpleClassName}Exists(id); + // 删除 + ${subClassNameVars.get($index)}Mapper.deleteById(id); + } + + @Override + public ${subTable.className}DO get${subSimpleClassName}(${subPrimaryColumn.javaType} id) { + return ${subClassNameVars.get($index)}Mapper.selectById(id); + } + + private void validate${subSimpleClassName}Exists(${subPrimaryColumn.javaType} id) { + if (${subClassNameVar}Mapper.selectById(id) == null) { + throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS); + } + } + +## 情况二:非 MASTER_ERP 时,支持批量的新增、修改操作 +#else + #if ( $subTable.subJoinMany) + private void create${subSimpleClassName}List(${primaryColumn.javaType} ${subJoinColumn.javaField}, List<${subTable.className}DO> list) { + list.forEach(o -> o.set$SubJoinColumnName(${subJoinColumn.javaField})); + ${subClassNameVars.get($index)}Mapper.insertBatch(list); + } + + private void update${subSimpleClassName}List(${primaryColumn.javaType} ${subJoinColumn.javaField}, List<${subTable.className}DO> list) { + delete${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaField}); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + create${subSimpleClassName}List(${subJoinColumn.javaField}, list); + } + + #else + private void create${subSimpleClassName}(${primaryColumn.javaType} ${subJoinColumn.javaField}, ${subTable.className}DO ${subClassNameVar}) { + if (${subClassNameVar} == null) { + return; + } + ${subClassNameVar}.set$SubJoinColumnName(${subJoinColumn.javaField}); + ${subClassNameVars.get($index)}Mapper.insert(${subClassNameVar}); + } + + private void update${subSimpleClassName}(${primaryColumn.javaType} ${subJoinColumn.javaField}, ${subTable.className}DO ${subClassNameVar}) { + if (${subClassNameVar} == null) { + return; + } + ${subClassNameVar}.set$SubJoinColumnName(${subJoinColumn.javaField}); + ${subClassNameVar}.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 + ${subClassNameVars.get($index)}Mapper.insertOrUpdate(${subClassNameVar}); + } + + #end +#end + private void delete${subSimpleClassName}By${SubJoinColumnName}(${primaryColumn.javaType} ${subJoinColumn.javaField}) { + ${subClassNameVars.get($index)}Mapper.deleteBy${SubJoinColumnName}(${subJoinColumn.javaField}); + } + +#end +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm new file mode 100644 index 0000000..bfd4600 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm @@ -0,0 +1,168 @@ +package ${basePackage}.module.${table.moduleName}.service.${table.businessName}; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import ${jakartaPackage}.annotation.Resource; + +import ${baseFrameworkPackage}.test.core.ut.BaseDbUnitTest; + +import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; +import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; +import ${basePackage}.module.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; +import ${PageResultClassName}; + +import ${jakartaPackage}.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static ${basePackage}.module.${table.moduleName}.enums.ErrorCodeConstants.*; +import static ${baseFrameworkPackage}.test.core.util.AssertUtils.*; +import static ${baseFrameworkPackage}.test.core.util.RandomUtils.*; +import static ${LocalDateTimeUtilsClassName}.*; +import static ${ObjectUtilsClassName}.*; +import static ${DateUtilsClassName}.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +## 字段模板 +#macro(getPageCondition $VO) + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class, o -> { // 等会查询到 + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + o.set$JavaField(null); + #end + #end + }); + ${classNameVar}Mapper.insert(db${simpleClassName}); + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + // 测试 ${column.javaField} 不匹配 + ${classNameVar}Mapper.insert(cloneIgnoreId(db${simpleClassName}, o -> o.set$JavaField(null))); + #end + #end + // 准备参数 + ${sceneEnum.prefixClass}${table.className}${VO} reqVO = new ${sceneEnum.prefixClass}${table.className}${VO}(); + #foreach ($column in $columns) + #if (${column.listOperation}) + #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 + #if (${column.listOperationCondition} == "BETWEEN")## BETWEEN 的情况 + reqVO.set${JavaField}(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + #else + reqVO.set$JavaField(null); + #end + #end + #end +#end +/** + * {@link ${table.className}ServiceImpl} 的单元测试类 + * + * @author ${table.author} + */ +@Import(${table.className}ServiceImpl.class) +public class ${table.className}ServiceImplTest extends BaseDbUnitTest { + + @Resource + private ${table.className}ServiceImpl ${classNameVar}Service; + + @Resource + private ${table.className}Mapper ${classNameVar}Mapper; + + @Test + public void testCreate${simpleClassName}_success() { + // 准备参数 + ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class).setId(null); + + // 调用 + ${primaryColumn.javaType} ${classNameVar}Id = ${classNameVar}Service.create${simpleClassName}(createReqVO); + // 断言 + assertNotNull(${classNameVar}Id); + // 校验记录的属性是否正确 + ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(${classNameVar}Id); + assertPojoEquals(createReqVO, ${classNameVar}, "id"); + } + + @Test + public void testUpdate${simpleClassName}_success() { + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class); + ${classNameVar}Mapper.insert(db${simpleClassName});// @Sql: 先插入出一条存在的数据 + // 准备参数 + ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class, o -> { + o.setId(db${simpleClassName}.getId()); // 设置更新的 ID + }); + + // 调用 + ${classNameVar}Service.update${simpleClassName}(updateReqVO); + // 校验是否更新正确 + ${table.className}DO ${classNameVar} = ${classNameVar}Mapper.selectById(updateReqVO.getId()); // 获取最新的 + assertPojoEquals(updateReqVO, ${classNameVar}); + } + + @Test + public void testUpdate${simpleClassName}_notExists() { + // 准备参数 + ${sceneEnum.prefixClass}${table.className}SaveReqVO updateReqVO = randomPojo(${sceneEnum.prefixClass}${table.className}SaveReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> ${classNameVar}Service.update${simpleClassName}(updateReqVO), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + + @Test + public void testDelete${simpleClassName}_success() { + // mock 数据 + ${table.className}DO db${simpleClassName} = randomPojo(${table.className}DO.class); + ${classNameVar}Mapper.insert(db${simpleClassName});// @Sql: 先插入出一条存在的数据 + // 准备参数 + ${primaryColumn.javaType} id = db${simpleClassName}.getId(); + + // 调用 + ${classNameVar}Service.delete${simpleClassName}(id); + // 校验数据不存在了 + assertNull(${classNameVar}Mapper.selectById(id)); + } + + @Test + public void testDelete${simpleClassName}_notExists() { + // 准备参数 + ${primaryColumn.javaType} id = random${primaryColumn.javaType}Id(); + + // 调用, 并断言异常 + assertServiceException(() -> ${classNameVar}Service.delete${simpleClassName}(id), ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS); + } + +## 特殊:树表专属逻辑(树不需要分页接口) +#if ( $table.templateType != 2 ) + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGet${simpleClassName}Page() { + #getPageCondition("PageReqVO") + + // 调用 + PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Page(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(db${simpleClassName}, pageResult.getList().get(0)); + } +#else + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGet${simpleClassName}List() { + #getPageCondition("ListReqVO") + + // 调用 + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(db${simpleClassName}, list.get(0)); + } +#end + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/h2.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/h2.vm new file mode 100644 index 0000000..b22389b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/h2.vm @@ -0,0 +1,37 @@ +-- 将该建表 SQL 语句,添加到 yudao-module-${table.moduleName}-biz 模块的 test/resources/sql/create_tables.sql 文件里 +CREATE TABLE IF NOT EXISTS "${table.tableName.toLowerCase()}" ( +#foreach ($column in $columns) +#if (${column.javaType} == 'Long') + #set ($dataType='bigint') +#elseif (${column.javaType} == 'Integer') + #set ($dataType='int') +#elseif (${column.javaType} == 'Boolean') + #set ($dataType='bit') +#elseif (${column.javaType} == 'Date') + #set ($dataType='datetime') +#else + #set ($dataType='varchar') +#end + #if (${column.primaryKey})##处理主键 + "${column.javaField}"#if (${column.javaType} == 'String') ${dataType} NOT NULL#else ${dataType} NOT NULL GENERATED BY DEFAULT AS IDENTITY#end, + #else + #if (${column.columnName} == 'create_time') + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + #elseif (${column.columnName} == 'update_time') + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + #elseif (${column.columnName} == 'creator' || ${column.columnName} == 'updater') + "${column.columnName}" ${dataType} DEFAULT '', + #elseif (${column.columnName} == 'deleted') + "deleted" bit NOT NULL DEFAULT FALSE, + #elseif (${column.columnName} == 'tenantId') + "tenant_id" bigint NOT NULL DEFAULT 0, + #else + "${column.columnName.toLowerCase()}" ${dataType}#if (${column.nullable} == false) NOT NULL#end, + #end + #end +#end + PRIMARY KEY ("${primaryColumn.columnName.toLowerCase()}") +) COMMENT '${table.tableComment}'; + +-- 将该删表 SQL 语句,添加到 yudao-module-${table.moduleName}-biz 模块的 test/resources/sql/clean.sql 文件里 +DELETE FROM "${table.tableName}"; \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/sql.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/sql.vm new file mode 100644 index 0000000..41b107d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/sql/sql.vm @@ -0,0 +1,28 @@ +-- 菜单 SQL +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status, component_name +) +VALUES ( + '${table.classComment}管理', '', 2, 0, ${table.parentMenuId}, + '${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}' +); + +-- 按钮父菜单ID +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码 +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +#set ($functionNames = ['查询', '创建', '更新', '删除', '导出']) +#set ($functionOps = ['query', 'create', 'update', 'delete', 'export']) +#foreach ($functionName in $functionNames) +#set ($index = $foreach.count - 1) +INSERT INTO system_menu( + name, permission, type, sort, parent_id, + path, icon, component, status +) +VALUES ( + '${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, @parentId, + '', '', '', 0 +); +#end \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm new file mode 100644 index 0000000..835c019 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm @@ -0,0 +1,141 @@ +import request from '@/utils/request' +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") + +// 创建${table.classComment} +export function create${simpleClassName}(data) { + return request({ + url: '${baseURL}/create', + method: 'post', + data: data + }) +} + +// 更新${table.classComment} +export function update${simpleClassName}(data) { + return request({ + url: '${baseURL}/update', + method: 'put', + data: data + }) +} + +// 删除${table.classComment} +export function delete${simpleClassName}(id) { + return request({ + url: '${baseURL}/delete?id=' + id, + method: 'delete' + }) +} + +// 获得${table.classComment} +export function get${simpleClassName}(id) { + return request({ + url: '${baseURL}/get?id=' + id, + method: 'get' + }) +} + +#if ( $table.templateType != 2 ) +// 获得${table.classComment}分页 +export function get${simpleClassName}Page(params) { + return request({ + url: '${baseURL}/page', + method: 'get', + params + }) +} +#else +// 获得${table.classComment}列表 +export function get${simpleClassName}List(params) { + return request({ + url: '${baseURL}/list', + method: 'get', + params + }) +} +#end +// 导出${table.classComment} Excel +export function export${simpleClassName}Excel(params) { + return request({ + url: '${baseURL}/export-excel', + method: 'get', + params, + responseType: 'blob' + }) +} +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) + #set ($index = $foreach.count - 1) + #set ($subSimpleClassName = $subSimpleClassNames.get($index)) + #set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段 + #set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 + #set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index)) + #set ($subJoinColumn_strikeCase = $subJoinColumn_strikeCases.get($index)) + #set ($subClassNameVar = $subClassNameVars.get($index)) + +// ==================== 子表($subTable.classComment) ==================== + ## 情况一:MASTER_ERP 时,需要分查询页子表 + #if ($table.templateType == 11) + // 获得${subTable.classComment}分页 + export function get${subSimpleClassName}Page(params) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/page', + method: 'get', + params + }) + } + ## 情况二:非 MASTER_ERP 时,需要列表查询子表 + #else + #if ($subTable.subJoinMany) + // 获得${subTable.classComment}列表 + export function get${subSimpleClassName}ListBy${SubJoinColumnName}(${subJoinColumn.javaField}) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=' + ${subJoinColumn.javaField}, + method: 'get' + }) + } + #else + // 获得${subTable.classComment} + export function get${subSimpleClassName}By${SubJoinColumnName}(${subJoinColumn.javaField}) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=' + ${subJoinColumn.javaField}, + method: 'get' + }) + } + #end + #end + ## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 + #if ($table.templateType == 11) + // 新增${subTable.classComment} + export function create${subSimpleClassName}(data) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/create', + method: 'post', + data + }) + } + // 修改${subTable.classComment} + export function update${subSimpleClassName}(data) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/update', + method: 'post', + data + }) + } + // 删除${subTable.classComment} + export function delete${subSimpleClassName}(id) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/delete?id=' + id, + method: 'delete' + }) + } + // 获得${subTable.classComment} + export function get${subSimpleClassName}(id) { + return request({ + url: '${baseURL}/${subSimpleClassName_strikeCase}/get?id=' + id, + method: 'get' + }) + } + #end +#end \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm new file mode 100644 index 0000000..99aa91a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm @@ -0,0 +1,205 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_inner.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_inner.vue.vm new file mode 100644 index 0000000..ca266be --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_inner.vue.vm @@ -0,0 +1,2 @@ +## 主表的 normal 和 inner 使用相同的 form 表单 +#parse("codegen/vue/views/components/form_sub_normal.vue.vm") \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_normal.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_normal.vue.vm new file mode 100644 index 0000000..48a404a --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_normal.vue.vm @@ -0,0 +1,347 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_erp.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_erp.vue.vm new file mode 100644 index 0000000..589736b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_erp.vue.vm @@ -0,0 +1,165 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_inner.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_inner.vue.vm new file mode 100644 index 0000000..90b8e41 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_inner.vue.vm @@ -0,0 +1,4 @@ +## 子表的 erp 和 inner 使用相似的 list 列表,差异主要两点: +## 1)inner 使用 list 不分页,erp 使用 page 分页 +## 2)erp 支持单个子表的新增、修改、删除,inner 不支持 +#parse("codegen/vue/views/components/list_sub_erp.vue.vm") \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm new file mode 100644 index 0000000..634d05d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm @@ -0,0 +1,320 @@ + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm new file mode 100644 index 0000000..e2cf95b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm @@ -0,0 +1,340 @@ + + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm new file mode 100644 index 0000000..c3044fb --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm @@ -0,0 +1,115 @@ +import request from '@/config/axios' +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") + +// ${table.classComment} VO +export interface ${simpleClassName}VO { +#foreach ($column in $columns) +#if ($column.createOperation || $column.updateOperation) +#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") + ${column.javaField}: number // ${column.columnComment} +#elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime") + ${column.javaField}: Date // ${column.columnComment} +#else + ${column.javaField}: ${column.javaType.toLowerCase()} // ${column.columnComment} +#end +#end +#end +} + +// ${table.classComment} API +export const ${simpleClassName}Api = { +#if ( $table.templateType != 2 ) + // 查询${table.classComment}分页 + get${simpleClassName}Page: async (params: any) => { + return await request.get({ url: `${baseURL}/page`, params }) + }, +#else + // 查询${table.classComment}列表 + get${simpleClassName}List: async (params) => { + return await request.get({ url: `${baseURL}/list`, params }) + }, +#end + + // 查询${table.classComment}详情 + get${simpleClassName}: async (id: number) => { + return await request.get({ url: `${baseURL}/get?id=` + id }) + }, + + // 新增${table.classComment} + create${simpleClassName}: async (data: ${simpleClassName}VO) => { + return await request.post({ url: `${baseURL}/create`, data }) + }, + + // 修改${table.classComment} + update${simpleClassName}: async (data: ${simpleClassName}VO) => { + return await request.put({ url: `${baseURL}/update`, data }) + }, + + // 删除${table.classComment} + delete${simpleClassName}: async (id: number) => { + return await request.delete({ url: `${baseURL}/delete?id=` + id }) + }, + + // 导出${table.classComment} Excel + export${simpleClassName}: async (params) => { + return await request.download({ url: `${baseURL}/export-excel`, params }) + }, +## 特殊:主子表专属逻辑 +#foreach ($subTable in $subTables) +#set ($index = $foreach.count - 1) +#set ($subSimpleClassName = $subSimpleClassNames.get($index)) +#set ($subPrimaryColumn = $subPrimaryColumns.get($index))##当前 primary 字段 +#set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 +#set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index)) +#set ($subJoinColumn_strikeCase = $subJoinColumn_strikeCases.get($index)) +#set ($subClassNameVar = $subClassNameVars.get($index)) + +// ==================== 子表($subTable.classComment) ==================== +## 情况一:MASTER_ERP 时,需要分查询页子表 +#if ( $table.templateType == 11 ) + + // 获得${subTable.classComment}分页 + get${subSimpleClassName}Page: async (params) => { + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/page`, params }) + }, +## 情况二:非 MASTER_ERP 时,需要列表查询子表 +#else + #if ( $subTable.subJoinMany ) + + // 获得${subTable.classComment}列表 + get${subSimpleClassName}ListBy${SubJoinColumnName}: async (${subJoinColumn.javaField}) => { + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/list-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) + }, + #else + + // 获得${subTable.classComment} + get${subSimpleClassName}By${SubJoinColumnName}: async (${subJoinColumn.javaField}) => { + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get-by-${subJoinColumn_strikeCase}?${subJoinColumn.javaField}=` + ${subJoinColumn.javaField} }) + }, + #end +#end +## 特殊:MASTER_ERP 时,支持单个的新增、修改、删除操作 +#if ( $table.templateType == 11 ) + // 新增${subTable.classComment} + create${subSimpleClassName}: async (data) => { + return await request.post({ url: `${baseURL}/${subSimpleClassName_strikeCase}/create`, data }) + }, + + // 修改${subTable.classComment} + update${subSimpleClassName}: async (data) => { + return await request.put({ url: `${baseURL}/${subSimpleClassName_strikeCase}/update`, data }) + }, + + // 删除${subTable.classComment} + delete${subSimpleClassName}: async (id: number) => { + return await request.delete({ url: `${baseURL}/${subSimpleClassName_strikeCase}/delete?id=` + id }) + }, + + // 获得${subTable.classComment} + get${subSimpleClassName}: async (id: number) => { + return await request.get({ url: `${baseURL}/${subSimpleClassName_strikeCase}/get?id=` + id }) + }, +#end +#end +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm new file mode 100644 index 0000000..3996a9c --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_erp.vue.vm @@ -0,0 +1,205 @@ +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_inner.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_inner.vue.vm new file mode 100644 index 0000000..d8542c3 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_inner.vue.vm @@ -0,0 +1,2 @@ +## 主表的 normal 和 inner 使用相同的 form 表单 +#parse("codegen/vue3/views/components/form_sub_normal.vue.vm") \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm new file mode 100644 index 0000000..dbd0356 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/form_sub_normal.vue.vm @@ -0,0 +1,362 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm new file mode 100644 index 0000000..71a7511 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_erp.vue.vm @@ -0,0 +1,181 @@ +#set ($subTable = $subTables.get($subIndex))##当前表 +#set ($subColumns = $subColumnsList.get($subIndex))##当前字段数组 +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($subSimpleClassName = $subSimpleClassNames.get($subIndex)) +#set ($subJoinColumn = $subJoinColumns.get($subIndex))##当前 join 字段 +#set ($SubJoinColumnName = $subJoinColumn.javaField.substring(0,1).toUpperCase() + ${subJoinColumn.javaField.substring(1)})##首字母大写 + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_inner.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_inner.vue.vm new file mode 100644 index 0000000..3fe6488 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/components/list_sub_inner.vue.vm @@ -0,0 +1,4 @@ +## 子表的 erp 和 inner 使用相似的 list 列表,差异主要两点: +## 1)inner 使用 list 不分页,erp 使用 page 分页 +## 2)erp 支持单个子表的新增、修改、删除,inner 不支持 +#parse("codegen/vue3/views/components/list_sub_erp.vue.vm") \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm new file mode 100644 index 0000000..8e3596b --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm @@ -0,0 +1,301 @@ + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm new file mode 100644 index 0000000..361d379 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm @@ -0,0 +1,374 @@ + + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm new file mode 100644 index 0000000..48cd542 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm @@ -0,0 +1,46 @@ +import request from '@/config/axios' +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") + +export interface ${simpleClassName}VO { + #foreach ($column in $columns) + #if ($column.createOperation || $column.updateOperation) + #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") + ${column.javaField}: number + #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime") + ${column.javaField}: Date + #else + ${column.javaField}: ${column.javaType.toLowerCase()} + #end + #end + #end +} + +// 查询${table.classComment}列表 +export const get${simpleClassName}Page = async (params) => { + return await request.get({ url: '${baseURL}/page', params }) +} + +// 查询${table.classComment}详情 +export const get${simpleClassName} = async (id: number) => { + return await request.get({ url: '${baseURL}/get?id=' + id }) +} + +// 新增${table.classComment} +export const create${simpleClassName} = async (data: ${simpleClassName}VO) => { + return await request.post({ url: '${baseURL}/create', data }) +} + +// 修改${table.classComment} +export const update${simpleClassName} = async (data: ${simpleClassName}VO) => { + return await request.put({ url: '${baseURL}/update', data }) +} + +// 删除${table.classComment} +export const delete${simpleClassName} = async (id: number) => { + return await request.delete({ url: '${baseURL}/delete?id=' + id }) +} + +// 导出${table.classComment} Excel +export const export${simpleClassName}Api = async (params) => { + return await request.download({ url: '${baseURL}/export-excel', params }) +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm new file mode 100644 index 0000000..ff4fa81 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm @@ -0,0 +1,124 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const rules = reactive({ +#foreach ($column in $columns) +#if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 +#set($comment=$column.columnComment) + $column.javaField: [required], +#end +#end +}) + +// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/ +const crudSchemas = reactive([ +#foreach($column in $columns) +#if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation) +#set ($dictType = $column.dictType) +#set ($javaField = $column.javaField) +#set ($javaType = $column.javaType) + { + label: '${column.columnComment}', + field: '${column.javaField}', +## ========= 字典部分 ========= + #if ("" != $dictType)## 有数据字典 + dictType: DICT_TYPE.$dictType.toUpperCase(), + #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short") + dictClass: 'number', + #elseif ($javaType == "String") + dictClass: 'string', + #elseif ($javaType == "Boolean") + dictClass: 'boolean', + #end + #end +## ========= Table 表格部分 ========= + #if (!$column.listOperationResult) + isTable: false, + #else + #if ($column.htmlType == "datetime") + formatter: dateFormatter, + #end + #end +## ========= Search 表格部分 ========= + #if ($column.listOperation) + isSearch: true, + #if ($column.htmlType == "datetime") + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + #end + #end +## ========= Form 表单部分 ========= + #if ((!$column.createOperation && !$column.updateOperation) || $column.primaryKey) + isForm: false, + #else + #if($column.htmlType == "imageUpload")## 图片上传 + form: { + component: 'UploadImg' + }, + #elseif($column.htmlType == "fileUpload")## 文件上传 + form: { + component: 'UploadFile' + }, + #elseif($column.htmlType == "editor")## 文本编辑器 + form: { + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + }, + #elseif($column.htmlType == "select")## 下拉框 + form: { + component: 'SelectV2' + }, + #elseif($column.htmlType == "checkbox")## 多选框 + form: { + component: 'Checkbox' + }, + #elseif($column.htmlType == "radio")## 单选框 + form: { + component: 'Radio' + }, + #elseif($column.htmlType == "datetime")## 时间框 + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + #elseif($column.htmlType == "textarea")## 文本框 + form: { + component: 'Input', + componentProps: { + type: 'textarea', + rows: 4 + }, + colProps: { + span: 24 + } + }, + #elseif(${javaType.toLowerCase()} == "long" || ${javaType.toLowerCase()} == "integer")## 文本框 + form: { + component: 'InputNumber', + value: 0 + }, + #end + #end + }, +#end +#end + { + label: '操作', + field: 'action', + isForm: false + } +]) +export const { allSchemas } = useCrudSchemas(crudSchemas) diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm new file mode 100644 index 0000000..52f20a2 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm @@ -0,0 +1,65 @@ + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm new file mode 100644 index 0000000..6e8f140 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm @@ -0,0 +1,85 @@ + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm new file mode 100644 index 0000000..b7f2651 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm @@ -0,0 +1,32 @@ +import { defHttp } from '@/utils/http/axios' +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") + +// 查询${table.classComment}列表 +export function get${simpleClassName}Page(params) { + return defHttp.get({ url: '${baseURL}/page', params }) +} + +// 查询${table.classComment}详情 +export function get${simpleClassName}(id: number) { + return defHttp.get({ url: `${baseURL}/get?id=${id}` }) +} + +// 新增${table.classComment} +export function create${simpleClassName}(data) { + return defHttp.post({ url: '${baseURL}/create', data }) +} + +// 修改${table.classComment} +export function update${simpleClassName}(data) { + return defHttp.put({ url: '${baseURL}/update', data }) +} + +// 删除${table.classComment} +export function delete${simpleClassName}(id: number) { + return defHttp.delete({ url: `${baseURL}/delete?id=${id}` }) +} + +// 导出${table.classComment} Excel +export function export${simpleClassName}(params) { + return defHttp.download({ url: '${baseURL}/export-excel', params }, '${table.classComment}.xls') +} diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm new file mode 100644 index 0000000..92d3b2d --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm @@ -0,0 +1,236 @@ +import type {BasicColumn, FormSchema} from '@/components/Table' +import {useRender} from '@/components/Table' +import {DICT_TYPE, getDictOptions} from '@/utils/dict' + +export const columns: BasicColumn[] = [ +#foreach($column in $columns) +#if ($column.listOperationResult) + #set ($dictType=$column.dictType) + #set ($javaField = $column.javaField) + #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #set ($comment=$column.columnComment) +#if ($column.javaType == "LocalDateTime")## 时间类型 + { + title: '${comment}', + dataIndex: '${javaField}', + width: 180, + customRender: ({ text }) => { + return useRender.renderDate(text) + }, + }, +#elseif("" != $column.dictType)## 数据字典 + { + title: '${comment}', + dataIndex: '${javaField}', + width: 180, + customRender: ({ text }) => { + return useRender.renderDict(text, DICT_TYPE.$dictType.toUpperCase()) + }, + }, +#else + { + title: '${comment}', + dataIndex: '${javaField}', + width: 160, + }, +#end +#end +#end +] + +export const searchFormSchema: FormSchema[] = [ +#foreach($column in $columns) +#if ($column.listOperation) + #set ($dictType=$column.dictType) + #set ($javaField = $column.javaField) + #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #set ($comment=$column.columnComment) + { + label: '${comment}', + field: '${javaField}', + #if ($column.htmlType == "input") + component: 'Input', + #elseif ($column.htmlType == "select") + component: 'Select', + componentProps: { + #if ("" != $dictType)## 设置了 dictType 数据字典的情况 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase()), + #else## 未设置 dictType 数据字典的情况 + options: [], + #end + }, + #elseif ($column.htmlType == "radio") + component: 'Radio', + componentProps: { + #if ("" != $dictType)## 设置了 dictType 数据字典的情况 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase()), + #else## 未设置 dictType 数据字典的情况 + options: [], + #end + }, + #elseif($column.htmlType == "datetime") + component: 'RangePicker', + #end + colProps: { span: 8 }, + }, +#end +#end +] + +export const createFormSchema: FormSchema[] = [ + { + label: '编号', + field: 'id', + show: false, + component: 'Input', + }, +#foreach($column in $columns) +#if ($column.createOperation) + #set ($dictType = $column.dictType) + #set ($javaField = $column.javaField) + #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #set ($comment = $column.columnComment) +#if (!$column.primaryKey)## 忽略主键,不用在表单里 + { + label: '${comment}', + field: '${javaField}', + #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 + required: true, + #end + #if ($column.htmlType == "input") + component: 'Input', + #elseif($column.htmlType == "imageUpload")## 图片上传 + component: 'FileUpload', + componentProps: { + fileType: 'image', + maxCount: 1, + }, + #elseif($column.htmlType == "fileUpload")## 文件上传 + component: 'FileUpload', + componentProps: { + fileType: 'file', + maxCount: 1, + }, + #elseif($column.htmlType == "editor")## 文本编辑器 + component: 'Editor', + #elseif($column.htmlType == "select")## 下拉框 + component: 'Select', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "checkbox")## 多选框 + component: 'Checkbox', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "radio")## 单选框 + component: 'RadioButtonGroup', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "datetime")## 时间框 + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, + #elseif($column.htmlType == "textarea")## 文本域 + component: 'InputTextArea', + #end + }, +#end +#end +#end +] + +export const updateFormSchema: FormSchema[] = [ + { + label: '编号', + field: 'id', + show: false, + component: 'Input', + }, +#foreach($column in $columns) +#if ($column.updateOperation) +#set ($dictType = $column.dictType) +#set ($javaField = $column.javaField) +#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +#set ($comment = $column.columnComment) + #if (!$column.primaryKey)## 忽略主键,不用在表单里 + { + label: '${comment}', + field: '${javaField}', + #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 + required: true, + #end + #if ($column.htmlType == "input") + component: 'Input', + #elseif($column.htmlType == "imageUpload")## 图片上传 + component: 'FileUpload', + componentProps: { + fileType: 'image', + maxCount: 1, + }, + #elseif($column.htmlType == "fileUpload")## 文件上传 + component: 'FileUpload', + componentProps: { + fileType: 'file', + maxCount: 1, + }, + #elseif($column.htmlType == "editor")## 文本编辑器 + component: 'Editor', + #elseif($column.htmlType == "select")## 下拉框 + component: 'Select', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "checkbox")## 多选框 + component: 'Checkbox', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "radio")## 单选框 + component: 'RadioButtonGroup', + componentProps: { + #if ("" != $dictType)## 有数据字典 + options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), + #else##没数据字典 + options:[], + #end + }, + #elseif($column.htmlType == "datetime")## 时间框 + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, + #elseif($column.htmlType == "textarea")## 文本域 + component: 'InputTextArea', + #end + }, + #end +#end +#end +] \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm new file mode 100644 index 0000000..1804365 --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm @@ -0,0 +1,58 @@ + + \ No newline at end of file diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm new file mode 100644 index 0000000..84ec4bf --- /dev/null +++ b/yudao-module/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm @@ -0,0 +1,91 @@ + + diff --git a/yudao-module/yudao-module-infra-biz/src/main/resources/file/erweima.jpg b/yudao-module/yudao-module-infra-biz/src/main/resources/file/erweima.jpg new file mode 100644 index 0000000..1447283 Binary files /dev/null and b/yudao-module/yudao-module-infra-biz/src/main/resources/file/erweima.jpg differ diff --git a/yudao-module/yudao-module-system-api/pom.xml b/yudao-module/yudao-module-system-api/pom.xml new file mode 100644 index 0000000..4b8ceb4 --- /dev/null +++ b/yudao-module/yudao-module-system-api/pom.xml @@ -0,0 +1,33 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-system-api + jar + + ${project.artifactId} + + system 模块 API,暴露给其它模块调用 + + + + + cn.iocoder.boot + yudao-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java new file mode 100644 index 0000000..bdc3ba5 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.system.api.dept; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 部门 API 接口 + * + * @author 芋道源码 + */ +public interface DeptApi { + + /** + * 获得部门信息 + * + * @param id 部门编号 + * @return 部门信息 + */ + DeptRespDTO getDept(Long id); + + /** + * 获得部门信息数组 + * + * @param ids 部门编号数组 + * @return 部门信息数组 + */ + List getDeptList(Collection ids); + + /** + * 校验部门们是否有效。如下情况,视为无效: + * 1. 部门编号不存在 + * 2. 部门被禁用 + * + * @param ids 角色编号数组 + */ + void validateDeptList(Collection ids); + + /** + * 获得指定编号的部门 Map + * + * @param ids 部门编号数组 + * @return 部门 Map + */ + default Map getDeptMap(Collection ids) { + List list = getDeptList(ids); + return CollectionUtils.convertMap(list, DeptRespDTO::getId); + } + + /** + * 获得指定部门的所有子部门 + * + * @param id 部门编号 + * @return 子部门列表 + */ + List getChildDeptList(Long id); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java new file mode 100644 index 0000000..c38f4cd --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.api.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 岗位 API 接口 + * + * @author 芋道源码 + */ +public interface PostApi { + + /** + * 校验岗位们是否有效。如下情况,视为无效: + * 1. 岗位编号不存在 + * 2. 岗位被禁用 + * + * @param ids 岗位编号数组 + */ + void validPostList(Collection ids); + + List getPostList(Collection ids); + + default Map getPostMap(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return MapUtil.empty(); + } + + List list = getPostList(ids); + return CollectionUtils.convertMap(list, PostRespDTO::getId); + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java new file mode 100644 index 0000000..d3e66fd --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.api.dept.dto; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import lombok.Data; + +/** + * 部门 Response DTO + * + * @author 芋道源码 + */ +@Data +public class DeptRespDTO { + + /** + * 部门编号 + */ + private Long id; + /** + * 部门名称 + */ + private String name; + /** + * 父部门编号 + */ + private Long parentId; + /** + * 负责人的用户编号 + */ + private Long leaderUserId; + /** + * 部门状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.java new file mode 100644 index 0000000..cf2cc25 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.api.dept.dto; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import lombok.Data; + +/** + * 岗位 Response DTO + * + * @author 芋道源码 + */ +@Data +public class PostRespDTO { + + /** + * 岗位序号 + */ + private Long id; + /** + * 岗位名称 + */ + private String name; + /** + * 岗位编码 + */ + private String code; + /** + * 岗位排序 + */ + private Integer sort; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java new file mode 100644 index 0000000..1071845 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.api.dict; + +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; + +import java.util.Collection; + +/** + * 字典数据 API 接口 + * + * @author 芋道源码 + */ +public interface DictDataApi { + + /** + * 校验字典数据们是否有效。如下情况,视为无效: + * 1. 字典数据不存在 + * 2. 字典数据被禁用 + * + * @param dictType 字典类型 + * @param values 字典数据值的数组 + */ + void validateDictDataList(String dictType, Collection values); + + /** + * 获得指定的字典数据,从缓存中 + * + * @param type 字典类型 + * @param value 字典数据值 + * @return 字典数据 + */ + DictDataRespDTO getDictData(String type, String value); + + /** + * 解析获得指定的字典数据,从缓存中 + * + * @param type 字典类型 + * @param label 字典数据标签 + * @return 字典数据 + */ + DictDataRespDTO parseDictData(String type, String label); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/dto/DictDataRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/dto/DictDataRespDTO.java new file mode 100644 index 0000000..fe5ab6a --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/dto/DictDataRespDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.api.dict.dto; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import lombok.Data; + +/** + * 字典数据 Response DTO + * + * @author 芋道源码 + */ +@Data +public class DictDataRespDTO { + + /** + * 字典标签 + */ + private String label; + /** + * 字典值 + */ + private String value; + /** + * 字典类型 + */ + private String dictType; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java new file mode 100644 index 0000000..6f6bc24 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApi.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.api.errorcode; + +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; + +import javax.validation.Valid; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 错误码 Api 接口 + * + * @author 芋道源码 + */ +public interface ErrorCodeApi { + + /** + * 自动创建错误码 + * + * @param autoGenerateDTOs 错误码信息 + */ + void autoGenerateErrorCodeList(@Valid List autoGenerateDTOs); + + /** + * 增量获得错误码数组 + * + * 如果 minUpdateTime 为空时,则获取所有错误码 + * + * @param applicationName 应用名 + * @param minUpdateTime 最小更新时间 + * @return 错误码数组 + */ + List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeAutoGenerateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeAutoGenerateReqDTO.java new file mode 100644 index 0000000..da4df83 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeAutoGenerateReqDTO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.errorcode.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 错误码自动生成 DTO + * + * @author dylan + */ +@Data +@Accessors(chain = true) +public class ErrorCodeAutoGenerateReqDTO { + + /** + * 应用名 + */ + @NotNull(message = "应用名不能为空") + private String applicationName; + /** + * 错误码编码 + */ + @NotNull(message = "错误码编码不能为空") + private Integer code; + /** + * 错误码错误提示 + */ + @NotEmpty(message = "错误码错误提示不能为空") + private String message; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java new file mode 100644 index 0000000..9937230 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/dto/ErrorCodeRespDTO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.api.errorcode.dto; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 错误码的 Response DTO + * + * @author 芋道源码 + */ +@Data +public class ErrorCodeRespDTO { + + /** + * 错误码编码 + */ + private Integer code; + /** + * 错误码错误提示 + */ + private String message; + /** + * 更新时间 + */ + private LocalDateTime updateTime; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java new file mode 100644 index 0000000..4ff596c --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.api.logger; + +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; + +import javax.validation.Valid; + +/** + * 登录日志的 API 接口 + * + * @author 芋道源码 + */ +public interface LoginLogApi { + + /** + * 创建登录日志 + * + * @param reqDTO 日志信息 + */ + void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.java new file mode 100644 index 0000000..f0c2702 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.api.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; + +import javax.validation.Valid; + +/** + * 操作日志 API 接口 + * + * @author 芋道源码 + */ +public interface OperateLogApi { + + /** + * 创建操作日志 + * + * @param createReqDTO 请求 + */ + void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO); + + /** + * 创建操作日志 + * + * @param createReqDTO 请求 + */ + void createOperateLogV2(@Valid OperateLogV2CreateReqDTO createReqDTO); + + /** + * 获取指定模块的指定数据的操作日志分页 + * + * @param pageReqVO 请求 + * @return 操作日志分页 + */ + PageResult getOperateLogPage(OperateLogV2PageReqDTO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java new file mode 100644 index 0000000..5131056 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.system.api.logger.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +/** + * 登录日志创建 Request DTO + * + * @author 芋道源码 + */ +@Data +public class LoginLogCreateReqDTO { + + /** + * 日志类型 + */ + @NotNull(message = "日志类型不能为空") + private Integer logType; + /** + * 链路追踪编号 + */ + private String traceId; + + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + @NotNull(message = "用户类型不能为空") + private Integer userType; + /** + * 用户账号 + * + * 不再强制校验 username 非空,因为 Member 社交登录时,此时暂时没有 username(mobile)! + */ + private String username; + + /** + * 登录结果 + */ + @NotNull(message = "登录结果不能为空") + private Integer result; + + /** + * 用户 IP + */ + @NotEmpty(message = "用户 IP 不能为空") + private String userIp; + /** + * 浏览器 UserAgent + * + * 允许空,原因:Job 过期登出时,是无法传递 UserAgent 的 + */ + private String userAgent; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java new file mode 100644 index 0000000..d09bc26 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java @@ -0,0 +1,123 @@ +package cn.iocoder.yudao.module.system.api.logger.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 操作日志创建 Request DTO + */ +@Data +public class OperateLogCreateReqDTO { + + /** + * 链路追踪编号 + */ + private String traceId; + + /** + * 用户编号 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + /** + * 用户类型 + */ + @NotNull(message = "用户类型不能为空") + private Integer userType; + + /** + * 操作模块 + */ + @NotEmpty(message = "操作模块不能为空") + private String module; + + /** + * 操作名 + */ + @NotEmpty(message = "操作名") + private String name; + + /** + * 操作分类 + */ + @NotNull(message = "操作分类不能为空") + private Integer type; + + /** + * 操作明细 + */ + private String content; + + /** + * 拓展字段 + */ + private Map exts; + + /** + * 请求方法名 + */ + @NotEmpty(message = "请求方法名不能为空") + private String requestMethod; + + /** + * 请求地址 + */ + @NotEmpty(message = "请求地址不能为空") + private String requestUrl; + + /** + * 用户 IP + */ + @NotEmpty(message = "用户 IP 不能为空") + private String userIp; + + /** + * 浏览器 UserAgent + */ + @NotEmpty(message = "浏览器 UserAgent 不能为空") + private String userAgent; + + /** + * Java 方法名 + */ + @NotEmpty(message = "Java 方法名不能为空") + private String javaMethod; + + /** + * Java 方法的参数 + */ + private String javaMethodArgs; + + /** + * 开始时间 + */ + @NotNull(message = "开始时间不能为空") + private LocalDateTime startTime; + + /** + * 执行时长,单位:毫秒 + */ + @NotNull(message = "执行时长不能为空") + private Integer duration; + + /** + * 结果码 + */ + @NotNull(message = "结果码不能为空") + private Integer resultCode; + + /** + * 结果提示 + */ + private String resultMsg; + + /** + * 结果数据 + */ + private String resultData; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2CreateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2CreateReqDTO.java new file mode 100644 index 0000000..9243978 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2CreateReqDTO.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.system.api.logger.dto; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 系统操作日志 Create Request DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogV2CreateReqDTO { + + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。 + */ + private String traceId; + /** + * 用户编号 + * + * 关联 MemberUserDO 的 id 属性,或者 AdminUserDO 的 id 属性 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + /** + * 用户类型 + * + * 关联 {@link UserTypeEnum} + */ + @NotNull(message = "用户类型不能为空") + private Integer userType; + /** + * 操作模块类型 + */ + @NotEmpty(message = "操作模块类型不能为空") + private String type; + /** + * 操作名 + */ + @NotEmpty(message = "操作名不能为空") + private String subType; + /** + * 操作模块业务编号 + */ + @NotNull(message = "操作模块业务编号不能为空") + private Long bizId; + /** + * 操作内容,记录整个操作的明细 + * 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 + */ + @NotEmpty(message = "操作内容不能为空") + private String action; + /** + * 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ) + * 例如说,记录订单编号,{ orderId: "1"} + */ + private String extra; + + /** + * 请求方法名 + */ + @NotEmpty(message = "请求方法名不能为空") + private String requestMethod; + /** + * 请求地址 + */ + @NotEmpty(message = "请求地址不能为空") + private String requestUrl; + /** + * 用户 IP + */ + @NotEmpty(message = "用户 IP 不能为空") + private String userIp; + /** + * 浏览器 UA + */ + @NotEmpty(message = "浏览器 UA 不能为空") + private String userAgent; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2PageReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2PageReqDTO.java new file mode 100644 index 0000000..aa54c3f --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2PageReqDTO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.api.logger.dto; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import lombok.Data; + +/** + * 操作日志分页 Request DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogV2PageReqDTO extends PageParam { + + /** + * 模块类型 + */ + private String bizType; + /** + * 模块数据编号 + */ + private Long bizId; + + /** + * 用户编号 + */ + private Long userId; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2RespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2RespDTO.java new file mode 100644 index 0000000..e217baa --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2RespDTO.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.system.api.logger.dto; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 系统操作日志 Resp DTO + * + * @author HUIHUI + */ +@Data +public class OperateLogV2RespDTO { + + /** + * 链路追踪编号 + */ + private String traceId; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户名称 + */ + private String userName; + /** + * 用户类型 + */ + private Integer userType; + /** + * 操作模块类型 + */ + private String type; + /** + * 操作名 + */ + private String subType; + /** + * 操作模块业务编号 + */ + private Long bizId; + /** + * 操作内容 + */ + private String action; + /** + * 拓展字段 + */ + private String extra; + + /** + * 请求方法名 + */ + private String requestMethod; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.java new file mode 100644 index 0000000..5427277 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.mail; + +import cn.iocoder.yudao.module.system.api.mail.dto.MailSendSingleToUserReqDTO; + +import javax.validation.Valid; + +/** + * 邮箱发送 API 接口 + * + * @author 芋道源码 + */ +public interface MailSendApi { + + /** + * 发送单条邮箱给 Admin 用户 + * + * 在 mail 为空时,使用 userId 加载对应 Admin 的邮箱 + * + * @param reqDTO 发送请求 + * @return 发送日志编号 + */ + Long sendSingleMailToAdmin(@Valid MailSendSingleToUserReqDTO reqDTO); + + /** + * 发送单条邮箱给 Member 用户 + * + * 在 mail 为空时,使用 userId 加载对应 Member 的邮箱 + * + * @param reqDTO 发送请求 + * @return 发送日志编号 + */ + Long sendSingleMailToMember(@Valid MailSendSingleToUserReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java new file mode 100644 index 0000000..c8c5cba --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.api.mail.dto; + +import lombok.Data; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotNull; +import java.util.Map; + +/** + * 邮件发送 Request DTO + * + * @author wangjingqi + */ +@Data +public class MailSendSingleToUserReqDTO { + + /** + * 用户编号 + */ + private Long userId; + /** + * 邮箱 + */ + @Email + private String mail; + + /** + * 邮件模板编号 + */ + @NotNull(message = "邮件模板编号不能为空") + private String templateCode; + /** + * 邮件模板参数 + */ + private Map templateParams; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.java new file mode 100644 index 0000000..facedfa --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.api.notify; + +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; + +import javax.validation.Valid; + +/** + * 站内信发送 API 接口 + * + * @author xrcoder + */ +public interface NotifyMessageSendApi { + + /** + * 发送单条站内信给 Admin 用户 + * + * @param reqDTO 发送请求 + * @return 发送消息 ID + */ + Long sendSingleMessageToAdmin(@Valid NotifySendSingleToUserReqDTO reqDTO); + + /** + * 发送单条站内信给 Member 用户 + * + * @param reqDTO 发送请求 + * @return 发送消息 ID + */ + Long sendSingleMessageToMember(@Valid NotifySendSingleToUserReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java new file mode 100644 index 0000000..502d3eb --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.api.notify.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Map; + +/** + * 站内信发送给 Admin 或者 Member 用户 + * + * @author xrcoder + */ +@Data +public class NotifySendSingleToUserReqDTO { + + /** + * 用户编号 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + + /** + * 站内信模板编号 + */ + @NotEmpty(message = "站内信模板编号不能为空") + private String templateCode; + + /** + * 站内信模板参数 + */ + private Map templateParams; +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.java new file mode 100644 index 0000000..09d5b6f --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.notify.dto; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class NotifyTemplateReqDTO { + + @NotEmpty(message = "模版名称不能为空") + private String name; + + @NotNull(message = "模版编码不能为空") + private String code; + + @NotNull(message = "模版类型不能为空") + private Integer type; + + @NotEmpty(message = "发送人名称不能为空") + private String nickname; + + @NotEmpty(message = "模版内容不能为空") + private String content; + + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}") + private Integer status; + + private String remark; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApi.java new file mode 100644 index 0000000..79393cf --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApi.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.api.oauth2; + +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; + +import javax.validation.Valid; + +/** + * OAuth2.0 Token API 接口 + * + * @author 芋道源码 + */ +public interface OAuth2TokenApi { + + /** + * 创建访问令牌 + * + * @param reqDTO 访问令牌的创建信息 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenRespDTO createAccessToken(@Valid OAuth2AccessTokenCreateReqDTO reqDTO); + + /** + * 校验访问令牌 + * + * @param accessToken 访问令牌 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenCheckRespDTO checkAccessToken(String accessToken); + + /** + * 移除访问令牌 + * + * @param accessToken 访问令牌 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenRespDTO removeAccessToken(String accessToken); + + /** + * 刷新访问令牌 + * + * @param refreshToken 刷新令牌 + * @param clientId 客户端编号 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenRespDTO refreshAccessToken(String refreshToken, String clientId); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java new file mode 100644 index 0000000..319622b --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.api.oauth2.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * OAuth2.0 访问令牌的校验 Response DTO + * + * @author 芋道源码 + */ +@Data +public class OAuth2AccessTokenCheckRespDTO implements Serializable { + + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 租户编号 + */ + private Long tenantId; + /** + * 授权范围的数组 + */ + private List scopes; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java new file mode 100644 index 0000000..9257cc9 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.api.oauth2.dto; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * OAuth2.0 访问令牌创建 Request DTO + * + * @author 芋道源码 + */ +@Data +public class OAuth2AccessTokenCreateReqDTO implements Serializable { + + /** + * 用户编号 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + /** + * 用户类型 + */ + @NotNull(message = "用户类型不能为空") + @InEnum(value = UserTypeEnum.class, message = "用户类型必须是 {value}") + private Integer userType; + /** + * 客户端编号 + */ + @NotNull(message = "客户端编号不能为空") + private String clientId; + /** + * 授权范围 + */ + private List scopes; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java new file mode 100644 index 0000000..4c82632 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.api.oauth2.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * OAuth2.0 访问令牌的信息 Response DTO + * + * @author 芋道源码 + */ +@Data +@Accessors(chain = true) +public class OAuth2AccessTokenRespDTO implements Serializable { + + /** + * 访问令牌 + */ + private String accessToken; + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + */ + private Integer userType; + /** + * 过期时间 + */ + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java new file mode 100644 index 0000000..25bfc44 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java @@ -0,0 +1,4 @@ +/** + * System API 包,定义暴露给其它模块的 API + */ +package cn.iocoder.yudao.module.system.api; diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.java new file mode 100644 index 0000000..ea16fe4 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.api.permission; + +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; + +import java.util.Collection; +import java.util.Set; + +/** + * 权限 API 接口 + * + * @author 芋道源码 + */ +public interface PermissionApi { + + /** + * 获得拥有多个角色的用户编号集合 + * + * @param roleIds 角色编号集合 + * @return 用户编号集合 + */ + Set getUserRoleIdListByRoleIds(Collection roleIds); + + /** + * 判断是否有权限,任一一个即可 + * + * @param userId 用户编号 + * @param permissions 权限 + * @return 是否 + */ + boolean hasAnyPermissions(Long userId, String... permissions); + + /** + * 判断是否有角色,任一一个即可 + * + * @param userId 用户编号 + * @param roles 角色数组 + * @return 是否 + */ + boolean hasAnyRoles(Long userId, String... roles); + + /** + * 获得登陆用户的部门数据权限 + * + * @param userId 用户编号 + * @return 部门数据权限 + */ + DeptDataPermissionRespDTO getDeptDataPermission(Long userId); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java new file mode 100644 index 0000000..309c9ef --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.api.permission; + +import java.util.Collection; + +/** + * 角色 API 接口 + * + * @author 芋道源码 + */ +public interface RoleApi { + + /** + * 校验角色们是否有效。如下情况,视为无效: + * 1. 角色编号不存在 + * 2. 角色被禁用 + * + * @param ids 角色编号数组 + */ + void validRoleList(Collection ids); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/dto/DeptDataPermissionRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/dto/DeptDataPermissionRespDTO.java new file mode 100644 index 0000000..5650e89 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/dto/DeptDataPermissionRespDTO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.api.permission.dto; + +import lombok.Data; + +import java.util.HashSet; +import java.util.Set; + +/** + * 部门的数据权限 Response DTO + * + * @author 芋道源码 + */ +@Data +public class DeptDataPermissionRespDTO { + + /** + * 是否可查看全部数据 + */ + private Boolean all; + /** + * 是否可查看自己的数据 + */ + private Boolean self; + /** + * 可查看的部门编号数组 + */ + private Set deptIds; + + public DeptDataPermissionRespDTO() { + this.all = false; + this.self = false; + this.deptIds = new HashSet<>(); + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java new file mode 100644 index 0000000..951cfbc --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.api.sensitiveword; + +import java.util.List; + +/** + * 敏感词 API 接口 + * + * @author 永不言败 + */ +public interface SensitiveWordApi { + + /** + * 获得文本所包含的不合法的敏感词数组 + * + * @param text 文本 + * @param tags 标签数组 + * @return 不合法的敏感词数组 + */ + List validateText(String text, List tags); + + /** + * 判断文本是否包含敏感词 + * + * @param text 文本 + * @param tags 表述数组 + * @return 是否包含 + */ + boolean isTextValid(String text, List tags); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.java new file mode 100644 index 0000000..98d4cde --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.api.sms; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; + +import javax.validation.Valid; + +/** + * 短信验证码 API 接口 + * + * @author 芋道源码 + */ +public interface SmsCodeApi { + + /** + * 创建短信验证码,并进行发送 + * + * @param reqDTO 发送请求 + */ + void sendSmsCode(@Valid SmsCodeSendReqDTO reqDTO); + + /** + * 验证短信验证码,并进行使用 + * 如果正确,则将验证码标记成已使用 + * 如果错误,则抛出 {@link ServiceException} 异常 + * + * @param reqDTO 使用请求 + */ + void useSmsCode(@Valid SmsCodeUseReqDTO reqDTO); + + /** + * 检查验证码是否有效 + * + * @param reqDTO 校验请求 + */ + void validateSmsCode(@Valid SmsCodeValidateReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.java new file mode 100644 index 0000000..c86bbf5 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.sms; + +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO; + +import javax.validation.Valid; + +/** + * 短信发送 API 接口 + * + * @author 芋道源码 + */ +public interface SmsSendApi { + + /** + * 发送单条短信给 Admin 用户 + * + * 在 mobile 为空时,使用 userId 加载对应 Admin 的手机号 + * + * @param reqDTO 发送请求 + * @return 发送日志编号 + */ + Long sendSingleSmsToAdmin(@Valid SmsSendSingleToUserReqDTO reqDTO); + + /** + * 发送单条短信给 Member 用户 + * + * 在 mobile 为空时,使用 userId 加载对应 Member 的手机号 + * + * @param reqDTO 发送请求 + * @return 发送日志编号 + */ + Long sendSingleSmsToMember(@Valid SmsSendSingleToUserReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java new file mode 100644 index 0000000..5d6579b --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.api.sms.dto.code; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.framework.common.validation.Mobile; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 短信验证码的发送 Request DTO + * + * @author 芋道源码 + */ +@Data +public class SmsCodeSendReqDTO { + + /** + * 手机号 + */ + @Mobile + @NotEmpty(message = "手机号不能为空") + private String mobile; + /** + * 发送场景 + */ + @NotNull(message = "发送场景不能为空") + @InEnum(SmsSceneEnum.class) + private Integer scene; + /** + * 发送 IP + */ + @NotEmpty(message = "发送 IP 不能为空") + private String createIp; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java new file mode 100644 index 0000000..3043adf --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.api.sms.dto.code; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.framework.common.validation.Mobile; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 短信验证码的使用 Request DTO + * + * @author 芋道源码 + */ +@Data +public class SmsCodeUseReqDTO { + + /** + * 手机号 + */ + @Mobile + @NotEmpty(message = "手机号不能为空") + private String mobile; + /** + * 发送场景 + */ + @NotNull(message = "发送场景不能为空") + @InEnum(SmsSceneEnum.class) + private Integer scene; + /** + * 验证码 + */ + @NotEmpty(message = "验证码") + private String code; + /** + * 使用 IP + */ + @NotEmpty(message = "使用 IP 不能为空") + private String usedIp; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java new file mode 100644 index 0000000..e780835 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.api.sms.dto.code; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.framework.common.validation.Mobile; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 短信验证码的校验 Request DTO + * + * @author 芋道源码 + */ +@Data +public class SmsCodeValidateReqDTO { + + /** + * 手机号 + */ + @Mobile + @NotEmpty(message = "手机号不能为空") + private String mobile; + /** + * 发送场景 + */ + @NotNull(message = "发送场景不能为空") + @InEnum(SmsSceneEnum.class) + private Integer scene; + /** + * 验证码 + */ + @NotEmpty(message = "验证码") + private String code; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java new file mode 100644 index 0000000..ef77780 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.api.sms.dto.send; + +import cn.iocoder.yudao.framework.common.validation.Mobile; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.Map; + +/** + * 短信发送给 Admin 或者 Member 用户 + * + * @author 芋道源码 + */ +@Data +public class SmsSendSingleToUserReqDTO { + + /** + * 用户编号 + */ + private Long userId; + /** + * 手机号 + */ + @Mobile + private String mobile; + /** + * 短信模板编号 + */ + @NotEmpty(message = "短信模板编号不能为空") + private String templateCode; + /** + * 短信模板参数 + */ + private Map templateParams; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java new file mode 100644 index 0000000..7fdb35a --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.api.social; + +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxJsapiSignatureRespDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; + +/** + * 社交应用的 API 接口 + * + * @author 芋道源码 + */ +public interface SocialClientApi { + + /** + * 获得社交平台的授权 URL + * + * @param socialType 社交平台的类型 {@link SocialTypeEnum} + * @param userType 用户类型 + * @param redirectUri 重定向 URL + * @return 社交平台的授权 URL + */ + String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri); + + /** + * 创建微信公众号 JS SDK 初始化所需的签名 + * + * @param userType 用户类型 + * @param url 访问的 URL 地址 + * @return 签名 + */ + SocialWxJsapiSignatureRespDTO createWxMpJsapiSignature(Integer userType, String url); + + /** + * 获得微信小程序的手机信息 + * + * @param userType 用户类型 + * @param phoneCode 手机授权码 + * @return 手机信息 + */ + SocialWxPhoneNumberInfoRespDTO getWxMaPhoneNumberInfo(Integer userType, String phoneCode); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.java new file mode 100644 index 0000000..05c6acb --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.api.social; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO; + +import javax.validation.Valid; + +/** + * 社交用户的 API 接口 + * + * @author 芋道源码 + */ +public interface SocialUserApi { + + /** + * 绑定社交用户 + * + * @param reqDTO 绑定信息 + * @return 社交用户 openid + */ + String bindSocialUser(@Valid SocialUserBindReqDTO reqDTO); + + /** + * 取消绑定社交用户 + * + * @param reqDTO 解绑 + */ + void unbindSocialUser(@Valid SocialUserUnbindReqDTO reqDTO); + + /** + * 获得社交用户,基于 userId + * + * @param userType 用户类型 + * @param userId 用户编号 + * @param socialType 社交平台的类型 + * @return 社交用户 + */ + SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType); + + /** + * 获得社交用户 + * + * 在认证信息不正确的情况下,也会抛出 {@link ServiceException} 业务异常 + * + * @param userType 用户类型 + * @param socialType 社交平台的类型 + * @param code 授权码 + * @param state state + * @return 社交用户 + */ + SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.java new file mode 100644 index 0000000..f8f7154 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.api.social.dto; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 取消绑定社交用户 Request DTO + * + * @author 芋道源码 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SocialUserBindReqDTO { + + /** + * 用户编号 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + /** + * 用户类型 + */ + @InEnum(UserTypeEnum.class) + @NotNull(message = "用户类型不能为空") + private Integer userType; + + /** + * 社交平台的类型 + */ + @InEnum(SocialTypeEnum.class) + @NotNull(message = "社交平台的类型不能为空") + private Integer socialType; + /** + * 授权码 + */ + @NotEmpty(message = "授权码不能为空") + private String code; + /** + * state + */ + @NotNull(message = "state 不能为空") + private String state; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.java new file mode 100644 index 0000000..29fef01 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.api.social.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 社交用户 Response DTO + * + * @author 芋道源码 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SocialUserRespDTO { + + /** + * 社交用户的 openid + */ + private String openid; + /** + * 社交用户的昵称 + */ + private String nickname; + /** + * 社交用户的头像 + */ + private String avatar; + + /** + * 关联的用户编号 + */ + private Long userId; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.java new file mode 100644 index 0000000..3c6be32 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.api.social.dto; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 社交绑定 Request DTO,使用 code 授权码 + * + * @author 芋道源码 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SocialUserUnbindReqDTO { + + /** + * 用户编号 + */ + @NotNull(message = "用户编号不能为空") + private Long userId; + /** + * 用户类型 + */ + @InEnum(UserTypeEnum.class) + @NotNull(message = "用户类型不能为空") + private Integer userType; + + /** + * 社交平台的类型 + */ + @InEnum(SocialTypeEnum.class) + @NotNull(message = "社交平台的类型不能为空") + private Integer socialType; + + /** + * 社交平台的 openid + */ + @NotEmpty(message = "社交平台的 openid 不能为空") + private String openid; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java new file mode 100644 index 0000000..7d332e9 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.social.dto; + +import lombok.Data; + +/** + * 微信公众号 JSAPI 签名 Response DTO + * + * @author 芋道源码 + */ +@Data +public class SocialWxJsapiSignatureRespDTO { + + /** + * 微信公众号的 appId + */ + private String appId; + /** + * 匿名串 + */ + private String nonceStr; + /** + * 时间戳 + */ + private Long timestamp; + /** + * URL + */ + private String url; + /** + * 签名 + */ + private String signature; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java new file mode 100644 index 0000000..9d404b3 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.api.social.dto; + +import lombok.Data; + +/** + * 微信小程序的手机信息 Response DTO + * + * @author 芋道源码 + */ +@Data +public class SocialWxPhoneNumberInfoRespDTO { + + /** + * 用户绑定的手机号(国外手机号会有区号) + */ + private String phoneNumber; + + /** + * 没有区号的手机号 + */ + private String purePhoneNumber; + /** + * 区号 + */ + private String countryCode; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApi.java new file mode 100644 index 0000000..1fad83e --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApi.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.api.tenant; + +import java.util.List; + +/** + * 多租户的 API 接口 + * + * @author 芋道源码 + */ +public interface TenantApi { + + /** + * 获得所有租户 + * + * @return 租户编号数组 + */ + List getTenantIdList(); + + /** + * 校验租户是否合法 + * + * @param id 租户编号 + */ + void validateTenant(Long id); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java new file mode 100644 index 0000000..507fb4b --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.module.system.api.user; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Admin 用户 API 接口 + * + * @author 芋道源码 + */ +public interface AdminUserApi { + + /** + * 通过用户 ID 查询用户 + * + * @param id 用户ID + * @return 用户对象信息 + */ + AdminUserRespDTO getUser(Long id); + + /** + * 通过用户 ID 查询用户下属 + * + * @param id 用户编号 + * @return 用户下属用户列表 + */ + List getUserListBySubordinate(Long id); + + /** + * 通过用户 ID 查询用户们 + * + * @param ids 用户 ID 们 + * @return 用户对象信息 + */ + List getUserList(Collection ids); + + /** + * 获得指定部门的用户数组 + * + * @param deptIds 部门数组 + * @return 用户数组 + */ + List getUserListByDeptIds(Collection deptIds); + + /** + * 获得指定岗位的用户数组 + * + * @param postIds 岗位数组 + * @return 用户数组 + */ + List getUserListByPostIds(Collection postIds); + + /** + * 获得用户 Map + * + * @param ids 用户编号数组 + * @return 用户 Map + */ + default Map getUserMap(Collection ids) { + List users = getUserList(ids); + return CollectionUtils.convertMap(users, AdminUserRespDTO::getId); + } + + /** + * 校验用户是否有效。如下情况,视为无效: + * 1. 用户编号不存在 + * 2. 用户被禁用 + * + * @param id 用户编号 + */ + default void validateUser(Long id) { + validateUserList(Collections.singleton(id)); + } + + /** + * 校验用户们是否有效。如下情况,视为无效: + * 1. 用户编号不存在 + * 2. 用户被禁用 + * + * @param ids 用户编号数组 + */ + void validateUserList(Collection ids); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java new file mode 100644 index 0000000..ac13c3a --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.system.api.user.dto; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import lombok.Data; + +import java.util.Set; + +/** + * Admin 用户 Response DTO + * + * @author 芋道源码 + */ +@Data +public class AdminUserRespDTO { + + /** + * 用户ID + */ + private Long id; + /** + * 用户昵称 + */ + private String nickname; + /** + * 帐号状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + + /** + * 部门ID + */ + private Long deptId; + /** + * 岗位编号数组 + */ + private Set postIds; + /** + * 手机号码 + */ + private String mobile; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java new file mode 100644 index 0000000..c0e3423 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.enums; + +/** + * System 字典类型的枚举类 + * + * @author 芋道源码 + */ +public interface DictTypeConstants { + + String USER_TYPE = "user_type"; // 用户类型 + String COMMON_STATUS = "common_status"; // 系统状态 + + // ========== SYSTEM 模块 ========== + + String USER_SEX = "system_user_sex"; // 用户性别 + + String OPERATE_TYPE = "system_operate_type"; // 操作类型 + + String LOGIN_TYPE = "system_login_type"; // 登录日志的类型 + String LOGIN_RESULT = "system_login_result"; // 登录结果 + + String ERROR_CODE_TYPE = "system_error_code_type"; // 错误码的类型枚举 + + String SMS_CHANNEL_CODE = "system_sms_channel_code"; // 短信渠道编码 + String SMS_TEMPLATE_TYPE = "system_sms_template_type"; // 短信模板类型 + String SMS_SEND_STATUS = "system_sms_send_status"; // 短信发送状态 + String SMS_RECEIVE_STATUS = "system_sms_receive_status"; // 短信接收状态 + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..2f41f67 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -0,0 +1,174 @@ +package cn.iocoder.yudao.module.system.enums; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; + +/** + * System 错误码枚举类 + * + * system 系统,使用 1-002-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== AUTH 模块 1-002-000-000 ========== + ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1_002_000_000, "登录失败,账号密码不正确"); + ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1_002_000_001, "登录失败,账号被禁用"); + ErrorCode AUTH_LOGIN_CAPTCHA_CODE_ERROR = new ErrorCode(1_002_000_004, "验证码不正确,原因:{}"); + ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1_002_000_005, "未绑定账号,需要进行绑定"); + ErrorCode AUTH_TOKEN_EXPIRED = new ErrorCode(1_002_000_006, "Token 已经过期"); + ErrorCode AUTH_MOBILE_NOT_EXISTS = new ErrorCode(1_002_000_007, "手机号不存在"); + + // ========== 菜单模块 1-002-001-000 ========== + ErrorCode MENU_NAME_DUPLICATE = new ErrorCode(1_002_001_000, "已经存在该名字的菜单"); + ErrorCode MENU_PARENT_NOT_EXISTS = new ErrorCode(1_002_001_001, "父菜单不存在"); + ErrorCode MENU_PARENT_ERROR = new ErrorCode(1_002_001_002, "不能设置自己为父菜单"); + ErrorCode MENU_NOT_EXISTS = new ErrorCode(1_002_001_003, "菜单不存在"); + ErrorCode MENU_EXISTS_CHILDREN = new ErrorCode(1_002_001_004, "存在子菜单,无法删除"); + ErrorCode MENU_PARENT_NOT_DIR_OR_MENU = new ErrorCode(1_002_001_005, "父菜单的类型必须是目录或者菜单"); + + // ========== 角色模块 1-002-002-000 ========== + ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1_002_002_000, "角色不存在"); + ErrorCode ROLE_NAME_DUPLICATE = new ErrorCode(1_002_002_001, "已经存在名为【{}】的角色"); + ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1_002_002_002, "已经存在编码为【{}】的角色"); + ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1_002_002_003, "不能操作类型为系统内置的角色"); + ErrorCode ROLE_IS_DISABLE = new ErrorCode(1_002_002_004, "名字为【{}】的角色已被禁用"); + ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1_002_002_005, "编码【{}】不能使用"); + + // ========== 用户模块 1-002-003-000 ========== + ErrorCode USER_USERNAME_EXISTS = new ErrorCode(1_002_003_000, "用户账号已经存在"); + ErrorCode USER_MOBILE_EXISTS = new ErrorCode(1_002_003_001, "手机号已经存在"); + ErrorCode USER_EMAIL_EXISTS = new ErrorCode(1_002_003_002, "邮箱已经存在"); + ErrorCode USER_NOT_EXISTS = new ErrorCode(1_002_003_003, "用户不存在"); + ErrorCode USER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_003_004, "导入用户数据不能为空!"); + ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1_002_003_005, "用户密码校验失败"); + ErrorCode USER_IS_DISABLE = new ErrorCode(1_002_003_006, "名字为【{}】的用户已被禁用"); + ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过租户最大租户配额({})!"); + + // ========== 部门模块 1-002-004-000 ========== + ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); + ErrorCode DEPT_PARENT_NOT_EXITS = new ErrorCode(1_002_004_001,"父级部门不存在"); + ErrorCode DEPT_NOT_FOUND = new ErrorCode(1_002_004_002, "当前部门不存在"); + ErrorCode DEPT_EXITS_CHILDREN = new ErrorCode(1_002_004_003, "存在子部门,无法删除"); + ErrorCode DEPT_PARENT_ERROR = new ErrorCode(1_002_004_004, "不能设置自己为父部门"); + ErrorCode DEPT_EXISTS_USER = new ErrorCode(1_002_004_005, "部门中存在员工,无法删除"); + ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1_002_004_006, "部门({})不处于开启状态,不允许选择"); + ErrorCode DEPT_PARENT_IS_CHILD = new ErrorCode(1_002_004_007, "不能设置自己的子部门为父部门"); + + // ========== 岗位模块 1-002-005-000 ========== + ErrorCode POST_NOT_FOUND = new ErrorCode(1_002_005_000, "当前岗位不存在"); + ErrorCode POST_NOT_ENABLE = new ErrorCode(1_002_005_001, "岗位({}) 不处于开启状态,不允许选择"); + ErrorCode POST_NAME_DUPLICATE = new ErrorCode(1_002_005_002, "已经存在该名字的岗位"); + ErrorCode POST_CODE_DUPLICATE = new ErrorCode(1_002_005_003, "已经存在该标识的岗位"); + + // ========== 字典类型 1-002-006-000 ========== + ErrorCode DICT_TYPE_NOT_EXISTS = new ErrorCode(1_002_006_001, "当前字典类型不存在"); + ErrorCode DICT_TYPE_NOT_ENABLE = new ErrorCode(1_002_006_002, "字典类型不处于开启状态,不允许选择"); + ErrorCode DICT_TYPE_NAME_DUPLICATE = new ErrorCode(1_002_006_003, "已经存在该名字的字典类型"); + ErrorCode DICT_TYPE_TYPE_DUPLICATE = new ErrorCode(1_002_006_004, "已经存在该类型的字典类型"); + ErrorCode DICT_TYPE_HAS_CHILDREN = new ErrorCode(1_002_006_005, "无法删除,该字典类型还有字典数据"); + + // ========== 字典数据 1-002-007-000 ========== + ErrorCode DICT_DATA_NOT_EXISTS = new ErrorCode(1_002_007_001, "当前字典数据不存在"); + ErrorCode DICT_DATA_NOT_ENABLE = new ErrorCode(1_002_007_002, "字典数据({})不处于开启状态,不允许选择"); + ErrorCode DICT_DATA_VALUE_DUPLICATE = new ErrorCode(1_002_007_003, "已经存在该值的字典数据"); + + // ========== 通知公告 1-002-008-000 ========== + ErrorCode NOTICE_NOT_FOUND = new ErrorCode(1_002_008_001, "当前通知公告不存在"); + + // ========== 短信渠道 1-002-011-000 ========== + ErrorCode SMS_CHANNEL_NOT_EXISTS = new ErrorCode(1_002_011_000, "短信渠道不存在"); + ErrorCode SMS_CHANNEL_DISABLE = new ErrorCode(1_002_011_001, "短信渠道不处于开启状态,不允许选择"); + ErrorCode SMS_CHANNEL_HAS_CHILDREN = new ErrorCode(1_002_011_002, "无法删除,该短信渠道还有短信模板"); + + // ========== 短信模板 1-002-012-000 ========== + ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_012_000, "短信模板不存在"); + ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1_002_012_001, "已经存在编码为【{}】的短信模板"); + ErrorCode SMS_TEMPLATE_API_ERROR = new ErrorCode(1_002_012_002, "短信 API 模板调用失败,原因是:{}"); + ErrorCode SMS_TEMPLATE_API_AUDIT_CHECKING = new ErrorCode(1_002_012_003, "短信 API 模版无法使用,原因:审批中"); + ErrorCode SMS_TEMPLATE_API_AUDIT_FAIL = new ErrorCode(1_002_012_004, "短信 API 模版无法使用,原因:审批不通过,{}"); + ErrorCode SMS_TEMPLATE_API_NOT_FOUND = new ErrorCode(1_002_012_005, "短信 API 模版无法使用,原因:模版不存在"); + + // ========== 短信发送 1-002-013-000 ========== + ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1_002_013_000, "手机号不存在"); + ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1_002_013_001, "模板参数({})缺失"); + ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_013_002, "短信模板不存在"); + + // ========== 短信验证码 1-002-014-000 ========== + ErrorCode SMS_CODE_NOT_FOUND = new ErrorCode(1_002_014_000, "验证码不存在"); + ErrorCode SMS_CODE_EXPIRED = new ErrorCode(1_002_014_001, "验证码已过期"); + ErrorCode SMS_CODE_USED = new ErrorCode(1_002_014_002, "验证码已使用"); + ErrorCode SMS_CODE_NOT_CORRECT = new ErrorCode(1_002_014_003, "验证码不正确"); + ErrorCode SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY = new ErrorCode(1_002_014_004, "超过每日短信发送数量"); + ErrorCode SMS_CODE_SEND_TOO_FAST = new ErrorCode(1_002_014_005, "短信发送过于频繁"); + ErrorCode SMS_CODE_IS_EXISTS = new ErrorCode(1_002_014_006, "手机号已被使用"); + ErrorCode SMS_CODE_IS_UNUSED = new ErrorCode(1_002_014_007, "验证码未被使用"); + + // ========== 租户信息 1-002-015-000 ========== + ErrorCode TENANT_NOT_EXISTS = new ErrorCode(1_002_015_000, "租户不存在"); + ErrorCode TENANT_DISABLE = new ErrorCode(1_002_015_001, "名字为【{}】的租户已被禁用"); + ErrorCode TENANT_EXPIRE = new ErrorCode(1_002_015_002, "名字为【{}】的租户已过期"); + ErrorCode TENANT_CAN_NOT_UPDATE_SYSTEM = new ErrorCode(1_002_015_003, "系统租户不能进行修改、删除等操作!"); + ErrorCode TENANT_NAME_DUPLICATE = new ErrorCode(1_002_015_004, "名字为【{}】的租户已存在"); + ErrorCode TENANT_WEBSITE_DUPLICATE = new ErrorCode(1_002_015_005, "域名为【{}】的租户已存在"); + + // ========== 租户套餐 1-002-016-000 ========== + ErrorCode TENANT_PACKAGE_NOT_EXISTS = new ErrorCode(1_002_016_000, "租户套餐不存在"); + ErrorCode TENANT_PACKAGE_USED = new ErrorCode(1_002_016_001, "租户正在使用该套餐,请给租户重新设置套餐后再尝试删除"); + ErrorCode TENANT_PACKAGE_DISABLE = new ErrorCode(1_002_016_002, "名字为【{}】的租户套餐已被禁用"); + + // ========== 错误码模块 1-002-017-000 ========== + ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1_002_017_000, "错误码不存在"); + ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1_002_017_001, "已经存在编码为【{}】的错误码"); + + // ========== 社交用户 1-002-018-000 ========== + ErrorCode SOCIAL_USER_AUTH_FAILURE = new ErrorCode(1_002_018_000, "社交授权失败,原因是:{}"); + ErrorCode SOCIAL_USER_NOT_FOUND = new ErrorCode(1_002_018_001, "社交授权失败,找不到对应的用户"); + + ErrorCode SOCIAL_CLIENT_WEIXIN_MINI_APP_PHONE_CODE_ERROR = new ErrorCode(1_002_018_200, "获得手机号失败"); + ErrorCode SOCIAL_CLIENT_NOT_EXISTS = new ErrorCode(1_002_018_201, "社交客户端不存在"); + ErrorCode SOCIAL_CLIENT_UNIQUE = new ErrorCode(1_002_018_201, "社交客户端已存在配置"); + + // ========== 系统敏感词 1-002-019-000 ========= + ErrorCode SENSITIVE_WORD_NOT_EXISTS = new ErrorCode(1_002_019_000, "系统敏感词在所有标签中都不存在"); + ErrorCode SENSITIVE_WORD_EXISTS = new ErrorCode(1_002_019_001, "系统敏感词已在标签中存在"); + + // ========== OAuth2 客户端 1-002-020-000 ========= + ErrorCode OAUTH2_CLIENT_NOT_EXISTS = new ErrorCode(1_002_020_000, "OAuth2 客户端不存在"); + ErrorCode OAUTH2_CLIENT_EXISTS = new ErrorCode(1_002_020_001, "OAuth2 客户端编号已存在"); + ErrorCode OAUTH2_CLIENT_DISABLE = new ErrorCode(1_002_020_002, "OAuth2 客户端已禁用"); + ErrorCode OAUTH2_CLIENT_AUTHORIZED_GRANT_TYPE_NOT_EXISTS = new ErrorCode(1_002_020_003, "不支持该授权类型"); + ErrorCode OAUTH2_CLIENT_SCOPE_OVER = new ErrorCode(1_002_020_004, "授权范围过大"); + ErrorCode OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH = new ErrorCode(1_002_020_005, "无效 redirect_uri: {}"); + ErrorCode OAUTH2_CLIENT_CLIENT_SECRET_ERROR = new ErrorCode(1_002_020_006, "无效 client_secret: {}"); + + // ========== OAuth2 授权 1-002-021-000 ========= + ErrorCode OAUTH2_GRANT_CLIENT_ID_MISMATCH = new ErrorCode(1_002_021_000, "client_id 不匹配"); + ErrorCode OAUTH2_GRANT_REDIRECT_URI_MISMATCH = new ErrorCode(1_002_021_001, "redirect_uri 不匹配"); + ErrorCode OAUTH2_GRANT_STATE_MISMATCH = new ErrorCode(1_002_021_002, "state 不匹配"); + ErrorCode OAUTH2_GRANT_CODE_NOT_EXISTS = new ErrorCode(1_002_021_003, "code 不存在"); + + // ========== OAuth2 授权 1-002-022-000 ========= + ErrorCode OAUTH2_CODE_NOT_EXISTS = new ErrorCode(1_002_022_000, "code 不存在"); + ErrorCode OAUTH2_CODE_EXPIRE = new ErrorCode(1_002_022_001, "code 已过期"); + + // ========== 邮箱账号 1-002-023-000 ========== + ErrorCode MAIL_ACCOUNT_NOT_EXISTS = new ErrorCode(1_002_023_000, "邮箱账号不存在"); + ErrorCode MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS = new ErrorCode(1_002_023_001, "无法删除,该邮箱账号还有邮件模板"); + + // ========== 邮件模版 1-002-024-000 ========== + ErrorCode MAIL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_024_000, "邮件模版不存在"); + ErrorCode MAIL_TEMPLATE_CODE_EXISTS = new ErrorCode(1_002_024_001, "邮件模版 code({}) 已存在"); + + // ========== 邮件发送 1-002-025-000 ========== + ErrorCode MAIL_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1_002_025_000, "模板参数({})缺失"); + ErrorCode MAIL_SEND_MAIL_NOT_EXISTS = new ErrorCode(1_002_025_001, "邮箱不存在"); + + // ========== 站内信模版 1-002-026-000 ========== + ErrorCode NOTIFY_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_026_000, "站内信模版不存在"); + ErrorCode NOTIFY_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1_002_026_001, "已经存在编码为【{}】的站内信模板"); + + // ========== 站内信模版 1-002-027-000 ========== + + // ========== 站内信发送 1-002-028-000 ========== + ErrorCode NOTIFY_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1_002_028_000, "模板参数({})缺失"); + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.java new file mode 100644 index 0000000..f6120c4 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.enums.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 性别的枚举值 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum SexEnum { + + /** 男 */ + MALE(1), + /** 女 */ + FEMALE(2), + /* 未知 */ + UNKNOWN(3); + + /** + * 性别 + */ + private final Integer sex; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/errorcode/ErrorCodeTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/errorcode/ErrorCodeTypeEnum.java new file mode 100644 index 0000000..97349e7 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/errorcode/ErrorCodeTypeEnum.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.enums.errorcode; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 错误码的类型枚举 + * + * @author dylan + */ +@AllArgsConstructor +@Getter +public enum ErrorCodeTypeEnum implements IntArrayValuable { + + /** + * 自动生成 + */ + AUTO_GENERATION(1), + /** + * 手动编辑 + */ + MANUAL_OPERATION(2); + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ErrorCodeTypeEnum::getType).toArray(); + + /** + * 类型 + */ + private final Integer type; + + @Override + public int[] array() { + return ARRAYS; + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.java new file mode 100644 index 0000000..4c51f91 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.enums.logger; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 登录日志的类型枚举 + */ +@Getter +@AllArgsConstructor +public enum LoginLogTypeEnum { + + LOGIN_USERNAME(100), // 使用账号登录 + LOGIN_SOCIAL(101), // 使用社交登录 + LOGIN_MOBILE(103), // 使用手机登陆 + LOGIN_SMS(104), // 使用短信登陆 + + LOGOUT_SELF(200), // 自己主动登出 + LOGOUT_DELETE(202), // 强制退出 + ; + + /** + * 日志类型 + */ + private final Integer type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.java new file mode 100644 index 0000000..afb92e4 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.enums.logger; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 登录结果的枚举类 + */ +@Getter +@AllArgsConstructor +public enum LoginResultEnum { + + SUCCESS(0), // 成功 + BAD_CREDENTIALS(10), // 账号或密码不正确 + USER_DISABLED(20), // 用户被禁用 + CAPTCHA_NOT_FOUND(30), // 图片验证码不存在 + CAPTCHA_CODE_ERROR(31), // 图片验证码不正确 + + ; + + /** + * 结果 + */ + private final Integer result; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.java new file mode 100644 index 0000000..7cb16ed --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.enums.mail; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 邮件的发送状态枚举 + * + * @author wangjingyi + * @since 2022/4/10 13:39 + */ +@Getter +@AllArgsConstructor +public enum MailSendStatusEnum { + + INIT(0), // 初始化 + SUCCESS(10), // 发送成功 + FAILURE(20), // 发送失败 + IGNORE(30), // 忽略,即不发送 + ; + + private final int status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.java new file mode 100644 index 0000000..9a2a3c4 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.enums.notice; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 通知类型 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum NoticeTypeEnum { + + NOTICE(1), + ANNOUNCEMENT(2); + + /** + * 类型 + */ + private final Integer type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.java new file mode 100644 index 0000000..dccfb19 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.enums.notify; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 通知模板类型枚举 + * + * @author HUIHUI + */ +@Getter +@AllArgsConstructor +public enum NotifyTemplateTypeEnum { + + /** + * 系统消息 + */ + SYSTEM_MESSAGE(2), + /** + * 通知消息 + */ + NOTIFICATION_MESSAGE(1); + + private final Integer type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.java new file mode 100644 index 0000000..a123d57 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.java @@ -0,0 +1,12 @@ +package cn.iocoder.yudao.module.system.enums.oauth2; + +/** + * OAuth2.0 客户端的通用枚举 + * + * @author 芋道源码 + */ +public interface OAuth2ClientConstants { + + String CLIENT_ID_DEFAULT = "default"; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.java new file mode 100644 index 0000000..80ce461 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.enums.oauth2; + +import cn.hutool.core.util.ArrayUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * OAuth2 授权类型(模式)的枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum OAuth2GrantTypeEnum { + + PASSWORD("password"), // 密码模式 + AUTHORIZATION_CODE("authorization_code"), // 授权码模式 + IMPLICIT("implicit"), // 简化模式 + CLIENT_CREDENTIALS("client_credentials"), // 客户端模式 + REFRESH_TOKEN("refresh_token"), // 刷新模式 + ; + + private final String grantType; + + public static OAuth2GrantTypeEnum getByGranType(String grantType) { + return ArrayUtil.firstMatch(o -> o.getGrantType().equals(grantType), values()); + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.java new file mode 100644 index 0000000..6b06b06 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.enums.permission; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 数据范围枚举类 + * + * 用于实现数据级别的权限 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum DataScopeEnum implements IntArrayValuable { + + ALL(1), // 全部数据权限 + + DEPT_CUSTOM(2), // 指定部门数据权限 + DEPT_ONLY(3), // 部门数据权限 + DEPT_AND_CHILD(4), // 部门及以下数据权限 + + SELF(5); // 仅本人数据权限 + + /** + * 范围 + */ + private final Integer scope; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DataScopeEnum::getScope).toArray(); + + @Override + public int[] array() { + return ARRAYS; + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.java new file mode 100644 index 0000000..575a33c --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.enums.permission; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 菜单类型枚举类 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum MenuTypeEnum { + + DIR(1), // 目录 + MENU(2), // 菜单 + BUTTON(3) // 按钮 + ; + + /** + * 类型 + */ + private final Integer type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.java new file mode 100644 index 0000000..b13b3b7 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.enums.permission; + +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 角色标识枚举 + */ +@Getter +@AllArgsConstructor +public enum RoleCodeEnum { + + SUPER_ADMIN("super_admin", "超级管理员"), + TENANT_ADMIN("tenant_admin", "租户管理员"), + ; + + /** + * 角色编码 + */ + private final String code; + /** + * 名字 + */ + private final String name; + + public static boolean isSuperAdmin(String code) { + return ObjectUtils.equalsAny(code, SUPER_ADMIN.getCode()); + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.java new file mode 100644 index 0000000..1607b20 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.enums.permission; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum RoleTypeEnum { + + /** + * 内置角色 + */ + SYSTEM(1), + /** + * 自定义角色 + */ + CUSTOM(2); + + private final Integer type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.java new file mode 100644 index 0000000..581ee6f --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.enums.sms; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 短信的接收状态枚举 + * + * @author 芋道源码 + * @date 2021/2/1 13:39 + */ +@Getter +@AllArgsConstructor +public enum SmsReceiveStatusEnum { + + INIT(0), // 初始化 + SUCCESS(10), // 接收成功 + FAILURE(20), // 接收失败 + ; + + private final int status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java new file mode 100644 index 0000000..225685d --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.system.enums.sms; + +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 用户短信验证码发送场景的枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum SmsSceneEnum implements IntArrayValuable { + + MEMBER_LOGIN(1, "user-sms-login", "会员用户 - 手机号登陆"), + MEMBER_UPDATE_MOBILE(2, "user-update-mobile", "会员用户 - 修改手机"), + MEMBER_UPDATE_PASSWORD(3, "user-update-password", "会员用户 - 修改密码"), + MEMBER_RESET_PASSWORD(4, "user-reset-password", "会员用户 - 忘记密码"), + + ADMIN_MEMBER_LOGIN(21, "admin-sms-login", "后台用户 - 手机号登录"); + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SmsSceneEnum::getScene).toArray(); + + /** + * 验证场景的编号 + */ + private final Integer scene; + /** + * 模版编码 + */ + private final String templateCode; + /** + * 描述 + */ + private final String description; + + @Override + public int[] array() { + return ARRAYS; + } + + public static SmsSceneEnum getCodeByScene(Integer scene) { + return ArrayUtil.firstMatch(sceneEnum -> sceneEnum.getScene().equals(scene), + values()); + } + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.java new file mode 100644 index 0000000..307c9f6 --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.enums.sms; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 短信的发送状态枚举 + * + * @author zzf + * @date 2021/2/1 13:39 + */ +@Getter +@AllArgsConstructor +public enum SmsSendStatusEnum { + + INIT(0), // 初始化 + SUCCESS(10), // 发送成功 + FAILURE(20), // 发送失败 + IGNORE(30), // 忽略,即不发送 + ; + + private final int status; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.java new file mode 100644 index 0000000..d24b07a --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.enums.sms; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 短信的模板类型枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum SmsTemplateTypeEnum { + + VERIFICATION_CODE(1), // 验证码 + NOTICE(2), // 通知 + PROMOTION(3), // 营销 + ; + + /** + * 类型 + */ + private final int type; + +} diff --git a/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.java b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.java new file mode 100644 index 0000000..602eb1e --- /dev/null +++ b/yudao-module/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.system.enums.social; + +import cn.hutool.core.util.ArrayUtil; +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 社交平台的类型枚举 + * + * @author 芋道源码 + */ +@Getter +@AllArgsConstructor +public enum SocialTypeEnum implements IntArrayValuable { + + /** + * Gitee + * + * @see 接入文档 + */ + GITEE(10, "GITEE"), + /** + * 钉钉 + * + * @see 接入文档 + */ + DINGTALK(20, "DINGTALK"), + + /** + * 企业微信 + * + * @see 接入文档 + */ + WECHAT_ENTERPRISE(30, "WECHAT_ENTERPRISE"), + /** + * 微信公众平台 - 移动端 H5 + * + * @see 接入文档 + */ + WECHAT_MP(31, "WECHAT_MP"), + /** + * 微信开放平台 - 网站应用 PC 端扫码授权登录 + * + * @see 接入文档 + */ + WECHAT_OPEN(32, "WECHAT_OPEN"), + /** + * 微信小程序 + * + * @see 接入文档 + */ + WECHAT_MINI_APP(34, "WECHAT_MINI_APP"), + ; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SocialTypeEnum::getType).toArray(); + + /** + * 类型 + */ + private final Integer type; + /** + * 类型的标识 + */ + private final String source; + + @Override + public int[] array() { + return ARRAYS; + } + + public static SocialTypeEnum valueOfType(Integer type) { + return ArrayUtil.firstMatch(o -> o.getType().equals(type), values()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/pom.xml b/yudao-module/yudao-module-system-biz/pom.xml new file mode 100644 index 0000000..ab69a15 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/pom.xml @@ -0,0 +1,146 @@ + + + + cn.iocoder.boot + yudao-module + ${revision} + + 4.0.0 + yudao-module-system-biz + jar + + ${project.artifactId} + + system 模块下,我们放通用业务,支撑上层的核心业务。 + 例如说:用户、部门、权限、数据字典等等 + + + + + cn.iocoder.boot + yudao-module-system-api + ${revision} + + + cn.iocoder.boot + yudao-module-infra-api + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-operatelog + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-dict + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-data-permission + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-ip + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-validation + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-job + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + + + + + cn.iocoder.boot + yudao-spring-boot-starter-test + test + + + + + cn.iocoder.boot + yudao-spring-boot-starter-excel + + + + cn.iocoder.boot + yudao-spring-boot-starter-captcha + + + + org.springframework.boot + spring-boot-starter-mail + + + + + com.xingyuv + spring-boot-starter-justauth + + + + com.github.binarywang + wx-java-mp-spring-boot-starter + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + + + + com.aliyun + aliyun-java-sdk-core + + + com.aliyun + aliyun-java-sdk-dysmsapi + + + com.tencentcloudapi + tencentcloud-sdk-java-sms + + + + + com.jeelowcode + jeelowcode-module-api + + + + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java new file mode 100644 index 0000000..b040a75 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.api.dept; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * 部门 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class DeptApiImpl implements DeptApi { + + @Resource + private DeptService deptService; + + @Override + public DeptRespDTO getDept(Long id) { + DeptDO dept = deptService.getDept(id); + return BeanUtils.toBean(dept, DeptRespDTO.class); + } + + @Override + public List getDeptList(Collection ids) { + List depts = deptService.getDeptList(ids); + return BeanUtils.toBean(depts, DeptRespDTO.class); + } + + @Override + public void validateDeptList(Collection ids) { + deptService.validateDeptList(ids); + } + + @Override + public List getChildDeptList(Long id) { + List childDeptList = deptService.getChildDeptList(id); + return BeanUtils.toBean(childDeptList, DeptRespDTO.class); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.java new file mode 100644 index 0000000..e61b19e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.api.dept; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.dept.dto.PostRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.service.dept.PostService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * 岗位 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class PostApiImpl implements PostApi { + + @Resource + private PostService postService; + + @Override + public void validPostList(Collection ids) { + postService.validatePostList(ids); + } + + @Override + public List getPostList(Collection ids) { + List list = postService.getPostList(ids); + return BeanUtils.toBean(list, PostRespDTO.class); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java new file mode 100644 index 0000000..3d045cd --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.api.dict; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; + +/** + * 字典数据 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class DictDataApiImpl implements DictDataApi { + + @Resource + private DictDataService dictDataService; + + @Override + public void validateDictDataList(String dictType, Collection values) { + dictDataService.validateDictDataList(dictType, values); + } + + @Override + public DictDataRespDTO getDictData(String dictType, String value) { + DictDataDO dictData = dictDataService.getDictData(dictType, value); + return BeanUtils.toBean(dictData, DictDataRespDTO.class); + } + + @Override + public DictDataRespDTO parseDictData(String dictType, String label) { + DictDataDO dictData = dictDataService.parseDictData(dictType, label); + return BeanUtils.toBean(dictData, DictDataRespDTO.class); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java new file mode 100644 index 0000000..c9c5f70 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/errorcode/ErrorCodeApiImpl.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.api.errorcode; + +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; +import cn.iocoder.yudao.module.system.service.errorcode.ErrorCodeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 错误码 Api 实现类 + * + * @author 芋道源码 + */ +@Service +public class ErrorCodeApiImpl implements ErrorCodeApi { + + @Resource + private ErrorCodeService errorCodeService; + + @Override + public void autoGenerateErrorCodeList(List autoGenerateDTOs) { + errorCodeService.autoGenerateErrorCodes(autoGenerateDTOs); + } + + @Override + public List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) { + return errorCodeService.getErrorCodeList(applicationName, minUpdateTime); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java new file mode 100644 index 0000000..b5f40e0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.api.logger; + +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; +import cn.iocoder.yudao.module.system.service.logger.LoginLogService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 登录日志的 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class LoginLogApiImpl implements LoginLogApi { + + @Resource + private LoginLogService loginLogService; + + @Override + public void createLoginLog(LoginLogCreateReqDTO reqDTO) { + loginLogService.createLoginLog(reqDTO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.java new file mode 100644 index 0000000..63d561a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.system.api.logger; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; +import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.logger.OperateLogService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +/** + * 操作日志 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class OperateLogApiImpl implements OperateLogApi { + + @Resource + private OperateLogService operateLogService; + @Resource + private AdminUserService adminUserService; + + @Override + public void createOperateLog(OperateLogCreateReqDTO createReqDTO) { + operateLogService.createOperateLog(createReqDTO); + } + + @Override + @Async + public void createOperateLogV2(OperateLogV2CreateReqDTO createReqDTO) { + operateLogService.createOperateLogV2(createReqDTO); + } + + @Override + public PageResult getOperateLogPage(OperateLogV2PageReqDTO pageReqVO) { + PageResult operateLogPage = operateLogService.getOperateLogPage(pageReqVO); + if (CollUtil.isEmpty(operateLogPage.getList())) { + return PageResult.empty(); + } + + // 获取用户 + List userList = adminUserService.getUserList( + convertSet(operateLogPage.getList(), OperateLogV2DO::getUserId)); + return OperateLogConvert.INSTANCE.convertPage(operateLogPage, userList); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.java new file mode 100644 index 0000000..72d03af --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.mail; + +import cn.iocoder.yudao.module.system.api.mail.dto.MailSendSingleToUserReqDTO; +import cn.iocoder.yudao.module.system.service.mail.MailSendService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 邮件发送 API 实现类 + * + * @author wangjingyi + */ +@Service +@Validated +public class MailSendApiImpl implements MailSendApi { + + @Resource + private MailSendService mailSendService; + + @Override + public Long sendSingleMailToAdmin(MailSendSingleToUserReqDTO reqDTO) { + return mailSendService.sendSingleMailToAdmin(reqDTO.getMail(), reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + + @Override + public Long sendSingleMailToMember(MailSendSingleToUserReqDTO reqDTO) { + return mailSendService.sendSingleMailToMember(reqDTO.getMail(), reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java new file mode 100644 index 0000000..f1b0ae7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.api.notify; + +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; +import cn.iocoder.yudao.module.system.service.notify.NotifySendService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 站内信发送 API 实现类 + * + * @author xrcoder + */ +@Service +public class NotifyMessageSendApiImpl implements NotifyMessageSendApi { + + @Resource + private NotifySendService notifySendService; + + @Override + public Long sendSingleMessageToAdmin(NotifySendSingleToUserReqDTO reqDTO) { + return notifySendService.sendSingleNotifyToAdmin(reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + + @Override + public Long sendSingleMessageToMember(NotifySendSingleToUserReqDTO reqDTO) { + return notifySendService.sendSingleNotifyToMember(reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.java new file mode 100644 index 0000000..be7eba3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.api.oauth2; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO; +import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * OAuth2.0 Token API 实现类 + * + * @author 芋道源码 + */ +@Service +public class OAuth2TokenApiImpl implements OAuth2TokenApi { + + @Resource + private OAuth2TokenService oauth2TokenService; + + @Override + public OAuth2AccessTokenRespDTO createAccessToken(OAuth2AccessTokenCreateReqDTO reqDTO) { + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken( + reqDTO.getUserId(), reqDTO.getUserType(), reqDTO.getClientId(), reqDTO.getScopes()); + return BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class); + } + + @Override + public OAuth2AccessTokenCheckRespDTO checkAccessToken(String accessToken) { + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.checkAccessToken(accessToken); + return BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenCheckRespDTO.class); + } + + @Override + public OAuth2AccessTokenRespDTO removeAccessToken(String accessToken) { + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.removeAccessToken(accessToken); + return BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class); + } + + @Override + public OAuth2AccessTokenRespDTO refreshAccessToken(String refreshToken, String clientId) { + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, clientId); + return BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.java new file mode 100644 index 0000000..2539343 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.api.permission; + +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.Set; + +/** + * 权限 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class PermissionApiImpl implements PermissionApi { + + @Resource + private PermissionService permissionService; + + @Override + public Set getUserRoleIdListByRoleIds(Collection roleIds) { + return permissionService.getUserRoleIdListByRoleId(roleIds); + } + + @Override + public boolean hasAnyPermissions(Long userId, String... permissions) { + return permissionService.hasAnyPermissions(userId, permissions); + } + + @Override + public boolean hasAnyRoles(Long userId, String... roles) { + return permissionService.hasAnyRoles(userId, roles); + } + + @Override + public DeptDataPermissionRespDTO getDeptDataPermission(Long userId) { + return permissionService.getDeptDataPermission(userId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.java new file mode 100644 index 0000000..d8622a2 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.api.permission; + +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; + +/** + * 角色 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class RoleApiImpl implements RoleApi { + + @Resource + private RoleService roleService; + + @Override + public void validRoleList(Collection ids) { + roleService.validateRoleList(ids); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java new file mode 100644 index 0000000..a6d5b52 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.api.sensitiveword; + +import cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 敏感词 API 实现类 + * + * @author 永不言败 + */ +@Service +public class SensitiveWordApiImpl implements SensitiveWordApi { + + @Resource + private SensitiveWordService sensitiveWordService; + + @Override + public List validateText(String text, List tags) { + return sensitiveWordService.validateText(text, tags); + } + + @Override + public boolean isTextValid(String text, List tags) { + return sensitiveWordService.isTextValid(text, tags); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.java new file mode 100644 index 0000000..23c5e4b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.api.sms; + +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; +import cn.iocoder.yudao.module.system.service.sms.SmsCodeService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 短信验证码 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class SmsCodeApiImpl implements SmsCodeApi { + + @Resource + private SmsCodeService smsCodeService; + + @Override + public void sendSmsCode(SmsCodeSendReqDTO reqDTO) { + smsCodeService.sendSmsCode(reqDTO); + } + + @Override + public void useSmsCode(SmsCodeUseReqDTO reqDTO) { + smsCodeService.useSmsCode(reqDTO); + } + + @Override + public void validateSmsCode(SmsCodeValidateReqDTO reqDTO) { + smsCodeService.validateSmsCode(reqDTO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.java new file mode 100644 index 0000000..ee5812d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.api.sms; + +import cn.iocoder.yudao.module.system.api.sms.dto.send.SmsSendSingleToUserReqDTO; +import cn.iocoder.yudao.module.system.service.sms.SmsSendService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 短信发送 API 接口 + * + * @author 芋道源码 + */ +@Service +@Validated +public class SmsSendApiImpl implements SmsSendApi { + + @Resource + private SmsSendService smsSendService; + + @Override + public Long sendSingleSmsToAdmin(SmsSendSingleToUserReqDTO reqDTO) { + return smsSendService.sendSingleSmsToAdmin(reqDTO.getMobile(), reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + + @Override + public Long sendSingleSmsToMember(SmsSendSingleToUserReqDTO reqDTO) { + return smsSendService.sendSingleSmsToMember(reqDTO.getMobile(), reqDTO.getUserId(), + reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java new file mode 100644 index 0000000..e05251f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.system.api.social; + +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxJsapiSignatureRespDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; +import cn.iocoder.yudao.module.system.service.social.SocialClientService; +import me.chanjar.weixin.common.bean.WxJsapiSignature; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 社交应用的 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class SocialClientApiImpl implements SocialClientApi { + + @Resource + private SocialClientService socialClientService; + + @Override + public String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri) { + return socialClientService.getAuthorizeUrl(socialType, userType, redirectUri); + } + + @Override + public SocialWxJsapiSignatureRespDTO createWxMpJsapiSignature(Integer userType, String url) { + WxJsapiSignature signature = socialClientService.createWxMpJsapiSignature(userType, url); + return BeanUtils.toBean(signature, SocialWxJsapiSignatureRespDTO.class); + } + + @Override + public SocialWxPhoneNumberInfoRespDTO getWxMaPhoneNumberInfo(Integer userType, String phoneCode) { + WxMaPhoneNumberInfo info = socialClientService.getWxMaPhoneNumberInfo(userType, phoneCode); + return BeanUtils.toBean(info, SocialWxPhoneNumberInfoRespDTO.class); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java new file mode 100644 index 0000000..1892dbc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.system.api.social; + +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO; +import cn.iocoder.yudao.module.system.service.social.SocialUserService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 社交用户的 API 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class SocialUserApiImpl implements SocialUserApi { + + @Resource + private SocialUserService socialUserService; + + @Override + public String bindSocialUser(SocialUserBindReqDTO reqDTO) { + return socialUserService.bindSocialUser(reqDTO); + } + + @Override + public void unbindSocialUser(SocialUserUnbindReqDTO reqDTO) { + socialUserService.unbindSocialUser(reqDTO.getUserId(), reqDTO.getUserType(), + reqDTO.getSocialType(), reqDTO.getOpenid()); + } + + @Override + public SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType) { + return socialUserService.getSocialUserByUserId(userType, userId, socialType); + } + + @Override + public SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state) { + return socialUserService.getSocialUserByCode(userType, socialType, code, state); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.java new file mode 100644 index 0000000..25ea260 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.api.tenant; + +import cn.iocoder.yudao.module.system.service.tenant.TenantService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 多租户的 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class TenantApiImpl implements TenantApi { + + @Resource + private TenantService tenantService; + + @Override + public List getTenantIdList() { + return tenantService.getTenantIdList(); + } + + @Override + public void validateTenant(Long id) { + tenantService.validTenant(id); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java new file mode 100644 index 0000000..373e088 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java @@ -0,0 +1,91 @@ +package cn.iocoder.yudao.module.system.api.user; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +/** + * Admin 用户 API 实现类 + * + * @author 芋道源码 + */ +@Service +public class AdminUserApiImpl implements AdminUserApi { + + @Resource + private AdminUserService userService; + @Resource + private DeptService deptService; + + @Override + public AdminUserRespDTO getUser(Long id) { + AdminUserDO user = userService.getUser(id); + return BeanUtils.toBean(user, AdminUserRespDTO.class); + } + + @Override + public List getUserListBySubordinate(Long id) { + // 1.1 获取用户负责的部门 + AdminUserDO user = userService.getUser(id); + if (user == null) { + return Collections.emptyList(); + } + ArrayList deptIds = new ArrayList<>(); + DeptDO dept = deptService.getDept(user.getDeptId()); + if (dept == null) { + return Collections.emptyList(); + } + if (ObjUtil.notEqual(dept.getLeaderUserId(), id)) { // 校验为负责人 + return Collections.emptyList(); + } + deptIds.add(dept.getId()); + // 1.2 获取所有子部门 + List childDeptList = deptService.getChildDeptList(dept.getId()); + if (CollUtil.isNotEmpty(childDeptList)) { + deptIds.addAll(convertSet(childDeptList, DeptDO::getId)); + } + + // 2. 获取部门对应的用户信息 + List users = userService.getUserListByDeptIds(deptIds); + users.removeIf(item -> ObjUtil.equal(item.getId(), id)); // 排除自己 + return BeanUtils.toBean(users, AdminUserRespDTO.class); + } + + @Override + public List getUserList(Collection ids) { + List users = userService.getUserList(ids); + return BeanUtils.toBean(users, AdminUserRespDTO.class); + } + + @Override + public List getUserListByDeptIds(Collection deptIds) { + List users = userService.getUserListByDeptIds(deptIds); + return BeanUtils.toBean(users, AdminUserRespDTO.class); + } + + @Override + public List getUserListByPostIds(Collection postIds) { + List users = userService.getUserListByPostIds(postIds); + return BeanUtils.toBean(users, AdminUserRespDTO.class); + } + + @Override + public void validateUserList(Collection ids) { + userService.validateUserList(ids); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http new file mode 100644 index 0000000..00ae2ba --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http @@ -0,0 +1,33 @@ +### 请求 /login 接口 => 成功 +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenentId}} +tag: Yunai.local + +{ + "username": "admin", + "password": "admin123", + "uuid": "3acd87a09a4f48fb9118333780e94883", + "code": "1024" +} + +### 请求 /login 接口 => 成功(无验证码) +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "username": "admin", + "password": "admin123" +} + +### 请求 /get-permission-info 接口 => 成功 +GET {{baseUrl}}/system/auth/get-permission-info +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +### 请求 /list-menus 接口 => 成功 +GET {{baseUrl}}/system/list-menus +Authorization: Bearer {{token}} +#Authorization: Bearer a6aa7714a2e44c95aaa8a2c5adc2a67a +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java new file mode 100644 index 0000000..77fc37b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java @@ -0,0 +1,187 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.framework.security.config.SecurityProperties; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; +import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; +import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; +import cn.iocoder.yudao.module.system.service.permission.MenuService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import cn.iocoder.yudao.module.system.service.social.SocialClientService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 认证") +@RestController +@RequestMapping("/system/auth") +@Validated +@Slf4j +public class AuthController { + + @Resource + private AdminAuthService authService; + @Resource + private AdminUserService userService; + @Resource + private RoleService roleService; + @Resource + private MenuService menuService; + @Resource + private PermissionService permissionService; + @Resource + private SocialClientService socialClientService; + + @Resource + private SecurityProperties securityProperties; + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @PostMapping("/login") + @PermitAll + @Operation(tags = "授权管理",summary = "使用账号密码登录") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult login(@RequestBody @Valid AuthLoginReqVO reqVO) { + return success(authService.login(reqVO)); + } + + @PostMapping("/logout") + @PermitAll + @Operation(tags = "授权管理",summary = "登出系统") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult logout(HttpServletRequest request) { + Long loginUserId = getLoginUserId(); + + String token = SecurityFrameworkUtils.obtainAuthorization(request, + securityProperties.getTokenHeader(), securityProperties.getTokenParameter()); + if (StrUtil.isNotBlank(token)) { + authService.logout(token, LoginLogTypeEnum.LOGOUT_SELF.getType()); + } + //清空个人信息 + String userRedisKey="JEE_LOW_CODE:USER:"+loginUserId+":*"; + Set keys = stringRedisTemplate.keys(userRedisKey); + if(keys!=null && keys.size()>0){ + keys.forEach(key->{ + stringRedisTemplate.delete(key); + }); + } + + return success(true); + } + + @PostMapping("/refresh-token") + @PermitAll + @Operation(tags = "授权管理",summary = "刷新令牌") + @Parameter(name = "refreshToken", description = "刷新令牌", required = true) + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult refreshToken(@RequestParam("refreshToken") String refreshToken) { + return success(authService.refreshToken(refreshToken)); + } + + @GetMapping("/get-permission-info") + @Operation(tags = "授权管理",summary = "获取登录用户的权限信息") + public CommonResult getPermissionInfo() { + // 1.1 获得用户信息 + AdminUserDO user = userService.getUser(getLoginUserId()); + if (user == null) { + return null; + } + //获取所有按钮权限 + Set allButtonPermissionSets = menuService.getAllButtonPermissionSets(); + + // 1.2 获得角色列表 + Set roleIds = permissionService.getUserRoleIdListByUserId(getLoginUserId()); + if (CollUtil.isEmpty(roleIds)) { + return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList(),allButtonPermissionSets)); + } + List roles = roleService.getRoleList(roleIds); + roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); // 移除禁用的角色 + + // 1.3 获得菜单列表 + Set menuIds = permissionService.getRoleMenuListByRoleId(convertSet(roles, RoleDO::getId)); + List menuList = new ArrayList<>(); + if (!CollUtil.isEmpty(menuIds)) { + menuList = menuService.getMenuList(menuIds); + menuList.removeIf(menu -> !CommonStatusEnum.ENABLE.getStatus().equals(menu.getStatus())); // 移除禁用的菜单 + } + + // 2. 拼接结果返回 + return success(AuthConvert.INSTANCE.convert(user, roles, menuList,allButtonPermissionSets)); + } + + // ========== 短信登录相关 ========== + + @PostMapping("/sms-login") + @PermitAll + @Operation(tags = "授权管理",summary = "使用短信验证码登录") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult smsLogin(@RequestBody @Valid AuthSmsLoginReqVO reqVO) { + return success(authService.smsLogin(reqVO)); + } + + @PostMapping("/send-sms-code") + @PermitAll + @Operation(tags = "授权管理",summary = "发送手机验证码") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult sendLoginSmsCode(@RequestBody @Valid AuthSmsSendReqVO reqVO) { + + authService.sendSmsCode(reqVO); + return success(true); + } + + // ========== 社交登录相关 ========== + + @GetMapping("/social-auth-redirect") + @PermitAll + @Operation(tags = "授权管理",summary = "社交授权的跳转") + @Parameters({ + @Parameter(name = "type", description = "社交类型", required = true), + @Parameter(name = "redirectUri", description = "回调路径") + }) + public CommonResult socialLogin(@RequestParam("type") Integer type, + @RequestParam("redirectUri") String redirectUri) { + return success(socialClientService.getAuthorizeUrl( + type, UserTypeEnum.ADMIN.getValue(), redirectUri)); + } + + @PostMapping("/social-login") + @PermitAll + @Operation(tags = "授权管理",summary = "社交快捷登录,使用 code 授权码", description = "适合未登录的用户,但是社交账号已绑定用户") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult socialQuickLogin(@RequestBody @Valid AuthSocialLoginReqVO reqVO) { + return success(authService.socialLogin(reqVO)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java new file mode 100644 index 0000000..fabda70 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Pattern; + +@Schema(description = "管理后台 - 账号密码登录 Request VO,如果登录并绑定社交用户,需要传递 social 开头的参数") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthLoginReqVO { + + @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") + @NotEmpty(message = "登录账号不能为空") + @Length(min = 4, max = 16, message = "账号长度为 4-16 位") + @Pattern(regexp = "^[A-Za-z0-9_]{4,16}$", message = "账号格式为数字、字母以及下划线") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") + @NotEmpty(message = "密码不能为空") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String password; + + // ========== 图片验证码相关 ========== + + @Schema(description = "验证码,验证码开启时,需要传递", requiredMode = Schema.RequiredMode.REQUIRED, + example = "PfcH6mgr8tpXuMWFjvW6YVaqrswIuwmWI5dsVZSg7sGpWtDCUbHuDEXl3cFB1+VvCC/rAkSwK8Fad52FSuncVg==") + @NotEmpty(message = "验证码不能为空", groups = CodeEnableGroup.class) + private String captchaVerification; + + // ========== 绑定社交登录时,需要传递如下参数 ========== + + @Schema(description = "社交平台的类型,参见 SocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @InEnum(SocialTypeEnum.class) + private Integer socialType; + + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private String socialCode; + + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + private String socialState; + + /** + * 开启验证码的 Group + */ + public interface CodeEnableGroup {} + + @AssertTrue(message = "授权码不能为空") + public boolean isSocialCodeValid() { + return socialType == null || StrUtil.isNotEmpty(socialCode); + } + + @AssertTrue(message = "授权 state 不能为空") + public boolean isSocialState() { + return socialType == null || StrUtil.isNotEmpty(socialState); + } + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java new file mode 100644 index 0000000..1720d07 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 登录 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthLoginRespVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long userId; + + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "happy") + private String accessToken; + + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") + private String refreshToken; + + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java new file mode 100644 index 0000000..d310bde --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Schema(description = "管理后台 - 登录用户的菜单信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthMenuRespVO { + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private Long id; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post") + private String path; + + @Schema(description = "组件路径,仅菜单类型为菜单时,才需要传", example = "system/post/index") + private String component; + + @Schema(description = "组件名", example = "SystemUser") + private String componentName; + + @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list") + private String icon; + + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean visible; + + @Schema(description = "是否缓存", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean keepAlive; + + @Schema(description = "是否总是显示", example = "false") + private Boolean alwaysShow; + + /** + * 子路由 + */ + private List children; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java new file mode 100644 index 0000000..7f55009 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java @@ -0,0 +1,98 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +@Schema(description = "管理后台 - 登录用户的权限信息 Response VO,额外包括用户信息和角色列表") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthPermissionInfoRespVO { + + @Schema(description = "用户信息", requiredMode = Schema.RequiredMode.REQUIRED) + private UserVO user; + + @Schema(description = "角色标识数组", requiredMode = Schema.RequiredMode.REQUIRED) + private Set roles; + + @Schema(description = "操作权限数组", requiredMode = Schema.RequiredMode.REQUIRED) + private Map permissions; + + @Schema(description = "菜单树", requiredMode = Schema.RequiredMode.REQUIRED) + private List menus; + + @Schema(description = "用户信息 VO") + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class UserVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + private String nickname; + + @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.jpg") + private String avatar; + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") + private Long deptId; + + } + + @Schema(description = "管理后台 - 登录用户的菜单信息 Response VO") + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class MenuVO { + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private Long id; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post") + private String path; + + @Schema(description = "组件路径,仅菜单类型为菜单时,才需要传", example = "system/post/index") + private String component; + + @Schema(description = "组件名", example = "SystemUser") + private String componentName; + + @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list") + private String icon; + + @Schema(description = "是否可见", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean visible; + + @Schema(description = "是否缓存", requiredMode = Schema.RequiredMode.REQUIRED, example = "false") + private Boolean keepAlive; + + @Schema(description = "是否总是显示", example = "false") + private Boolean alwaysShow; + + /** + * 子路由 + */ + private List children; + + } + + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java new file mode 100644 index 0000000..51aba67 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import cn.iocoder.yudao.framework.common.validation.Mobile; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 短信验证码的登录 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthSmsLoginReqVO { + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") + @NotEmpty(message = "手机号不能为空") + @Mobile + private String mobile; + + @Schema(description = "短信验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "验证码不能为空") + private String code; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java new file mode 100644 index 0000000..18bdc81 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.framework.common.validation.Mobile; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 发送手机验证码 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthSmsSendReqVO { + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") + @NotEmpty(message = "手机号不能为空") + @Mobile + private String mobile; + + @Schema(description = "短信场景", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "发送场景不能为空") + @InEnum(SmsSceneEnum.class) + private Integer scene; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java new file mode 100644 index 0000000..1bbb67e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.auth.vo; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 社交绑定登录 Request VO,使用 code 授权码 + 账号密码") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AuthSocialLoginReqVO { + + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @InEnum(SocialTypeEnum.class) + @NotNull(message = "社交平台的类型不能为空") + private Integer type; + + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "授权码不能为空") + private String code; + + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @NotEmpty(message = "state 不能为空") + private String state; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java new file mode 100644 index 0000000..daee9f5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.controller.admin.captcha; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import com.xingyuv.captcha.model.common.ResponseModel; +import com.xingyuv.captcha.model.vo.CaptchaVO; +import com.xingyuv.captcha.service.CaptchaService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletRequest; + +@Tag(name = "管理后台 - 验证码") +@RestController("adminCaptchaController") +@RequestMapping("/system/captcha") +public class CaptchaController { + + @Resource + private CaptchaService captchaService; + + @PostMapping({"/get"}) + @Operation(tags = "验证码管理",summary = "获得验证码") + @PermitAll + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) { + assert request.getRemoteHost() != null; + data.setBrowserInfo(getRemoteId(request)); + return captchaService.get(data); + } + + @PostMapping("/check") + @Operation(tags = "验证码管理",summary = "校验验证码") + @PermitAll + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) { + data.setBrowserInfo(getRemoteId(request)); + return captchaService.check(data); + } + + public static String getRemoteId(HttpServletRequest request) { + String ip = ServletUtils.getClientIP(request); + String ua = request.getHeader("user-agent"); + if (StrUtil.isNotBlank(ip)) { + return ip + ua; + } + return request.getRemoteAddr() + ua; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java new file mode 100644 index 0000000..4001209 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 部门") +@RestController +@RequestMapping("/system/dept") +@Validated +public class DeptController { + + @Resource + private DeptService deptService; + + @PostMapping("create") + @Operation(tags = "部门管理",summary = "创建部门") + @PreAuthorize("@ss.hasPermission('system:dept:create')") + public CommonResult createDept(@Valid @RequestBody DeptSaveReqVO createReqVO) { + Long deptId = deptService.createDept(createReqVO); + return success(deptId); + } + + @PutMapping("update") + @Operation(tags = "部门管理",summary = "更新部门") + @PreAuthorize("@ss.hasPermission('system:dept:update')") + public CommonResult updateDept(@Valid @RequestBody DeptSaveReqVO updateReqVO) { + deptService.updateDept(updateReqVO); + return success(true); + } + + @DeleteMapping("delete") + @Operation(tags = "部门管理",summary = "删除部门") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dept:delete')") + public CommonResult deleteDept(@RequestParam("id") Long id) { + deptService.deleteDept(id); + return success(true); + } + + @GetMapping("/list") + @Operation(tags = "部门管理",summary = "获取部门列表") + @PreAuthorize("@ss.hasPermission('system:dept:query')") + public CommonResult> getDeptList(DeptListReqVO reqVO) { + List list = deptService.getDeptList(reqVO); + return success(BeanUtils.toBean(list, DeptRespVO.class)); + } + + @GetMapping(value = {"/list-all-simple", "/simple-list"}) + @Operation(tags = "部门管理",summary = "获取部门精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项") + public CommonResult> getSimpleDeptList() { + List list = deptService.getDeptList( + new DeptListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus())); + return success(BeanUtils.toBean(list, DeptSimpleRespVO.class)); + } + + @GetMapping("/get") + @Operation(tags = "部门管理",summary = "获得部门信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dept:query')") + public CommonResult getDept(@RequestParam("id") Long id) { + DeptDO dept = deptService.getDept(id); + return success(BeanUtils.toBean(dept, DeptRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java new file mode 100644 index 0000000..6998b33 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.service.dept.PostService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 岗位") +@RestController +@RequestMapping("/system/post") +@Validated +public class PostController { + + @Resource + private PostService postService; + + @PostMapping("/create") + @Operation(tags = "岗位管理",summary = "创建岗位") + @PreAuthorize("@ss.hasPermission('system:post:create')") + public CommonResult createPost(@Valid @RequestBody PostSaveReqVO createReqVO) { + Long postId = postService.createPost(createReqVO); + return success(postId); + } + + @PutMapping("/update") + @Operation(tags = "岗位管理",summary = "修改岗位") + @PreAuthorize("@ss.hasPermission('system:post:update')") + public CommonResult updatePost(@Valid @RequestBody PostSaveReqVO updateReqVO) { + postService.updatePost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "岗位管理",summary = "删除岗位") + @PreAuthorize("@ss.hasPermission('system:post:delete')") + public CommonResult deletePost(@RequestParam("id") Long id) { + postService.deletePost(id); + return success(true); + } + + @GetMapping(value = "/get") + @Operation(tags = "岗位管理",summary = "获得岗位信息") + @Parameter(name = "id", description = "岗位编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:post:query')") + public CommonResult getPost(@RequestParam("id") Long id) { + PostDO post = postService.getPost(id); + return success(BeanUtils.toBean(post, PostRespVO.class)); + } + + @GetMapping(value = {"/list-all-simple", "simple-list"}) + @Operation(tags = "岗位管理",summary = "获取岗位全列表", description = "只包含被开启的岗位,主要用于前端的下拉选项") + public CommonResult> getSimplePostList() { + // 获得岗位列表,只要开启状态的 + List list = postService.getPostList(null, Collections.singleton(CommonStatusEnum.ENABLE.getStatus())); + // 排序后,返回给前端 + list.sort(Comparator.comparing(PostDO::getSort)); + return success(BeanUtils.toBean(list, PostSimpleRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "岗位管理",summary = "获得岗位分页列表") + @PreAuthorize("@ss.hasPermission('system:post:query')") + public CommonResult> getPostPage(@Validated PostPageReqVO pageReqVO) { + PageResult pageResult = postService.getPostPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PostRespVO.class)); + } + + @GetMapping("/export") + @Operation(tags = "岗位管理",summary = "岗位管理") + @PreAuthorize("@ss.hasPermission('system:post:export')") + @OperateLog(type = EXPORT) + public void export(HttpServletResponse response, @Validated PostPageReqVO reqVO) throws IOException { + reqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = postService.getPostPage(reqVO).getList(); + // 输出 + ExcelUtils.write(response, "岗位数据.xls", "岗位列表", PostRespVO.class, + BeanUtils.toBean(list, PostRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java new file mode 100644 index 0000000..131686f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 部门列表 Request VO") +@Data +public class DeptListReqVO { + + @Schema(description = "部门名称,模糊匹配", example = "芋道") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java new file mode 100644 index 0000000..777cb75 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 部门信息 Response VO") +@Data +public class DeptRespVO { + + @Schema(description = "部门编号", example = "1024") + private Long id; + + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "父部门 ID", example = "1024") + private Long parentId; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer sort; + + @Schema(description = "负责人的用户编号", example = "2048") + private Long leaderUserId; + + @Schema(description = "联系电话", example = "15601691000") + private String phone; + + @Schema(description = "邮箱", example = "yudao@iocoder.cn") + private String email; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java new file mode 100644 index 0000000..fb9f298 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 部门创建/修改 Request VO") +@Data +public class DeptSaveReqVO { + + @Schema(description = "部门编号", example = "1024") + private Long id; + + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotBlank(message = "部门名称不能为空") + @Size(max = 30, message = "部门名称长度不能超过 30 个字符") + private String name; + + @Schema(description = "父部门 ID", example = "1024") + private Long parentId; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "负责人的用户编号", example = "2048") + private Long leaderUserId; + + @Schema(description = "联系电话", example = "15601691000") + @Size(max = 11, message = "联系电话长度不能超过11个字符") + private String phone; + + @Schema(description = "邮箱", example = "yudao@iocoder.cn") + @Email(message = "邮箱格式不正确") + @Size(max = 50, message = "邮箱长度不能超过 50 个字符") + private String email; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java new file mode 100644 index 0000000..31c15d5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 部门精简信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DeptSimpleRespVO { + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "父部门 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.java new file mode 100644 index 0000000..78f306e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "管理后台 - 岗位分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class PostPageReqVO extends PageParam { + + @Schema(description = "岗位编码,模糊匹配", example = "yudao") + private String code; + + @Schema(description = "岗位名称,模糊匹配", example = "芋道") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java new file mode 100644 index 0000000..a037a13 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 岗位信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PostRespVO { + + @Schema(description = "岗位序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("岗位序号") + private Long id; + + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小土豆") + @ExcelProperty("岗位名称") + private String name; + + @Schema(description = "岗位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @ExcelProperty("岗位编码") + private String code; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("岗位排序") + private Integer sort; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "备注", example = "快乐的备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java new file mode 100644 index 0000000..b8d3c24 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 岗位创建/修改 Request VO") +@Data +public class PostSaveReqVO { + + @Schema(description = "岗位编号", example = "1024") + private Long id; + + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小土豆") + @NotBlank(message = "岗位名称不能为空") + @Size(max = 50, message = "岗位名称长度不能超过 50 个字符") + private String name; + + @Schema(description = "岗位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotBlank(message = "岗位编码不能为空") + @Size(max = 64, message = "岗位编码长度不能超过64个字符") + private String code; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @InEnum(CommonStatusEnum.class) + private Integer status; + + @Schema(description = "备注", example = "快乐的备注") + private String remark; + +} \ No newline at end of file diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java new file mode 100644 index 0000000..72852a1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 岗位信息的精简 Response VO") +@Data +public class PostSimpleRespVO { + + @Schema(description = "岗位序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("岗位序号") + private Long id; + + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小土豆") + @ExcelProperty("岗位名称") + private String name; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http new file mode 100644 index 0000000..f524315 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http @@ -0,0 +1,4 @@ +### 请求 /menu/list 接口 => 成功 +GET {{baseUrl}}/system/dict-data/list-all-simple +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java new file mode 100644 index 0000000..a1ff55e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 字典数据") +@RestController +@RequestMapping("/system/dict-data") +@Validated +public class DictDataController { + + @Resource + private DictDataService dictDataService; + + @PostMapping("/create") + @Operation(tags = "字典管理",summary = "新增字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:create')") + public CommonResult createDictData(@Valid @RequestBody DictDataSaveReqVO createReqVO) { + Long dictDataId = dictDataService.createDictData(createReqVO); + return success(dictDataId); + } + + @PutMapping("/update") + @Operation(tags = "字典管理",summary = "修改字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictData(@Valid @RequestBody DictDataSaveReqVO updateReqVO) { + dictDataService.updateDictData(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "字典管理",summary = "删除字典数据") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dict:delete')") + public CommonResult deleteDictData(Long id) { + dictDataService.deleteDictData(id); + return success(true); + } + + @GetMapping(value = {"/list-all-simple", "simple-list"}) + @Operation(tags = "字典管理",summary = "获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地") + // 无需添加权限认证,因为前端全局都需要 + public CommonResult> getSimpleDictDataList() { + List list = dictDataService.getDictDataList( + CommonStatusEnum.ENABLE.getStatus(), null); + return success(BeanUtils.toBean(list, DictDataSimpleRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "字典管理",summary = "/获得字典类型的分页列表") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult> getDictTypePage(@Valid DictDataPageReqVO pageReqVO) { + PageResult pageResult = dictDataService.getDictDataPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DictDataRespVO.class)); + } + + @GetMapping(value = "/get") + @Operation(tags = "字典管理",summary = "/查询字典数据详细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult getDictData(@RequestParam("id") Long id) { + DictDataDO dictData = dictDataService.getDictData(id); + return success(BeanUtils.toBean(dictData, DictDataRespVO.class)); + } + + @GetMapping("/export") + @Operation(tags = "字典管理",summary = "导出字典数据") + @PreAuthorize("@ss.hasPermission('system:dict:export')") + @OperateLog(type = EXPORT) + public void export(HttpServletResponse response, @Valid DictDataPageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = dictDataService.getDictDataPage(exportReqVO).getList(); + // 输出 + ExcelUtils.write(response, "字典数据.xls", "数据", DictDataRespVO.class, + BeanUtils.toBean(list, DictDataRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.java new file mode 100644 index 0000000..9247d0e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; +import cn.iocoder.yudao.module.system.service.dict.DictTypeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 字典类型") +@RestController +@RequestMapping("/system/dict-type") +@Validated +public class DictTypeController { + + @Resource + private DictTypeService dictTypeService; + + @PostMapping("/create") + @Operation(tags = "字典管理",summary = "创建字典类型") + @PreAuthorize("@ss.hasPermission('system:dict:create')") + public CommonResult createDictType(@Valid @RequestBody DictTypeSaveReqVO createReqVO) { + Long dictTypeId = dictTypeService.createDictType(createReqVO); + return success(dictTypeId); + } + + @PutMapping("/update") + @Operation(tags = "字典管理",summary = "修改字典类型") + @PreAuthorize("@ss.hasPermission('system:dict:update')") + public CommonResult updateDictType(@Valid @RequestBody DictTypeSaveReqVO updateReqVO) { + dictTypeService.updateDictType(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "字典管理",summary = "删除字典类型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dict:delete')") + public CommonResult deleteDictType(Long id) { + dictTypeService.deleteDictType(id); + return success(true); + } + + @GetMapping("/page") + @Operation(tags = "字典管理",summary = "获得字典类型的分页列表") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult> pageDictTypes(@Valid DictTypePageReqVO pageReqVO) { + PageResult pageResult = dictTypeService.getDictTypePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DictTypeRespVO.class)); + } + + @Operation(tags = "字典管理",summary = "/查询字典类型详细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @GetMapping(value = "/get") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + public CommonResult getDictType(@RequestParam("id") Long id) { + DictTypeDO dictType = dictTypeService.getDictType(id); + return success(BeanUtils.toBean(dictType, DictTypeRespVO.class)); + } + + @GetMapping(value = {"/list-all-simple", "simple-list"}) + @Operation(tags = "字典管理",summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项") + // 无需添加权限认证,因为前端全局都需要 + public CommonResult> getSimpleDictTypeList() { + List list = dictTypeService.getDictTypeList(); + return success(BeanUtils.toBean(list, DictTypeSimpleRespVO.class)); + } + + @Operation(tags = "字典管理",summary = "导出数据类型") + @GetMapping("/export") + @PreAuthorize("@ss.hasPermission('system:dict:query')") + @OperateLog(type = EXPORT) + public void export(HttpServletResponse response, @Valid DictTypePageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = dictTypeService.getDictTypePage(exportReqVO).getList(); + // 导出 + ExcelUtils.write(response, "字典类型.xls", "数据", DictTypeRespVO.class, + BeanUtils.toBean(list, DictTypeRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java new file mode 100644 index 0000000..d9bd14a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 字典类型分页列表 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class DictDataPageReqVO extends PageParam { + + @Schema(description = "字典标签", example = "芋道") + @Size(max = 100, message = "字典标签长度不能超过100个字符") + private String label; + + @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex") + @Size(max = 100, message = "字典类型类型长度不能超过100个字符") + private String dictType; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java new file mode 100644 index 0000000..e0b940a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 字典数据信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DictDataRespVO { + + @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("字典编码") + private Long id; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("字典排序") + private Integer sort; + + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @ExcelProperty("字典标签") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "iocoder") + @ExcelProperty("字典键值") + private String value; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + @ExcelProperty("字典类型") + private String dictType; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") + private String colorType; + + @Schema(description = "css 样式", example = "btn-visible") + private String cssClass; + + @Schema(description = "备注", example = "我是一个角色") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java new file mode 100644 index 0000000..4f35087 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 字典数据创建/修改 Request VO") +@Data +public class DictDataSaveReqVO { + + @Schema(description = "字典数据编号", example = "1024") + private Long id; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotBlank(message = "字典标签不能为空") + @Size(max = 100, message = "字典标签长度不能超过100个字符") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "iocoder") + @NotBlank(message = "字典键值不能为空") + @Size(max = 100, message = "字典键值长度不能超过100个字符") + private String value; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + @NotBlank(message = "字典类型不能为空") + @Size(max = 100, message = "字典类型长度不能超过100个字符") + private String dictType; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + + @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") + private String colorType; + + @Schema(description = "css 样式", example = "btn-visible") + private String cssClass; + + @Schema(description = "备注", example = "我是一个角色") + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java new file mode 100644 index 0000000..d1497c3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 数据字典精简 Response VO") +@Data +public class DictDataSimpleRespVO { + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "gender") + private String dictType; + + @Schema(description = "字典键值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String value; + + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "男") + private String label; + + @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") + private String colorType; + + @Schema(description = "css 样式", example = "btn-visible") + private String cssClass; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java new file mode 100644 index 0000000..80fde2e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.Size; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 字典类型分页列表 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class DictTypePageReqVO extends PageParam { + + @Schema(description = "字典类型名称,模糊匹配", example = "芋道") + private String name; + + @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex") + @Size(max = 100, message = "字典类型类型长度不能超过100个字符") + private String type; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java new file mode 100644 index 0000000..6ddd47b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 字典类型信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DictTypeRespVO { + + @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("字典主键") + private Long id; + + @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") + @ExcelProperty("字典名称") + private String name; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + @ExcelProperty("字典类型") + private String type; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "备注", example = "快乐的备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java new file mode 100644 index 0000000..c506c08 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 字典类型创建/修改 Request VO") +@Data +public class DictTypeSaveReqVO { + + @Schema(description = "字典类型编号", example = "1024") + private Long id; + + @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") + @NotBlank(message = "字典名称不能为空") + @Size(max = 100, message = "字典类型名称长度不能超过100个字符") + private String name; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + @NotNull(message = "字典类型不能为空") + @Size(max = 100, message = "字典类型类型长度不能超过 100 个字符") + private String type; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "快乐的备注") + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java new file mode 100644 index 0000000..f3e717d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 字典类型精简信息 Response VO") +@Data +public class DictTypeSimpleRespVO { + + @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "字典类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + private String type; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.http new file mode 100644 index 0000000..06b8723 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.http @@ -0,0 +1,13 @@ +### 创建错误码 +POST {{baseUrl}}/inra/error-code/create +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "code": 200, + "message": "成功", + "group": "test", + "type": 1 +} + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.java new file mode 100644 index 0000000..e89ec99 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/ErrorCodeController.java @@ -0,0 +1,91 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorcode; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; +import cn.iocoder.yudao.module.system.service.errorcode.ErrorCodeService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 错误码") +@RestController +@RequestMapping("/system/error-code") +@Validated +public class ErrorCodeController { + + @Resource + private ErrorCodeService errorCodeService; + + @PostMapping("/create") + @Operation(tags = "错误码管理",summary = "创建错误码") + @PreAuthorize("@ss.hasPermission('system:error-code:create')") + public CommonResult createErrorCode(@Valid @RequestBody ErrorCodeSaveReqVO createReqVO) { + return success(errorCodeService.createErrorCode(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "错误码管理",summary = "更新错误码") + @PreAuthorize("@ss.hasPermission('system:error-code:update')") + public CommonResult updateErrorCode(@Valid @RequestBody ErrorCodeSaveReqVO updateReqVO) { + errorCodeService.updateErrorCode(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "错误码管理",summary = "删除错误码") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:error-code:delete')") + public CommonResult deleteErrorCode(@RequestParam("id") Long id) { + errorCodeService.deleteErrorCode(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "错误码管理",summary = "获得错误码") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:error-code:query')") + public CommonResult getErrorCode(@RequestParam("id") Long id) { + ErrorCodeDO errorCode = errorCodeService.getErrorCode(id); + return success(BeanUtils.toBean(errorCode, ErrorCodeRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "错误码管理",summary = "获得错误码分页") + @PreAuthorize("@ss.hasPermission('system:error-code:query')") + public CommonResult> getErrorCodePage(@Valid ErrorCodePageReqVO pageVO) { + PageResult pageResult = errorCodeService.getErrorCodePage(pageVO); + return success(BeanUtils.toBean(pageResult, ErrorCodeRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "错误码管理",summary = "导出错误码 Excel") + @PreAuthorize("@ss.hasPermission('system:error-code:export')") + @OperateLog(type = EXPORT) + public void exportErrorCodeExcel(@Valid ErrorCodePageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = errorCodeService.getErrorCodePage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "错误码.xls", "数据", ErrorCodeRespVO.class, + BeanUtils.toBean(list, ErrorCodeRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java new file mode 100644 index 0000000..ba565d9 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 错误码分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ErrorCodePageReqVO extends PageParam { + + @Schema(description = "错误码类型,参见 ErrorCodeTypeEnum 枚举类", example = "1") + private Integer type; + + @Schema(description = "应用名", example = "dashboard") + private String applicationName; + + @Schema(description = "错误码编码", example = "1234") + private Integer code; + + @Schema(description = "错误码错误提示", example = "帅气") + private String message; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java new file mode 100644 index 0000000..67199c6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 错误码 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ErrorCodeRespVO { + + @Schema(description = "错误码编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("错误码编号") + private Long id; + + @Schema(description = "错误码类型,参见 ErrorCodeTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "错误码类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.ERROR_CODE_TYPE) + private Integer type; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") + @ExcelProperty("应用名") + private String applicationName; + + @Schema(description = "错误码编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1234") + @ExcelProperty("错误码编码") + private Integer code; + + @Schema(description = "错误码错误提示", requiredMode = Schema.RequiredMode.REQUIRED, example = "帅气") + @ExcelProperty("错误码错误提示") + private String message; + + @Schema(description = "备注", example = "哈哈哈") + @ExcelProperty("备注") + private String memo; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeSaveReqVO.java new file mode 100644 index 0000000..d8b6b21 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/errorcode/vo/ErrorCodeSaveReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.errorcode.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 错误码创建/修改 Request VO") +@Data +public class ErrorCodeSaveReqVO { + + @Schema(description = "错误码编号", example = "1024") + private Long id; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard") + @NotNull(message = "应用名不能为空") + private String applicationName; + + @Schema(description = "错误码编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1234") + @NotNull(message = "错误码编码不能为空") + private Integer code; + + @Schema(description = "错误码错误提示", requiredMode = Schema.RequiredMode.REQUIRED, example = "帅气") + @NotNull(message = "错误码错误提示不能为空") + private String message; + + @Schema(description = "备注", example = "哈哈哈") + private String memo; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http new file mode 100644 index 0000000..f1b893d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http @@ -0,0 +1,5 @@ +### 获得地区树 +GET {{baseUrl}}/system/area/tree +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java new file mode 100644 index 0000000..a7d549d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.system.controller.admin.ip; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.ip.core.Area; +import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; +import cn.iocoder.yudao.framework.ip.core.utils.IPUtils; +import cn.iocoder.yudao.module.system.controller.admin.ip.vo.AreaNodeRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import javax.validation.constraints.Pattern; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 地区") +@RestController +@RequestMapping("/system/area") +@Validated +public class AreaController { + + @GetMapping("/tree") + @Operation(tags = "地区管理",summary = "获得地区树") + public CommonResult> getAreaTree() { + Area area = AreaUtils.getArea(Area.ID_CHINA); + Assert.notNull(area, "获取不到中国"); + return success(BeanUtils.toBean(area.getChildren(), AreaNodeRespVO.class)); + } + + @GetMapping("/get-by-ip") + @Operation(tags = "地区管理",summary = "获得 IP 对应的地区名") + @Parameter(name = "ip", description = "IP", required = true) + public CommonResult getAreaByIp( + @Valid + @Pattern(regexp = "^(?:(\\\\d{1,2}|1\\\\d{2}|2[0-4]\\\\d|25[0-5])\\\\.){3}(\\\\d{1,2}|1\\\\d{2}|2[0-4]\\\\d|25[0-5])$", message = "ip格式不正确") + @RequestParam("ip") + String ip) { + // 获得城市 + Area area = IPUtils.getArea(ip); + if (area == null) { + return success("未知"); + } + // 格式化返回 + return success(AreaUtils.format(area.getId())); + } + + //------------------ jeelowcode -------------------- + @GetMapping("/tree-by-id") + @Operation(tags = "地区管理",summary = "获得地区树") + public CommonResult> getAreaTreeById(Integer pid) { + Area area = AreaUtils.getArea(pid); + Assert.notNull(area, "获取不到中国"); + + List resultList=new ArrayList<>(); + List children = area.getChildren(); + for(Area areaTmp:children){ + AreaNodeRespVO areaVo=new AreaNodeRespVO(); + areaVo.setId(areaTmp.getId()); + areaVo.setName(areaTmp.getName()); + areaVo.setLeaf(CollectionUtil.isEmpty(areaTmp.getChildren())); + resultList.add(areaVo); + } + return success(resultList); + } + + @PostMapping("/view-parent-list") + @Operation(tags = "地区管理",summary = "获取所有父级") + public CommonResult>> viewParentList(@RequestBody List idList) { + Map> resultMap=new HashMap<>(); + for(Integer id:idList){ + List areaList = AreaUtils.getAllParentList(id); + + resultMap.put(id,BeanUtils.toBean(areaList, AreaNodeRespVO.class)); + } + return success(resultMap); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java new file mode 100644 index 0000000..d93a7cc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.controller.admin.ip.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "管理后台 - 地区节点 Response VO") +@Data +public class AreaNodeRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000") + private Integer id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") + private String name; + + //是否有下级,true=没有下级 false=有下级 + private boolean leaf; + + /** + * 子节点 + */ + private List children; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.java new file mode 100644 index 0000000..ec00c7f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO; +import cn.iocoder.yudao.module.system.service.logger.LoginLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 登录日志") +@RestController +@RequestMapping("/system/login-log") +@Validated +public class LoginLogController { + + @Resource + private LoginLogService loginLogService; + + @GetMapping("/page") + @Operation(tags = "审查日志",summary = "获得登录日志分页列表") + @PreAuthorize("@ss.hasPermission('system:login-log:query')") + public CommonResult> getLoginLogPage(@Valid LoginLogPageReqVO pageReqVO) { + PageResult pageResult = loginLogService.getLoginLogPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, LoginLogRespVO.class)); + } + + @GetMapping("/export") + @Operation(tags = "审查日志",summary = "导出登录日志 Excel") + @PreAuthorize("@ss.hasPermission('system:login-log:export')") + @OperateLog(type = EXPORT) + public void exportLoginLog(HttpServletResponse response, @Valid LoginLogPageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = loginLogService.getLoginLogPage(exportReqVO).getList(); + // 输出 + ExcelUtils.write(response, "登录日志.xls", "数据列表", LoginLogRespVO.class, + BeanUtils.toBean(list, LoginLogRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http new file mode 100644 index 0000000..f667482 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http @@ -0,0 +1,4 @@ +### 请求 /system/operate-log/demo 接口 => 成功 +GET {{baseUrl}}/system/operate-log/demo +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.java new file mode 100644 index 0000000..9ae64de --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; +import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.logger.OperateLogService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 操作日志") +@RestController +@RequestMapping("/system/operate-log") +@Validated +public class OperateLogController { + + @Resource + private OperateLogService operateLogService; + @Resource + private AdminUserService userService; + + @GetMapping("/page") + @Operation(tags = "审查日志",summary = "查看操作日志分页列表") + @PreAuthorize("@ss.hasPermission('system:operate-log:query')") + public CommonResult> pageOperateLog(@Valid OperateLogPageReqVO pageReqVO) { + PageResult pageResult = operateLogService.getOperateLogPage(pageReqVO); + // 获得拼接需要的数据 + Map userMap = userService.getUserMap( + convertList(pageResult.getList(), OperateLogDO::getUserId)); + return success(new PageResult<>(OperateLogConvert.INSTANCE.convertList(pageResult.getList(), userMap), + pageResult.getTotal())); + } + + @Operation(tags = "审查日志",summary = "导出操作日志") + @GetMapping("/export") + @PreAuthorize("@ss.hasPermission('system:operate-log:export')") + @OperateLog(type = EXPORT) + public void exportOperateLog(HttpServletResponse response, @Valid OperateLogPageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = operateLogService.getOperateLogPage(exportReqVO).getList(); + // 输出 + Map userMap = userService.getUserMap( + convertList(list, OperateLogDO::getUserId)); + ExcelUtils.write(response, "操作日志.xls", "数据列表", OperateLogRespVO.class, + OperateLogConvert.INSTANCE.convertList(list, userMap)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java new file mode 100644 index 0000000..3269344 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 登录日志分页列表 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class LoginLogPageReqVO extends PageParam { + + @Schema(description = "用户 IP,模拟匹配", example = "127.0.0.1") + private String userIp; + + @Schema(description = "用户账号,模拟匹配", example = "芋道") + private String username; + + @Schema(description = "操作状态", example = "true") + private Boolean status; + + @Schema(description = "登录结果") + private Integer result; + + @Schema(description = "登录时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java new file mode 100644 index 0000000..7b9cd16 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 登录日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class LoginLogRespVO { + + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("日志主键") + private Long id; + + @Schema(description = "日志类型,参见 LoginLogTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "日志类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.LOGIN_TYPE) + private Integer logType; + + @Schema(description = "用户编号", example = "666") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer userType; + + @Schema(description = "链路追踪编号", example = "89aca178-a370-411c-ae02-3f0d672be4ab") + private String traceId; + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @ExcelProperty("用户账号") + private String username; + + @Schema(description = "登录结果,参见 LoginResultEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "登录结果", converter = DictConvert.class) + @DictFormat(DictTypeConstants.LOGIN_RESULT) + private Integer result; + + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") + @ExcelProperty("登录 IP") + private String userIp; + + @Schema(description = "浏览器 UserAgent", example = "Mozilla/5.0") + @ExcelProperty("浏览器 UA") + private String userAgent; + + @Schema(description = "登录时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("登录时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java new file mode 100644 index 0000000..5c1742e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 操作日志分页列表 Request VO") +@Data +public class OperateLogPageReqVO extends PageParam { + + @Schema(description = "操作模块,模拟匹配", example = "订单") + private String module; + + @Schema(description = "用户昵称,模拟匹配", example = "芋道") + private String userNickname; + + @Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", example = "1") + private Integer type; + + @Schema(description = "操作状态", example = "true") + private Boolean success; + + @Schema(description = "开始时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] startTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java new file mode 100644 index 0000000..3de8d66 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.time.LocalDateTime; +import java.util.Map; + +@Schema(description = "管理后台 - 操作日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class OperateLogRespVO { + + @Schema(description = "日志编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("日志编号") + private Long id; + + @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "89aca178-a370-411c-ae02-3f0d672be4ab") + private String traceId; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long userId; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("操作人") + private String userNickname; + + @Schema(description = "操作模块", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单") + @ExcelProperty("操作模块") + private String module; + + @Schema(description = "操作名", requiredMode = Schema.RequiredMode.REQUIRED, example = "创建订单") + @ExcelProperty("操作名") + private String name; + + @Schema(description = "操作分类,参见 OperateLogTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "操作类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.OPERATE_TYPE) + private Integer type; + + @Schema(description = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。") + private String content; + + @Schema(description = "拓展字段", example = "{'orderId': 1}") + private Map exts; + + @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET") + @NotEmpty(message = "请求方法名不能为空") + private String requestMethod; + + @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy") + private String requestUrl; + + @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1") + private String userIp; + + @Schema(description = "浏览器 UserAgent", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0") + private String userAgent; + + @Schema(description = "Java 方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "cn.iocoder.yudao.adminserver.UserController.save(...)") + private String javaMethod; + + @Schema(description = "Java 方法的参数") + private String javaMethodArgs; + + @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("操作日志") + private LocalDateTime startTime; + + @Schema(description = "执行时长,单位:毫秒", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("执行时长") + private Integer duration; + + @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty(value = "结果码") + private Integer resultCode; + + @Schema(description = "结果提示") + private String resultMsg; + + @Schema(description = "结果数据") + private String resultData; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java new file mode 100644 index 0000000..dbd6331 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail; + + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountRespVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import cn.iocoder.yudao.module.system.service.mail.MailAccountService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 邮箱账号") +@RestController +@RequestMapping("/system/mail-account") +public class MailAccountController { + + @Resource + private MailAccountService mailAccountService; + + @PostMapping("/create") + @Operation(tags = "邮箱管理",summary = "创建邮箱账号") + @PreAuthorize("@ss.hasPermission('system:mail-account:create')") + public CommonResult createMailAccount(@Valid @RequestBody MailAccountSaveReqVO createReqVO) { + return success(mailAccountService.createMailAccount(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "邮箱管理",summary = "修改邮箱账号") + @PreAuthorize("@ss.hasPermission('system:mail-account:update')") + public CommonResult updateMailAccount(@Valid @RequestBody MailAccountSaveReqVO updateReqVO) { + mailAccountService.updateMailAccount(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "邮箱管理",summary = "删除邮箱账号") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:mail-account:delete')") + public CommonResult deleteMailAccount(@RequestParam Long id) { + mailAccountService.deleteMailAccount(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "邮箱管理",summary = "获得邮箱账号") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:mail-account:get')") + public CommonResult getMailAccount(@RequestParam("id") Long id) { + MailAccountDO account = mailAccountService.getMailAccount(id); + return success(BeanUtils.toBean(account, MailAccountRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "邮箱管理",summary = "获得邮箱账号分页") + @PreAuthorize("@ss.hasPermission('system:mail-account:query')") + public CommonResult> getMailAccountPage(@Valid MailAccountPageReqVO pageReqVO) { + PageResult pageResult = mailAccountService.getMailAccountPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MailAccountRespVO.class)); + } + + @GetMapping({"/list-all-simple", "simple-list"}) + @Operation(tags = "邮箱管理",summary = "获得邮箱账号精简列表") + public CommonResult> getSimpleMailAccountList() { + List list = mailAccountService.getMailAccountList(); + return success(BeanUtils.toBean(list, MailAccountSimpleRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.java new file mode 100644 index 0000000..2cfc155 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; +import cn.iocoder.yudao.module.system.service.mail.MailLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 邮件日志") +@RestController +@RequestMapping("/system/mail-log") +public class MailLogController { + + @Resource + private MailLogService mailLogService; + + @GetMapping("/page") + @Operation(tags = "邮箱管理",summary = "获得邮箱日志分页") + @PreAuthorize("@ss.hasPermission('system:mail-log:query')") + public CommonResult> getMailLogPage(@Valid MailLogPageReqVO pageVO) { + PageResult pageResult = mailLogService.getMailLogPage(pageVO); + return success(BeanUtils.toBean(pageResult, MailLogRespVO.class)); + } + + @GetMapping("/get") + @Operation(tags = "邮箱管理",summary = "获得邮箱日志") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:mail-log:query')") + public CommonResult getMailTemplate(@RequestParam("id") Long id) { + MailLogDO log = mailLogService.getMailLog(id); + return success(BeanUtils.toBean(log, MailLogRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http new file mode 100644 index 0000000..f3c47f5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http @@ -0,0 +1,14 @@ +### 请求 /system/mail-template/send-mail 接口 => 成功 +POST {{baseUrl}}/system/mail-template/send-mail +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "templateCode": "test_01", + "mail": "7685413@qq.com", + "templateParams": { + "key01": "value01", + "key02": "value02" + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java new file mode 100644 index 0000000..2573f05 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.*; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import cn.iocoder.yudao.module.system.service.mail.MailSendService; +import cn.iocoder.yudao.module.system.service.mail.MailTemplateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 邮件模版") +@RestController +@RequestMapping("/system/mail-template") +public class MailTemplateController { + + @Resource + private MailTemplateService mailTempleService; + @Resource + private MailSendService mailSendService; + + @PostMapping("/create") + @Operation(tags = "邮箱管理",summary = "创建邮件模版") + @PreAuthorize("@ss.hasPermission('system:mail-template:create')") + public CommonResult createMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO createReqVO){ + return success(mailTempleService.createMailTemplate(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "邮箱管理",summary = "修改邮件模版") + @PreAuthorize("@ss.hasPermission('system:mail-template:update')") + public CommonResult updateMailTemplate(@Valid @RequestBody MailTemplateSaveReqVO updateReqVO){ + mailTempleService.updateMailTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "邮箱管理",summary = "删除邮件模版") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:mail-template:delete')") + public CommonResult deleteMailTemplate(@RequestParam("id") Long id) { + mailTempleService.deleteMailTemplate(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "邮箱管理",summary = "获得邮件模版") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:mail-template:get')") + public CommonResult getMailTemplate(@RequestParam("id") Long id) { + MailTemplateDO template = mailTempleService.getMailTemplate(id); + return success(BeanUtils.toBean(template, MailTemplateRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "邮箱管理",summary = "获得邮件模版分页") + @PreAuthorize("@ss.hasPermission('system:mail-template:query')") + public CommonResult> getMailTemplatePage(@Valid MailTemplatePageReqVO pageReqVO) { + PageResult pageResult = mailTempleService.getMailTemplatePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MailTemplateRespVO.class)); + } + + @GetMapping({"/list-all-simple", "simple-list"}) + @Operation(tags = "邮箱管理",summary = "获得邮件模版精简列表") + public CommonResult> getSimpleTemplateList() { + List list = mailTempleService.getMailTemplateList(); + return success(BeanUtils.toBean(list, MailTemplateSimpleRespVO.class)); + } + + @PostMapping("/send-mail") + @Operation(tags = "邮箱管理",summary = "发送短信") + @PreAuthorize("@ss.hasPermission('system:mail-template:send-mail')") + public CommonResult sendMail(@Valid @RequestBody MailTemplateSendReqVO sendReqVO) { + return success(mailSendService.sendSingleMailToAdmin(sendReqVO.getMail(), getLoginUserId(), + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java new file mode 100644 index 0000000..9de195d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 邮箱账号分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MailAccountPageReqVO extends PageParam { + + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") + private String mail; + + @Schema(description = "用户名" , requiredMode = Schema.RequiredMode.REQUIRED , example = "yudao") + private String username; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java new file mode 100644 index 0000000..c1dc376 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 邮箱账号 Response VO") +@Data +public class MailAccountRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") + private String mail; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + private String password; + + @Schema(description = "SMTP 服务器域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "www.iocoder.cn") + private String host; + + @Schema(description = "SMTP 服务器端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "80") + private Integer port; + + @Schema(description = "是否开启 ssl", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean sslEnable; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java new file mode 100644 index 0000000..83a7647 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 邮箱账号创建/修改 Request VO") +@Data +public class MailAccountSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma@123.com") + @NotNull(message = "邮箱不能为空") + @Email(message = "必须是 Email 格式") + private String mail; + + @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotNull(message = "用户名不能为空") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @NotNull(message = "密码必填") + private String password; + + @Schema(description = "SMTP 服务器域名", requiredMode = Schema.RequiredMode.REQUIRED, example = "www.iocoder.cn") + @NotNull(message = "SMTP 服务器域名不能为空") + private String host; + + @Schema(description = "SMTP 服务器端口", requiredMode = Schema.RequiredMode.REQUIRED, example = "80") + @NotNull(message = "SMTP 服务器端口不能为空") + private Integer port; + + @Schema(description = "是否开启 ssl", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + @NotNull(message = "是否开启 ssl 必填") + private Boolean sslEnable; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java new file mode 100644 index 0000000..0600633 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 邮箱账号的精简 Response VO") +@Data +public class MailAccountSimpleRespVO { + + @Schema(description = "邮箱编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "768541388@qq.com") + private String mail; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java new file mode 100644 index 0000000..5b3ad72 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.log; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 邮箱日志分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MailLogPageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "30883") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", example = "2") + private Integer userType; + + @Schema(description = "接收邮箱地址,模糊匹配", example = "76854@qq.com") + private String toMail; + + @Schema(description = "邮箱账号编号", example = "18107") + private Long accountId; + + @Schema(description = "模板编号", example = "5678") + private Long templateId; + + @Schema(description = "发送状态,参见 MailSendStatusEnum 枚举", example = "1") + private Integer sendStatus; + + @Schema(description = "发送时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] sendTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java new file mode 100644 index 0000000..49edfff --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.log; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 邮件日志 Response VO") +@Data +public class MailLogRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31020") + private Long id; + + @Schema(description = "用户编号", example = "30883") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", example = "2") + private Byte userType; + + @Schema(description = "接收邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "76854@qq.com") + private String toMail; + + @Schema(description = "邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18107") + private Long accountId; + + @Schema(description = "发送邮箱地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "85757@qq.com") + private String fromMail; + + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5678") + private Long templateId; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + private String templateCode; + + @Schema(description = "模版发送人名称", example = "李四") + private String templateNickname; + + @Schema(description = "邮件标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试标题") + private String templateTitle; + + @Schema(description = "邮件内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") + private String templateContent; + + @Schema(description = "邮件参数", requiredMode = Schema.RequiredMode.REQUIRED) + private Map templateParams; + + @Schema(description = "发送状态,参见 MailSendStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Byte sendStatus; + + @Schema(description = "发送时间") + private LocalDateTime sendTime; + + @Schema(description = "发送返回的消息 ID", example = "28568") + private String sendMessageId; + + @Schema(description = "发送异常") + private String sendException; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java new file mode 100644 index 0000000..2a9afd7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 邮件模版分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MailTemplatePageReqVO extends PageParam { + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", example = "1") + private Integer status; + + @Schema(description = "标识,模糊匹配", example = "code_1024") + private String code; + + @Schema(description = "名称,模糊匹配", example = "芋头") + private String name; + + @Schema(description = "账号编号", example = "2048") + private Long accountId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java new file mode 100644 index 0000000..8485f25 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 邮件末班 Response VO") +@Data +public class MailTemplateRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试名字") + private String name; + + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") + private String code; + + @Schema(description = "发送的邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long accountId; + + @Schema(description = "发送人名称", example = "芋头") + private String nickname; + + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "注册成功") + private String title; + + @Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,注册成功啦") + private String content; + + @Schema(description = "参数数组", example = "name,code") + private List params; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "备注", example = "奥特曼") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java new file mode 100644 index 0000000..de31697 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 邮件模版创建/修改 Request VO") +@Data +public class MailTemplateSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试名字") + @NotNull(message = "名称不能为空") + private String name; + + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "test") + @NotNull(message = "模版编号不能为空") + private String code; + + @Schema(description = "发送的邮箱账号编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "发送的邮箱账号编号不能为空") + private Long accountId; + + @Schema(description = "发送人名称", example = "芋头") + private String nickname; + + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "注册成功") + @NotEmpty(message = "标题不能为空") + private String title; + + @Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,注册成功啦") + @NotEmpty(message = "内容不能为空") + private String content; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "奥特曼") + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java new file mode 100644 index 0000000..8dd0887 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Map; + +@Schema(description = "管理后台 - 邮件发送 Req VO") +@Data +public class MailTemplateSendReqVO { + + @Schema(description = "接收邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "7685413@qq.com") + @NotEmpty(message = "接收邮箱不能为空") + private String mail; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + @NotNull(message = "模板编码不能为空") + private String templateCode; + + @Schema(description = "模板参数") + private Map templateParams; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java new file mode 100644 index 0000000..29833ff --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.admin.mail.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 邮件模版的精简 Response VO") +@Data +public class MailTemplateSimpleRespVO { + + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "模版名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "哒哒哒") + private String name; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.java new file mode 100644 index 0000000..88fd52a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.module.system.controller.admin.notice; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.infra.api.websocket.WebSocketSenderApi; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeRespVO; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; +import cn.iocoder.yudao.module.system.service.notice.NoticeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 通知公告") +@RestController +@RequestMapping("/system/notice") +@Validated +public class NoticeController { + + @Resource + private NoticeService noticeService; + + @Resource + private WebSocketSenderApi webSocketSenderApi; + + @PostMapping("/create") + @Operation(tags = "通知公告",summary = "创建通知公告") + @PreAuthorize("@ss.hasPermission('system:notice:create')") + public CommonResult createNotice(@Valid @RequestBody NoticeSaveReqVO createReqVO) { + Long noticeId = noticeService.createNotice(createReqVO); + return success(noticeId); + } + + @PutMapping("/update") + @Operation(tags = "通知公告",summary = "修改通知公告") + @PreAuthorize("@ss.hasPermission('system:notice:update')") + public CommonResult updateNotice(@Valid @RequestBody NoticeSaveReqVO updateReqVO) { + noticeService.updateNotice(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "通知公告",summary = "删除通知公告") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:notice:delete')") + public CommonResult deleteNotice(@RequestParam("id") Long id) { + noticeService.deleteNotice(id); + return success(true); + } + + @GetMapping("/page") + @Operation(tags = "通知公告",summary = "获取通知公告列表") + @PreAuthorize("@ss.hasPermission('system:notice:query')") + public CommonResult> getNoticePage(@Validated NoticePageReqVO pageReqVO) { + PageResult pageResult = noticeService.getNoticePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, NoticeRespVO.class)); + } + + @GetMapping("/get") + @Operation(tags = "通知公告",summary = "获得通知公告") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:notice:query')") + public CommonResult getNotice(@RequestParam("id") Long id) { + NoticeDO notice = noticeService.getNotice(id); + return success(BeanUtils.toBean(notice, NoticeRespVO.class)); + } + + @PostMapping("/push") + @Operation(tags = "通知公告",summary = "推送通知公告", description = "只发送给 websocket 连接在线的用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:notice:update')") + public CommonResult push(@RequestParam("id") Long id) { + NoticeDO notice = noticeService.getNotice(id); + Assert.notNull(notice, "公告不能为空"); + // 通过 websocket 推送给在线的用户 + webSocketSenderApi.sendObject(UserTypeEnum.ADMIN.getValue(), "notice-push", notice); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.java new file mode 100644 index 0000000..e398042 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.notice.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "管理后台 - 通知公告分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class NoticePageReqVO extends PageParam { + + @Schema(description = "通知公告名称,模糊匹配", example = "芋道") + private String title; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java new file mode 100644 index 0000000..543f588 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.notice.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 通知公告信息 Response VO") +@Data +public class NoticeRespVO { + + @Schema(description = "通知公告序号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "公告标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") + private String title; + + @Schema(description = "公告类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") + private Integer type; + + @Schema(description = "公告内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "半生编码") + private String content; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java new file mode 100644 index 0000000..200aadd --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.controller.admin.notice.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 通知公告创建/修改 Request VO") +@Data +public class NoticeSaveReqVO { + + @Schema(description = "岗位公告编号", example = "1024") + private Long id; + + @Schema(description = "公告标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") + @NotBlank(message = "公告标题不能为空") + @Size(max = 50, message = "公告标题不能超过50个字符") + private String title; + + @Schema(description = "公告类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "小博主") + @NotNull(message = "公告类型不能为空") + private Integer type; + + @Schema(description = "公告内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "半生编码") + private String content; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java new file mode 100644 index 0000000..1d38a9b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO; +import cn.iocoder.yudao.module.system.service.notify.NotifyMessageService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 我的站内信") +@RestController +@RequestMapping("/system/notify-message") +@Validated +public class NotifyMessageController { + + @Resource + private NotifyMessageService notifyMessageService; + + // ========== 管理所有的站内信 ========== + + @GetMapping("/get") + @Operation(tags = "站内信管理",summary = "获得站内信") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:notify-message:query')") + public CommonResult getNotifyMessage(@RequestParam("id") Long id) { + NotifyMessageDO message = notifyMessageService.getNotifyMessage(id); + return success(BeanUtils.toBean(message, NotifyMessageRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "站内信管理",summary = "获得站内信分页") + @PreAuthorize("@ss.hasPermission('system:notify-message:query')") + public CommonResult> getNotifyMessagePage(@Valid NotifyMessagePageReqVO pageVO) { + PageResult pageResult = notifyMessageService.getNotifyMessagePage(pageVO); + return success(BeanUtils.toBean(pageResult, NotifyMessageRespVO.class)); + } + + // ========== 查看自己的站内信 ========== + + @GetMapping("/my-page") + @Operation(tags = "站内信管理",summary = "获得我的站内信分页") + public CommonResult> getMyMyNotifyMessagePage(@Valid NotifyMessageMyPageReqVO pageVO) { + PageResult pageResult = notifyMessageService.getMyMyNotifyMessagePage(pageVO, + getLoginUserId(), UserTypeEnum.ADMIN.getValue()); + return success(BeanUtils.toBean(pageResult, NotifyMessageRespVO.class)); + } + + @PutMapping("/update-read") + @Operation(tags = "站内信管理",summary = "标记站内信为已读") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + public CommonResult updateNotifyMessageRead(@RequestParam("ids") List ids) { + notifyMessageService.updateNotifyMessageRead(ids, getLoginUserId(), UserTypeEnum.ADMIN.getValue()); + return success(Boolean.TRUE); + } + + @PutMapping("/update-all-read") + @Operation(tags = "站内信管理",summary = "标记所有站内信为已读") + public CommonResult updateAllNotifyMessageRead() { + notifyMessageService.updateAllNotifyMessageRead(getLoginUserId(), UserTypeEnum.ADMIN.getValue()); + return success(Boolean.TRUE); + } + + @GetMapping("/get-unread-list") + @Operation(tags = "站内信管理",summary = "获取当前用户的最新站内信列表,默认 10 条") + @Parameter(name = "size", description = "10") + public CommonResult> getUnreadNotifyMessageList( + @RequestParam(name = "size", defaultValue = "10") Integer size) { + List list = notifyMessageService.getUnreadNotifyMessageList( + getLoginUserId(), UserTypeEnum.ADMIN.getValue(), size); + return success(BeanUtils.toBean(list, NotifyMessageRespVO.class)); + } + + @GetMapping("/get-unread-count") + // @Operation(tags = "站内信管理",summary = "获得当前用户的未读站内信数量") //定时请求的,不做记录存储 + public CommonResult getUnreadNotifyMessageCount() { + return success(notifyMessageService.getUnreadNotifyMessageCount( + getLoginUserId(), UserTypeEnum.ADMIN.getValue())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java new file mode 100644 index 0000000..132b72a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.*; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; +import cn.iocoder.yudao.module.system.service.notify.NotifySendService; +import cn.iocoder.yudao.module.system.service.notify.NotifyTemplateService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 站内信模版") +@RestController +@RequestMapping("/system/notify-template") +@Validated +public class NotifyTemplateController { + + @Resource + private NotifyTemplateService notifyTemplateService; + + @Resource + private NotifySendService notifySendService; + + @PostMapping("/create") + @Operation(tags = "站内信管理",summary = "创建站内信模版") + @PreAuthorize("@ss.hasPermission('system:notify-template:create')") + public CommonResult createNotifyTemplate(@Valid @RequestBody NotifyTemplateSaveReqVO createReqVO) { + return success(notifyTemplateService.createNotifyTemplate(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "站内信管理",summary = "更新站内信模版") + @PreAuthorize("@ss.hasPermission('system:notify-template:update')") + public CommonResult updateNotifyTemplate(@Valid @RequestBody NotifyTemplateSaveReqVO updateReqVO) { + notifyTemplateService.updateNotifyTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "站内信管理",summary = "删除站内信模版") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:notify-template:delete')") + public CommonResult deleteNotifyTemplate(@RequestParam("id") Long id) { + notifyTemplateService.deleteNotifyTemplate(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "站内信管理",summary = "获得站内信模版") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:notify-template:query')") + public CommonResult getNotifyTemplate(@RequestParam("id") Long id) { + NotifyTemplateDO template = notifyTemplateService.getNotifyTemplate(id); + return success(BeanUtils.toBean(template, NotifyTemplateRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "站内信管理",summary = "获得站内信模版分页") + @PreAuthorize("@ss.hasPermission('system:notify-template:query')") + public CommonResult> getNotifyTemplatePage(@Valid NotifyTemplatePageReqVO pageVO) { + PageResult pageResult = notifyTemplateService.getNotifyTemplatePage(pageVO); + return success(BeanUtils.toBean(pageResult, NotifyTemplateRespVO.class)); + } + + @PostMapping("/send-notify") + @Operation(tags = "站内信管理",summary = "发送站内信") + @PreAuthorize("@ss.hasPermission('system:notify-template:send-notify')") + public CommonResult sendNotify(@Valid @RequestBody NotifyTemplateSendReqVO sendReqVO) { + if (UserTypeEnum.MEMBER.getValue().equals(sendReqVO.getUserType())) { + return success(notifySendService.sendSingleNotifyToMember(sendReqVO.getUserId(), + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + } else { + return success(notifySendService.sendSingleNotifyToAdmin(sendReqVO.getUserId(), + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + } + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java new file mode 100644 index 0000000..213d6e1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 站内信分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class NotifyMessageMyPageReqVO extends PageParam { + + @Schema(description = "是否已读", example = "true") + private Boolean readStatus; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java new file mode 100644 index 0000000..4e3aea5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 站内信分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class NotifyMessagePageReqVO extends PageParam { + + @Schema(description = "用户编号", example = "25025") + private Long userId; + + @Schema(description = "用户类型", example = "1") + private Integer userType; + + @Schema(description = "模板编码", example = "test_01") + private String templateCode; + + @Schema(description = "模版类型", example = "2") + private Integer templateType; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java new file mode 100644 index 0000000..774ed2a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Map; + +@Schema(description = "管理后台 - 站内信 Response VO") +@Data +public class NotifyMessageRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25025") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Byte userType; + + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13013") + private Long templateId; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + private String templateCode; + + @Schema(description = "模版发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String templateNickname; + + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") + private String templateContent; + + @Schema(description = "模版类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer templateType; + + @Schema(description = "模版参数", requiredMode = Schema.RequiredMode.REQUIRED) + private Map templateParams; + + @Schema(description = "是否已读", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") + private Boolean readStatus; + + @Schema(description = "阅读时间") + private LocalDateTime readTime; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java new file mode 100644 index 0000000..9f62e91 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 站内信模版分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class NotifyTemplatePageReqVO extends PageParam { + + @Schema(description = "模版编码", example = "test_01") + private String code; + + @Schema(description = "模版名称", example = "我是名称") + private String name; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "发送人名称") + private String nickname; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java new file mode 100644 index 0000000..8d362b8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 站内信模版 Response VO") +@Data +public class NotifyTemplateRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试模版") + private String name; + + @Schema(description = "模版编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "SEND_TEST") + private String code; + + @Schema(description = "模版类型,对应 system_notify_template_type 字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + @Schema(description = "发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + private String nickname; + + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是模版内容") + private String content; + + @Schema(description = "参数数组", example = "name,code") + private List params; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "备注", example = "我是备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java new file mode 100644 index 0000000..ca75018 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 站内信模版创建/修改 Request VO") +@Data +public class NotifyTemplateSaveReqVO { + + @Schema(description = "ID", example = "1024") + private Long id; + + @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试模版") + @NotEmpty(message = "模版名称不能为空") + private String name; + + @Schema(description = "模版编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "SEND_TEST") + @NotNull(message = "模版编码不能为空") + private String code; + + @Schema(description = "模版类型,对应 system_notify_template_type 字典", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "模版类型不能为空") + private Integer type; + + @Schema(description = "发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + @NotEmpty(message = "发送人名称不能为空") + private String nickname; + + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "我是模版内容") + @NotEmpty(message = "模版内容不能为空") + private String content; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}") + private Integer status; + + @Schema(description = "备注", example = "我是备注") + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java new file mode 100644 index 0000000..43b5691 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Map; + +@Schema(description = "管理后台 - 站内信模板的发送 Request VO") +@Data +public class NotifyTemplateSendReqVO { + + @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "01") + @NotNull(message = "用户id不能为空") + private Long userId; + + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "用户类型不能为空") + private Integer userType; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "01") + @NotEmpty(message = "模板编码不能为空") + private String templateCode; + + @Schema(description = "模板参数") + private Map templateParams; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http new file mode 100644 index 0000000..dcf60a6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http @@ -0,0 +1,23 @@ +### 请求 /login 接口 => 成功 +POST {{baseUrl}}/system/oauth2-client/create +Content-Type: application/json +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +{ + "id": "1", + "secret": "admin123", + "name": "芋道源码", + "logo": "https://www.iocoder.cn/images/favicon.ico", + "description": "我是描述", + "status": 0, + "accessTokenValiditySeconds": 180, + "refreshTokenValiditySeconds": 8640, + "redirectUris": ["https://www.iocoder.cn"], + "autoApprove": true, + "authorizedGrantTypes": ["password"], + "scopes": ["user_info"], + "authorities": ["system:user:query"], + "resource_ids": ["1024"], + "additionalInformation": "{}" +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.java new file mode 100644 index 0000000..f759fc5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - OAuth2 客户端") +@RestController +@RequestMapping("/system/oauth2-client") +@Validated +public class OAuth2ClientController { + + @Resource + private OAuth2ClientService oAuth2ClientService; + + @PostMapping("/create") + @Operation(tags = "OAuth2.0管理",summary = "创建 OAuth2 客户端") + @PreAuthorize("@ss.hasPermission('system:oauth2-client:create')") + public CommonResult createOAuth2Client(@Valid @RequestBody OAuth2ClientSaveReqVO createReqVO) { + return success(oAuth2ClientService.createOAuth2Client(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "OAuth2.0管理",summary = "更新 OAuth2 客户端") + @PreAuthorize("@ss.hasPermission('system:oauth2-client:update')") + public CommonResult updateOAuth2Client(@Valid @RequestBody OAuth2ClientSaveReqVO updateReqVO) { + oAuth2ClientService.updateOAuth2Client(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "OAuth2.0管理",summary = "删除 OAuth2 客户端") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:oauth2-client:delete')") + public CommonResult deleteOAuth2Client(@RequestParam("id") Long id) { + oAuth2ClientService.deleteOAuth2Client(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "OAuth2.0管理",summary = "获得 OAuth2 客户端") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:oauth2-client:query')") + public CommonResult getOAuth2Client(@RequestParam("id") Long id) { + OAuth2ClientDO client = oAuth2ClientService.getOAuth2Client(id); + return success(BeanUtils.toBean(client, OAuth2ClientRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "OAuth2.0管理",summary = "获得 OAuth2 客户端分页") + @PreAuthorize("@ss.hasPermission('system:oauth2-client:query')") + public CommonResult> getOAuth2ClientPage(@Valid OAuth2ClientPageReqVO pageVO) { + PageResult pageResult = oAuth2ClientService.getOAuth2ClientPage(pageVO); + return success(BeanUtils.toBean(pageResult, OAuth2ClientRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http new file mode 100644 index 0000000..725a5d4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http @@ -0,0 +1,54 @@ +### 请求 /system/oauth2/authorize 接口 => 成功 +GET {{baseUrl}}/system/oauth2/authorize?clientId=default +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +### 请求 /system/oauth2/authorize + token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/authorize +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +response_type=token&client_id=default&scope={"user.read": true}&redirect_uri=https://www.iocoder.cn&auto_approve=true + +### 请求 /system/oauth2/authorize + code 接口 => 成功 +POST {{baseUrl}}/system/oauth2/authorize +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +response_type=code&client_id=default&scope={"user.read": true}&redirect_uri=https://www.iocoder.cn&auto_approve=false + +### 请求 /system/oauth2/token + code 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenentId}} + +grant_type=authorization_code&redirect_uri=https://www.iocoder.cn&code=189956c07a174588a97157eabef2f93a + +### 请求 /system/oauth2/token + password 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenentId}} + +grant_type=password&username=admin&password=admin123&scope=user.read + +### 请求 /system/oauth2/token + refresh_token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenentId}} + +grant_type=refresh_token&refresh_token=00895465d6994f72a9d926ceeed0f588 + +### 请求 /system/oauth2/token + DELETE 接口 => 成功 +DELETE {{baseUrl}}/system/oauth2/token?token=ca8a188f464441d6949c51493a2b7596 +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenentId}} + +### 请求 /system/oauth2/check-token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/check-token?token=620d307c5b4148df8a98dd6c6c547106 +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.java new file mode 100644 index 0000000..eb7afca --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.java @@ -0,0 +1,302 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.http.HttpUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAccessTokenRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAuthorizeInfoRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenCheckTokenRespVO; +import cn.iocoder.yudao.module.system.convert.oauth2.OAuth2OpenConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ApproveDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2GrantTypeEnum; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ApproveService; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2ClientService; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2GrantService; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; +import cn.iocoder.yudao.module.system.util.oauth2.OAuth2Utils; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletRequest; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * 提供给外部应用调用为主 + * + * 一般来说,管理后台的 /system-api/* 是不直接提供给外部应用使用,主要是外部应用能够访问的数据与接口是有限的,而管理后台的 RBAC 无法很好的控制。 + * 参考大量的开放平台,都是独立的一套 OpenAPI,对应到【本系统】就是在 Controller 下新建 open 包,实现 /open-api/* 接口,然后通过 scope 进行控制。 + * 另外,一个公司如果有多个管理后台,它们 client_id 产生的 access token 相互之间是无法互通的,即无法访问它们系统的 API 接口,直到两个 client_id 产生信任授权。 + * + * 考虑到【本系统】暂时不想做的过于复杂,默认只有获取到 access token 之后,可以访问【本系统】管理后台的 /system-api/* 所有接口,除非手动添加 scope 控制。 + * scope 的使用示例,可见 {@link OAuth2UserController} 类 + * + * @author 芋道源码 + */ +@Tag(name = "管理后台 - OAuth2.0 授权") +@RestController +@RequestMapping("/system/oauth2") +@Validated +@Slf4j +public class OAuth2OpenController { + + @Resource + private OAuth2GrantService oauth2GrantService; + @Resource + private OAuth2ClientService oauth2ClientService; + @Resource + private OAuth2ApproveService oauth2ApproveService; + @Resource + private OAuth2TokenService oauth2TokenService; + + /** + * 对应 Spring Security OAuth 的 TokenEndpoint 类的 postAccessToken 方法 + * + * 授权码 authorization_code 模式时:code + redirectUri + state 参数 + * 密码 password 模式时:username + password + scope 参数 + * 刷新 refresh_token 模式时:refreshToken 参数 + * 客户端 client_credentials 模式:scope 参数 + * 简化 implicit 模式时:不支持 + * + * 注意,默认需要传递 client_id + client_secret 参数 + */ + @PostMapping("/token") + @PermitAll + @Operation(tags = "OAuth2.0管理",summary = "获得访问令牌", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用") + @Parameters({ + @Parameter(name = "grant_type", required = true, description = "授权类型", example = "code"), + @Parameter(name = "code", description = "授权范围", example = "userinfo.read"), + @Parameter(name = "redirect_uri", description = "重定向 URI", example = "https://www.iocoder.cn"), + @Parameter(name = "state", description = "状态", example = "1"), + @Parameter(name = "username", example = "tudou"), + @Parameter(name = "password", example = "cai"), // 多个使用空格分隔 + @Parameter(name = "scope", example = "user_info"), + @Parameter(name = "refresh_token", example = "123424233"), + }) + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult postAccessToken(HttpServletRequest request, + @RequestParam("grant_type") String grantType, + @RequestParam(value = "code", required = false) String code, // 授权码模式 + @RequestParam(value = "redirect_uri", required = false) String redirectUri, // 授权码模式 + @RequestParam(value = "state", required = false) String state, // 授权码模式 + @RequestParam(value = "username", required = false) String username, // 密码模式 + @RequestParam(value = "password", required = false) String password, // 密码模式 + @RequestParam(value = "scope", required = false) String scope, // 密码模式 + @RequestParam(value = "refresh_token", required = false) String refreshToken) { // 刷新模式 + List scopes = OAuth2Utils.buildScopes(scope); + // 1.1 校验授权类型 + OAuth2GrantTypeEnum grantTypeEnum = OAuth2GrantTypeEnum.getByGranType(grantType); + if (grantTypeEnum == null) { + throw exception0(BAD_REQUEST.getCode(), StrUtil.format("未知授权类型({})", grantType)); + } + if (grantTypeEnum == OAuth2GrantTypeEnum.IMPLICIT) { + throw exception0(BAD_REQUEST.getCode(), "Token 接口不支持 implicit 授权模式"); + } + + // 1.2 校验客户端 + String[] clientIdAndSecret = obtainBasicAuthorization(request); + OAuth2ClientDO client = oauth2ClientService.validOAuthClientFromCache(clientIdAndSecret[0], clientIdAndSecret[1], + grantType, scopes, redirectUri); + + // 2. 根据授权模式,获取访问令牌 + OAuth2AccessTokenDO accessTokenDO; + switch (grantTypeEnum) { + case AUTHORIZATION_CODE: + accessTokenDO = oauth2GrantService.grantAuthorizationCodeForAccessToken(client.getClientId(), code, redirectUri, state); + break; + case PASSWORD: + accessTokenDO = oauth2GrantService.grantPassword(username, password, client.getClientId(), scopes); + break; + case CLIENT_CREDENTIALS: + accessTokenDO = oauth2GrantService.grantClientCredentials(client.getClientId(), scopes); + break; + case REFRESH_TOKEN: + accessTokenDO = oauth2GrantService.grantRefreshToken(refreshToken, client.getClientId()); + break; + default: + throw new IllegalArgumentException("未知授权类型:" + grantType); + } + Assert.notNull(accessTokenDO, "访问令牌不能为空"); // 防御性检查 + return success(OAuth2OpenConvert.INSTANCE.convert(accessTokenDO)); + } + + @DeleteMapping("/token") + @PermitAll + @Operation(tags = "OAuth2.0管理",summary = "删除访问令牌") + @Parameter(name = "token", required = true, description = "访问令牌", example = "biu") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult revokeToken(HttpServletRequest request, + @RequestParam("token") String token) { + // 校验客户端 + String[] clientIdAndSecret = obtainBasicAuthorization(request); + OAuth2ClientDO client = oauth2ClientService.validOAuthClientFromCache(clientIdAndSecret[0], clientIdAndSecret[1], + null, null, null); + + // 删除访问令牌 + return success(oauth2GrantService.revokeToken(client.getClientId(), token)); + } + + /** + * 对应 Spring Security OAuth 的 CheckTokenEndpoint 类的 checkToken 方法 + */ + @PostMapping("/check-token") + @PermitAll + @Operation(tags = "OAuth2.0管理",summary = "校验访问令牌") + @Parameter(name = "token", required = true, description = "访问令牌", example = "biu") + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult checkToken(HttpServletRequest request, + @RequestParam("token") String token) { + // 校验客户端 + String[] clientIdAndSecret = obtainBasicAuthorization(request); + oauth2ClientService.validOAuthClientFromCache(clientIdAndSecret[0], clientIdAndSecret[1], + null, null, null); + + // 校验令牌 + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.checkAccessToken(token); + Assert.notNull(accessTokenDO, "访问令牌不能为空"); // 防御性检查 + return success(OAuth2OpenConvert.INSTANCE.convert2(accessTokenDO)); + } + + /** + * 对应 Spring Security OAuth 的 AuthorizationEndpoint 类的 authorize 方法 + */ + @GetMapping("/authorize") + @Operation(tags = "OAuth2.0管理",summary = "获得授权信息", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【获取】调用") + @Parameter(name = "clientId", required = true, description = "客户端编号", example = "tudou") + public CommonResult authorize(@RequestParam("clientId") String clientId) { + // 0. 校验用户已经登录。通过 Spring Security 实现 + + // 1. 获得 Client 客户端的信息 + OAuth2ClientDO client = oauth2ClientService.validOAuthClientFromCache(clientId); + // 2. 获得用户已经授权的信息 + List approves = oauth2ApproveService.getApproveList(getLoginUserId(), getUserType(), clientId); + // 拼接返回 + return success(OAuth2OpenConvert.INSTANCE.convert(client, approves)); + } + + /** + * 对应 Spring Security OAuth 的 AuthorizationEndpoint 类的 approveOrDeny 方法 + * + * 场景一:【自动授权 autoApprove = true】 + * 刚进入 sso.vue 界面,调用该接口,用户历史已经给该应用做过对应的授权,或者 OAuth2Client 支持该 scope 的自动授权 + * 场景二:【手动授权 autoApprove = false】 + * 在 sso.vue 界面,用户选择好 scope 授权范围,调用该接口,进行授权。此时,approved 为 true 或者 false + * + * 因为前后端分离,Axios 无法很好的处理 302 重定向,所以和 Spring Security OAuth 略有不同,返回结果是重定向的 URL,剩余交给前端处理 + */ + @PostMapping("/authorize") + @Operation(tags = "OAuth2.0管理",summary = "申请授权", description = "适合 code 授权码模式,或者 implicit 简化模式;在 sso.vue 单点登录界面被【提交】调用") + @Parameters({ + @Parameter(name = "response_type", required = true, description = "响应类型", example = "code"), + @Parameter(name = "client_id", required = true, description = "客户端编号", example = "tudou"), + @Parameter(name = "scope", description = "授权范围", example = "userinfo.read"), // 使用 Map 格式,Spring MVC 暂时不支持这么接收参数 + @Parameter(name = "redirect_uri", required = true, description = "重定向 URI", example = "https://www.iocoder.cn"), + @Parameter(name = "auto_approve", required = true, description = "用户是否接受", example = "true"), + @Parameter(name = "state", example = "1") + }) + @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 + public CommonResult approveOrDeny(@RequestParam("response_type") String responseType, + @RequestParam("client_id") String clientId, + @RequestParam(value = "scope", required = false) String scope, + @RequestParam("redirect_uri") String redirectUri, + @RequestParam(value = "auto_approve") Boolean autoApprove, + @RequestParam(value = "state", required = false) String state) { + @SuppressWarnings("unchecked") + Map scopes = JsonUtils.parseObject(scope, Map.class); + scopes = ObjectUtil.defaultIfNull(scopes, Collections.emptyMap()); + // 0. 校验用户已经登录。通过 Spring Security 实现 + + // 1.1 校验 responseType 是否满足 code 或者 token 值 + OAuth2GrantTypeEnum grantTypeEnum = getGrantTypeEnum(responseType); + // 1.2 校验 redirectUri 重定向域名是否合法 + 校验 scope 是否在 Client 授权范围内 + OAuth2ClientDO client = oauth2ClientService.validOAuthClientFromCache(clientId, null, + grantTypeEnum.getGrantType(), scopes.keySet(), redirectUri); + + // 2.1 假设 approved 为 null,说明是场景一 + if (Boolean.TRUE.equals(autoApprove)) { + // 如果无法自动授权通过,则返回空 url,前端不进行跳转 + if (!oauth2ApproveService.checkForPreApproval(getLoginUserId(), getUserType(), clientId, scopes.keySet())) { + return success(null); + } + } else { // 2.2 假设 approved 非 null,说明是场景二 + // 如果计算后不通过,则跳转一个错误链接 + if (!oauth2ApproveService.updateAfterApproval(getLoginUserId(), getUserType(), clientId, scopes)) { + return success(OAuth2Utils.buildUnsuccessfulRedirect(redirectUri, responseType, state, + "access_denied", "User denied access")); + } + } + + // 3.1 如果是 code 授权码模式,则发放 code 授权码,并重定向 + List approveScopes = convertList(scopes.entrySet(), Map.Entry::getKey, Map.Entry::getValue); + if (grantTypeEnum == OAuth2GrantTypeEnum.AUTHORIZATION_CODE) { + return success(getAuthorizationCodeRedirect(getLoginUserId(), client, approveScopes, redirectUri, state)); + } + // 3.2 如果是 token 则是 implicit 简化模式,则发送 accessToken 访问令牌,并重定向 + return success(getImplicitGrantRedirect(getLoginUserId(), client, approveScopes, redirectUri, state)); + } + + private static OAuth2GrantTypeEnum getGrantTypeEnum(String responseType) { + if (StrUtil.equals(responseType, "code")) { + return OAuth2GrantTypeEnum.AUTHORIZATION_CODE; + } + if (StrUtil.equalsAny(responseType, "token")) { + return OAuth2GrantTypeEnum.IMPLICIT; + } + throw exception0(BAD_REQUEST.getCode(), "response_type 参数值只允许 code 和 token"); + } + + private String getImplicitGrantRedirect(Long userId, OAuth2ClientDO client, + List scopes, String redirectUri, String state) { + // 1. 创建 access token 访问令牌 + OAuth2AccessTokenDO accessTokenDO = oauth2GrantService.grantImplicit(userId, getUserType(), client.getClientId(), scopes); + Assert.notNull(accessTokenDO, "访问令牌不能为空"); // 防御性检查 + // 2. 拼接重定向的 URL + // noinspection unchecked + return OAuth2Utils.buildImplicitRedirectUri(redirectUri, accessTokenDO.getAccessToken(), state, accessTokenDO.getExpiresTime(), + scopes, JsonUtils.parseObject(client.getAdditionalInformation(), Map.class)); + } + + private String getAuthorizationCodeRedirect(Long userId, OAuth2ClientDO client, + List scopes, String redirectUri, String state) { + // 1. 创建 code 授权码 + String authorizationCode = oauth2GrantService.grantAuthorizationCodeForCode(userId, getUserType(), client.getClientId(), scopes, + redirectUri, state); + // 2. 拼接重定向的 URL + return OAuth2Utils.buildAuthorizationCodeRedirectUri(redirectUri, authorizationCode, state); + } + + private Integer getUserType() { + return UserTypeEnum.ADMIN.getValue(); + } + + private String[] obtainBasicAuthorization(HttpServletRequest request) { + String[] clientIdAndSecret = HttpUtils.obtainBasicAuthorization(request); + if (ArrayUtil.isEmpty(clientIdAndSecret) || clientIdAndSecret.length != 2) { + throw exception0(BAD_REQUEST.getCode(), "client_id 或 client_secret 未正确传递"); + } + return clientIdAndSecret; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.java new file mode 100644 index 0000000..989692c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; +import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - OAuth2.0 令牌") +@RestController +@RequestMapping("/system/oauth2-token") +public class OAuth2TokenController { + + @Resource + private OAuth2TokenService oauth2TokenService; + @Resource + private AdminAuthService authService; + + @GetMapping("/page") + @Operation(tags = "OAuth2.0管理",summary = "获得访问令牌分页", description = "只返回有效期内的") + @PreAuthorize("@ss.hasPermission('system:oauth2-token:page')") + public CommonResult> getAccessTokenPage(@Valid OAuth2AccessTokenPageReqVO reqVO) { + PageResult pageResult = oauth2TokenService.getAccessTokenPage(reqVO); + return success(BeanUtils.toBean(pageResult, OAuth2AccessTokenRespVO.class)); + } + + @DeleteMapping("/delete") + @Operation(tags = "OAuth2.0管理",summary = "删除访问令牌") + @Parameter(name = "accessToken", description = "访问令牌", required = true, example = "tudou") + @PreAuthorize("@ss.hasPermission('system:oauth2-token:delete')") + public CommonResult deleteAccessToken(@RequestParam("accessToken") String accessToken) { + authService.logout(accessToken, LoginLogTypeEnum.LOGOUT_DELETE.getType()); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http new file mode 100644 index 0000000..13c8545 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http @@ -0,0 +1,14 @@ +### 请求 /system/oauth2/user/get 接口 => 成功 +GET {{baseUrl}}/system/oauth2/user/get +Authorization: Bearer 47f9c74ec11041f193b777ebb95c3b0d +tenant-id: {{adminTenentId}} + +### 请求 /system/oauth2/user/update 接口 => 成功 +PUT {{baseUrl}}/system/oauth2/user/update +Content-Type: application/json +Authorization: Bearer 47f9c74ec11041f193b777ebb95c3b0d +tenant-id: {{adminTenentId}} + +{ + "nickname": "芋道源码" +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.java new file mode 100644 index 0000000..820f17c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user.OAuth2UserInfoRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user.OAuth2UserUpdateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.dept.PostService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * 提供给外部应用调用为主 + * + * 1. 在 getUserInfo 方法上,添加 @PreAuthorize("@ss.hasScope('user.read')") 注解,声明需要满足 scope = user.read + * 2. 在 updateUserInfo 方法上,添加 @PreAuthorize("@ss.hasScope('user.write')") 注解,声明需要满足 scope = user.write + * + * @author 芋道源码 + */ +@Tag(name = "管理后台 - OAuth2.0 用户") +@RestController +@RequestMapping("/system/oauth2/user") +@Validated +@Slf4j +public class OAuth2UserController { + + @Resource + private AdminUserService userService; + @Resource + private DeptService deptService; + @Resource + private PostService postService; + + @GetMapping("/get") + @Operation(tags = "OAuth2.0管理",summary = "获得用户基本信息") + @PreAuthorize("@ss.hasScope('user.read')") // + public CommonResult getUserInfo() { + // 获得用户基本信息 + AdminUserDO user = userService.getUser(getLoginUserId()); + OAuth2UserInfoRespVO resp = BeanUtils.toBean(user, OAuth2UserInfoRespVO.class); + // 获得部门信息 + if (user.getDeptId() != null) { + DeptDO dept = deptService.getDept(user.getDeptId()); + resp.setDept(BeanUtils.toBean(dept, OAuth2UserInfoRespVO.Dept.class)); + } + // 获得岗位信息 + if (CollUtil.isNotEmpty(user.getPostIds())) { + List posts = postService.getPostList(user.getPostIds()); + resp.setPosts(BeanUtils.toBean(posts, OAuth2UserInfoRespVO.Post.class)); + } + return success(resp); + } + + @PutMapping("/update") + @Operation(tags = "OAuth2.0管理",summary = "更新用户基本信息") + @PreAuthorize("@ss.hasScope('user.write')") + public CommonResult updateUserInfo(@Valid @RequestBody OAuth2UserUpdateReqVO reqVO) { + // 这里将 UserProfileUpdateReqVO =》UserProfileUpdateReqVO 对象,实现接口的复用。 + // 主要是,AdminUserService 没有自己的 BO 对象,所以复用只能这么做 + userService.updateUserProfile(getLoginUserId(), BeanUtils.toBean(reqVO, UserProfileUpdateReqVO.class)); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java new file mode 100644 index 0000000..f10f15a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - OAuth2 客户端分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class OAuth2ClientPageReqVO extends PageParam { + + @Schema(description = "应用名,模糊匹配", example = "土豆") + private String name; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java new file mode 100644 index 0000000..acd26c7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - OAuth2 客户端 Response VO") +@Data +public class OAuth2ClientRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") + private String clientId; + + @Schema(description = "客户端密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "fan") + private String secret; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + private String name; + + @Schema(description = "应用图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") + private String logo; + + @Schema(description = "应用描述", example = "我是一个应用") + private String description; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "访问令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640") + private Integer accessTokenValiditySeconds; + + @Schema(description = "刷新令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640000") + private Integer refreshTokenValiditySeconds; + + @Schema(description = "可重定向的 URI 地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn") + private List redirectUris; + + @Schema(description = "授权类型,参见 OAuth2GrantTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "password") + private List authorizedGrantTypes; + + @Schema(description = "授权范围", example = "user_info") + private List scopes; + + @Schema(description = "自动通过的授权范围", example = "user_info") + private List autoApproveScopes; + + @Schema(description = "权限", example = "system:user:query") + private List authorities; + + @Schema(description = "资源", example = "1024") + private List resourceIds; + + @Schema(description = "附加信息", example = "{yunai: true}") + private String additionalInformation; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java new file mode 100644 index 0000000..b9199b8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - OAuth2 客户端创建/修改 Request VO") +@Data +public class OAuth2ClientSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") + @NotNull(message = "客户端编号不能为空") + private String clientId; + + @Schema(description = "客户端密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "fan") + @NotNull(message = "客户端密钥不能为空") + private String secret; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + @NotNull(message = "应用名不能为空") + private String name; + + @Schema(description = "应用图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") + @NotNull(message = "应用图标不能为空") + @URL(message = "应用图标的地址不正确") + private String logo; + + @Schema(description = "应用描述", example = "我是一个应用") + private String description; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "访问令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640") + @NotNull(message = "访问令牌的有效期不能为空") + private Integer accessTokenValiditySeconds; + + @Schema(description = "刷新令牌的有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "8640000") + @NotNull(message = "刷新令牌的有效期不能为空") + private Integer refreshTokenValiditySeconds; + + @Schema(description = "可重定向的 URI 地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn") + @NotNull(message = "可重定向的 URI 地址不能为空") + private List<@NotEmpty(message = "重定向的 URI 不能为空") @URL(message = "重定向的 URI 格式不正确") String> redirectUris; + + @Schema(description = "授权类型,参见 OAuth2GrantTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "password") + @NotNull(message = "授权类型不能为空") + private List authorizedGrantTypes; + + @Schema(description = "授权范围", example = "user_info") + private List scopes; + + @Schema(description = "自动通过的授权范围", example = "user_info") + private List autoApproveScopes; + + @Schema(description = "权限", example = "system:user:query") + private List authorities; + + @Schema(description = "资源", example = "1024") + private List resourceIds; + + @Schema(description = "附加信息", example = "{yunai: true}") + private String additionalInformation; + + @AssertTrue(message = "附加信息必须是 JSON 格式") + public boolean isAdditionalInformationJson() { + return StrUtil.isEmpty(additionalInformation) || JsonUtils.isJson(additionalInformation); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java new file mode 100644 index 0000000..1cdc6cb --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 【开放接口】访问令牌 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2OpenAccessTokenRespVO { + + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") + @JsonProperty("access_token") + private String accessToken; + + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") + @JsonProperty("refresh_token") + private String refreshToken; + + @Schema(description = "令牌类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "bearer") + @JsonProperty("token_type") + private String tokenType; + + @Schema(description = "过期时间,单位:秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "42430") + @JsonProperty("expires_in") + private Long expiresIn; + + @Schema(description = "授权范围,如果多个授权范围,使用空格分隔", example = "user_info") + private String scope; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java new file mode 100644 index 0000000..2aa3d77 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open; + +import cn.iocoder.yudao.framework.common.core.KeyValue; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Schema(description = "管理后台 - 授权页的信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2OpenAuthorizeInfoRespVO { + + /** + * 客户端 + */ + private Client client; + + @Schema(description = "scope 的选中信息,使用 List 保证有序性,Key 是 scope,Value 为是否选中", requiredMode = Schema.RequiredMode.REQUIRED) + private List> scopes; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class Client { + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "土豆") + private String name; + + @Schema(description = "应用图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") + private String logo; + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java new file mode 100644 index 0000000..cbee613 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Schema(description = "管理后台 - 【开放接口】校验令牌 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2OpenCheckTokenRespVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + @JsonProperty("user_id") + private Long userId; + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @JsonProperty("user_type") + private Integer userType; + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @JsonProperty("tenant_id") + private Long tenantId; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "car") + @JsonProperty("client_id") + private String clientId; + @Schema(description = "授权范围", requiredMode = Schema.RequiredMode.REQUIRED, example = "user_info") + private List scopes; + + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") + @JsonProperty("access_token") + private String accessToken; + + @Schema(description = "过期时间,时间戳 / 1000,即单位:秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "1593092157") + private Long exp; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java new file mode 100644 index 0000000..17d7fad --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "管理后台 - 访问令牌分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class OAuth2AccessTokenPageReqVO extends PageParam { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer userType; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private String clientId; + + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private String accessToken; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java new file mode 100644 index 0000000..362a460 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 访问令牌 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2AccessTokenRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "tudou") + private String accessToken; + + @Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice") + private String refreshToken; + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private Long userId; + + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer userType; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private String clientId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java new file mode 100644 index 0000000..69a905d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Schema(description = "管理后台 - OAuth2 获得用户基本信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2UserInfoRespVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String nickname; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + private String email; + @Schema(description = "手机号码", example = "15601691300") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + private String avatar; + + /** + * 所在部门 + */ + private Dept dept; + + /** + * 所属岗位数组 + */ + private List posts; + + @Schema(description = "部门") + @Data + public static class Dept { + + @Schema(description = "部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "研发部") + private String name; + + } + + @Schema(description = "岗位") + @Data + public static class Post { + + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "开发") + private String name; + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java new file mode 100644 index 0000000..bb2ff4b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.Email; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - OAuth2 更新用户基本信息 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class OAuth2UserUpdateReqVO { + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") + private String nickname; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + @Email(message = "邮箱格式不正确") + @Size(max = 50, message = "邮箱长度不能超过 50 个字符") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + @Length(min = 11, max = 11, message = "手机号长度必须 11 位") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http new file mode 100644 index 0000000..a90d8b8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http @@ -0,0 +1,4 @@ +### 请求 /menu/list 接口 => 成功 +GET {{baseUrl}}/system/menu/list +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java new file mode 100644 index 0000000..a770e06 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuRespVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.service.permission.MenuService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 菜单") +@RestController +@RequestMapping("/system/menu") +@Validated +public class MenuController { + + @Resource + private MenuService menuService; + + @PostMapping("/create") + @Operation(tags = "菜单管理",summary = "创建菜单") + @PreAuthorize("@ss.hasPermission('system:menu:create')") + public CommonResult createMenu(@Valid @RequestBody MenuSaveVO createReqVO) { + Long menuId = menuService.createMenu(createReqVO); + return success(menuId); + } + + @PostMapping("/batch/create") + @Operation(tags = "菜单管理",summary = "批量创建菜单") + @PreAuthorize("@ss.hasPermission('system:menu:create')") + public CommonResult> createBatchMenu(@Valid @RequestBody List createReqVO) { + List idList = menuService.createBatchMenu(createReqVO); + return success(idList); + } + + @PutMapping("/update") + @Operation(tags = "菜单管理",summary = "修改菜单") + @PreAuthorize("@ss.hasPermission('system:menu:update')") + public CommonResult updateMenu(@Valid @RequestBody MenuSaveVO updateReqVO) { + menuService.updateMenu(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "菜单管理",summary = "删除菜单") + @Parameter(name = "id", description = "角色编号", required= true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:menu:delete')") + public CommonResult deleteMenu(@RequestParam("id") Long id,String type) { + menuService.deleteMenu(id,type); + return success(true); + } + + @GetMapping("/list") + @Operation(tags = "菜单管理",summary = "获取菜单列表", description = "用于【菜单管理】界面") + @PreAuthorize("@ss.hasPermission('system:menu:query')") + public CommonResult> getMenuList(MenuListReqVO reqVO) { + List list = menuService.getMenuList(reqVO); + list.sort(Comparator.comparing(MenuDO::getSort)); + return success(BeanUtils.toBean(list, MenuRespVO.class)); + } + + @GetMapping({"/list-all-simple", "simple-list"}) + @Operation(tags = "菜单管理",summary = "获取菜单精简信息列表", description = "只包含被开启的菜单,用于【角色分配菜单】功能的选项。" + + "在多租户的场景下,会只返回租户所在套餐有的菜单") + public CommonResult> getSimpleMenuList() { + List list = menuService.getMenuListByTenant( + new MenuListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus())); + list.sort(Comparator.comparing(MenuDO::getSort)); + return success(BeanUtils.toBean(list, MenuSimpleRespVO.class)); + } + + @GetMapping("/get") + @Operation(tags = "菜单管理",summary = "获取菜单信息") + @PreAuthorize("@ss.hasPermission('system:menu:query')") + public CommonResult getMenu(Long id) { + MenuDO menu = menuService.getMenu(id); + return success(BeanUtils.toBean(menu, MenuRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java new file mode 100644 index 0000000..74109fb --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleDataScopeReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleMenuReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.tenant.TenantService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 权限 Controller,提供赋予用户、角色的权限的 API 接口 + * + * @author 芋道源码 + */ +@Tag(name = "管理后台 - 权限") +@RestController +@RequestMapping("/system/permission") +public class PermissionController { + + @Resource + private PermissionService permissionService; + @Resource + private TenantService tenantService; + + @Operation(tags = "菜单管理",summary = "获得角色拥有的菜单编号") + @Parameter(name = "roleId", description = "角色编号", required = true) + @GetMapping("/list-role-menus") + @PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')") + public CommonResult> getRoleMenuList(Long roleId) { + return success(permissionService.getRoleMenuListByRoleId(roleId)); + } + + @PostMapping("/assign-role-menu") + @Operation(tags = "菜单管理",summary = "赋予角色菜单") + @PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')") + public CommonResult assignRoleMenu(@Validated @RequestBody PermissionAssignRoleMenuReqVO reqVO) { + // 开启多租户的情况下,需要过滤掉未开通的菜单 + tenantService.handleTenantMenu(menuIds -> reqVO.getMenuIds().removeIf(menuId -> !CollUtil.contains(menuIds, menuId))); + + // 执行菜单的分配 + permissionService.assignRoleMenu(reqVO.getRoleId(), reqVO.getMenuIds()); + return success(true); + } + + @PostMapping("/assign-role-data-scope") + @Operation(tags = "菜单管理",summary = "赋予角色数据权限") + @PreAuthorize("@ss.hasPermission('system:permission:assign-role-data-scope')") + public CommonResult assignRoleDataScope(@Valid @RequestBody PermissionAssignRoleDataScopeReqVO reqVO) { + permissionService.assignRoleDataScope(reqVO.getRoleId(), reqVO.getDataScope(), reqVO.getDataScopeDeptIds()); + return success(true); + } + + @Operation(tags = "菜单管理",summary = "获得管理员拥有的角色编号列表") + @Parameter(name = "userId", description = "用户编号", required = true) + @GetMapping("/list-user-roles") + @PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')") + public CommonResult> listAdminRoles(@RequestParam("userId") Long userId) { + return success(permissionService.getUserRoleIdListByUserId(userId)); + } + + @Operation(tags = "菜单管理",summary = "赋予用户角色") + @PostMapping("/assign-user-role") + @PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')") + public CommonResult assignUserRole(@Validated @RequestBody PermissionAssignUserRoleReqVO reqVO) { + permissionService.assignUserRole(reqVO.getUserId(), reqVO.getRoleIds()); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http new file mode 100644 index 0000000..c68b86b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http @@ -0,0 +1,42 @@ +### /role/create 成功 +POST {{baseUrl}}/system/role/create +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "name": "测试角色", + "code": "test", + "sort": 0 +} + +### /role/update 成功 +POST {{baseUrl}}/system/role/update +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "id": 100, + "name": "测试角色", + "code": "test", + "sort": 10 +} +### /resource/delete 成功 +POST {{baseUrl}}/system/role/delete +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +roleId=14 + +### /role/get 成功 +GET {{baseUrl}}/system/role/get?id=100 +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +### /role/page 成功 +GET {{baseUrl}}/system/role/page?pageNo=1&pageSize=10 +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java new file mode 100644 index 0000000..8732e6b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java @@ -0,0 +1,127 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; +import static java.util.Collections.singleton; + +@Tag(name = "管理后台 - 角色") +@RestController +@RequestMapping("/system/role") +@Validated +public class RoleController { + + @Resource + private RoleService roleService; + + @Resource + private DictDataService dictDataService; + + @PostMapping("/create") + @Operation(tags = "菜单管理",summary = "创建角色") + @PreAuthorize("@ss.hasPermission('system:role:create')") + public CommonResult createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) { + return success(roleService.createRole(createReqVO, null)); + } + + @PutMapping("/update") + @Operation(tags = "菜单管理",summary = "修改角色") + @PreAuthorize("@ss.hasPermission('system:role:update')") + public CommonResult updateRole(@Valid @RequestBody RoleSaveReqVO updateReqVO) { + roleService.updateRole(updateReqVO); + return success(true); + } + + @PutMapping("/update-status") + @Operation(tags = "菜单管理",summary = "修改角色状态") + @PreAuthorize("@ss.hasPermission('system:role:update')") + public CommonResult updateRoleStatus(@Valid @RequestBody RoleUpdateStatusReqVO reqVO) { + roleService.updateRoleStatus(reqVO.getId(), reqVO.getStatus()); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "菜单管理",summary = "删除角色") + @Parameter(name = "id", description = "角色编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:role:delete')") + public CommonResult deleteRole(@RequestParam("id") Long id) { + roleService.deleteRole(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "菜单管理",summary = "获得角色信息") + @PreAuthorize("@ss.hasPermission('system:role:query')") + public CommonResult getRole(@RequestParam("id") Long id) { + RoleDO role = roleService.getRole(id); + return success(BeanUtils.toBean(role, RoleRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "菜单管理",summary = "获得角色分页") + @PreAuthorize("@ss.hasPermission('system:role:query')") + public CommonResult> getRolePage(RolePageReqVO pageReqVO) { + PageResult pageResult = roleService.getRolePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RoleRespVO.class)); + } + + @GetMapping({"/list-all-simple", "/simple-list"}) + @Operation(tags = "菜单管理",summary = "获取角色精简信息列表", description = "只包含被开启的角色,主要用于前端的下拉选项") + public CommonResult> getSimpleRoleList() { + List list = roleService.getRoleListByStatus(singleton(CommonStatusEnum.ENABLE.getStatus())); + list.sort(Comparator.comparing(RoleDO::getSort)); + return success(BeanUtils.toBean(list, RoleSimpleRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "菜单管理",summary = "导出角色 Excel") + @OperateLog(type = EXPORT) + @PreAuthorize("@ss.hasPermission('system:role:export')") + public void export(HttpServletResponse response, @Validated RolePageReqVO exportReqVO) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = roleService.getRolePage(exportReqVO).getList(); + List roleRespVOList = BeanUtils.toBean(list, CopyRoleRespVO.class); + List dictDataList = dictDataService.getListByDictType("system_data_scope"); + Map dataScopeMap = dictDataList.stream() + .collect(Collectors.toMap(DictDataDO::getValue, DictDataDO::getLabel, (existingValue, newValue) -> newValue)); + roleRespVOList.stream() + .filter(item -> ObjectUtil.isNotEmpty(item.getDataScope())) + .forEach(item -> { + if (!dataScopeMap.containsKey(item.getDataScope())) { + return; + } + item.setDataScope(dataScopeMap.get(item.getDataScope())); + }); + // 输出 + ExcelUtils.write(response, "角色数据.xls", "数据", CopyRoleRespVO.class, roleRespVOList); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java new file mode 100644 index 0000000..89eb968 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 菜单列表 Request VO") +@Data +public class MenuListReqVO { + + @Schema(description = "菜单名称,模糊匹配", example = "芋道") + private String name; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @Schema(description = "父级id", example = "1") + private Integer parentId; + + @Schema(description = "有值=隐藏", example = "1") + private String btnDisplay; +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java new file mode 100644 index 0000000..4be8e1b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 菜单信息 Response VO") +@Data +public class MenuRespVO { + + @Schema(description = "菜单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotBlank(message = "菜单名称不能为空") + @Size(max = 50, message = "菜单名称长度不能超过50个字符") + private String name; + + @Schema(description = "权限标识,仅菜单类型为按钮时,才需要传递", example = "sys:menu:add") + @Size(max = 100) + private String permission; + + @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "菜单类型不能为空") + private Integer type; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "父菜单 ID 不能为空") + private Long parentId; + + @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post") + @Size(max = 200, message = "路由地址不能超过200个字符") + private String path; + + @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list") + private String icon; + + @Schema(description = "组件路径,仅菜单类型为菜单时,才需要传", example = "system/post/index") + @Size(max = 200, message = "组件路径不能超过255个字符") + private String component; + + @Schema(description = "组件名", example = "SystemUser") + private String componentName; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "是否可见", example = "false") + private Boolean visible; + + @Schema(description = "是否缓存", example = "false") + private Boolean keepAlive; + + @Schema(description = "是否总是显示", example = "false") + private Boolean alwaysShow; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java new file mode 100644 index 0000000..8b91af1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 菜单创建/修改 Request VO") +@Data +public class MenuSaveVO { + + @Schema(description = "菜单编号", example = "1024") + private Long id; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotBlank(message = "菜单名称不能为空") + @Size(max = 50, message = "菜单名称长度不能超过50个字符") + private String name; + + @Schema(description = "权限标识,仅菜单类型为按钮时,才需要传递", example = "sys:menu:add") + @Size(max = 100) + private String permission; + + @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "菜单类型不能为空") + private Integer type; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "父菜单 ID 不能为空") + private Long parentId; + + @Schema(description = "路由地址,仅菜单类型为菜单或者目录时,才需要传", example = "post") + @Size(max = 200, message = "路由地址不能超过200个字符") + private String path; + + @Schema(description = "菜单图标,仅菜单类型为菜单或者目录时,才需要传", example = "/menu/list") + private String icon; + + @Schema(description = "组件路径,仅菜单类型为菜单时,才需要传", example = "system/post/index") + @Size(max = 200, message = "组件路径不能超过255个字符") + private String component; + + @Schema(description = "组件名", example = "SystemUser") + private String componentName; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "是否可见", example = "false") + private Boolean visible; + + @Schema(description = "是否缓存", example = "false") + private Boolean keepAlive; + + @Schema(description = "是否总是显示", example = "false") + private Boolean alwaysShow; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java new file mode 100644 index 0000000..20f110e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 菜单精简信息 Response VO") +@Data +public class MenuSimpleRespVO { + + @Schema(description = "菜单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "菜单名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + + @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long parentId; + + @Schema(description = "类型,参见 MenuTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java new file mode 100644 index 0000000..f70426d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Collections; +import java.util.Set; + +@Schema(description = "管理后台 - 赋予角色数据权限 Request VO") +@Data +public class PermissionAssignRoleDataScopeReqVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "角色编号不能为空") + private Long roleId; + + @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "数据范围不能为空") + @InEnum(value = DataScopeEnum.class, message = "数据范围必须是 {value}") + private Integer dataScope; + + @Schema(description = "部门编号列表,只有范围类型为 DEPT_CUSTOM 时,该字段才需要", example = "1,3,5") + private Set dataScopeDeptIds = Collections.emptySet(); // 兜底 + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java new file mode 100644 index 0000000..28ae7e4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Collections; +import java.util.Set; + +@Schema(description = "管理后台 - 赋予角色菜单 Request VO") +@Data +public class PermissionAssignRoleMenuReqVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "角色编号不能为空") + private Long roleId; + + @Schema(description = "菜单编号列表", example = "1,3,5") + private Set menuIds = Collections.emptySet(); // 兜底 + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java new file mode 100644 index 0000000..9ca43f9 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Collections; +import java.util.Set; + +@Schema(description = "管理后台 - 赋予用户角色 Request VO") +@Data +public class PermissionAssignUserRoleReqVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "用户编号不能为空") + private Long userId; + + @Schema(description = "角色编号列表", example = "1,3,5") + private Set roleIds = Collections.emptySet(); // 兜底 + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/CopyRoleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/CopyRoleRespVO.java new file mode 100644 index 0000000..70b4063 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/CopyRoleRespVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.time.LocalDateTime; +import java.util.Set; + +@Schema(description = "管理后台 - 角色信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class CopyRoleRespVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("角色序号") + private Long id; + + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员") + @ExcelProperty("角色名称") + private String name; + + @NotBlank(message = "角色标志不能为空") + @ExcelProperty("角色标志") + private String code; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("角色排序") + private Integer sort; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "角色状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "角色类型,参见 RoleTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + @Schema(description = "备注", example = "我是一个角色") + private Object remark; + + @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("数据范围") + private String dataScope; + + @Schema(description = "数据范围(指定部门数组)", example = "1") + private Set dataScopeDeptIds; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java new file mode 100644 index 0000000..c871274 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 角色分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class RolePageReqVO extends PageParam { + + @Schema(description = "角色名称,模糊匹配", example = "芋道") + private String name; + + @Schema(description = "角色标识,模糊匹配", example = "yudao") + private String code; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java new file mode 100644 index 0000000..2e15ee4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.time.LocalDateTime; +import java.util.Set; + +@Schema(description = "管理后台 - 角色信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RoleRespVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("角色序号") + private Long id; + + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员") + @ExcelProperty("角色名称") + private String name; + + @NotBlank(message = "角色标志不能为空") + @ExcelProperty("角色标志") + private String code; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("角色排序") + private Integer sort; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "角色状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "角色类型,参见 RoleTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + @Schema(description = "备注", example = "我是一个角色") + private String remark; + + @Schema(description = "数据范围,参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("数据范围") + private Integer dataScope; + + @Schema(description = "数据范围(指定部门数组)", example = "1") + private Set dataScopeDeptIds; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java new file mode 100644 index 0000000..5a59b5f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +@Schema(description = "管理后台 - 角色创建 Request VO") +@Data +public class RoleSaveReqVO { + + @Schema(description = "角色编号", example = "1") + private Long id; + + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员") + @NotBlank(message = "角色名称不能为空") + @Size(max = 30, message = "角色名称长度不能超过30个字符") + private String name; + + @NotBlank(message = "角色标志不能为空") + @Size(max = 100, message = "角色标志长度不能超过100个字符") + @Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN") + private String code; + + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "显示顺序不能为空") + private Integer sort; + + @Schema(description = "备注", example = "我是一个角色") + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java new file mode 100644 index 0000000..1e9a9df --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 角色精简信息 Response VO") +@Data +public class RoleSimpleRespVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java new file mode 100644 index 0000000..f11e569 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 角色更新状态 Request VO") +@Data +public class RoleUpdateStatusReqVO { + + @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "角色编号不能为空") + private Long id; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http new file mode 100644 index 0000000..cd97d2d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http @@ -0,0 +1,4 @@ +### 请求 /system/sensitive-word/validate-text 接口 => 成功 +GET {{baseUrl}}/system/sensitive-word/validate-text?text=XXX&tags=短信&tags=蔬菜 +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java new file mode 100644 index 0000000..271516a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java @@ -0,0 +1,108 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordRespVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordSaveVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 敏感词") +@RestController +@RequestMapping("/system/sensitive-word") +@Validated +public class SensitiveWordController { + + @Resource + private SensitiveWordService sensitiveWordService; + + @PostMapping("/create") + @Operation(tags = "敏感词管理",summary = "创建敏感词") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:create')") + public CommonResult createSensitiveWord(@Valid @RequestBody SensitiveWordSaveVO createReqVO) { + return success(sensitiveWordService.createSensitiveWord(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "敏感词管理",summary = "更新敏感词") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:update')") + public CommonResult updateSensitiveWord(@Valid @RequestBody SensitiveWordSaveVO updateReqVO) { + sensitiveWordService.updateSensitiveWord(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "敏感词管理",summary = "删除敏感词") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:sensitive-word:delete')") + public CommonResult deleteSensitiveWord(@RequestParam("id") Long id) { + sensitiveWordService.deleteSensitiveWord(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "敏感词管理",summary = "获得敏感词") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult getSensitiveWord(@RequestParam("id") Long id) { + SensitiveWordDO sensitiveWord = sensitiveWordService.getSensitiveWord(id); + return success(BeanUtils.toBean(sensitiveWord, SensitiveWordRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "敏感词管理",summary = "获得敏感词分页") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult> getSensitiveWordPage(@Valid SensitiveWordPageReqVO pageVO) { + PageResult pageResult = sensitiveWordService.getSensitiveWordPage(pageVO); + return success(BeanUtils.toBean(pageResult, SensitiveWordRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "敏感词管理",summary = "导出敏感词 Excel") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:export')") + @OperateLog(type = EXPORT) + public void exportSensitiveWordExcel(@Valid SensitiveWordPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = sensitiveWordService.getSensitiveWordPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "敏感词.xls", "数据", SensitiveWordRespVO.class, + BeanUtils.toBean(list, SensitiveWordRespVO.class)); + } + + @GetMapping("/get-tags") + @Operation(tags = "敏感词管理",summary = "获取所有敏感词的标签数组") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult> getSensitiveWordTagSet() { + return success(sensitiveWordService.getSensitiveWordTagSet()); + } + + @GetMapping("/validate-text") + @Operation(tags = "敏感词管理",summary = "获得文本所包含的不合法的敏感词数组") + public CommonResult> validateText(@RequestParam("text") String text, + @RequestParam(value = "tags", required = false) List tags) { + return success(sensitiveWordService.validateText(text, tags)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java new file mode 100644 index 0000000..642773a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 敏感词分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SensitiveWordPageReqVO extends PageParam { + + @Schema(description = "敏感词", example = "敏感词") + private String name; + + @Schema(description = "标签", example = "短信,评论") + private String tag; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java new file mode 100644 index 0000000..43d041e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.framework.excel.core.convert.JsonConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 敏感词 Response VO") +@Data +public class SensitiveWordRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "敏感词", requiredMode = Schema.RequiredMode.REQUIRED, example = "敏感词") + @ExcelProperty("敏感词") + private String name; + + @Schema(description = "标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "短信,评论") + @ExcelProperty(value = "标签", converter = JsonConvert.class) + private List tags; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "描述", example = "污言秽语") + @ExcelProperty("描述") + private String description; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordSaveVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordSaveVO.java new file mode 100644 index 0000000..c7b2fbd --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordSaveVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Schema(description = "管理后台 - 敏感词创建/修改 Request VO") +@Data +public class SensitiveWordSaveVO { + + @Schema(description = "编号", example = "1") + private Long id; + + @Schema(description = "敏感词", requiredMode = Schema.RequiredMode.REQUIRED, example = "敏感词") + @NotNull(message = "敏感词不能为空") + private String name; + + @Schema(description = "标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "短信,评论") + @NotNull(message = "标签不能为空") + private List tags; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "描述", example = "污言秽语") + private String description; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java new file mode 100644 index 0000000..35198d6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum; +import cn.iocoder.yudao.module.system.service.sms.SmsSendService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletRequest; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 短信回调") +@RestController +@RequestMapping("/system/sms/callback") +public class SmsCallbackController { + + @Resource + private SmsSendService smsSendService; + + @PostMapping("/aliyun") + @PermitAll + @Operation(tags = "短信管理",summary = "阿里云短信的回调", description = "参见 https://help.aliyun.com/document_detail/120998.html 文档") + @OperateLog(enable = false) + public CommonResult receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable { + String text = ServletUtils.getBody(request); + smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text); + return success(true); + } + + @PostMapping("/tencent") + @PermitAll + @Operation(tags = "短信管理",summary = "腾讯云短信的回调", description = "参见 https://cloud.tencent.com/document/product/382/52077 文档") + @OperateLog(enable = false) + public CommonResult receiveTencentSmsStatus(HttpServletRequest request) throws Throwable { + String text = ServletUtils.getBody(request); + smsSendService.receiveSmsStatus(SmsChannelEnum.TENCENT.getCode(), text); + return success(true); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.java new file mode 100644 index 0000000..40d0b67 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelRespVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; +import cn.iocoder.yudao.module.system.service.sms.SmsChannelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Comparator; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 短信渠道") +@RestController +@RequestMapping("system/sms-channel") +public class SmsChannelController { + + @Resource + private SmsChannelService smsChannelService; + + @PostMapping("/create") + @Operation(tags = "短信管理",summary = "创建短信渠道") + @PreAuthorize("@ss.hasPermission('system:sms-channel:create')") + public CommonResult createSmsChannel(@Valid @RequestBody SmsChannelSaveReqVO createReqVO) { + return success(smsChannelService.createSmsChannel(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "短信管理",summary = "更新短信渠道") + @PreAuthorize("@ss.hasPermission('system:sms-channel:update')") + public CommonResult updateSmsChannel(@Valid @RequestBody SmsChannelSaveReqVO updateReqVO) { + smsChannelService.updateSmsChannel(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "短信管理",summary = "删除短信渠道") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:sms-channel:delete')") + public CommonResult deleteSmsChannel(@RequestParam("id") Long id) { + smsChannelService.deleteSmsChannel(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "短信管理",summary = "获得短信渠道") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:sms-channel:query')") + public CommonResult getSmsChannel(@RequestParam("id") Long id) { + SmsChannelDO channel = smsChannelService.getSmsChannel(id); + return success(BeanUtils.toBean(channel, SmsChannelRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "短信管理",summary = "获得短信渠道分页") + @PreAuthorize("@ss.hasPermission('system:sms-channel:query')") + public CommonResult> getSmsChannelPage(@Valid SmsChannelPageReqVO pageVO) { + PageResult pageResult = smsChannelService.getSmsChannelPage(pageVO); + return success(BeanUtils.toBean(pageResult, SmsChannelRespVO.class)); + } + + @GetMapping({"/list-all-simple", "/simple-list"}) + @Operation(tags = "短信管理",summary = "获得短信渠道精简列表", description = "包含被禁用的短信渠道") + public CommonResult> getSimpleSmsChannelList() { + List list = smsChannelService.getSmsChannelList(); + list.sort(Comparator.comparing(SmsChannelDO::getId)); + return success(BeanUtils.toBean(list, SmsChannelSimpleRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.java new file mode 100644 index 0000000..218f7ac --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; +import cn.iocoder.yudao.module.system.service.sms.SmsLogService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 短信日志") +@RestController +@RequestMapping("/system/sms-log") +@Validated +public class SmsLogController { + + @Resource + private SmsLogService smsLogService; + + @GetMapping("/page") + @Operation(tags = "短信管理",summary = "获得短信日志分页") + @PreAuthorize("@ss.hasPermission('system:sms-log:query')") + public CommonResult> getSmsLogPage(@Valid SmsLogPageReqVO pageReqVO) { + PageResult pageResult = smsLogService.getSmsLogPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SmsLogRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "短信管理",summary = "导出短信日志 Excel") + @PreAuthorize("@ss.hasPermission('system:sms-log:export')") + @OperateLog(type = EXPORT) + public void exportSmsLogExcel(@Valid SmsLogPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = smsLogService.getSmsLogPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "短信日志.xls", "数据", SmsLogRespVO.class, + BeanUtils.toBean(list, SmsLogRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http new file mode 100644 index 0000000..ee24e92 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http @@ -0,0 +1,14 @@ +### 请求 /system/sms-template/send-sms 接口 => 成功 +POST {{baseUrl}}/system/sms-template/send-sms +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenentId}} + +{ + "templateCode": "test_01", + "mobile": "15601691390", + "templateParams": { + "operation": "value01", + "code": "value02" + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java new file mode 100644 index 0000000..c8aa655 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.*; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService; +import cn.iocoder.yudao.module.system.service.sms.SmsSendService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 短信模板") +@RestController +@RequestMapping("/system/sms-template") +public class SmsTemplateController { + + @Resource + private SmsTemplateService smsTemplateService; + @Resource + private SmsSendService smsSendService; + + @PostMapping("/create") + @Operation(tags = "短信管理",summary = "创建短信模板") + @PreAuthorize("@ss.hasPermission('system:sms-template:create')") + public CommonResult createSmsTemplate(@Valid @RequestBody SmsTemplateSaveReqVO createReqVO) { + return success(smsTemplateService.createSmsTemplate(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "短信管理",summary = "更新短信模板") + @PreAuthorize("@ss.hasPermission('system:sms-template:update')") + public CommonResult updateSmsTemplate(@Valid @RequestBody SmsTemplateSaveReqVO updateReqVO) { + smsTemplateService.updateSmsTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "短信管理",summary = "删除短信模板") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:sms-template:delete')") + public CommonResult deleteSmsTemplate(@RequestParam("id") Long id) { + smsTemplateService.deleteSmsTemplate(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "短信管理",summary = "获得短信模板") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:sms-template:query')") + public CommonResult getSmsTemplate(@RequestParam("id") Long id) { + SmsTemplateDO template = smsTemplateService.getSmsTemplate(id); + return success(BeanUtils.toBean(template, SmsTemplateRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "短信管理",summary = "获得短信模板分页") + @PreAuthorize("@ss.hasPermission('system:sms-template:query')") + public CommonResult> getSmsTemplatePage(@Valid SmsTemplatePageReqVO pageVO) { + PageResult pageResult = smsTemplateService.getSmsTemplatePage(pageVO); + return success(BeanUtils.toBean(pageResult, SmsTemplateRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "短信管理",summary = "导出短信模板 Excel") + @PreAuthorize("@ss.hasPermission('system:sms-template:export')") + @OperateLog(type = EXPORT) + public void exportSmsTemplateExcel(@Valid SmsTemplatePageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = smsTemplateService.getSmsTemplatePage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "短信模板.xls", "数据", SmsTemplateRespVO.class, + BeanUtils.toBean(list, SmsTemplateRespVO.class)); + } + + @PostMapping("/send-sms") + @Operation(tags = "短信管理",summary = "发送短信") + @PreAuthorize("@ss.hasPermission('system:sms-template:send-sms')") + public CommonResult sendSms(@Valid @RequestBody SmsTemplateSendReqVO sendReqVO) { + return success(smsSendService.sendSingleSmsToAdmin(sendReqVO.getMobile(), null, + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java new file mode 100644 index 0000000..2ec9b2f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 短信渠道分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SmsChannelPageReqVO extends PageParam { + + @Schema(description = "任务状态", example = "1") + private Integer status; + + @Schema(description = "短信签名,模糊匹配", example = "芋道源码") + private String signature; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java new file mode 100644 index 0000000..70b709e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 短信渠道 Response VO") +@Data +public class SmsChannelRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "短信签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + @NotNull(message = "短信签名不能为空") + private String signature; + + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") + private String code; + + @Schema(description = "启用状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "启用状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "好吃!") + private String remark; + + @Schema(description = "短信 API 的账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotNull(message = "短信 API 的账号不能为空") + private String apiKey; + + @Schema(description = "短信 API 的密钥", example = "yuanma") + private String apiSecret; + + @Schema(description = "短信发送回调 URL", example = "https://www.iocoder.cn") + @URL(message = "回调 URL 格式不正确") + private String callbackUrl; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java new file mode 100644 index 0000000..47cde1e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.URL; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 短信渠道创建/修改 Request VO") +@Data +public class SmsChannelSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "短信签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + @NotNull(message = "短信签名不能为空") + private String signature; + + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") + @NotNull(message = "渠道编码不能为空") + private String code; + + @Schema(description = "启用状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "启用状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "好吃!") + private String remark; + + @Schema(description = "短信 API 的账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotNull(message = "短信 API 的账号不能为空") + private String apiKey; + + @Schema(description = "短信 API 的密钥", example = "yuanma") + private String apiSecret; + + @Schema(description = "短信发送回调 URL", example = "http://www.iocoder.cn") + @URL(message = "回调 URL 格式不正确") + private String callbackUrl; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java new file mode 100644 index 0000000..350297c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 短信渠道精简 Response VO") +@Data +public class SmsChannelSimpleRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "短信签名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码") + private String signature; + + @Schema(description = "渠道编码,参见 SmsChannelEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "YUN_PIAN") + private String code; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java new file mode 100644 index 0000000..fbf9dcf --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.log; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 短信日志分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SmsLogPageReqVO extends PageParam { + + @Schema(description = "短信渠道编号", example = "10") + private Long channelId; + + @Schema(description = "模板编号", example = "20") + private Long templateId; + + @Schema(description = "手机号", example = "15601691300") + private String mobile; + + @Schema(description = "发送状态,参见 SmsSendStatusEnum 枚举类", example = "1") + private Integer sendStatus; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "发送时间") + private LocalDateTime[] sendTime; + + @Schema(description = "接收状态,参见 SmsReceiveStatusEnum 枚举类", example = "0") + private Integer receiveStatus; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "接收时间") + private LocalDateTime[] receiveTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java new file mode 100644 index 0000000..77409ed --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java @@ -0,0 +1,116 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.log; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.framework.excel.core.convert.JsonConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Map; + +@Schema(description = "管理后台 - 短信日志 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SmsLogRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @ExcelProperty("短信渠道编号") + private Long channelId; + + @Schema(description = "短信渠道编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ALIYUN") + @ExcelProperty("短信渠道编码") + private String channelCode; + + @Schema(description = "模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20") + @ExcelProperty("模板编号") + private Long templateId; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test-01") + @ExcelProperty("模板编码") + private String templateCode; + + @Schema(description = "短信类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "短信类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SMS_TEMPLATE_TYPE) + private Integer templateType; + + @Schema(description = "短信内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,你的验证码是 1024") + @ExcelProperty("短信内容") + private String templateContent; + + @Schema(description = "短信参数", requiredMode = Schema.RequiredMode.REQUIRED, example = "name,code") + @ExcelProperty(value = "短信参数", converter = JsonConvert.class) + private Map templateParams; + + @Schema(description = "短信 API 的模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SMS_207945135") + @ExcelProperty("短信 API 的模板编号") + private String apiTemplateId; + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") + @ExcelProperty("手机号") + private String mobile; + + @Schema(description = "用户编号", example = "10") + @ExcelProperty("用户编号") + private Long userId; + + @Schema(description = "用户类型", example = "1") + @ExcelProperty(value = "用户类型", converter = DictConvert.class) + @DictFormat(DictTypeConstants.USER_TYPE) + private Integer userType; + + @Schema(description = "发送状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "发送状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SMS_SEND_STATUS) + private Integer sendStatus; + + @Schema(description = "发送时间") + @ExcelProperty("发送时间") + private LocalDateTime sendTime; + + @Schema(description = "短信 API 发送结果的编码", example = "SUCCESS") + @ExcelProperty("短信 API 发送结果的编码") + private String apiSendCode; + + @Schema(description = "短信 API 发送失败的提示", example = "成功") + @ExcelProperty("短信 API 发送失败的提示") + private String apiSendMsg; + + @Schema(description = "短信 API 发送返回的唯一请求 ID", example = "3837C6D3-B96F-428C-BBB2-86135D4B5B99") + @ExcelProperty("短信 API 发送返回的唯一请求 ID") + private String apiRequestId; + + @Schema(description = "短信 API 发送返回的序号", example = "62923244790") + @ExcelProperty("短信 API 发送返回的序号") + private String apiSerialNo; + + @Schema(description = "接收状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @ExcelProperty(value = "接收状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SMS_RECEIVE_STATUS) + private Integer receiveStatus; + + @Schema(description = "接收时间") + @ExcelProperty("接收时间") + private LocalDateTime receiveTime; + + @Schema(description = "API 接收结果的编码", example = "DELIVRD") + @ExcelProperty("API 接收结果的编码") + private String apiReceiveCode; + + @Schema(description = "API 接收结果的说明", example = "用户接收成功") + @ExcelProperty("API 接收结果的说明") + private String apiReceiveMsg; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java new file mode 100644 index 0000000..acf99e3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 短信模板分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SmsTemplatePageReqVO extends PageParam { + + @Schema(description = "短信签名", example = "1") + private Integer type; + + @Schema(description = "开启状态", example = "1") + private Integer status; + + @Schema(description = "模板编码,模糊匹配", example = "test_01") + private String code; + + @Schema(description = "模板内容,模糊匹配", example = "你好,{name}。你长的太{like}啦!") + private String content; + + @Schema(description = "短信 API 的模板编号,模糊匹配", example = "4383920") + private String apiTemplateId; + + @Schema(description = "短信渠道编号", example = "10") + private Long channelId; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java new file mode 100644 index 0000000..6b8aeca --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 短信模板 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SmsTemplateRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "短信类型,参见 SmsTemplateTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "短信签名", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SMS_TEMPLATE_TYPE) + private Integer type; + + @Schema(description = "开启状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "开启状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + @ExcelProperty("模板编码") + private String code; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @ExcelProperty("模板名称") + private String name; + + @Schema(description = "模板内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,{name}。你长的太{like}啦!") + @ExcelProperty("模板内容") + private String content; + + @Schema(description = "参数数组", example = "name,code") + private List params; + + @Schema(description = "备注", example = "哈哈哈") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "短信 API 的模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4383920") + @ExcelProperty("短信 API 的模板编号") + private String apiTemplateId; + + @Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @ExcelProperty("短信渠道编号") + private Long channelId; + + @Schema(description = "短信渠道编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ALIYUN") + @ExcelProperty(value = "短信渠道编码", converter = DictConvert.class) + @DictFormat(DictTypeConstants.SMS_CHANNEL_CODE) + private String channelCode; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java new file mode 100644 index 0000000..7199bf3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 短信模板创建/修改 Request VO") +@Data +public class SmsTemplateSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "短信类型,参见 SmsTemplateTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "短信类型不能为空") + private Integer type; + + @Schema(description = "开启状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "开启状态不能为空") + private Integer status; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + @NotNull(message = "模板编码不能为空") + private String code; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotNull(message = "模板名称不能为空") + private String name; + + @Schema(description = "模板内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,{name}。你长的太{like}啦!") + @NotNull(message = "模板内容不能为空") + private String content; + + @Schema(description = "备注", example = "哈哈哈") + private String remark; + + @Schema(description = "短信 API 的模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4383920") + @NotNull(message = "短信 API 的模板编号不能为空") + private String apiTemplateId; + + @Schema(description = "短信渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @NotNull(message = "短信渠道编号不能为空") + private Long channelId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java new file mode 100644 index 0000000..e420966 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Map; + +@Schema(description = "管理后台 - 短信模板的发送 Request VO") +@Data +public class SmsTemplateSendReqVO { + + @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") + @NotNull(message = "手机号不能为空") + private String mobile; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") + @NotNull(message = "模板编码不能为空") + private String templateCode; + + @Schema(description = "模板参数") + private Map templateParams; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java new file mode 100644 index 0000000..03897e6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientRespVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; +import cn.iocoder.yudao.module.system.service.social.SocialClientService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 社交客户端") +@RestController +@RequestMapping("/system/social-client") +@Validated +public class SocialClientController { + + @Resource + private SocialClientService socialClientService; + + @PostMapping("/create") + @Operation(tags = "社交管理",summary = "创建社交客户端") + @PreAuthorize("@ss.hasPermission('system:social-client:create')") + public CommonResult createSocialClient(@Valid @RequestBody SocialClientSaveReqVO createReqVO) { + return success(socialClientService.createSocialClient(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "社交管理",summary = "更新社交客户端") + @PreAuthorize("@ss.hasPermission('system:social-client:update')") + public CommonResult updateSocialClient(@Valid @RequestBody SocialClientSaveReqVO updateReqVO) { + socialClientService.updateSocialClient(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "社交管理",summary = "删除社交客户端") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:social-client:delete')") + public CommonResult deleteSocialClient(@RequestParam("id") Long id) { + socialClientService.deleteSocialClient(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "社交管理",summary = "获得社交客户端") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:social-client:query')") + public CommonResult getSocialClient(@RequestParam("id") Long id) { + SocialClientDO client = socialClientService.getSocialClient(id); + return success(BeanUtils.toBean(client, SocialClientRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "社交管理",summary = "获得社交客户端分页") + @PreAuthorize("@ss.hasPermission('system:social-client:query')") + public CommonResult> getSocialClientPage(@Valid SocialClientPageReqVO pageVO) { + PageResult pageResult = socialClientService.getSocialClientPage(pageVO); + return success(BeanUtils.toBean(pageResult, SocialClientRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.java new file mode 100644 index 0000000..ec7162f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserUnbindReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserRespVO; +import cn.iocoder.yudao.module.system.convert.social.SocialUserConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import cn.iocoder.yudao.module.system.service.social.SocialUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +@Tag(name = "管理后台 - 社交用户") +@RestController +@RequestMapping("/system/social-user") +@Validated +public class SocialUserController { + + @Resource + private SocialUserService socialUserService; + + @PostMapping("/bind") + @Operation(tags = "社交管理",summary = "社交绑定,使用 code 授权码") + public CommonResult socialBind(@RequestBody @Valid SocialUserBindReqVO reqVO) { + socialUserService.bindSocialUser(SocialUserConvert.INSTANCE.convert( + getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO)); + return CommonResult.success(true); + } + + @DeleteMapping("/unbind") + @Operation(tags = "社交管理",summary = "取消社交绑定") + public CommonResult socialUnbind(@RequestBody SocialUserUnbindReqVO reqVO) { + socialUserService.unbindSocialUser(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO.getType(), reqVO.getOpenid()); + return CommonResult.success(true); + } + + // ==================== 社交用户 CRUD ==================== + + @GetMapping("/get") + @Operation(tags = "社交管理",summary = "获得社交用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:social-user:query')") + public CommonResult getSocialUser(@RequestParam("id") Long id) { + SocialUserDO socialUser = socialUserService.getSocialUser(id); + return success(BeanUtils.toBean(socialUser, SocialUserRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "社交管理",summary = "获得社交用户分页") + @PreAuthorize("@ss.hasPermission('system:social-user:query')") + public CommonResult> getSocialUserPage(@Valid SocialUserPageReqVO pageVO) { + PageResult pageResult = socialUserService.getSocialUserPage(pageVO); + return success(BeanUtils.toBean(pageResult, SocialUserRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java new file mode 100644 index 0000000..a225530 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.client; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 社交客户端分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SocialClientPageReqVO extends PageParam { + + @Schema(description = "应用名", example = "yudao商城") + private String name; + + @Schema(description = "社交平台的类型", example = "31") + private Integer socialType; + + @Schema(description = "用户类型", example = "2") + private Integer userType; + + @Schema(description = "客户端编号", example = "145442115") + private String clientId; + + @Schema(description = "状态", example = "1") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java new file mode 100644 index 0000000..900f363 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.client; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 社交客户端 Response VO") +@Data +public class SocialClientRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27162") + private Long id; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao商城") + private String name; + + @Schema(description = "社交平台的类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "31") + private Integer socialType; + + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + private Integer userType; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "wwd411c69a39ad2e54") + private String clientId; + + @Schema(description = "客户端密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "peter") + private String clientSecret; + + @Schema(description = "授权方的网页应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000045") + private String agentId; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java new file mode 100644 index 0000000..be89153 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.client; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotNull; +import java.util.Objects; + +@Schema(description = "管理后台 - 社交客户端创建/修改 Request VO") +@Data +public class SocialClientSaveReqVO { + + @Schema(description = "编号", example = "27162") + private Long id; + + @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao商城") + @NotNull(message = "应用名不能为空") + private String name; + + @Schema(description = "社交平台的类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "31") + @NotNull(message = "社交平台的类型不能为空") + @InEnum(SocialTypeEnum.class) + private Integer socialType; + + @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "用户类型不能为空") + @InEnum(UserTypeEnum.class) + private Integer userType; + + @Schema(description = "客户端编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "wwd411c69a39ad2e54") + @NotNull(message = "客户端编号不能为空") + private String clientId; + + @Schema(description = "客户端密钥", requiredMode = Schema.RequiredMode.REQUIRED, example = "peter") + @NotNull(message = "客户端密钥不能为空") + private String clientSecret; + + @Schema(description = "授权方的网页应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2000045") + private String agentId; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(CommonStatusEnum.class) + private Integer status; + + @AssertTrue(message = "agentId 不能为空") + @JsonIgnore + public boolean isAgentIdValid() { + // 如果是企业微信,必须填写 agentId 属性 + return !Objects.equals(socialType, SocialTypeEnum.WECHAT_ENTERPRISE.getType()) + || !StrUtil.isEmpty(agentId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java new file mode 100644 index 0000000..9ba4168 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.user; + +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 社交绑定 Request VO,使用 code 授权码") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class SocialUserBindReqVO { + + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @InEnum(SocialTypeEnum.class) + @NotNull(message = "社交平台的类型不能为空") + private Integer type; + + @Schema(description = "授权码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotEmpty(message = "授权码不能为空") + private String code; + + @Schema(description = "state", requiredMode = Schema.RequiredMode.REQUIRED, example = "9b2ffbc1-7425-4155-9894-9d5c08541d62") + @NotEmpty(message = "state 不能为空") + private String state; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java new file mode 100644 index 0000000..3297db4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.user; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 社交用户分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SocialUserPageReqVO extends PageParam { + + @Schema(description = "社交平台的类型", example = "30") + private Integer type; + + @Schema(description = "用户昵称", example = "李四") + private String nickname; + + @Schema(description = "社交 openid", example = "oz-Jdt0kd_jdhUxJHQdBJMlOFN7w") + private String openid; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java new file mode 100644 index 0000000..fd37703 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 社交用户 Response VO") +@Data +public class SocialUserRespVO { + + @Schema(description = "主键(自增策略)", requiredMode = Schema.RequiredMode.REQUIRED, example = "14569") + private Long id; + + @Schema(description = "社交平台的类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "30") + private Integer type; + + @Schema(description = "社交 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private String openid; + + @Schema(description = "社交 token", requiredMode = Schema.RequiredMode.REQUIRED, example = "666") + private String token; + + @Schema(description = "原始 Token 数据,一般是 JSON 格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}") + private String rawTokenInfo; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String nickname; + + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + private String avatar; + + @Schema(description = "原始用户数据,一般是 JSON 格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}") + private String rawUserInfo; + + @Schema(description = "最后一次的认证 code", requiredMode = Schema.RequiredMode.REQUIRED, example = "666666") + private String code; + + @Schema(description = "最后一次的认证 state", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + private String state; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + + @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime updateTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java new file mode 100644 index 0000000..10f07fc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.controller.admin.socail.vo.user; + +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 取消社交绑定 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class SocialUserUnbindReqVO { + + @Schema(description = "社交平台的类型,参见 UserSocialTypeEnum 枚举值", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @InEnum(SocialTypeEnum.class) + @NotNull(message = "社交平台的类型不能为空") + private Integer type; + + @Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") + @NotEmpty(message = "社交用户的 openid 不能为空") + private String openid; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http new file mode 100644 index 0000000..a4d5173 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http @@ -0,0 +1,21 @@ +### 获取租户编号 /admin-api/system/get-id-by-name +GET {{baseUrl}}/system/tenant/get-id-by-name?name=芋道源码 + +### 创建租户 /admin-api/system/tenant/create +POST {{baseUrl}}/system/tenant/create +Content-Type: application/json +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +{ + "name": "芋道", + "contactName": "芋艿", + "contactMobile": "15601691300", + "status": 0, + "domain": "https://www.iocoder.cn", + "packageId": 110, + "expireTime": 1699545600000, + "accountCount": 20, + "username": "admin", + "password": "123321" +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java new file mode 100644 index 0000000..1843fd7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java @@ -0,0 +1,111 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantRespVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; +import cn.iocoder.yudao.module.system.service.tenant.TenantService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.annotation.security.PermitAll; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 租户") +@RestController +@RequestMapping("/system/tenant") +public class TenantController { + + @Resource + private TenantService tenantService; + + @GetMapping("/get-id-by-name") + @PermitAll + @Operation(tags = "租户管理",summary = "使用租户名,获得租户编号", description = "登录界面,根据用户的租户名,获得租户编号") + @Parameter(name = "name", description = "租户名", required = true, example = "1024") + public CommonResult getTenantIdByName(@RequestParam("name") String name) { + TenantDO tenant = tenantService.getTenantByName(name); + return success(tenant != null ? tenant.getId() : null); + } + + @GetMapping("/get-by-website") + @PermitAll + @Operation(tags = "租户管理",summary = "使用域名,获得租户信息", description = "登录界面,根据用户的域名,获得租户信息") + @Parameter(name = "website", description = "域名", required = true, example = "www.iocoder.cn") + public CommonResult getTenantByWebsite(@RequestParam("website") String website) { + TenantDO tenant = tenantService.getTenantByWebsite(website); + return success(BeanUtils.toBean(tenant, TenantSimpleRespVO.class)); + } + + @PostMapping("/create") + @Operation(tags = "租户管理",summary = "创建租户") + @PreAuthorize("@ss.hasPermission('system:tenant:create')") + public CommonResult createTenant(@Valid @RequestBody TenantSaveReqVO createReqVO) { + return success(tenantService.createTenant(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "租户管理",summary = "更新租户") + @PreAuthorize("@ss.hasPermission('system:tenant:update')") + public CommonResult updateTenant(@Valid @RequestBody TenantSaveReqVO updateReqVO) { + tenantService.updateTenant(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "租户管理",summary = "删除租户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:tenant:delete')") + public CommonResult deleteTenant(@RequestParam("id") Long id) { + tenantService.deleteTenant(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "租户管理",summary = "获得租户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:tenant:query')") + public CommonResult getTenant(@RequestParam("id") Long id) { + TenantDO tenant = tenantService.getTenant(id); + return success(BeanUtils.toBean(tenant, TenantRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "租户管理",summary = "获得租户分页") + @PreAuthorize("@ss.hasPermission('system:tenant:query')") + public CommonResult> getTenantPage(@Valid TenantPageReqVO pageVO) { + PageResult pageResult = tenantService.getTenantPage(pageVO); + return success(BeanUtils.toBean(pageResult, TenantRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(tags = "租户管理",summary = "导出租户 Excel") + @PreAuthorize("@ss.hasPermission('system:tenant:export')") + @OperateLog(type = EXPORT) + public void exportTenantExcel(@Valid TenantPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = tenantService.getTenantPage(exportReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "租户.xls", "数据", TenantRespVO.class, + BeanUtils.toBean(list, TenantRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.java new file mode 100644 index 0000000..aa14251 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.*; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; +import cn.iocoder.yudao.module.system.service.tenant.TenantPackageService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 租户套餐") +@RestController +@RequestMapping("/system/tenant-package") +@Validated +public class TenantPackageController { + + @Resource + private TenantPackageService tenantPackageService; + + @PostMapping("/create") + @Operation(tags = "租户管理",summary = "创建租户套餐") + @PreAuthorize("@ss.hasPermission('system:tenant-package:create')") + public CommonResult createTenantPackage(@Valid @RequestBody TenantPackageSaveReqVO createReqVO) { + return success(tenantPackageService.createTenantPackage(createReqVO)); + } + + @PutMapping("/update") + @Operation(tags = "租户管理",summary = "更新租户套餐") + @PreAuthorize("@ss.hasPermission('system:tenant-package:update')") + public CommonResult updateTenantPackage(@Valid @RequestBody TenantPackageSaveReqVO updateReqVO) { + tenantPackageService.updateTenantPackage(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "租户管理",summary = "删除租户套餐") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:tenant-package:delete')") + public CommonResult deleteTenantPackage(@RequestParam("id") Long id) { + tenantPackageService.deleteTenantPackage(id); + return success(true); + } + + @GetMapping("/get") + @Operation(tags = "租户管理",summary = "获得租户套餐") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:tenant-package:query')") + public CommonResult getTenantPackage(@RequestParam("id") Long id) { + TenantPackageDO tenantPackage = tenantPackageService.getTenantPackage(id); + return success(BeanUtils.toBean(tenantPackage, TenantPackageRespVO.class)); + } + + @GetMapping("/page") + @Operation(tags = "租户管理",summary = "获得租户套餐分页") + @PreAuthorize("@ss.hasPermission('system:tenant-package:query')") + public CommonResult> getTenantPackagePage(@Valid TenantPackagePageReqVO pageVO) { + PageResult pageResult = tenantPackageService.getTenantPackagePage(pageVO); + return success(BeanUtils.toBean(pageResult, TenantPackageRespVO.class)); + } + + @GetMapping({"/get-simple-list", "simple-list"}) + @Operation(tags = "租户管理",summary = "获取租户套餐精简信息列表", description = "只包含被开启的租户套餐,主要用于前端的下拉选项") + public CommonResult> getTenantPackageList() { + List list = tenantPackageService.getTenantPackageListByStatus(CommonStatusEnum.ENABLE.getStatus()); + return success(BeanUtils.toBean(list, TenantPackageSimpleRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java new file mode 100644 index 0000000..525a5da --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 租户套餐分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TenantPackagePageReqVO extends PageParam { + + @Schema(description = "套餐名", example = "VIP") + private String name; + + @Schema(description = "状态", example = "1") + private Integer status; + + @Schema(description = "备注", example = "好") + private String remark; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java new file mode 100644 index 0000000..16ffd81 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Set; + +@Schema(description = "管理后台 - 租户套餐 Response VO") +@Data +public class TenantPackageRespVO { + + @Schema(description = "套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "套餐名", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIP") + private String name; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "备注", example = "好") + private String remark; + + @Schema(description = "关联的菜单编号", requiredMode = Schema.RequiredMode.REQUIRED) + private Set menuIds; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java new file mode 100644 index 0000000..3faed3a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Set; + +@Schema(description = "管理后台 - 租户套餐创建/修改 Request VO") +@Data +public class TenantPackageSaveReqVO { + + @Schema(description = "套餐编号", example = "1024") + private Long id; + + @Schema(description = "套餐名", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIP") + @NotEmpty(message = "套餐名不能为空") + private String name; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}") + private Integer status; + + @Schema(description = "备注", example = "好") + private String remark; + + @Schema(description = "关联的菜单编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "关联的菜单编号不能为空") + private Set menuIds; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java new file mode 100644 index 0000000..bc3d62a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 租户套餐精简 Response VO") +@Data +public class TenantPackageSimpleRespVO { + + @Schema(description = "套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "套餐编号不能为空") + private Long id; + + @Schema(description = "套餐名", requiredMode = Schema.RequiredMode.REQUIRED, example = "VIP") + @NotNull(message = "套餐名不能为空") + private String name; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java new file mode 100644 index 0000000..512a4a7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 租户分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TenantPageReqVO extends PageParam { + + @Schema(description = "租户名", example = "芋道") + private String name; + + @Schema(description = "联系人", example = "芋艿") + private String contactName; + + @Schema(description = "联系手机", example = "15601691300") + private String contactMobile; + + @Schema(description = "租户状态(0正常 1停用)", example = "1") + private Integer status; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java new file mode 100644 index 0000000..5a444b5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 租户 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TenantRespVO { + + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("租户编号") + private Long id; + + @Schema(description = "租户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @ExcelProperty("租户名") + private String name; + + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("联系人") + private String contactName; + + @Schema(description = "联系手机", example = "15601691300") + @ExcelProperty("联系手机") + private String contactMobile; + + @Schema(description = "租户状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "绑定域名", example = "https://www.iocoder.cn") + private String website; + + @Schema(description = "租户套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long packageId; + + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime expireTime; + + @Schema(description = "账号数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Integer accountCount; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java new file mode 100644 index 0000000..117d365 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; + +import cn.hutool.core.util.ObjectUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 租户创建/修改 Request VO") +@Data +public class TenantSaveReqVO { + + @Schema(description = "租户编号", example = "1024") + private Long id; + + @Schema(description = "租户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + @NotNull(message = "租户名不能为空") + private String name; + + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotNull(message = "联系人不能为空") + private String contactName; + + @Schema(description = "联系手机", example = "15601691300") + private String contactMobile; + + @Schema(description = "租户状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "租户状态") + private Integer status; + + @Schema(description = "绑定域名", example = "https://www.iocoder.cn") + private String website; + + @Schema(description = "租户套餐编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "租户套餐编号不能为空") + private Long packageId; + + @Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "过期时间不能为空") + private LocalDateTime expireTime; + + @Schema(description = "账号数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "账号数量不能为空") + private Integer accountCount; + + // ========== 仅【创建】时,需要传递的字段 ========== + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") + @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") + private String username; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String password; + + @AssertTrue(message = "用户账号、密码不能为空") + @JsonIgnore + public boolean isUsernameValid() { + return id != null // 修改时,不需要传递 + || (ObjectUtil.isAllNotEmpty(username, password)); // 新增时,必须都传递 username、password + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java new file mode 100644 index 0000000..4975227 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSimpleRespVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 租户精简 Response VO") +@Data +public class TenantSimpleRespVO { + + @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "租户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String name; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http new file mode 100644 index 0000000..6d9cea8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http @@ -0,0 +1,4 @@ +### 请求 /system/user/page 接口 => 没有权限 +GET {{baseUrl}}/system/user/page?pageNo=1&pageSize=10 +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java new file mode 100644 index 0000000..c3e7d89 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -0,0 +1,169 @@ +package cn.iocoder.yudao.module.system.controller.admin.user; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; +import cn.iocoder.yudao.module.system.convert.user.UserConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.enums.common.SexEnum; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 用户") +@RestController +@RequestMapping("/system/user") +@Validated +public class UserController { + + @Resource + private AdminUserService userService; + @Resource + private DeptService deptService; + + @PostMapping("/create") + @Operation(tags = "用户管理",summary = "新增用户") + @PreAuthorize("@ss.hasPermission('system:user:create')") + public CommonResult createUser(@Valid @RequestBody UserSaveReqVO reqVO) { + Long id = userService.createUser(reqVO); + return success(id); + } + + @PutMapping("update") + @Operation(tags = "用户管理",summary = "修改用户") + @PreAuthorize("@ss.hasPermission('system:user:update')") + public CommonResult updateUser(@Valid @RequestBody UserSaveReqVO reqVO) { + userService.updateUser(reqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(tags = "用户管理",summary = "删除用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:user:delete')") + public CommonResult deleteUser(@RequestParam("id") Long id) { + userService.deleteUser(id); + return success(true); + } + + @PutMapping("/update-password") + @Operation(tags = "用户管理",summary = "重置用户密码") + @PreAuthorize("@ss.hasPermission('system:user:update-password')") + public CommonResult updateUserPassword(@Valid @RequestBody UserUpdatePasswordReqVO reqVO) { + userService.updateUserPassword(reqVO.getId(), reqVO.getPassword()); + return success(true); + } + + @PutMapping("/update-status") + @Operation(tags = "用户管理",summary = "修改用户状态") + @PreAuthorize("@ss.hasPermission('system:user:update')") + public CommonResult updateUserStatus(@Valid @RequestBody UserUpdateStatusReqVO reqVO) { + userService.updateUserStatus(reqVO.getId(), reqVO.getStatus()); + return success(true); + } + + @GetMapping("/page") + @Operation(tags = "用户管理",summary = "获得用户分页列表") + @PreAuthorize("@ss.hasPermission('system:user:list')") + public CommonResult> getUserPage(@Valid UserPageReqVO pageReqVO) { + // 获得用户分页列表 + PageResult pageResult = userService.getUserPage(pageReqVO); + if (CollUtil.isEmpty(pageResult.getList())) { + return success(new PageResult<>(pageResult.getTotal())); + } + // 拼接数据 + Map deptMap = deptService.getDeptMap( + convertList(pageResult.getList(), AdminUserDO::getDeptId)); + return success(new PageResult<>(UserConvert.INSTANCE.convertList(pageResult.getList(), deptMap), + pageResult.getTotal())); + } + + @GetMapping({"/list-all-simple", "/simple-list"}) + @Operation(tags = "用户管理",summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") + public CommonResult> getSimpleUserList() { + List list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus()); + // 拼接数据 + Map deptMap = deptService.getDeptMap( + convertList(list, AdminUserDO::getDeptId)); + return success(UserConvert.INSTANCE.convertSimpleList(list, deptMap)); + } + + @GetMapping("/get") + @Operation(tags = "用户管理",summary = "获得用户详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:user:query')") + public CommonResult getUser(@RequestParam("id") Long id) { + AdminUserDO user = userService.getUser(id); + // 拼接数据 + DeptDO dept = deptService.getDept(user.getDeptId()); + return success(UserConvert.INSTANCE.convert(user, dept)); + } + + @GetMapping("/export") + @Operation(tags = "用户管理",summary = "导出用户") + @PreAuthorize("@ss.hasPermission('system:user:export')") + @OperateLog(type = EXPORT) + public void exportUserList(@Validated UserPageReqVO exportReqVO, + HttpServletResponse response) throws IOException { + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = userService.getUserPage(exportReqVO).getList(); + // 输出 Excel + Map deptMap = deptService.getDeptMap( + convertList(list, AdminUserDO::getDeptId)); + ExcelUtils.write(response, "用户数据.xls", "数据", UserRespVO.class, + UserConvert.INSTANCE.convertList(list, deptMap)); + } + + @GetMapping("/get-import-template") + @Operation(tags = "用户管理",summary = "获得导入用户模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = Arrays.asList( + UserImportExcelVO.builder().username("yunai").deptId(1L).email("yunai@iocoder.cn").mobile("15601691300") + .nickname("芋道").status(CommonStatusEnum.ENABLE.getStatus()).sex(SexEnum.MALE.getSex()).build(), + UserImportExcelVO.builder().username("yuanma").deptId(2L).email("yuanma@iocoder.cn").mobile("15601701300") + .nickname("源码").status(CommonStatusEnum.DISABLE.getStatus()).sex(SexEnum.FEMALE.getSex()).build() + ); + // 输出 + ExcelUtils.write(response, "用户导入模板.xls", "用户列表", UserImportExcelVO.class, list); + } + + @PostMapping("/import") + @Operation(tags = "用户管理",summary = "导入用户") + @Parameters({ + @Parameter(name = "file", description = "Excel 文件", required = true), + @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true") + }) + @PreAuthorize("@ss.hasPermission('system:user:import')") + public CommonResult importExcel(@RequestParam("file") MultipartFile file, + @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception { + List list = ExcelUtils.read(file, UserImportExcelVO.class); + return success(userService.importUserList(list, updateSupport)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http new file mode 100644 index 0000000..f06037b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http @@ -0,0 +1,4 @@ +### 请求 /system/user/profile/get 接口 => 没有权限 +GET {{baseUrl}}/system/user/profile/get +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java new file mode 100644 index 0000000..8d911b6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.system.controller.admin.user; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileRespVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; +import cn.iocoder.yudao.module.system.convert.user.UserConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.dept.PostService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import cn.iocoder.yudao.module.system.service.social.SocialUserService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_IS_EMPTY; + +@Tag(name = "管理后台 - 用户个人中心") +@RestController +@RequestMapping("/system/user/profile") +@Validated +@Slf4j +public class UserProfileController { + + @Resource + private AdminUserService userService; + @Resource + private DeptService deptService; + @Resource + private PostService postService; + @Resource + private PermissionService permissionService; + @Resource + private RoleService roleService; + @Resource + private SocialUserService socialService; + + @GetMapping("/get") + @Operation(tags = "用户管理",summary = "获得登录用户信息") + @DataPermission(enable = false) // 关闭数据权限,避免只查看自己时,查询不到部门。 + public CommonResult getUserProfile() { + // 获得用户基本信息 + AdminUserDO user = userService.getUser(getLoginUserId()); + // 获得用户角色 + List userRoles = roleService.getRoleListFromCache(permissionService.getUserRoleIdListByUserId(user.getId())); + // 获得部门信息 + DeptDO dept = user.getDeptId() != null ? deptService.getDept(user.getDeptId()) : null; + // 获得岗位信息 + List posts = CollUtil.isNotEmpty(user.getPostIds()) ? postService.getPostList(user.getPostIds()) : null; + // 获得社交用户信息 + List socialUsers = socialService.getSocialUserList(user.getId(), UserTypeEnum.ADMIN.getValue()); + return success(UserConvert.INSTANCE.convert(user, userRoles, dept, posts, socialUsers)); + } + + @PutMapping("/update") + @Operation(tags = "用户管理",summary = "修改用户个人信息") + public CommonResult updateUserProfile(@Valid @RequestBody UserProfileUpdateReqVO reqVO) { + userService.updateUserProfile(getLoginUserId(), reqVO); + return success(true); + } + + @PutMapping("/update-password") + @Operation(tags = "用户管理",summary = "修改用户个人密码") + public CommonResult updateUserProfilePassword(@Valid @RequestBody UserProfileUpdatePasswordReqVO reqVO) { + userService.updateUserPassword(getLoginUserId(), reqVO); + return success(true); + } + + @RequestMapping(value = "/update-avatar", + method = {RequestMethod.POST, RequestMethod.PUT}) // 解决 uni-app 不支持 Put 上传文件的问题 + @Operation(tags = "用户管理",summary = "上传用户个人头像") + public CommonResult updateUserAvatar(@RequestParam("avatarFile") MultipartFile file) throws Exception { + if (file.isEmpty()) { + throw exception(FILE_IS_EMPTY); + } + String avatar = userService.updateUserAvatar(getLoginUserId(), file.getInputStream()); + return success(avatar); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java new file mode 100644 index 0000000..4f7c71e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.profile; + +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +@Schema(description = "管理后台 - 用户个人中心信息 Response VO") +public class UserProfileRespVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + private String nickname; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + private String avatar; + + @Schema(description = "最后登录 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.1") + private String loginIp; + + @Schema(description = "最后登录时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime loginDate; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + + /** + * 所属角色 + */ + private List roles; + /** + * 所在部门 + */ + private DeptSimpleRespVO dept; + /** + * 所属岗位数组 + */ + private List posts; + /** + * 社交用户数组 + */ + private List socialUsers; + + @Schema(description = "社交用户") + @Data + public static class SocialUser { + + @Schema(description = "社交平台的类型,参见 SocialTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Integer type; + + @Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE") + private String openid; + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java new file mode 100644 index 0000000..e731208 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.profile; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 用户个人中心更新密码 Request VO") +@Data +public class UserProfileUpdatePasswordReqVO { + + @Schema(description = "旧密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @NotEmpty(message = "旧密码不能为空") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String oldPassword; + + @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "654321") + @NotEmpty(message = "新密码不能为空") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String newPassword; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java new file mode 100644 index 0000000..f1e54ac --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.profile; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.Email; +import javax.validation.constraints.Size; + + +@Schema(description = "管理后台 - 用户个人信息更新 Request VO") +@Data +public class UserProfileUpdateReqVO { + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @Size(max = 30, message = "用户昵称长度不能超过 30 个字符") + private String nickname; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + @Email(message = "邮箱格式不正确") + @Size(max = 50, message = "邮箱长度不能超过 50 个字符") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + @Length(min = 11, max = 11, message = "手机号长度必须 11 位") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.java new file mode 100644 index 0000000..a360f1a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + * 用户 Excel 导入 VO + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class UserImportExcelVO { + + @ExcelProperty("登录名称") + private String username; + + @ExcelProperty("用户名称") + private String nickname; + + @ExcelProperty("部门编号") + private Long deptId; + + @ExcelProperty("用户邮箱") + private String email; + + @ExcelProperty("手机号码") + private String mobile; + + @ExcelProperty(value = "用户性别", converter = DictConvert.class) + @DictFormat(DictTypeConstants.USER_SEX) + private Integer sex; + + @ExcelProperty(value = "账号状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java new file mode 100644 index 0000000..746c5af --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Schema(description = "管理后台 - 用户导入 Response VO") +@Data +@Builder +public class UserImportRespVO { + + @Schema(description = "创建成功的用户名数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List createUsernames; + + @Schema(description = "更新成功的用户名数组", requiredMode = Schema.RequiredMode.REQUIRED) + private List updateUsernames; + + @Schema(description = "导入失败的用户集合,key 为用户名,value 为失败原因", requiredMode = Schema.RequiredMode.REQUIRED) + private Map failureUsernames; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java new file mode 100644 index 0000000..a848294 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 用户分页 Request VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class UserPageReqVO extends PageParam { + + @Schema(description = "用户账号,模糊匹配", example = "yudao") + private String username; + + @Schema(description = "用户昵称,模糊匹配", example = "yudao") + private String nickname; + + @Schema(description = "手机号码,模糊匹配", example = "yudao") + private String mobile; + + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + private Integer status; + + @Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "部门编号,同时筛选子部门", example = "1024") + private Long deptId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java new file mode 100644 index 0000000..2837318 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Set; + +@Schema(description = "管理后台 - 用户信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class UserRespVO{ + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("用户编号") + private Long id; + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @ExcelProperty("用户名称") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("用户昵称") + private String nickname; + + @Schema(description = "备注", example = "我是一个用户") + private String remark; + + @Schema(description = "部门ID", example = "我是一个用户") + private Long deptId; + @Schema(description = "部门名称", example = "IT 部") + @ExcelProperty("部门名称") + private String deptName; + + @Schema(description = "岗位编号数组", example = "1") + private Set postIds; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + @ExcelProperty("用户邮箱") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + @ExcelProperty("手机号码") + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + @ExcelProperty(value = "用户性别", converter = DictConvert.class) + @DictFormat(DictTypeConstants.USER_SEX) + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + private String avatar; + + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "帐号状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.COMMON_STATUS) + private Integer status; + + @Schema(description = "最后登录 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "192.168.1.1") + @ExcelProperty("最后登录IP") + private String loginIp; + + @Schema(description = "最后登录时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + @ExcelProperty("最后登录时间") + private LocalDateTime loginDate; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") + private LocalDateTime createTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java new file mode 100644 index 0000000..ad2feb0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.validation.Mobile; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.*; +import java.util.Set; + +@Schema(description = "管理后台 - 用户创建/修改 Request VO") +@Data +public class UserSaveReqVO { + + @Schema(description = "用户编号", example = "1024") + private Long id; + + @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") + @NotBlank(message = "用户账号不能为空") + @Pattern(regexp = "^[a-zA-Z0-9_]{4,30}$", message = "用户账号由 数字、字母、下划线 组成") + @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") + private String username; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @Size(max = 30, message = "用户昵称长度不能超过30个字符") + private String nickname; + + @Schema(description = "备注", example = "我是一个用户") + private String remark; + + @Schema(description = "部门ID", example = "我是一个用户") + private Long deptId; + + @Schema(description = "岗位编号数组", example = "1") + private Set postIds; + + @Schema(description = "用户邮箱", example = "yudao@iocoder.cn") + @Email(message = "邮箱格式不正确") + @Size(max = 50, message = "邮箱长度不能超过 50 个字符") + private String email; + + @Schema(description = "手机号码", example = "15601691300") + @Mobile + private String mobile; + + @Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1") + private Integer sex; + + @Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png") + private String avatar; + + // ========== 仅【创建】时,需要传递的字段 ========== + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String password; + + @AssertTrue(message = "密码不能为空") + @JsonIgnore + public boolean isPasswordValid() { + return id != null // 修改时,不需要传递 + || (ObjectUtil.isAllNotEmpty(password)); // 新增时,必须都传递 password + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java new file mode 100644 index 0000000..6dac286 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 用户精简信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UserSimpleRespVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String nickname; + + @Schema(description = "部门ID", example = "我是一个用户") + private Long deptId; + @Schema(description = "部门名称", example = "IT 部") + private String deptName; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java new file mode 100644 index 0000000..42d8c5d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 用户更新密码 Request VO") +@Data +public class UserUpdatePasswordReqVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "用户编号不能为空") + private Long id; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + @NotEmpty(message = "密码不能为空") + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") + private String password; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java new file mode 100644 index 0000000..e5a113e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 用户更新状态 Request VO") +@Data +public class UserUpdateStatusReqVO { + + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @NotNull(message = "角色编号不能为空") + private Long id; + + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态不能为空") + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.java new file mode 100644 index 0000000..1c8c31b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.controller.app.dict; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 字典数据") +@RestController +@RequestMapping("/system/dict-data") +@Validated +public class AppDictDataController { + + @Resource + private DictDataService dictDataService; + + @GetMapping("/type") + @Operation(tags = "APP接口管理",summary = "根据字典类型查询字典数据信息") + @Parameter(name = "type", description = "字典类型", required = true, example = "common_status") + public CommonResult> getDictDataListByType(@RequestParam("type") String type) { + List list = dictDataService.getDictDataList( + CommonStatusEnum.ENABLE.getStatus(), type); + return success(BeanUtils.toBean(list, AppDictDataRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.java new file mode 100644 index 0000000..e2d1416 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.controller.app.dict.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +@Schema(description = "用户 App - 字典数据信息 Response VO") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AppDictDataRespVO { + + @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道") + private String label; + + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "iocoder") + private String value; + + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") + private String dictType; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java new file mode 100644 index 0000000..3dbde71 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.app.ip; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.ip.core.Area; +import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; +import cn.iocoder.yudao.module.system.controller.app.ip.vo.AppAreaNodeRespVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +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; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 地区") +@RestController +@RequestMapping("/system/area") +@Validated +public class AppAreaController { + + @GetMapping("/tree") + @Operation(tags = "APP接口管理",summary = "获得地区树") + public CommonResult> getAreaTree() { + Area area = AreaUtils.getArea(Area.ID_CHINA); + Assert.notNull(area, "获取不到中国"); + return success(BeanUtils.toBean(area.getChildren(), AppAreaNodeRespVO.class)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java new file mode 100644 index 0000000..f6ca4a8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.app.ip.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "用户 App - 地区节点 Response VO") +@Data +public class AppAreaNodeRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "110000") + private Integer id; + + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") + private String name; + + /** + * 子节点 + */ + private List children; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.java new file mode 100644 index 0000000..659a909 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 RESTful API 给前端: + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分 + */ +package cn.iocoder.yudao.module.system.controller; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java new file mode 100644 index 0000000..bad1bcd --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java @@ -0,0 +1,100 @@ +package cn.iocoder.yudao.module.system.convert.auth; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import org.slf4j.LoggerFactory; + +import java.util.*; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList; +import static cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO.ID_ROOT; + +@Mapper +public interface AuthConvert { + + AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class); + + AuthLoginRespVO convert(OAuth2AccessTokenDO bean); + + default AuthPermissionInfoRespVO convert(AdminUserDO user, List roleList, List menuList,Set allPermissions) { + Set myPermissions = convertSet(menuList, MenuDO::getPermission); + + Map permissionMap=new HashMap<>(); + + for(String allPermission:allPermissions){ + Boolean hasRole=false; + if(myPermissions.contains(allPermission)){ + hasRole=true; + } + permissionMap.put(allPermission,hasRole); + } + + return AuthPermissionInfoRespVO.builder() + .user(BeanUtils.toBean(user, AuthPermissionInfoRespVO.UserVO.class)) + .roles(convertSet(roleList, RoleDO::getCode)) + // 权限标识信息 + .permissions(permissionMap) + // 菜单树 + .menus(buildMenuTree(menuList)) + .build(); + } + + AuthPermissionInfoRespVO.MenuVO convertTreeNode(MenuDO menu); + + /** + * 将菜单列表,构建成菜单树 + * + * @param menuList 菜单列表 + * @return 菜单树 + */ + default List buildMenuTree(List menuList) { + if (CollUtil.isEmpty(menuList)) { + return Collections.emptyList(); + } + // 移除按钮 + menuList.removeIf(menu -> menu.getType().equals(MenuTypeEnum.BUTTON.getType())); + // 排序,保证菜单的有序性 + menuList.sort(Comparator.comparing(MenuDO::getSort)); + + // 构建菜单树 + // 使用 LinkedHashMap 的原因,是为了排序 。实际也可以用 Stream API ,就是太丑了。 + Map treeNodeMap = new LinkedHashMap<>(); + menuList.forEach(menu -> treeNodeMap.put(menu.getId(), AuthConvert.INSTANCE.convertTreeNode(menu))); + // 处理父子关系 + treeNodeMap.values().stream().filter(node -> !node.getParentId().equals(ID_ROOT)).forEach(childNode -> { + // 获得父节点 + AuthPermissionInfoRespVO.MenuVO parentNode = treeNodeMap.get(childNode.getParentId()); + if (parentNode == null) { + LoggerFactory.getLogger(getClass()).error("[buildRouterTree][resource({}) 找不到父资源({})]", + childNode.getId(), childNode.getParentId()); + return; + } + // 将自己添加到父节点中 + if (parentNode.getChildren() == null) { + parentNode.setChildren(new ArrayList<>()); + } + parentNode.getChildren().add(childNode); + }); + // 获得到所有的根节点 + return filterList(treeNodeMap.values(), node -> ID_ROOT.equals(node.getParentId())); + } + + SocialUserBindReqDTO convert(Long userId, Integer userType, AuthSocialLoginReqVO reqVO); + + SmsCodeSendReqDTO convert(AuthSmsSendReqVO reqVO); + + SmsCodeUseReqDTO convert(AuthSmsLoginReqVO reqVO, Integer scene, String usedIp); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java new file mode 100644 index 0000000..9500a35 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.system.convert.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; + +@Mapper +public interface OperateLogConvert { + + OperateLogConvert INSTANCE = Mappers.getMapper(OperateLogConvert.class); + + default List convertList(List list, Map userMap) { + return CollectionUtils.convertList(list, log -> { + OperateLogRespVO logVO = BeanUtils.toBean(log, OperateLogRespVO.class); + MapUtils.findAndThen(userMap, log.getUserId(), user -> logVO.setUserNickname(user.getNickname())); + return logVO; + }); + } + + default PageResult convertPage(PageResult operateLogPage, List userList) { + return BeanUtils.toBean(operateLogPage, OperateLogV2RespDTO.class).setList(setUserInfo(operateLogPage.getList(), userList)); + } + + OperateLogV2RespDTO convert(OperateLogV2DO operateLogV2DO); + + default List setUserInfo(List logList, List userList) { + Map userMap = convertMap(userList, AdminUserDO::getId); + return CollectionUtils.convertList(logList, item -> { + OperateLogV2RespDTO respDTO = convert(item); + findAndThen(userMap, item.getUserId(), user -> respDTO.setUserName(user.getNickname())); + return respDTO; + }); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailAccountConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailAccountConvert.java new file mode 100644 index 0000000..5d20ac1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/mail/MailAccountConvert.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.convert.mail; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.mail.MailAccount; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface MailAccountConvert { + + MailAccountConvert INSTANCE = Mappers.getMapper(MailAccountConvert.class); + + default MailAccount convert(MailAccountDO account, String nickname) { + String from = StrUtil.isNotEmpty(nickname) ? nickname + " <" + account.getMail() + ">" : account.getMail(); + return new MailAccount().setFrom(from).setAuth(true) + .setUser(account.getUsername()).setPass(account.getPassword()) + .setHost(account.getHost()).setPort(account.getPort()).setSslEnable(account.getSslEnable()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java new file mode 100644 index 0000000..24c9537 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.convert.oauth2; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAccessTokenRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenAuthorizeInfoRespVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.open.OAuth2OpenCheckTokenRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ApproveDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.util.oauth2.OAuth2Utils; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Mapper +public interface OAuth2OpenConvert { + + OAuth2OpenConvert INSTANCE = Mappers.getMapper(OAuth2OpenConvert.class); + + default OAuth2OpenAccessTokenRespVO convert(OAuth2AccessTokenDO bean) { + OAuth2OpenAccessTokenRespVO respVO = BeanUtils.toBean(bean, OAuth2OpenAccessTokenRespVO.class); + respVO.setTokenType(SecurityFrameworkUtils.AUTHORIZATION_BEARER.toLowerCase()); + respVO.setExpiresIn(OAuth2Utils.getExpiresIn(bean.getExpiresTime())); + respVO.setScope(OAuth2Utils.buildScopeStr(bean.getScopes())); + return respVO; + } + + default OAuth2OpenCheckTokenRespVO convert2(OAuth2AccessTokenDO bean) { + OAuth2OpenCheckTokenRespVO respVO = BeanUtils.toBean(bean, OAuth2OpenCheckTokenRespVO.class); + respVO.setExp(LocalDateTimeUtil.toEpochMilli(bean.getExpiresTime()) / 1000L); + respVO.setUserType(UserTypeEnum.ADMIN.getValue()); + return respVO; + } + + default OAuth2OpenAuthorizeInfoRespVO convert(OAuth2ClientDO client, List approves) { + // 构建 scopes + List> scopes = new ArrayList<>(client.getScopes().size()); + Map approveMap = CollectionUtils.convertMap(approves, OAuth2ApproveDO::getScope); + client.getScopes().forEach(scope -> { + OAuth2ApproveDO approve = approveMap.get(scope); + scopes.add(new KeyValue<>(scope, approve != null ? approve.getApproved() : false)); + }); + // 拼接返回 + return new OAuth2OpenAuthorizeInfoRespVO( + new OAuth2OpenAuthorizeInfoRespVO.Client(client.getName(), client.getLogo()), scopes); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.java new file mode 100644 index 0000000..b1ce8e3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 POJO 类的实体转换 + * + * 目前使用 MapStruct 框架 + */ +package cn.iocoder.yudao.module.system.convert; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java new file mode 100644 index 0000000..9e679a2 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.system.convert.social; + +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface SocialUserConvert { + + SocialUserConvert INSTANCE = Mappers.getMapper(SocialUserConvert.class); + + @Mapping(source = "reqVO.type", target = "socialType") + SocialUserBindReqDTO convert(Long userId, Integer userType, SocialUserBindReqVO reqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.java new file mode 100644 index 0000000..669954d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.convert.tenant; + +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 租户 Convert + * + * @author 芋道源码 + */ +@Mapper +public interface TenantConvert { + + TenantConvert INSTANCE = Mappers.getMapper(TenantConvert.class); + + default UserSaveReqVO convert02(TenantSaveReqVO bean) { + UserSaveReqVO reqVO = new UserSaveReqVO(); + reqVO.setUsername(bean.getUsername()); + reqVO.setPassword(bean.getPassword()); + reqVO.setNickname(bean.getContactName()).setMobile(bean.getContactMobile()); + return reqVO; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java new file mode 100644 index 0000000..b58be21 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.system.convert.user; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSimpleRespVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileRespVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface UserConvert { + + UserConvert INSTANCE = Mappers.getMapper(UserConvert.class); + + default List convertList(List list, Map deptMap) { + return CollectionUtils.convertList(list, user -> convert(user, deptMap.get(user.getDeptId()))); + } + + default UserRespVO convert(AdminUserDO user, DeptDO dept) { + UserRespVO userVO = BeanUtils.toBean(user, UserRespVO.class); + if (dept != null) { + userVO.setDeptName(dept.getName()); + } + return userVO; + } + + default List convertSimpleList(List list, Map deptMap) { + return CollectionUtils.convertList(list, user -> { + UserSimpleRespVO userVO = BeanUtils.toBean(user, UserSimpleRespVO.class); + MapUtils.findAndThen(deptMap, user.getDeptId(), dept -> userVO.setDeptName(dept.getName())); + return userVO; + }); + } + + default UserProfileRespVO convert(AdminUserDO user, List userRoles, + DeptDO dept, List posts, List socialUsers) { + UserProfileRespVO userVO = BeanUtils.toBean(user, UserProfileRespVO.class); + userVO.setRoles(BeanUtils.toBean(userRoles, RoleSimpleRespVO.class)); + userVO.setDept(BeanUtils.toBean(dept, DeptSimpleRespVO.class)); + userVO.setPosts(BeanUtils.toBean(posts, PostSimpleRespVO.class)); + userVO.setSocialUsers(BeanUtils.toBean(socialUsers, UserProfileRespVO.SocialUser.class)); + return userVO; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md new file mode 100644 index 0000000..8153487 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java new file mode 100644 index 0000000..a59fa8b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.dept; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 部门表 + * + * @author ruoyi + * @author 芋道源码 + */ +@TableName("system_dept") +@KeySequence("system_dept_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class DeptDO extends TenantBaseDO { + + public static final Long PARENT_ID_ROOT = 0L; + + /** + * 部门ID + */ + @TableId + private Long id; + /** + * 部门名称 + */ + private String name; + /** + * 父部门ID + * + * 关联 {@link #id} + */ + private Long parentId; + /** + * 显示顺序 + */ + private Integer sort; + /** + * 负责人 + * + * 关联 {@link AdminUserDO#getId()} + */ + private Long leaderUserId; + /** + * 联系电话 + */ + private String phone; + /** + * 邮箱 + */ + private String email; + /** + * 部门状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java new file mode 100644 index 0000000..3c97a9c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.dept; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 岗位表 + * + * @author ruoyi + */ +@TableName("system_post") +@KeySequence("system_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class PostDO extends BaseDO { + + /** + * 岗位序号 + */ + @TableId + private Long id; + /** + * 岗位名称 + */ + private String name; + /** + * 岗位编码 + */ + private String code; + /** + * 岗位排序 + */ + private Integer sort; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.java new file mode 100644 index 0000000..b2a4f52 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.dept; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户和岗位关联 + * + * @author ruoyi + */ +@TableName("system_user_post") +@KeySequence("system_user_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class UserPostDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 用户 ID + * + * 关联 {@link AdminUserDO#getId()} + */ + private Long userId; + /** + * 角色 ID + * + * 关联 {@link PostDO#getId()} + */ + private Long postId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java new file mode 100644 index 0000000..7e29447 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.dict; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 字典数据表 + * + * @author ruoyi + */ +@TableName("system_dict_data") +@KeySequence("system_dict_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class DictDataDO extends BaseDO { + + /** + * 字典数据编号 + */ + @TableId + private Long id; + /** + * 字典排序 + */ + private Integer sort; + /** + * 字典标签 + */ + private String label; + /** + * 字典值 + */ + private String value; + /** + * 字典类型 + * + * 冗余 {@link DictDataDO#getDictType()} + */ + private String dictType; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 颜色类型 + * + * 对应到 element-ui 为 default、primary、success、info、warning、danger + */ + private String colorType; + /** + * css 样式 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String cssClass; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java new file mode 100644 index 0000000..bff0a63 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.dict; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * 字典类型表 + * + * @author ruoyi + */ +@TableName("system_dict_type") +@KeySequence("system_dict_type_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DictTypeDO extends BaseDO { + + /** + * 字典主键 + */ + @TableId + private Long id; + /** + * 字典名称 + */ + private String name; + /** + * 字典类型 + */ + private String type; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + + /** + * 删除时间 + */ + private LocalDateTime deletedTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorcode/ErrorCodeDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorcode/ErrorCodeDO.java new file mode 100644 index 0000000..9ad5633 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorcode/ErrorCodeDO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.errorcode; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.errorcode.ErrorCodeTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 错误码表 + * + * @author 芋道源码 + */ +@TableName(value = "system_error_code") +@KeySequence("system_error_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ErrorCodeDO extends BaseDO { + + /** + * 错误码编号,自增 + */ + @TableId + private Long id; + /** + * 错误码类型 + * + * 枚举 {@link ErrorCodeTypeEnum} + */ + private Integer type; + /** + * 应用名 + */ + private String applicationName; + /** + * 错误码编码 + */ + private Integer code; + /** + * 错误码错误提示 + */ + private String message; + /** + * 错误码备注 + */ + private String memo; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java new file mode 100644 index 0000000..d2fbcb9 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.logger; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 登录日志表 + * + * 注意,包括登录和登出两种行为 + * + * @author 芋道源码 + */ +@TableName("system_login_log") +@KeySequence("system_login_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class LoginLogDO extends BaseDO { + + /** + * 日志主键 + */ + private Long id; + /** + * 日志类型 + * + * 枚举 {@link LoginLogTypeEnum} + */ + private Integer logType; + /** + * 链路追踪编号 + */ + private String traceId; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 用户账号 + * + * 冗余,因为账号可以变更 + */ + private String username; + /** + * 登录结果 + * + * 枚举 {@link LoginResultEnum} + */ + private Integer result; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java new file mode 100644 index 0000000..d4d4df4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java @@ -0,0 +1,144 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.logger; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 操作日志表 + * + * @author 芋道源码 + */ +@TableName(value = "system_operate_log", autoResultMap = true) +@KeySequence("system_operate_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OperateLogDO extends BaseDO { + + /** + * {@link #javaMethodArgs} 的最大长度 + */ + public static final Integer JAVA_METHOD_ARGS_MAX_LENGTH = 8000; + + /** + * {@link #resultData} 的最大长度 + */ + public static final Integer RESULT_MAX_LENGTH = 4000; + + /** + * 日志主键 + */ + @TableId + private Long id; + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。 + */ + private String traceId; + /** + * 用户编号 + * + * 关联 MemberUserDO 的 id 属性,或者 AdminUserDO 的 id 属性 + */ + private Long userId; + /** + * 用户类型 + * + * 关联 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 操作模块 + */ + private String module; + /** + * 操作名 + */ + private String name; + /** + * 操作分类 + * + * 枚举 {@link OperateTypeEnum} + */ + private Integer type; + /** + * 操作内容,记录整个操作的明细 + * 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 + */ + private String content; + /** + * 拓展字段,有些复杂的业务,需要记录一些字段 + * 例如说,记录订单编号,则可以添加 key 为 "orderId",value 为订单编号 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map exts; + + /** + * 请求方法名 + */ + private String requestMethod; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + + /** + * Java 方法名 + */ + private String javaMethod; + /** + * Java 方法的参数 + * + * 实际格式为 Map + * 不使用 @TableField(typeHandler = FastjsonTypeHandler.class) 注解的原因是,数据库存储有长度限制,会进行裁剪,会导致 JSON 反序列化失败 + * 其中,key 为参数名,value 为参数值 + */ + private String javaMethodArgs; + /** + * 开始时间 + */ + private LocalDateTime startTime; + /** + * 执行时长,单位:毫秒 + */ + private Integer duration; + /** + * 结果码 + * + * 目前使用的 {@link CommonResult#getCode()} 属性 + */ + private Integer resultCode; + /** + * 结果提示 + * + * 目前使用的 {@link CommonResult#getMsg()} 属性 + */ + private String resultMsg; + /** + * 结果数据 + * + * 如果是对象,则使用 JSON 格式化 + */ + private String resultData; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogV2DO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogV2DO.java new file mode 100644 index 0000000..2b37416 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogV2DO.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.logger; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 操作日志表 V2 + * + * @author 芋道源码 + */ +@TableName(value = "system_operate_log_v2", autoResultMap = true) +@KeySequence("system_operate_log_seq_v2") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OperateLogV2DO extends BaseDO { + + /** + * 日志主键 + */ + @TableId + private Long id; + /** + * 链路追踪编号 + * + * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。 + */ + private String traceId; + /** + * 用户编号 + * + * 关联 MemberUserDO 的 id 属性,或者 AdminUserDO 的 id 属性 + */ + private Long userId; + /** + * 用户类型 + * + * 关联 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 操作模块类型 + */ + private String type; + /** + * 操作名 + */ + private String subType; + /** + * 操作模块业务编号 + */ + private Long bizId; + /** + * 日志内容,记录整个操作的明细 + * + * 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 + */ + private String action; + /** + * 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ) + * + * 例如说,记录订单编号,{ orderId: "1"} + */ + private String extra; + + /** + * 请求方法名 + */ + private String requestMethod; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 用户 IP + */ + private String userIp; + /** + * 浏览器 UA + */ + private String userAgent; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java new file mode 100644 index 0000000..275fc85 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.mail; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 邮箱账号 DO + * + * 用途:配置发送邮箱的账号 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@TableName(value = "system_mail_account", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +public class MailAccountDO extends BaseDO { + + /** + * 主键 + */ + @TableId + private Long id; + /** + * 邮箱 + */ + private String mail; + + /** + * 用户名 + */ + private String username; + /** + * 密码 + */ + private String password; + /** + * SMTP 服务器域名 + */ + private String host; + /** + * SMTP 服务器端口 + */ + private Integer port; + /** + * 是否开启 SSL + */ + private Boolean sslEnable; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java new file mode 100644 index 0000000..0d08c71 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java @@ -0,0 +1,121 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.mail; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.mail.MailSendStatusEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 邮箱日志 DO + * 记录每一次邮件的发送 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@TableName(value = "system_mail_log", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class MailLogDO extends BaseDO implements Serializable { + + /** + * 日志编号,自增 + */ + private Long id; + + /** + * 用户编码 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 接收邮箱地址 + */ + private String toMail; + + /** + * 邮箱账号编号 + * + * 关联 {@link MailAccountDO#getId()} + */ + private Long accountId; + /** + * 发送邮箱地址 + * + * 冗余 {@link MailAccountDO#getMail()} + */ + private String fromMail; + + // ========= 模板相关字段 ========= + /** + * 模版编号 + * + * 关联 {@link MailTemplateDO#getId()} + */ + private Long templateId; + /** + * 模版编码 + * + * 冗余 {@link MailTemplateDO#getCode()} + */ + private String templateCode; + /** + * 模版发送人名称 + * + * 冗余 {@link MailTemplateDO#getNickname()} + */ + private String templateNickname; + /** + * 模版标题 + */ + private String templateTitle; + /** + * 模版内容 + * + * 基于 {@link MailTemplateDO#getContent()} 格式化后的内容 + */ + private String templateContent; + /** + * 模版参数 + * + * 基于 {@link MailTemplateDO#getParams()} 输入后的参数 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map templateParams; + + // ========= 发送相关字段 ========= + /** + * 发送状态 + * + * 枚举 {@link MailSendStatusEnum} + */ + private Integer sendStatus; + /** + * 发送时间 + */ + private LocalDateTime sendTime; + /** + * 发送返回的消息 ID + */ + private String sendMessageId; + /** + * 发送异常 + */ + private String sendException; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java new file mode 100644 index 0000000..f669b45 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.mail; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 邮件模版 DO + * + * @author wangjingyi + * @since 2022-03-21 + */ +@TableName(value = "system_mail_template", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +public class MailTemplateDO extends BaseDO { + + /** + * 主键 + */ + private Long id; + /** + * 模版名称 + */ + private String name; + /** + * 模版编号 + */ + private String code; + /** + * 发送的邮箱账号编号 + * + * 关联 {@link MailAccountDO#getId()} + */ + private Long accountId; + + /** + * 发送人名称 + */ + private String nickname; + /** + * 标题 + */ + private String title; + /** + * 内容 + */ + private String content; + /** + * 参数数组(自动根据内容生成) + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List params; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java new file mode 100644 index 0000000..e7149d1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.notice; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.notice.NoticeTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 通知公告表 + * + * @author ruoyi + */ +@TableName("system_notice") +@KeySequence("system_notice_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class NoticeDO extends BaseDO { + + /** + * 公告ID + */ + private Long id; + /** + * 公告标题 + */ + private String title; + /** + * 公告类型 + * + * 枚举 {@link NoticeTypeEnum} + */ + private Integer type; + /** + * 公告内容 + */ + private String content; + /** + * 公告状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java new file mode 100644 index 0000000..e73badf --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.notify; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.Map; + +/** + * 站内信 DO + * + * @author xrcoder + */ +@TableName(value = "system_notify_message", autoResultMap = true) +@KeySequence("system_notify_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class NotifyMessageDO extends BaseDO { + + /** + * 站内信编号,自增 + */ + @TableId + private Long id; + /** + * 用户编号 + * + * 关联 MemberUserDO 的 id 字段、或者 AdminUserDO 的 id 字段 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + + // ========= 模板相关字段 ========= + + /** + * 模版编号 + * + * 关联 {@link NotifyTemplateDO#getId()} + */ + private Long templateId; + /** + * 模版编码 + * + * 关联 {@link NotifyTemplateDO#getCode()} + */ + private String templateCode; + /** + * 模版类型 + * + * 冗余 {@link NotifyTemplateDO#getType()} + */ + private Integer templateType; + /** + * 模版发送人名称 + * + * 冗余 {@link NotifyTemplateDO#getNickname()} + */ + private String templateNickname; + /** + * 模版内容 + * + * 基于 {@link NotifyTemplateDO#getContent()} 格式化后的内容 + */ + private String templateContent; + /** + * 模版参数 + * + * 基于 {@link NotifyTemplateDO#getParams()} 输入后的参数 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map templateParams; + + // ========= 读取相关字段 ========= + + /** + * 是否已读 + */ + private Boolean readStatus; + /** + * 阅读时间 + */ + private LocalDateTime readTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java new file mode 100644 index 0000000..1bce809 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.notify; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.util.List; + +/** + * 站内信模版 DO + * + * @author xrcoder + */ +@TableName(value = "system_notify_template", autoResultMap = true) +@KeySequence("system_notify_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class NotifyTemplateDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 模版名称 + */ + private String name; + /** + * 模版编码 + */ + private String code; + /** + * 模版类型 + * + * 对应 system_notify_template_type 字典 + */ + private Integer type; + /** + * 发送人名称 + */ + private String nickname; + /** + * 模版内容 + */ + private String content; + /** + * 参数数组 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List params; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java new file mode 100644 index 0000000..e09551d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * OAuth2 访问令牌 DO + * + * 如下字段,暂时未使用,暂时不支持: + * user_name、authentication(用户信息) + * + * @author 芋道源码 + */ +@TableName(value = "system_oauth2_access_token", autoResultMap = true) +@KeySequence("system_oauth2_access_token_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OAuth2AccessTokenDO extends TenantBaseDO { + + /** + * 编号,数据库递增 + */ + @TableId + private Long id; + /** + * 访问令牌 + */ + private String accessToken; + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 客户端编号 + * + * 关联 {@link OAuth2ClientDO#getId()} + */ + private String clientId; + /** + * 授权范围 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List scopes; + /** + * 过期时间 + */ + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java new file mode 100644 index 0000000..e07b0a0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * OAuth2 批准 DO + * + * 用户在 sso.vue 界面时,记录接受的 scope 列表 + * + * @author 芋道源码 + */ +@TableName(value = "system_oauth2_approve", autoResultMap = true) +@KeySequence("system_oauth2_approve_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OAuth2ApproveDO extends BaseDO { + + /** + * 编号,数据库自增 + */ + @TableId + private Long id; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 客户端编号 + * + * 关联 {@link OAuth2ClientDO#getId()} + */ + private String clientId; + /** + * 授权范围 + */ + private String scope; + /** + * 是否接受 + * + * true - 接受 + * false - 拒绝 + */ + private Boolean approved; + /** + * 过期时间 + */ + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java new file mode 100644 index 0000000..721a42e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2GrantTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * OAuth2 客户端 DO + * + * @author 芋道源码 + */ +@TableName(value = "system_oauth2_client", autoResultMap = true) +@KeySequence("system_oauth2_client_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OAuth2ClientDO extends BaseDO { + + /** + * 编号,数据库自增 + * + * 由于 SQL Server 在存储 String 主键有点问题,所以暂时使用 Long 类型 + */ + @TableId + private Long id; + /** + * 客户端编号 + */ + private String clientId; + /** + * 客户端密钥 + */ + private String secret; + /** + * 应用名 + */ + private String name; + /** + * 应用图标 + */ + private String logo; + /** + * 应用描述 + */ + private String description; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 访问令牌的有效期 + */ + private Integer accessTokenValiditySeconds; + /** + * 刷新令牌的有效期 + */ + private Integer refreshTokenValiditySeconds; + /** + * 可重定向的 URI 地址 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List redirectUris; + /** + * 授权类型(模式) + * + * 枚举 {@link OAuth2GrantTypeEnum} + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List authorizedGrantTypes; + /** + * 授权范围 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List scopes; + /** + * 自动授权的 Scope + * + * code 授权时,如果 scope 在这个范围内,则自动通过 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List autoApproveScopes; + /** + * 权限 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List authorities; + /** + * 资源 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List resourceIds; + /** + * 附加信息,JSON 格式 + */ + private String additionalInformation; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java new file mode 100644 index 0000000..fad9c16 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * OAuth2 授权码 DO + * + * @author 芋道源码 + */ +@TableName(value = "system_oauth2_code", autoResultMap = true) +@KeySequence("system_oauth2_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class OAuth2CodeDO extends BaseDO { + + /** + * 编号,数据库递增 + */ + private Long id; + /** + * 授权码 + */ + private String code; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 客户端编号 + * + * 关联 {@link OAuth2ClientDO#getClientId()} + */ + private String clientId; + /** + * 授权范围 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List scopes; + /** + * 重定向地址 + */ + private String redirectUri; + /** + * 状态 + */ + private String state; + /** + * 过期时间 + */ + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java new file mode 100644 index 0000000..70ddea2 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.oauth2; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * OAuth2 刷新令牌 + * + * @author 芋道源码 + */ +@TableName(value = "system_oauth2_refresh_token", autoResultMap = true) +// 由于 Oracle 的 SEQ 的名字长度有限制,所以就先用 system_oauth2_access_token_seq 吧,反正也没啥问题 +@KeySequence("system_oauth2_access_token_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class OAuth2RefreshTokenDO extends BaseDO { + + /** + * 编号,数据库字典 + */ + private Long id; + /** + * 刷新令牌 + */ + private String refreshToken; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 客户端编号 + * + * 关联 {@link OAuth2ClientDO#getId()} + */ + private String clientId; + /** + * 授权范围 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List scopes; + /** + * 过期时间 + */ + private LocalDateTime expiresTime; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java new file mode 100644 index 0000000..90d5833 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java @@ -0,0 +1,107 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.permission; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 菜单 DO + * + * @author ruoyi + */ +@TableName("system_menu") +@KeySequence("system_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class MenuDO extends BaseDO { + + /** + * 菜单编号 - 根节点 + */ + public static final Long ID_ROOT = 0L; + + /** + * 菜单编号 + */ + @TableId + private Long id; + /** + * 菜单名称 + */ + private String name; + /** + * 权限标识 + * + * 一般格式为:${系统}:${模块}:${操作} + * 例如说:system:admin:add,即 system 服务的添加管理员。 + * + * 当我们把该 MenuDO 赋予给角色后,意味着该角色有该资源: + * - 对于后端,配合 @PreAuthorize 注解,配置 API 接口需要该权限,从而对 API 接口进行权限控制。 + * - 对于前端,配合前端标签,配置按钮是否展示,避免用户没有该权限时,结果可以看到该操作。 + */ + private String permission; + /** + * 菜单类型 + * + * 枚举 {@link MenuTypeEnum} + */ + private Integer type; + /** + * 显示顺序 + */ + private Integer sort; + /** + * 父菜单ID + */ + private Long parentId; + /** + * 路由地址 + * + * 如果 path 为 http(s) 时,则它是外链 + */ + private String path; + /** + * 菜单图标 + */ + private String icon; + /** + * 组件路径 + */ + private String component; + /** + * 组件名 + */ + private String componentName; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 是否可见 + * + * 只有菜单、目录使用 + * 当设置为 true 时,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等 + */ + private Boolean visible; + /** + * 是否缓存 + * + * 只有菜单、目录使用,否使用 Vue 路由的 keep-alive 特性 + * 注意:如果开启缓存,则必须填写 {@link #componentName} 属性,否则无法缓存 + */ + private Boolean keepAlive; + /** + * 是否总是显示 + * + * 如果为 false 时,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 + */ + private Boolean alwaysShow; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java new file mode 100644 index 0000000..ab0ec91 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.permission; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Set; + +/** + * 角色 DO + * + * @author ruoyi + */ +@TableName(value = "system_role", autoResultMap = true) +@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class RoleDO extends TenantBaseDO { + + /** + * 角色ID + */ + @TableId + private Long id; + /** + * 角色名称 + */ + private String name; + /** + * 角色标识 + * + * 枚举 + */ + private String code; + /** + * 角色排序 + */ + private Integer sort; + /** + * 角色状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 角色类型 + * + * 枚举 {@link RoleTypeEnum} + */ + private Integer type; + /** + * 备注 + */ + private String remark; + + /** + * 数据范围 + * + * 枚举 {@link DataScopeEnum} + */ + private Integer dataScope; + /** + * 数据范围(指定部门数组) + * + * 适用于 {@link #dataScope} 的值为 {@link DataScopeEnum#DEPT_CUSTOM} 时 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set dataScopeDeptIds; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java new file mode 100644 index 0000000..4978b0e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.permission; + +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 角色和菜单关联 + * + * @author ruoyi + */ +@TableName("system_role_menu") +@KeySequence("system_role_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class RoleMenuDO extends TenantBaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 角色ID + */ + private Long roleId; + /** + * 菜单ID + */ + private Long menuId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java new file mode 100644 index 0000000..0101840 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.permission; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户和角色关联 + * + * @author ruoyi + */ +@TableName("system_user_role") +@KeySequence("system_user_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +public class UserRoleDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 用户 ID + */ + private Long userId; + /** + * 角色 ID + */ + private Long roleId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java new file mode 100644 index 0000000..37dc579 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.StringListTypeHandler; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.List; + +/** + * 敏感词 DO + * + * @author 永不言败 + */ +@TableName(value = "system_sensitive_word", autoResultMap = true) +@KeySequence("system_sensitive_word_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SensitiveWordDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 敏感词 + */ + private String name; + /** + * 描述 + */ + private String description; + /** + * 标签数组 + * + * 用于实现不同的业务场景下,需要使用不同标签的敏感词。 + * 例如说,tag 有短信、论坛两种,敏感词 "推广" 在短信下是敏感词,在论坛下不是敏感词。 + * 此时,我们会存储一条敏感词记录,它的 name 为"推广",tag 为短信。 + */ + @TableField(typeHandler = StringListTypeHandler.class) + private List tags; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java new file mode 100644 index 0000000..6ecb4f1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sms; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * 短信渠道 DO + * + * @author zzf + * @since 2021-01-25 + */ +@TableName(value = "system_sms_channel", autoResultMap = true) +@KeySequence("system_sms_channel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SmsChannelDO extends BaseDO { + + /** + * 渠道编号 + */ + private Long id; + /** + * 短信签名 + */ + private String signature; + /** + * 渠道编码 + * + * 枚举 {@link SmsChannelEnum} + */ + private String code; + /** + * 启用状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + /** + * 短信 API 的账号 + */ + private String apiKey; + /** + * 短信 API 的密钥 + */ + private String apiSecret; + /** + * 短信发送回调 URL + */ + private String callbackUrl; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java new file mode 100644 index 0000000..00aea3a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sms; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * 手机验证码 DO + * + * idx_mobile 索引:基于 {@link #mobile} 字段 + * + * @author 芋道源码 + */ +@TableName("system_sms_code") +@KeySequence("system_sms_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SmsCodeDO extends BaseDO { + + /** + * 编号 + */ + private Long id; + /** + * 手机号 + */ + private String mobile; + /** + * 验证码 + */ + private String code; + /** + * 发送场景 + * + * 枚举 {@link SmsCodeDO} + */ + private Integer scene; + /** + * 创建 IP + */ + private String createIp; + /** + * 今日发送的第几条 + */ + private Integer todayIndex; + /** + * 是否使用 + */ + private Boolean used; + /** + * 使用时间 + */ + private LocalDateTime usedTime; + /** + * 使用 IP + */ + private String usedIp; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java new file mode 100644 index 0000000..9f250ce --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java @@ -0,0 +1,161 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sms; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum; +import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 短信日志 DO + * + * @author zzf + * @since 2021-01-25 + */ +@TableName(value = "system_sms_log", autoResultMap = true) +@KeySequence("system_sms_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SmsLogDO extends BaseDO { + + /** + * 自增编号 + */ + private Long id; + + // ========= 渠道相关字段 ========= + + /** + * 短信渠道编号 + * + * 关联 {@link SmsChannelDO#getId()} + */ + private Long channelId; + /** + * 短信渠道编码 + * + * 冗余 {@link SmsChannelDO#getCode()} + */ + private String channelCode; + + // ========= 模板相关字段 ========= + + /** + * 模板编号 + * + * 关联 {@link SmsTemplateDO#getId()} + */ + private Long templateId; + /** + * 模板编码 + * + * 冗余 {@link SmsTemplateDO#getCode()} + */ + private String templateCode; + /** + * 短信类型 + * + * 冗余 {@link SmsTemplateDO#getType()} + */ + private Integer templateType; + /** + * 基于 {@link SmsTemplateDO#getContent()} 格式化后的内容 + */ + private String templateContent; + /** + * 基于 {@link SmsTemplateDO#getParams()} 输入后的参数 + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private Map templateParams; + /** + * 短信 API 的模板编号 + * + * 冗余 {@link SmsTemplateDO#getApiTemplateId()} + */ + private String apiTemplateId; + + // ========= 手机相关字段 ========= + + /** + * 手机号 + */ + private String mobile; + /** + * 用户编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + + // ========= 发送相关字段 ========= + + /** + * 发送状态 + * + * 枚举 {@link SmsSendStatusEnum} + */ + private Integer sendStatus; + /** + * 发送时间 + */ + private LocalDateTime sendTime; + /** + * 短信 API 发送结果的编码 + * + * 由于第三方的错误码可能是字符串,所以使用 String 类型 + */ + private String apiSendCode; + /** + * 短信 API 发送失败的提示 + */ + private String apiSendMsg; + /** + * 短信 API 发送返回的唯一请求 ID + * + * 用于和短信 API 进行定位于排错 + */ + private String apiRequestId; + /** + * 短信 API 发送返回的序号 + * + * 用于和短信 API 平台的发送记录关联 + */ + private String apiSerialNo; + + // ========= 接收相关字段 ========= + + /** + * 接收状态 + * + * 枚举 {@link SmsReceiveStatusEnum} + */ + private Integer receiveStatus; + /** + * 接收时间 + */ + private LocalDateTime receiveTime; + /** + * 短信 API 接收结果的编码 + */ + private String apiReceiveCode; + /** + * 短信 API 接收结果的提示 + */ + private String apiReceiveMsg; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java new file mode 100644 index 0000000..e7f02c1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java @@ -0,0 +1,91 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sms; + +import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +/** + * 短信模板 DO + * + * @author zzf + * @since 2021-01-25 + */ +@TableName(value = "system_sms_template", autoResultMap = true) +@KeySequence("system_sms_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SmsTemplateDO extends BaseDO { + + /** + * 自增编号 + */ + private Long id; + + // ========= 模板相关字段 ========= + + /** + * 短信类型 + * + * 枚举 {@link SmsTemplateTypeEnum} + */ + private Integer type; + /** + * 启用状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 模板编码,保证唯一 + */ + private String code; + /** + * 模板名称 + */ + private String name; + /** + * 模板内容 + * + * 内容的参数,使用 {} 包括,例如说 {name} + */ + private String content; + /** + * 参数数组(自动根据内容生成) + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List params; + /** + * 备注 + */ + private String remark; + /** + * 短信 API 的模板编号 + */ + private String apiTemplateId; + + // ========= 渠道相关字段 ========= + + /** + * 短信渠道编号 + * + * 关联 {@link SmsChannelDO#getId()} + */ + private Long channelId; + /** + * 短信渠道编码 + * + * 冗余 {@link SmsChannelDO#getCode()} + */ + private String channelCode; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.java new file mode 100644 index 0000000..71fc1bc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.social; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.xingyuv.jushauth.config.AuthConfig; +import lombok.*; + +/** + * 社交客户端 DO + * + * 对应 {@link AuthConfig} 配置,满足不同租户,有自己的客户端配置,实现社交(三方)登录 + * + * @author 芋道源码 + */ +@TableName(value = "system_social_client", autoResultMap = true) +@KeySequence("system_social_client_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SocialClientDO extends TenantBaseDO { + + /** + * 编号,自增 + */ + @TableId + private Long id; + /** + * 应用名 + */ + private String name; + /** + * 社交类型 + * + * 枚举 {@link SocialTypeEnum} + */ + private Integer socialType; + /** + * 用户类型 + * + * 目的:不同用户类型,对应不同的小程序,需要自己的配置 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + + /** + * 客户端 id + */ + private String clientId; + /** + * 客户端 Secret + */ + private String clientSecret; + + /** + * 代理编号 + * + * 目前只有部分“社交类型”在使用: + * 1. 企业微信:对应授权方的网页应用 ID + */ + private String agentId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java new file mode 100644 index 0000000..0f4e41f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.social; + +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 社交用户的绑定 + * 即 {@link SocialUserDO} 与 UserDO 的关联表 + * + * @author 芋道源码 + */ +@TableName(value = "system_social_user_bind", autoResultMap = true) +@KeySequence("system_social_user_bind_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SocialUserBindDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 关联的用户编号 + * + * 关联 UserDO 的编号 + */ + private Long userId; + /** + * 用户类型 + * + * 枚举 {@link UserTypeEnum} + */ + private Integer userType; + + /** + * 社交平台的用户编号 + * + * 关联 {@link SocialUserDO#getId()} + */ + private Long socialUserId; + /** + * 社交平台的类型 + * + * 冗余 {@link SocialUserDO#getType()} + */ + private Integer socialType; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java new file mode 100644 index 0000000..f3adf03 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.social; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 社交(三方)用户 + * + * @author weir + */ +@TableName(value = "system_social_user", autoResultMap = true) +@KeySequence("system_social_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SocialUserDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 社交平台的类型 + * + * 枚举 {@link SocialTypeEnum} + */ + private Integer type; + + /** + * 社交 openid + */ + private String openid; + /** + * 社交 token + */ + private String token; + /** + * 原始 Token 数据,一般是 JSON 格式 + */ + private String rawTokenInfo; + + /** + * 用户昵称 + */ + private String nickname; + /** + * 用户头像 + */ + private String avatar; + /** + * 原始用户数据,一般是 JSON 格式 + */ + private String rawUserInfo; + + /** + * 最后一次的认证 code + */ + private String code; + /** + * 最后一次的认证 state + */ + private String state; + +} + + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java new file mode 100644 index 0000000..0b78b7d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.tenant; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.time.LocalDateTime; + +/** + * 租户 DO + * + * @author 芋道源码 + */ +@TableName(value = "system_tenant", autoResultMap = true) +@KeySequence("system_tenant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TenantDO extends BaseDO { + + /** + * 套餐编号 - 系统 + */ + public static final Long PACKAGE_ID_SYSTEM = 0L; + + /** + * 租户编号,自增 + */ + private Long id; + /** + * 租户名,唯一 + */ + private String name; + /** + * 联系人的用户编号 + * + * 关联 {@link AdminUserDO#getId()} + */ + private Long contactUserId; + /** + * 联系人 + */ + private String contactName; + /** + * 联系手机 + */ + private String contactMobile; + /** + * 租户状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 绑定域名 + */ + private String website; + /** + * 租户套餐编号 + * + * 关联 {@link TenantPackageDO#getId()} + * 特殊逻辑:系统内置租户,不使用套餐,暂时使用 {@link #PACKAGE_ID_SYSTEM} 标识 + */ + private Long packageId; + /** + * 过期时间 + */ + private LocalDateTime expireTime; + /** + * 账号数量 + */ + private Integer accountCount; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java new file mode 100644 index 0000000..dba7569 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.tenant; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.Set; + +/** + * 租户套餐 DO + * + * @author 芋道源码 + */ +@TableName(value = "system_tenant_package", autoResultMap = true) +@KeySequence("system_tenant_package_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TenantPackageDO extends BaseDO { + + /** + * 套餐编号,自增 + */ + private Long id; + /** + * 套餐名,唯一 + */ + private String name; + /** + * 租户套餐状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 备注 + */ + private String remark; + /** + * 关联的菜单编号 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set menuIds; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java new file mode 100644 index 0000000..287a388 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java @@ -0,0 +1,96 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.user; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; +import cn.iocoder.yudao.module.system.enums.common.SexEnum; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +import java.time.LocalDateTime; +import java.util.Set; + +/** + * 管理后台的用户 DO + * + * @author 芋道源码 + */ +@TableName(value = "system_users", autoResultMap = true) // 由于 SQL Server 的 system_user 是关键字,所以使用 system_users +@KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AdminUserDO extends TenantBaseDO { + + /** + * 用户ID + */ + @TableId + private Long id; + /** + * 用户账号 + */ + private String username; + /** + * 加密后的密码 + * + * 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐 + */ + private String password; + /** + * 用户昵称 + */ + private String nickname; + /** + * 备注 + */ + private String remark; + /** + * 部门 ID + */ + private Long deptId; + /** + * 岗位编号数组 + */ + @TableField(typeHandler = JsonLongSetTypeHandler.class) + private Set postIds; + /** + * 用户邮箱 + */ + private String email; + /** + * 手机号码 + */ + private String mobile; + /** + * 用户性别 + * + * 枚举类 {@link SexEnum} + */ + private Integer sex; + /** + * 用户头像 + */ + private String avatar; + /** + * 帐号状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + /** + * 最后登录IP + */ + private String loginIp; + /** + * 最后登录时间 + */ + private LocalDateTime loginDate; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java new file mode 100644 index 0000000..cc4f334 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.dal.mysql.dept; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface DeptMapper extends BaseMapperX { + + default List selectList(DeptListReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(DeptDO::getName, reqVO.getName()) + .eqIfPresent(DeptDO::getStatus, reqVO.getStatus())); + } + + default DeptDO selectByParentIdAndName(Long parentId, String name) { + return selectOne(DeptDO::getParentId, parentId, DeptDO::getName, name); + } + + default Long selectCountByParentId(Long parentId) { + return selectCount(DeptDO::getParentId, parentId); + } + + default List selectListByParentId(Collection parentIds) { + return selectList(DeptDO::getParentId, parentIds); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.java new file mode 100644 index 0000000..e05c38c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.dal.mysql.dept; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface PostMapper extends BaseMapperX { + + default List selectList(Collection ids, Collection statuses) { + return selectList(new LambdaQueryWrapperX() + .inIfPresent(PostDO::getId, ids) + .inIfPresent(PostDO::getStatus, statuses)); + } + + default PageResult selectPage(PostPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(PostDO::getCode, reqVO.getCode()) + .likeIfPresent(PostDO::getName, reqVO.getName()) + .eqIfPresent(PostDO::getStatus, reqVO.getStatus()) + .orderByDesc(PostDO::getId)); + } + + default PostDO selectByName(String name) { + return selectOne(PostDO::getName, name); + } + + default PostDO selectByCode(String code) { + return selectOne(PostDO::getCode, code); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.java new file mode 100644 index 0000000..addc67d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.dal.mysql.dept; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface UserPostMapper extends BaseMapperX { + + default List selectListByUserId(Long userId) { + return selectList(UserPostDO::getUserId, userId); + } + + default void deleteByUserIdAndPostId(Long userId, Collection postIds) { + delete(new LambdaQueryWrapperX() + .eq(UserPostDO::getUserId, userId) + .in(UserPostDO::getPostId, postIds)); + } + + default List selectListByPostIds(Collection postIds) { + return selectList(UserPostDO::getPostId, postIds); + } + + default void deleteByUserId(Long userId) { + delete(Wrappers.lambdaUpdate(UserPostDO.class).eq(UserPostDO::getUserId, userId)); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java new file mode 100644 index 0000000..e7ceae7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.system.dal.mysql.dict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +@Mapper +public interface DictDataMapper extends BaseMapperX { + + default DictDataDO selectByDictTypeAndValue(String dictType, String value) { + return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getValue, value); + } + + default DictDataDO selectByDictTypeAndLabel(String dictType, String label) { + return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getLabel, label); + } + + default List selectByDictTypeAndValues(String dictType, Collection values) { + return selectList(new LambdaQueryWrapper().eq(DictDataDO::getDictType, dictType) + .in(DictDataDO::getValue, values)); + } + + default long selectCountByDictType(String dictType) { + return selectCount(DictDataDO::getDictType, dictType); + } + + default PageResult selectPage(DictDataPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DictDataDO::getLabel, reqVO.getLabel()) + .eqIfPresent(DictDataDO::getDictType, reqVO.getDictType()) + .eqIfPresent(DictDataDO::getStatus, reqVO.getStatus()) + .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort))); + } + + default List selectListByStatusAndDictType(Integer status, String dictType) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(DictDataDO::getStatus, status) + .eqIfPresent(DictDataDO::getDictType, dictType)); + } + + default List selectListByDictType(String dictType) { + return selectList(new LambdaQueryWrapperX() + .eq(DictDataDO::getDictType, dictType) + .select(DictDataDO::getLabel, DictDataDO::getValue)); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java new file mode 100644 index 0000000..52393a9 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.dal.mysql.dict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +import java.time.LocalDateTime; + +@Mapper +public interface DictTypeMapper extends BaseMapperX { + + default PageResult selectPage(DictTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(DictTypeDO::getName, reqVO.getName()) + .likeIfPresent(DictTypeDO::getType, reqVO.getType()) + .eqIfPresent(DictTypeDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(DictTypeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DictTypeDO::getId)); + } + + default DictTypeDO selectByType(String type) { + return selectOne(DictTypeDO::getType, type); + } + + default DictTypeDO selectByName(String name) { + return selectOne(DictTypeDO::getName, name); + } + + @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}") + void updateToDelete(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java new file mode 100644 index 0000000..2e345e3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/errorcode/ErrorCodeMapper.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.dal.mysql.errorcode; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; +import org.apache.ibatis.annotations.Mapper; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.List; + +@Mapper +public interface ErrorCodeMapper extends BaseMapperX { + + default PageResult selectPage(ErrorCodePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ErrorCodeDO::getType, reqVO.getType()) + .likeIfPresent(ErrorCodeDO::getApplicationName, reqVO.getApplicationName()) + .eqIfPresent(ErrorCodeDO::getCode, reqVO.getCode()) + .likeIfPresent(ErrorCodeDO::getMessage, reqVO.getMessage()) + .betweenIfPresent(ErrorCodeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ErrorCodeDO::getCode)); + } + + default List selectListByCodes(Collection codes) { + return selectList(ErrorCodeDO::getCode, codes); + } + + default ErrorCodeDO selectByCode(Integer code) { + return selectOne(ErrorCodeDO::getCode, code); + } + + default List selectListByApplicationNameAndUpdateTimeGt(String applicationName, LocalDateTime minUpdateTime) { + return selectList(new LambdaQueryWrapperX().eq(ErrorCodeDO::getApplicationName, applicationName) + .gtIfPresent(ErrorCodeDO::getUpdateTime, minUpdateTime)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/jeelowcode/JeeLowCodePermissionMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/jeelowcode/JeeLowCodePermissionMapper.java new file mode 100644 index 0000000..3278eb3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/jeelowcode/JeeLowCodePermissionMapper.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.system.dal.mysql.jeelowcode; + +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface JeeLowCodePermissionMapper{ + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java new file mode 100644 index 0000000..dfb82bc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.dal.mysql.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO; +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface LoginLogMapper extends BaseMapperX { + + default PageResult selectPage(LoginLogPageReqVO reqVO) { + LambdaQueryWrapperX query = new LambdaQueryWrapperX() + .likeIfPresent(LoginLogDO::getUserIp, reqVO.getUserIp()) + .likeIfPresent(LoginLogDO::getUsername, reqVO.getUsername()) + .eqIfPresent(LoginLogDO::getResult,reqVO.getResult()) + .betweenIfPresent(LoginLogDO::getCreateTime, reqVO.getCreateTime()); + if (Boolean.TRUE.equals(reqVO.getStatus())) { + query.eq(LoginLogDO::getResult, LoginResultEnum.SUCCESS.getResult()); + } else if (Boolean.FALSE.equals(reqVO.getStatus())) { + query.gt(LoginLogDO::getResult, LoginResultEnum.SUCCESS.getResult()); + } + query.orderByDesc(LoginLogDO::getId); // 降序 + return selectPage(reqVO, query); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.java new file mode 100644 index 0000000..0bed6b8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.dal.mysql.logger; + +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; + +@Mapper +public interface OperateLogMapper extends BaseMapperX { + + default PageResult selectPage(OperateLogPageReqVO reqVO, Collection userIds) { + LambdaQueryWrapperX query = new LambdaQueryWrapperX() + .likeIfPresent(OperateLogDO::getModule, reqVO.getModule()) + .inIfPresent(OperateLogDO::getUserId, userIds) + .eqIfPresent(OperateLogDO::getType, reqVO.getType()) + .betweenIfPresent(OperateLogDO::getStartTime, reqVO.getStartTime()); + if (Boolean.TRUE.equals(reqVO.getSuccess())) { + query.eq(OperateLogDO::getResultCode, GlobalErrorCodeConstants.SUCCESS.getCode()); + } else if (Boolean.FALSE.equals(reqVO.getSuccess())) { + query.gt(OperateLogDO::getResultCode, GlobalErrorCodeConstants.SUCCESS.getCode()); + } + query.orderByDesc(OperateLogDO::getId); // 降序 + return selectPage(reqVO, query); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogV2Mapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogV2Mapper.java new file mode 100644 index 0000000..117c368 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogV2Mapper.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.dal.mysql.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OperateLogV2Mapper extends BaseMapperX { + + default PageResult selectPage(OperateLogV2PageReqDTO pageReqDTO) { + return selectPage(pageReqDTO, new LambdaQueryWrapperX() + .eqIfPresent(OperateLogV2DO::getType, pageReqDTO.getBizType()) + .eqIfPresent(OperateLogV2DO::getBizId, pageReqDTO.getBizId()) + .eqIfPresent(OperateLogV2DO::getUserId, pageReqDTO.getUserId()) + .orderByDesc(OperateLogV2DO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.java new file mode 100644 index 0000000..e14fc18 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.dal.mysql.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MailAccountMapper extends BaseMapperX { + + default PageResult selectPage(MailAccountPageReqVO pageReqVO) { + return selectPage(pageReqVO, new LambdaQueryWrapperX() + .likeIfPresent(MailAccountDO::getMail, pageReqVO.getMail()) + .likeIfPresent(MailAccountDO::getUsername , pageReqVO.getUsername())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.java new file mode 100644 index 0000000..6b147cf --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.dal.mysql.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MailLogMapper extends BaseMapperX { + + default PageResult selectPage(MailLogPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MailLogDO::getUserId, reqVO.getUserId()) + .eqIfPresent(MailLogDO::getUserType, reqVO.getUserType()) + .likeIfPresent(MailLogDO::getToMail, reqVO.getToMail()) + .eqIfPresent(MailLogDO::getAccountId, reqVO.getAccountId()) + .eqIfPresent(MailLogDO::getTemplateId, reqVO.getTemplateId()) + .eqIfPresent(MailLogDO::getSendStatus, reqVO.getSendStatus()) + .betweenIfPresent(MailLogDO::getSendTime, reqVO.getSendTime()) + .orderByDesc(MailLogDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java new file mode 100644 index 0000000..f03aa4a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.dal.mysql.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.Date; + +@Mapper +public interface MailTemplateMapper extends BaseMapperX { + + default PageResult selectPage(MailTemplatePageReqVO pageReqVO){ + return selectPage(pageReqVO , new LambdaQueryWrapperX() + .eqIfPresent(MailTemplateDO::getStatus, pageReqVO.getStatus()) + .likeIfPresent(MailTemplateDO::getCode, pageReqVO.getCode()) + .likeIfPresent(MailTemplateDO::getName, pageReqVO.getName()) + .eqIfPresent(MailTemplateDO::getAccountId, pageReqVO.getAccountId()) + .betweenIfPresent(MailTemplateDO::getCreateTime, pageReqVO.getCreateTime())); + } + + default Long selectCountByAccountId(Long accountId) { + return selectCount(MailTemplateDO::getAccountId, accountId); + } + + default MailTemplateDO selectByCode(String code) { + return selectOne(MailTemplateDO::getCode, code); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java new file mode 100644 index 0000000..67ff8db --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.dal.mysql.notice; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NoticeMapper extends BaseMapperX { + + default PageResult selectPage(NoticePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(NoticeDO::getTitle, reqVO.getTitle()) + .eqIfPresent(NoticeDO::getStatus, reqVO.getStatus()) + .orderByDesc(NoticeDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java new file mode 100644 index 0000000..e9ce6d7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.system.dal.mysql.notify; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO; +import org.apache.ibatis.annotations.Mapper; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.List; + +@Mapper +public interface NotifyMessageMapper extends BaseMapperX { + + default PageResult selectPage(NotifyMessagePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(NotifyMessageDO::getUserId, reqVO.getUserId()) + .eqIfPresent(NotifyMessageDO::getUserType, reqVO.getUserType()) + .likeIfPresent(NotifyMessageDO::getTemplateCode, reqVO.getTemplateCode()) + .eqIfPresent(NotifyMessageDO::getTemplateType, reqVO.getTemplateType()) + .betweenIfPresent(NotifyMessageDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(NotifyMessageDO::getId)); + } + + default PageResult selectPage(NotifyMessageMyPageReqVO reqVO, Long userId, Integer userType) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(NotifyMessageDO::getReadStatus, reqVO.getReadStatus()) + .betweenIfPresent(NotifyMessageDO::getCreateTime, reqVO.getCreateTime()) + .eq(NotifyMessageDO::getUserId, userId) + .eq(NotifyMessageDO::getUserType, userType) + .orderByDesc(NotifyMessageDO::getId)); + } + + default int updateListRead(Collection ids, Long userId, Integer userType) { + return update(new NotifyMessageDO().setReadStatus(true).setReadTime(LocalDateTime.now()), + new LambdaQueryWrapperX() + .in(NotifyMessageDO::getId, ids) + .eq(NotifyMessageDO::getUserId, userId) + .eq(NotifyMessageDO::getUserType, userType) + .eq(NotifyMessageDO::getReadStatus, false)); + } + + default int updateListRead(Long userId, Integer userType) { + return update(new NotifyMessageDO().setReadStatus(true).setReadTime(LocalDateTime.now()), + new LambdaQueryWrapperX() + .eq(NotifyMessageDO::getUserId, userId) + .eq(NotifyMessageDO::getUserType, userType) + .eq(NotifyMessageDO::getReadStatus, false)); + } + + default List selectUnreadListByUserIdAndUserType(Long userId, Integer userType, Integer size) { + return selectList(new QueryWrapperX() // 由于要使用 limitN 语句,所以只能用 QueryWrapperX + .eq("user_id", userId) + .eq("user_type", userType) + .eq("read_status", false) + .orderByDesc("id").limitN(size)); + } + + default Long selectUnreadCountByUserIdAndUserType(Long userId, Integer userType) { + return selectCount(new LambdaQueryWrapperX() + .eq(NotifyMessageDO::getReadStatus, false) + .eq(NotifyMessageDO::getUserId, userId) + .eq(NotifyMessageDO::getUserType, userType)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java new file mode 100644 index 0000000..5023a34 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.dal.mysql.notify; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface NotifyTemplateMapper extends BaseMapperX { + + default NotifyTemplateDO selectByCode(String code) { + return selectOne(NotifyTemplateDO::getCode, code); + } + + default PageResult selectPage(NotifyTemplatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(NotifyTemplateDO::getCode, reqVO.getCode()) + .likeIfPresent(NotifyTemplateDO::getName, reqVO.getName()) + .likeIfPresent(NotifyTemplateDO::getNickname, reqVO.getNickname()) + .eqIfPresent(NotifyTemplateDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(NotifyTemplateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(NotifyTemplateDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java new file mode 100644 index 0000000..8e6e111 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.dal.mysql.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import org.apache.ibatis.annotations.Mapper; + +import java.time.LocalDateTime; +import java.util.List; + +@Mapper +public interface OAuth2AccessTokenMapper extends BaseMapperX { + + default OAuth2AccessTokenDO selectByAccessToken(String accessToken) { + return selectOne(OAuth2AccessTokenDO::getAccessToken, accessToken); + } + + default List selectListByRefreshToken(String refreshToken) { + return selectList(OAuth2AccessTokenDO::getRefreshToken, refreshToken); + } + + default PageResult selectPage(OAuth2AccessTokenPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(OAuth2AccessTokenDO::getUserId, reqVO.getUserId()) + .eqIfPresent(OAuth2AccessTokenDO::getUserType, reqVO.getUserType()) + .likeIfPresent(OAuth2AccessTokenDO::getAccessToken, reqVO.getAccessToken()) + .likeIfPresent(OAuth2AccessTokenDO::getClientId, reqVO.getClientId()) + .gt(OAuth2AccessTokenDO::getExpiresTime, LocalDateTime.now()) + .orderByDesc(OAuth2AccessTokenDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java new file mode 100644 index 0000000..61a976f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.dal.mysql.oauth2; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ApproveDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OAuth2ApproveMapper extends BaseMapperX { + + default int update(OAuth2ApproveDO updateObj) { + return update(updateObj, new LambdaQueryWrapperX() + .eq(OAuth2ApproveDO::getUserId, updateObj.getUserId()) + .eq(OAuth2ApproveDO::getUserType, updateObj.getUserType()) + .eq(OAuth2ApproveDO::getClientId, updateObj.getClientId()) + .eq(OAuth2ApproveDO::getScope, updateObj.getScope())); + } + + default List selectListByUserIdAndUserTypeAndClientId(Long userId, Integer userType, String clientId) { + return selectList(new LambdaQueryWrapperX() + .eq(OAuth2ApproveDO::getUserId, userId) + .eq(OAuth2ApproveDO::getUserType, userType) + .eq(OAuth2ApproveDO::getClientId, clientId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java new file mode 100644 index 0000000..e6012b0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.dal.mysql.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * OAuth2 客户端 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface OAuth2ClientMapper extends BaseMapperX { + + default PageResult selectPage(OAuth2ClientPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(OAuth2ClientDO::getName, reqVO.getName()) + .eqIfPresent(OAuth2ClientDO::getStatus, reqVO.getStatus()) + .orderByDesc(OAuth2ClientDO::getId)); + } + + default OAuth2ClientDO selectByClientId(String clientId) { + return selectOne(OAuth2ClientDO::getClientId, clientId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java new file mode 100644 index 0000000..c85581c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.system.dal.mysql.oauth2; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2CodeDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OAuth2CodeMapper extends BaseMapperX { + + default OAuth2CodeDO selectByCode(String code) { + return selectOne(OAuth2CodeDO::getCode, code); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java new file mode 100644 index 0000000..713be89 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.system.dal.mysql.oauth2; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2RefreshTokenDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OAuth2RefreshTokenMapper extends BaseMapperX { + + default int deleteByRefreshToken(String refreshToken) { + return delete(new LambdaQueryWrapperX() + .eq(OAuth2RefreshTokenDO::getRefreshToken, refreshToken)); + } + + default OAuth2RefreshTokenDO selectByRefreshToken(String refreshToken) { + return selectOne(OAuth2RefreshTokenDO::getRefreshToken, refreshToken); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.java new file mode 100644 index 0000000..6ad304f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.java @@ -0,0 +1,9 @@ +/** + * DAL = Data Access Layer 数据访问层 + * 1. data object:数据对象 + * 2. redis:Redis 的 CRUD 操作 + * 3. mysql:MySQL 的 CRUD 操作 + * + * 其中,MySQL 的表以 system_ 作为前缀 + */ +package cn.iocoder.yudao.module.system.dal.mysql; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java new file mode 100644 index 0000000..344a29e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MenuMapper extends BaseMapperX { + + default MenuDO selectByParentIdAndName(Long parentId, String name) { + return selectOne(MenuDO::getParentId, parentId, MenuDO::getName, name); + } + + default Long selectCountByParentId(Long parentId) { + return selectCount(MenuDO::getParentId, parentId); + } + + + default List selectList(MenuListReqVO reqVO) { + if(reqVO.getParentId()!=null || ObjectUtil.isEmpty(reqVO.getBtnDisplay())){ + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(MenuDO::getParentId,reqVO.getParentId()) + .likeIfPresent(MenuDO::getName, reqVO.getName()) + .eqIfPresent(MenuDO::getStatus, reqVO.getStatus())); + } + + return selectList(new LambdaQueryWrapperX() + .neIfPresent(MenuDO::getType,3) + .likeIfPresent(MenuDO::getName, reqVO.getName()) + .eqIfPresent(MenuDO::getStatus, reqVO.getStatus())); + } + + default List selectListByPermission(String permission) { + return selectList(MenuDO::getPermission, permission); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java new file mode 100644 index 0000000..f6d86d1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.lang.Nullable; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface RoleMapper extends BaseMapperX { + + default PageResult selectPage(RolePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(RoleDO::getName, reqVO.getName()) + .likeIfPresent(RoleDO::getCode, reqVO.getCode()) + .eqIfPresent(RoleDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RoleDO::getId)); + } + + default RoleDO selectByName(String name) { + return selectOne(RoleDO::getName, name); + } + + default RoleDO selectByCode(String code) { + return selectOne(RoleDO::getCode, code); + } + + default List selectListByStatus(@Nullable Collection statuses) { + return selectList(RoleDO::getStatus, statuses); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java new file mode 100644 index 0000000..02cb6b8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface RoleMenuMapper extends BaseMapperX { + + default List selectListByRoleId(Long roleId) { + return selectList(RoleMenuDO::getRoleId, roleId); + } + + default List selectListByRoleId(Collection roleIds) { + return selectList(RoleMenuDO::getRoleId, roleIds); + } + + default List selectListByMenuId(Long menuId) { + return selectList(RoleMenuDO::getMenuId, menuId); + } + + default void deleteListByRoleIdAndMenuIds(Long roleId, Collection menuIds) { + delete(new LambdaQueryWrapper() + .eq(RoleMenuDO::getRoleId, roleId) + .in(RoleMenuDO::getMenuId, menuIds)); + } + + default void deleteListByMenuId(Long menuId) { + delete(new LambdaQueryWrapper().eq(RoleMenuDO::getMenuId, menuId)); + } + + default void deleteListByRoleId(Long roleId) { + delete(new LambdaQueryWrapper().eq(RoleMenuDO::getRoleId, roleId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java new file mode 100644 index 0000000..12ff88a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface UserRoleMapper extends BaseMapperX { + + default List selectListByUserId(Long userId) { + return selectList(UserRoleDO::getUserId, userId); + } + + default void deleteListByUserIdAndRoleIdIds(Long userId, Collection roleIds) { + delete(new LambdaQueryWrapper() + .eq(UserRoleDO::getUserId, userId) + .in(UserRoleDO::getRoleId, roleIds)); + } + + default void deleteListByUserId(Long userId) { + delete(new LambdaQueryWrapper().eq(UserRoleDO::getUserId, userId)); + } + + default void deleteListByRoleId(Long roleId) { + delete(new LambdaQueryWrapper().eq(UserRoleDO::getRoleId, roleId)); + } + + default List selectListByRoleIds(Collection roleIds) { + return selectList(UserRoleDO::getRoleId, roleIds); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java new file mode 100644 index 0000000..f4bf8cc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.time.LocalDateTime; + +/** + * 敏感词 Mapper + * + * @author 永不言败 + */ +@Mapper +public interface SensitiveWordMapper extends BaseMapperX { + + default PageResult selectPage(SensitiveWordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SensitiveWordDO::getName, reqVO.getName()) + .likeIfPresent(SensitiveWordDO::getTags, reqVO.getTag()) + .eqIfPresent(SensitiveWordDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(SensitiveWordDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SensitiveWordDO::getId)); + } + default SensitiveWordDO selectByName(String name) { + return selectOne(SensitiveWordDO::getName, name); + } + + @Select("SELECT COUNT(*) FROM system_sensitive_word WHERE update_time > #{maxUpdateTime}") + Long selectCountByUpdateTimeGt(LocalDateTime maxTime); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java new file mode 100644 index 0000000..1f356ed --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SmsChannelMapper extends BaseMapperX { + + default PageResult selectPage(SmsChannelPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SmsChannelDO::getSignature, reqVO.getSignature()) + .eqIfPresent(SmsChannelDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(SmsChannelDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SmsChannelDO::getId)); + } + + default SmsChannelDO selectByCode(String code) { + return selectOne(SmsChannelDO::getCode, code); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.java new file mode 100644 index 0000000..599c1ab --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sms; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsCodeDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SmsCodeMapper extends BaseMapperX { + + /** + * 获得手机号的最后一个手机验证码 + * + * @param mobile 手机号 + * @param scene 发送场景,选填 + * @param code 验证码 选填 + * @return 手机验证码 + */ + default SmsCodeDO selectLastByMobile(String mobile, String code, Integer scene) { + return selectOne(new QueryWrapperX() + .eq("mobile", mobile) + .eqIfPresent("scene", scene) + .eqIfPresent("code", code) + .orderByDesc("id") + .limitN(1)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java new file mode 100644 index 0000000..f238871 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SmsLogMapper extends BaseMapperX { + + default PageResult selectPage(SmsLogPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SmsLogDO::getChannelId, reqVO.getChannelId()) + .eqIfPresent(SmsLogDO::getTemplateId, reqVO.getTemplateId()) + .likeIfPresent(SmsLogDO::getMobile, reqVO.getMobile()) + .eqIfPresent(SmsLogDO::getSendStatus, reqVO.getSendStatus()) + .betweenIfPresent(SmsLogDO::getSendTime, reqVO.getSendTime()) + .eqIfPresent(SmsLogDO::getReceiveStatus, reqVO.getReceiveStatus()) + .betweenIfPresent(SmsLogDO::getReceiveTime, reqVO.getReceiveTime()) + .orderByDesc(SmsLogDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java new file mode 100644 index 0000000..a9a1ebb --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SmsTemplateMapper extends BaseMapperX { + + default SmsTemplateDO selectByCode(String code) { + return selectOne(SmsTemplateDO::getCode, code); + } + + default PageResult selectPage(SmsTemplatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SmsTemplateDO::getType, reqVO.getType()) + .eqIfPresent(SmsTemplateDO::getStatus, reqVO.getStatus()) + .likeIfPresent(SmsTemplateDO::getCode, reqVO.getCode()) + .likeIfPresent(SmsTemplateDO::getContent, reqVO.getContent()) + .likeIfPresent(SmsTemplateDO::getApiTemplateId, reqVO.getApiTemplateId()) + .eqIfPresent(SmsTemplateDO::getChannelId, reqVO.getChannelId()) + .betweenIfPresent(SmsTemplateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SmsTemplateDO::getId)); + } + + default Long selectCountByChannelId(Long channelId) { + return selectCount(SmsTemplateDO::getChannelId, channelId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.java new file mode 100644 index 0000000..4ebe226 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.dal.mysql.social; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SocialClientMapper extends BaseMapperX { + + default SocialClientDO selectBySocialTypeAndUserType(Integer socialType, Integer userType) { + return selectOne(SocialClientDO::getSocialType, socialType, + SocialClientDO::getUserType, userType); + } + + default PageResult selectPage(SocialClientPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SocialClientDO::getName, reqVO.getName()) + .eqIfPresent(SocialClientDO::getSocialType, reqVO.getSocialType()) + .eqIfPresent(SocialClientDO::getUserType, reqVO.getUserType()) + .likeIfPresent(SocialClientDO::getClientId, reqVO.getClientId()) + .eqIfPresent(SocialClientDO::getStatus, reqVO.getStatus()) + .orderByDesc(SocialClientDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.java new file mode 100644 index 0000000..d9957f7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.system.dal.mysql.social; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserBindDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SocialUserBindMapper extends BaseMapperX { + + default void deleteByUserTypeAndUserIdAndSocialType(Integer userType, Long userId, Integer socialType) { + delete(new LambdaQueryWrapperX() + .eq(SocialUserBindDO::getUserType, userType) + .eq(SocialUserBindDO::getUserId, userId) + .eq(SocialUserBindDO::getSocialType, socialType)); + } + + default void deleteByUserTypeAndSocialUserId(Integer userType, Long socialUserId) { + delete(new LambdaQueryWrapperX() + .eq(SocialUserBindDO::getUserType, userType) + .eq(SocialUserBindDO::getSocialUserId, socialUserId)); + } + + default SocialUserBindDO selectByUserTypeAndSocialUserId(Integer userType, Long socialUserId) { + return selectOne(SocialUserBindDO::getUserType, userType, + SocialUserBindDO::getSocialUserId, socialUserId); + } + + default List selectListByUserIdAndUserType(Long userId, Integer userType) { + return selectList(new LambdaQueryWrapperX() + .eq(SocialUserBindDO::getUserId, userId) + .eq(SocialUserBindDO::getUserType, userType)); + } + + default SocialUserBindDO selectByUserIdAndUserTypeAndSocialType(Long userId, Integer userType, Integer socialType) { + return selectOne(new LambdaQueryWrapperX() + .eq(SocialUserBindDO::getUserId, userId) + .eq(SocialUserBindDO::getUserType, userType) + .eq(SocialUserBindDO::getSocialType, socialType)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.java new file mode 100644 index 0000000..af30ece --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.dal.mysql.social; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SocialUserMapper extends BaseMapperX { + + default SocialUserDO selectByTypeAndCodeAnState(Integer type, String code, String state) { + return selectOne(new LambdaQueryWrapper() + .eq(SocialUserDO::getType, type) + .eq(SocialUserDO::getCode, code) + .eq(SocialUserDO::getState, state)); + } + + default SocialUserDO selectByTypeAndOpenid(Integer type, String openid) { + return selectOne(new LambdaQueryWrapper() + .eq(SocialUserDO::getType, type) + .eq(SocialUserDO::getOpenid, openid)); + } + + default PageResult selectPage(SocialUserPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SocialUserDO::getType, reqVO.getType()) + .likeIfPresent(SocialUserDO::getNickname, reqVO.getNickname()) + .likeIfPresent(SocialUserDO::getOpenid, reqVO.getOpenid()) + .betweenIfPresent(SocialUserDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SocialUserDO::getId)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java new file mode 100644 index 0000000..aaca016 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.dal.mysql.tenant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 租户 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface TenantMapper extends BaseMapperX { + + default PageResult selectPage(TenantPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(TenantDO::getName, reqVO.getName()) + .likeIfPresent(TenantDO::getContactName, reqVO.getContactName()) + .likeIfPresent(TenantDO::getContactMobile, reqVO.getContactMobile()) + .eqIfPresent(TenantDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(TenantDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(TenantDO::getId)); + } + + default TenantDO selectByName(String name) { + return selectOne(TenantDO::getName, name); + } + + default TenantDO selectByWebsite(String website) { + return selectOne(TenantDO::getWebsite, website); + } + + default Long selectCountByPackageId(Long packageId) { + return selectCount(TenantDO::getPackageId, packageId); + } + + default List selectListByPackageId(Long packageId) { + return selectList(TenantDO::getPackageId, packageId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.java new file mode 100644 index 0000000..e8a41c7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.dal.mysql.tenant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 租户套餐 Mapper + * + * @author 芋道源码 + */ +@Mapper +public interface TenantPackageMapper extends BaseMapperX { + + default PageResult selectPage(TenantPackagePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(TenantPackageDO::getName, reqVO.getName()) + .eqIfPresent(TenantPackageDO::getStatus, reqVO.getStatus()) + .likeIfPresent(TenantPackageDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(TenantPackageDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(TenantPackageDO::getId)); + } + + default List selectListByStatus(Integer status) { + return selectList(TenantPackageDO::getStatus, status); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java new file mode 100644 index 0000000..c3b75b3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.system.dal.mysql.user; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Collection; +import java.util.List; + +@Mapper +public interface AdminUserMapper extends BaseMapperX { + + default AdminUserDO selectByUsername(String username) { + return selectOne(AdminUserDO::getUsername, username); + } + + default AdminUserDO selectByEmail(String email) { + return selectOne(AdminUserDO::getEmail, email); + } + + default AdminUserDO selectByMobile(String mobile) { + return selectOne(AdminUserDO::getMobile, mobile); + } + + default PageResult selectPage(UserPageReqVO reqVO, Collection deptIds) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername()) + .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname()) + .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile()) + .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime()) + .inIfPresent(AdminUserDO::getDeptId, deptIds) + .orderByDesc(AdminUserDO::getId)); + } + + default List selectListByNickname(String nickname) { + return selectList(new LambdaQueryWrapperX().like(AdminUserDO::getNickname, nickname)); + } + + default List selectListByStatus(Integer status) { + return selectList(AdminUserDO::getStatus, status); + } + + default List selectListByDeptIds(Collection deptIds) { + return selectList(AdminUserDO::getDeptId, deptIds); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java new file mode 100644 index 0000000..cda6dab --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.system.dal.redis; + +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; + +/** + * System Redis Key 枚举类 + * + * @author 芋道源码 + */ +public interface RedisKeyConstants { + + /** + * 指定部门的所有子部门编号数组的缓存 + *

    + * KEY 格式:dept_children_ids:{id} + * VALUE 数据类型:String 子部门编号集合 + */ + String DEPT_CHILDREN_ID_LIST = "dept_children_ids"; + + /** + * 角色的缓存 + *

    + * KEY 格式:role:{id} + * VALUE 数据类型:String 角色信息 + */ + String ROLE = "role"; + + /** + * 用户拥有的角色编号的缓存 + *

    + * KEY 格式:user_role_ids:{userId} + * VALUE 数据类型:String 角色编号集合 + */ + String USER_ROLE_ID_LIST = "user_role_ids"; + + /** + * 拥有指定菜单的角色编号的缓存 + *

    + * KEY 格式:user_role_ids:{menuId} + * VALUE 数据类型:String 角色编号集合 + */ + String MENU_ROLE_ID_LIST = "menu_role_ids"; + + /** + * 拥有权限对应的菜单编号数组的缓存 + *

    + * KEY 格式:permission_menu_ids:{permission} + * VALUE 数据类型:String 菜单编号数组 + */ + String PERMISSION_MENU_ID_LIST = "permission_menu_ids"; + + /** + * OAuth2 客户端的缓存 + *

    + * KEY 格式:user:{id} + * VALUE 数据类型:String 客户端信息 + */ + String OAUTH_CLIENT = "oauth_client"; + + /** + * 访问令牌的缓存 + *

    + * KEY 格式:oauth2_access_token:{token} + * VALUE 数据类型:String 访问令牌信息 {@link OAuth2AccessTokenDO} + *

    + * 由于动态过期时间,使用 RedisTemplate 操作 + */ + String OAUTH2_ACCESS_TOKEN = "oauth2_access_token:%s"; + + /** + * 站内信模版的缓存 + *

    + * KEY 格式:notify_template:{code} + * VALUE 数据格式:String 模版信息 + */ + String NOTIFY_TEMPLATE = "notify_template"; + + /** + * 邮件账号的缓存 + *

    + * KEY 格式:sms_template:{id} + * VALUE 数据格式:String 账号信息 + */ + String MAIL_ACCOUNT = "mail_account"; + + /** + * 邮件模版的缓存 + *

    + * KEY 格式:mail_template:{code} + * VALUE 数据格式:String 模版信息 + */ + String MAIL_TEMPLATE = "mail_template"; + + /** + * 短信模版的缓存 + *

    + * KEY 格式:sms_template:{id} + * VALUE 数据格式:String 模版信息 + */ + String SMS_TEMPLATE = "sms_template"; +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java new file mode 100644 index 0000000..7827dfa --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.system.dal.redis.oauth2; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import static cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants.OAUTH2_ACCESS_TOKEN; + +/** + * {@link OAuth2AccessTokenDO} 的 RedisDAO + * + * @author 芋道源码 + */ +@Repository +public class OAuth2AccessTokenRedisDAO { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + public OAuth2AccessTokenDO get(String accessToken) { + String redisKey = formatKey(accessToken); + return JsonUtils.parseObject(stringRedisTemplate.opsForValue().get(redisKey), OAuth2AccessTokenDO.class); + } + + public void set(OAuth2AccessTokenDO accessTokenDO) { + String redisKey = formatKey(accessTokenDO.getAccessToken()); + // 清理多余字段,避免缓存 + accessTokenDO.setUpdater(null).setUpdateTime(null).setCreateTime(null).setCreator(null).setDeleted(null); + long time = LocalDateTimeUtil.between(LocalDateTime.now(), accessTokenDO.getExpiresTime(), ChronoUnit.SECONDS); + if (time > 0) { + stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(accessTokenDO), time, TimeUnit.SECONDS); + } + } + + public void delete(String accessToken) { + String redisKey = formatKey(accessToken); + stringRedisTemplate.delete(redisKey); + } + + public void deleteList(Collection accessTokens) { + List redisKeys = CollectionUtils.convertList(accessTokens, OAuth2AccessTokenRedisDAO::formatKey); + stringRedisTemplate.delete(redisKeys); + } + + private static String formatKey(String accessToken) { + return String.format(OAUTH2_ACCESS_TOKEN, accessToken); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.java new file mode 100644 index 0000000..136866c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.framework.datapermission.config; + +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * system 模块的数据权限 Configuration + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class DataPermissionConfiguration { + + @Bean + public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() { + return rule -> { + // dept + rule.addDeptColumn(AdminUserDO.class); + rule.addDeptColumn(DeptDO.class, "id"); + // user + rule.addUserColumn(AdminUserDO.class, "id"); + }; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.java new file mode 100644 index 0000000..a666845 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.java @@ -0,0 +1,4 @@ +/** + * system 模块的数据权限配置 + */ +package cn.iocoder.yudao.module.system.framework.datapermission; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.java new file mode 100644 index 0000000..70fb9c0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.mzt.logapi.service.IParseFunction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 管理员名字的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class AdminUserParseFunction implements IParseFunction { + + public static final String NAME = "getAdminUserById"; + + @Resource + private AdminUserApi adminUserApi; + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + + // 获取用户信息 + AdminUserRespDTO user = adminUserApi.getUser(Long.parseLong(value.toString())); + if (user == null) { + log.warn("[apply][获取用户{{}}为空", value); + return ""; + } + // 返回格式 芋道源码(13888888888) + String nickname = user.getNickname(); + if (StrUtil.isEmpty(user.getMobile())) { + return nickname; + } + return StrUtil.format("{}({})", nickname, user.getMobile()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.java new file mode 100644 index 0000000..e22ab5c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; +import com.mzt.logapi.service.IParseFunction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 地名的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class AreaParseFunction implements IParseFunction { + + public static final String NAME = "getArea"; + + @Override + public boolean executeBefore() { + return true; // 先转换值后对比 + } + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + return AreaUtils.format(Integer.parseInt(value.toString())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.java new file mode 100644 index 0000000..7d3a007 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; +import cn.iocoder.yudao.module.infra.enums.DictTypeConstants; +import com.mzt.logapi.service.IParseFunction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 是否类型的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Component +@Slf4j +public class BooleanParseFunction implements IParseFunction { + + public static final String NAME = "getBoolean"; + + @Override + public boolean executeBefore() { + return true; // 先转换值后对比 + } + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BOOLEAN_STRING, value.toString()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.java new file mode 100644 index 0000000..65f24d4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import com.mzt.logapi.service.IParseFunction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 管理员名字的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Slf4j +@Component +public class DeptParseFunction implements IParseFunction { + + public static final String NAME = "getDeptById"; + + @Resource + private DeptApi deptApi; + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + + // 获取部门信息 + DeptRespDTO dept = deptApi.getDept(Long.parseLong(value.toString())); + if (dept == null) { + log.warn("[apply][获取部门{{}}为空", value); + return ""; + } + return dept.getName(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.java new file mode 100644 index 0000000..dcb89d2 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.framework.operatelog.core; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.dict.core.util.DictFrameworkUtils; +import cn.iocoder.yudao.module.system.enums.DictTypeConstants; +import com.mzt.logapi.service.IParseFunction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 行业的 {@link IParseFunction} 实现类 + * + * @author HUIHUI + */ +@Component +@Slf4j +public class SexParseFunction implements IParseFunction { + + public static final String NAME = "getSex"; + + @Override + public boolean executeBefore() { + return true; // 先转换值后对比 + } + + @Override + public String functionName() { + return NAME; + } + + @Override + public String apply(Object value) { + if (StrUtil.isEmptyIfStr(value)) { + return ""; + } + return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.USER_SEX, value.toString()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.java new file mode 100644 index 0000000..978444e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.system.framework.operatelog; \ No newline at end of file diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.java new file mode 100644 index 0000000..4b84406 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 system 模块的 framework 封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.system.framework; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.java new file mode 100644 index 0000000..4f3a50c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.framework.sms.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotNull; +import java.time.Duration; + +@ConfigurationProperties(prefix = "yudao.sms-code") +@Validated +@Data +public class SmsCodeProperties { + + /** + * 过期时间 + */ + @NotNull(message = "过期时间不能为空") + private Duration expireTimes; + /** + * 短信发送频率 + */ + @NotNull(message = "短信发送频率不能为空") + private Duration sendFrequency; + /** + * 每日发送最大数量 + */ + @NotNull(message = "每日发送最大数量不能为空") + private Integer sendMaximumQuantityPerDay; + /** + * 验证码最小值 + */ + @NotNull(message = "验证码最小值不能为空") + private Integer beginCode; + /** + * 验证码最大值 + */ + @NotNull(message = "验证码最大值不能为空") + private Integer endCode; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.java new file mode 100644 index 0000000..eb34775 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.framework.sms.config; + +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClientFactory; +import cn.iocoder.yudao.module.system.framework.sms.core.client.impl.SmsClientFactoryImpl; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 短信配置类,包括短信客户端、短信验证码两部分 + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(SmsCodeProperties.class) +public class SmsConfiguration { + + @Bean + public SmsClientFactory smsClientFactory() { + return new SmsClientFactoryImpl(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.java new file mode 100644 index 0000000..4622466 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client; + +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; + +import java.util.List; + +/** + * 短信客户端,用于对接各短信平台的 SDK,实现短信发送等功能 + * + * @author zzf + * @since 2021/1/25 14:14 + */ +public interface SmsClient { + + /** + * 获得渠道编号 + * + * @return 渠道编号 + */ + Long getId(); + + /** + * 发送消息 + * + * @param logId 日志编号 + * @param mobile 手机号 + * @param apiTemplateId 短信 API 的模板编号 + * @param templateParams 短信模板参数。通过 List 数组,保证参数的顺序 + * @return 短信发送结果 + */ + SmsSendRespDTO sendSms(Long logId, String mobile, String apiTemplateId, + List> templateParams) throws Throwable; + + /** + * 解析接收短信的接收结果 + * + * @param text 结果 + * @return 结果内容 + * @throws Throwable 当解析 text 发生异常时,则会抛出异常 + */ + List parseSmsReceiveStatus(String text) throws Throwable; + + /** + * 查询指定的短信模板 + * + * @param apiTemplateId 短信 API 的模板编号 + * @return 短信模板 + */ + SmsTemplateRespDTO getSmsTemplate(String apiTemplateId) throws Throwable; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.java new file mode 100644 index 0000000..a113317 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client; + +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; + +/** + * 短信客户端的工厂接口 + * + * @author zzf + * @since 2021/1/28 14:01 + */ +public interface SmsClientFactory { + + /** + * 获得短信 Client + * + * @param channelId 渠道编号 + * @return 短信 Client + */ + SmsClient getSmsClient(Long channelId); + + /** + * 获得短信 Client + * + * @param channelCode 渠道编码 + * @return 短信 Client + */ + SmsClient getSmsClient(String channelCode); + + /** + * 创建短信 Client + * + * @param properties 配置对象 + */ + void createOrUpdateSmsClient(SmsChannelProperties properties); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java new file mode 100644 index 0000000..c90a33e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.dto; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 消息接收 Response DTO + * + * @author 芋道源码 + */ +@Data +public class SmsReceiveRespDTO { + + /** + * 是否接收成功 + */ + private Boolean success; + /** + * API 接收结果的编码 + */ + private String errorCode; + /** + * API 接收结果的说明 + */ + private String errorMsg; + + /** + * 手机号 + */ + private String mobile; + /** + * 用户接收时间 + */ + private LocalDateTime receiveTime; + + /** + * 短信 API 发送返回的序号 + */ + private String serialNo; + /** + * 短信日志编号 + * + * 对应 SysSmsLogDO 的编号 + */ + private Long logId; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java new file mode 100644 index 0000000..9f3094b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.dto; + +import lombok.Data; + +/** + * 短信发送 Response DTO + * + * @author 芋道源码 + */ +@Data +public class SmsSendRespDTO { + + /** + * 是否成功 + */ + private Boolean success; + + /** + * API 请求编号 + */ + private String apiRequestId; + + // ==================== 成功时字段 ==================== + + /** + * 短信 API 发送返回的序号 + */ + private String serialNo; + + // ==================== 失败时字段 ==================== + + /** + * API 返回错误码 + * + * 由于第三方的错误码可能是字符串,所以使用 String 类型 + */ + private String apiCode; + /** + * API 返回提示 + */ + private String apiMsg; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java new file mode 100644 index 0000000..38a43aa --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.dto; + +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import lombok.Data; + +/** + * 短信模板 Response DTO + * + * @author 芋道源码 + */ +@Data +public class SmsTemplateRespDTO { + + /** + * 模板编号 + */ + private String id; + /** + * 短信内容 + */ + private String content; + /** + * 审核状态 + * + * 枚举 {@link SmsTemplateAuditStatusEnum} + */ + private Integer auditStatus; + /** + * 审核未通过的理由 + */ + private String auditReason; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.java new file mode 100644 index 0000000..3b6e0eb --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.impl; + +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; +import lombok.extern.slf4j.Slf4j; + +/** + * 短信客户端的抽象类,提供模板方法,减少子类的冗余代码 + * + * @author zzf + * @since 2021/2/1 9:28 + */ +@Slf4j +public abstract class AbstractSmsClient implements SmsClient { + + /** + * 短信渠道配置 + */ + protected volatile SmsChannelProperties properties; + + public AbstractSmsClient(SmsChannelProperties properties) { + this.properties = properties; + } + + /** + * 初始化 + */ + public final void init() { + doInit(); + log.debug("[init][配置({}) 初始化完成]", properties); + } + + /** + * 自定义初始化 + */ + protected abstract void doInit(); + + public final void refresh(SmsChannelProperties properties) { + // 判断是否更新 + if (properties.equals(this.properties)) { + return; + } + log.info("[refresh][配置({})发生变化,重新初始化]", properties); + this.properties = properties; + // 初始化 + this.init(); + } + + @Override + public Long getId() { + return properties.getId(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.java new file mode 100644 index 0000000..7d01e6c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.java @@ -0,0 +1,182 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.dysmsapi.model.v20170525.QuerySmsTemplateRequest; +import com.aliyuncs.dysmsapi.model.v20170525.QuerySmsTemplateResponse; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.annotations.VisibleForTesting; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; + +/** + * 阿里短信客户端的实现类 + * + * @author zzf + * @since 2021/1/25 14:17 + */ +@Slf4j +public class AliyunSmsClient extends AbstractSmsClient { + + /** + * 调用成功 code + */ + public static final String API_CODE_SUCCESS = "OK"; + + /** + * REGION, 使用杭州 + */ + private static final String ENDPOINT = "cn-hangzhou"; + + /** + * 阿里云客户端 + */ + private volatile IAcsClient client; + + public AliyunSmsClient(SmsChannelProperties properties) { + super(properties); + Assert.notEmpty(properties.getApiKey(), "apiKey 不能为空"); + Assert.notEmpty(properties.getApiSecret(), "apiSecret 不能为空"); + } + + @Override + protected void doInit() { + IClientProfile profile = DefaultProfile.getProfile(ENDPOINT, properties.getApiKey(), properties.getApiSecret()); + client = new DefaultAcsClient(profile); + } + + @Override + public SmsSendRespDTO sendSms(Long sendLogId, String mobile, String apiTemplateId, + List> templateParams) throws Throwable { + // 构建请求 + SendSmsRequest request = new SendSmsRequest(); + request.setPhoneNumbers(mobile); + request.setSignName(properties.getSignature()); + request.setTemplateCode(apiTemplateId); + request.setTemplateParam(JsonUtils.toJsonString(MapUtils.convertMap(templateParams))); + request.setOutId(String.valueOf(sendLogId)); + // 执行请求 + SendSmsResponse response = client.getAcsResponse(request); + return new SmsSendRespDTO().setSuccess(Objects.equals(response.getCode(), API_CODE_SUCCESS)).setSerialNo(response.getBizId()) + .setApiRequestId(response.getRequestId()).setApiCode(response.getCode()).setApiMsg(response.getMessage()); + } + + @Override + public List parseSmsReceiveStatus(String text) { + List statuses = JsonUtils.parseArray(text, SmsReceiveStatus.class); + return convertList(statuses, status -> new SmsReceiveRespDTO().setSuccess(status.getSuccess()) + .setErrorCode(status.getErrCode()).setErrorMsg(status.getErrMsg()) + .setMobile(status.getPhoneNumber()).setReceiveTime(status.getReportTime()) + .setSerialNo(status.getBizId()).setLogId(Long.valueOf(status.getOutId()))); + } + + @Override + public SmsTemplateRespDTO getSmsTemplate(String apiTemplateId) throws Throwable { + // 构建请求 + QuerySmsTemplateRequest request = new QuerySmsTemplateRequest(); + request.setTemplateCode(apiTemplateId); + // 执行请求 + QuerySmsTemplateResponse response = client.getAcsResponse(request); + if (response.getTemplateStatus() == null) { + return null; + } + return new SmsTemplateRespDTO().setId(response.getTemplateCode()).setContent(response.getTemplateContent()) + .setAuditStatus(convertSmsTemplateAuditStatus(response.getTemplateStatus())).setAuditReason(response.getReason()); + } + + @VisibleForTesting + Integer convertSmsTemplateAuditStatus(Integer templateStatus) { + switch (templateStatus) { + case 0: return SmsTemplateAuditStatusEnum.CHECKING.getStatus(); + case 1: return SmsTemplateAuditStatusEnum.SUCCESS.getStatus(); + case 2: return SmsTemplateAuditStatusEnum.FAIL.getStatus(); + default: throw new IllegalArgumentException(String.format("未知审核状态(%d)", templateStatus)); + } + } + + /** + * 短信接收状态 + * + * 参见 文档 + * + * @author 芋道源码 + */ + @Data + public static class SmsReceiveStatus { + + /** + * 手机号 + */ + @JsonProperty("phone_number") + private String phoneNumber; + /** + * 发送时间 + */ + @JsonProperty("send_time") + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) + private LocalDateTime sendTime; + /** + * 状态报告时间 + */ + @JsonProperty("report_time") + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) + private LocalDateTime reportTime; + /** + * 是否接收成功 + */ + private Boolean success; + /** + * 状态报告说明 + */ + @JsonProperty("err_msg") + private String errMsg; + /** + * 状态报告编码 + */ + @JsonProperty("err_code") + private String errCode; + /** + * 发送序列号 + */ + @JsonProperty("biz_id") + private String bizId; + /** + * 用户序列号 + * + * 这里我们传递的是 SysSmsLogDO 的日志编号 + */ + @JsonProperty("out_id") + private String outId; + /** + * 短信长度,例如说 1、2、3 + * + * 140 字节算一条短信,短信长度超过 140 字节时会拆分成多条短信发送 + */ + @JsonProperty("sms_size") + private Integer smsSize; + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java new file mode 100644 index 0000000..e9fcc6c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.DigestUtil; +import cn.hutool.crypto.digest.HmacAlgorithm; +import cn.hutool.http.HttpUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 基于钉钉 WebHook 实现的调试的短信客户端实现类 + * + * 考虑到省钱,我们使用钉钉 WebHook 模拟发送短信,方便调试。 + * + * @author 芋道源码 + */ +public class DebugDingTalkSmsClient extends AbstractSmsClient { + + public DebugDingTalkSmsClient(SmsChannelProperties properties) { + super(properties); + Assert.notEmpty(properties.getApiKey(), "apiKey 不能为空"); + Assert.notEmpty(properties.getApiSecret(), "apiSecret 不能为空"); + } + + @Override + protected void doInit() { + } + + @Override + public SmsSendRespDTO sendSms(Long sendLogId, String mobile, + String apiTemplateId, List> templateParams) throws Throwable { + // 构建请求 + String url = buildUrl("robot/send"); + Map params = new HashMap<>(); + params.put("msgtype", "text"); + String content = String.format("【模拟短信】\n手机号:%s\n短信日志编号:%d\n模板参数:%s", + mobile, sendLogId, MapUtils.convertMap(templateParams)); + params.put("text", MapUtil.builder().put("content", content).build()); + // 执行请求 + String responseText = HttpUtil.post(url, JsonUtils.toJsonString(params)); + // 解析结果 + Map responseObj = JsonUtils.parseObject(responseText, Map.class); + String errorCode = MapUtil.getStr(responseObj, "errcode"); + return new SmsSendRespDTO().setSuccess(Objects.equals(errorCode, "0")).setSerialNo(StrUtil.uuid()) + .setApiCode(errorCode).setApiMsg(MapUtil.getStr(responseObj, "errorMsg")); + } + + /** + * 构建请求地址 + * + * 参见 文档 + * + * @param path 请求路径 + * @return 请求地址 + */ + @SuppressWarnings("SameParameterValue") + private String buildUrl(String path) { + // 生成 timestamp + long timestamp = System.currentTimeMillis(); + // 生成 sign + String secret = properties.getApiSecret(); + String stringToSign = timestamp + "\n" + secret; + byte[] signData = DigestUtil.hmac(HmacAlgorithm.HmacSHA256, StrUtil.bytes(secret)).digest(stringToSign); + String sign = Base64.encode(signData); + // 构建最终 URL + return String.format("https://oapi.dingtalk.com/%s?access_token=%s×tamp=%d&sign=%s", + path, properties.getApiKey(), timestamp, sign); + } + + @Override + public List parseSmsReceiveStatus(String text) { + throw new UnsupportedOperationException("模拟短信客户端,暂时无需解析回调"); + } + + @Override + public SmsTemplateRespDTO getSmsTemplate(String apiTemplateId) { + return new SmsTemplateRespDTO().setId(apiTemplateId).setContent("") + .setAuditStatus(SmsTemplateAuditStatusEnum.SUCCESS.getStatus()).setAuditReason(""); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java new file mode 100644 index 0000000..94fe88d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.impl; + +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClientFactory; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.Assert; +import org.springframework.validation.annotation.Validated; + +import java.util.Arrays; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +/** + * 短信客户端工厂接口 + * + * @author zzf + */ +@Validated +@Slf4j +public class SmsClientFactoryImpl implements SmsClientFactory { + + /** + * 短信客户端 Map + * key:渠道编号,使用 {@link SmsChannelProperties#getId()} + */ + private final ConcurrentMap channelIdClients = new ConcurrentHashMap<>(); + + /** + * 短信客户端 Map + * key:渠道编码,使用 {@link SmsChannelProperties#getCode()} ()} + * + * 注意,一些场景下,需要获得某个渠道类型的客户端,所以需要使用它。 + * 例如说,解析短信接收结果,是相对通用的,不需要使用某个渠道编号的 {@link #channelIdClients} + */ + private final ConcurrentMap channelCodeClients = new ConcurrentHashMap<>(); + + public SmsClientFactoryImpl() { + // 初始化 channelCodeClients 集合 + Arrays.stream(SmsChannelEnum.values()).forEach(channel -> { + // 创建一个空的 SmsChannelProperties 对象 + SmsChannelProperties properties = new SmsChannelProperties().setCode(channel.getCode()) + .setApiKey("default default").setApiSecret("default"); + // 创建 Sms 客户端 + AbstractSmsClient smsClient = createSmsClient(properties); + channelCodeClients.put(channel.getCode(), smsClient); + }); + } + + @Override + public SmsClient getSmsClient(Long channelId) { + return channelIdClients.get(channelId); + } + + @Override + public SmsClient getSmsClient(String channelCode) { + return channelCodeClients.get(channelCode); + } + + @Override + public void createOrUpdateSmsClient(SmsChannelProperties properties) { + AbstractSmsClient client = channelIdClients.get(properties.getId()); + if (client == null) { + client = this.createSmsClient(properties); + client.init(); + channelIdClients.put(client.getId(), client); + } else { + client.refresh(properties); + } + } + + private AbstractSmsClient createSmsClient(SmsChannelProperties properties) { + SmsChannelEnum channelEnum = SmsChannelEnum.getByCode(properties.getCode()); + Assert.notNull(channelEnum, String.format("渠道类型(%s) 为空", channelEnum)); + // 创建客户端 + switch (channelEnum) { + case ALIYUN: return new AliyunSmsClient(properties); + case DEBUG_DING_TALK: return new DebugDingTalkSmsClient(properties); + case TENCENT: return new TencentSmsClient(properties); + } + // 创建失败,错误日志 + 抛出异常 + log.error("[createSmsClient][配置({}) 找不到合适的客户端实现]", properties); + throw new IllegalArgumentException(String.format("配置(%s) 找不到合适的客户端实现", properties)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.java new file mode 100644 index 0000000..dc238be --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.java @@ -0,0 +1,218 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.client.impl; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.annotations.VisibleForTesting; +import com.tencentcloudapi.common.Credential; +import com.tencentcloudapi.sms.v20210111.SmsClient; +import com.tencentcloudapi.sms.v20210111.models.*; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; + +/** + * 腾讯云短信功能实现 + * + * 参见 文档 + * + * @author shiwp + */ +public class TencentSmsClient extends AbstractSmsClient { + + /** + * 调用成功 code + */ + public static final String API_CODE_SUCCESS = "Ok"; + + /** + * REGION,使用南京 + */ + private static final String ENDPOINT = "ap-nanjing"; + + /** + * 是否国际/港澳台短信: + * + * 0:表示国内短信。 + * 1:表示国际/港澳台短信。 + */ + private static final long INTERNATIONAL_CHINA = 0L; + + private SmsClient client; + + public TencentSmsClient(SmsChannelProperties properties) { + super(properties); + Assert.notEmpty(properties.getApiSecret(), "apiSecret 不能为空"); + validateSdkAppId(properties); + } + + @Override + protected void doInit() { + // 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId,secretKey + Credential credential = new Credential(getApiKey(), properties.getApiSecret()); + client = new SmsClient(credential, ENDPOINT); + } + + /** + * 参数校验腾讯云的 SDK AppId + * + * 原因是:腾讯云发放短信的时候,需要额外的参数 sdkAppId + * + * 解决方案:考虑到不破坏原有的 apiKey + apiSecret 的结构,所以将 secretId 拼接到 apiKey 字段中,格式为 "secretId sdkAppId"。 + * + * @param properties 配置 + */ + private static void validateSdkAppId(SmsChannelProperties properties) { + String combineKey = properties.getApiKey(); + Assert.notEmpty(combineKey, "apiKey 不能为空"); + String[] keys = combineKey.trim().split(" "); + Assert.isTrue(keys.length == 2, "腾讯云短信 apiKey 配置格式错误,请配置 为[secretId sdkAppId]"); + } + + private String getSdkAppId() { + return StrUtil.subAfter(properties.getApiKey(), " ", true); + } + + private String getApiKey() { + return StrUtil.subBefore(properties.getApiKey(), " ", true); + } + + @Override + public SmsSendRespDTO sendSms(Long sendLogId, String mobile, + String apiTemplateId, List> templateParams) throws Throwable { + // 构建请求 + SendSmsRequest request = new SendSmsRequest(); + request.setSmsSdkAppId(getSdkAppId()); + request.setPhoneNumberSet(new String[]{mobile}); + request.setSignName(properties.getSignature()); + request.setTemplateId(apiTemplateId); + request.setTemplateParamSet(ArrayUtils.toArray(templateParams, e -> String.valueOf(e.getValue()))); + request.setSessionContext(JsonUtils.toJsonString(new SessionContext().setLogId(sendLogId))); + // 执行请求 + SendSmsResponse response = client.SendSms(request); + SendStatus status = response.getSendStatusSet()[0]; + return new SmsSendRespDTO().setSuccess(Objects.equals(status.getCode(), API_CODE_SUCCESS)).setSerialNo(status.getSerialNo()) + .setApiRequestId(response.getRequestId()).setApiCode(status.getCode()).setApiMsg(status.getMessage()); + } + + @Override + public List parseSmsReceiveStatus(String text) { + List callback = JsonUtils.parseArray(text, SmsReceiveStatus.class); + return convertList(callback, status -> new SmsReceiveRespDTO() + .setSuccess(SmsReceiveStatus.SUCCESS_CODE.equalsIgnoreCase(status.getStatus())) + .setErrorCode(status.getErrCode()).setErrorMsg(status.getDescription()) + .setMobile(status.getMobile()).setReceiveTime(status.getReceiveTime()) + .setSerialNo(status.getSerialNo()).setLogId(status.getSessionContext().getLogId())); + } + + @Override + public SmsTemplateRespDTO getSmsTemplate(String apiTemplateId) throws Throwable { + // 构建请求 + DescribeSmsTemplateListRequest request = new DescribeSmsTemplateListRequest(); + request.setTemplateIdSet(new Long[]{Long.parseLong(apiTemplateId)}); + request.setInternational(INTERNATIONAL_CHINA); + // 执行请求 + DescribeSmsTemplateListResponse response = client.DescribeSmsTemplateList(request); + DescribeTemplateListStatus status = response.getDescribeTemplateStatusSet()[0]; + if (status == null || status.getStatusCode() == null) { + return null; + } + return new SmsTemplateRespDTO().setId(status.getTemplateId().toString()).setContent(status.getTemplateContent()) + .setAuditStatus(convertSmsTemplateAuditStatus(status.getStatusCode().intValue())).setAuditReason(status.getReviewReply()); + } + + @VisibleForTesting + Integer convertSmsTemplateAuditStatus(int templateStatus) { + switch (templateStatus) { + case 1: return SmsTemplateAuditStatusEnum.CHECKING.getStatus(); + case 0: return SmsTemplateAuditStatusEnum.SUCCESS.getStatus(); + case -1: return SmsTemplateAuditStatusEnum.FAIL.getStatus(); + default: throw new IllegalArgumentException(String.format("未知审核状态(%d)", templateStatus)); + } + } + + @Data + private static class SmsReceiveStatus { + + /** + * 短信接受成功 code + */ + public static final String SUCCESS_CODE = "SUCCESS"; + + /** + * 用户实际接收到短信的时间 + */ + @JsonProperty("user_receive_time") + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) + private LocalDateTime receiveTime; + + /** + * 国家(或地区)码 + */ + @JsonProperty("nationcode") + private String nationCode; + + /** + * 手机号码 + */ + private String mobile; + + /** + * 实际是否收到短信接收状态,SUCCESS(成功)、FAIL(失败) + */ + @JsonProperty("report_status") + private String status; + + /** + * 用户接收短信状态码错误信息 + */ + @JsonProperty("errmsg") + private String errCode; + + /** + * 用户接收短信状态描述 + */ + @JsonProperty("description") + private String description; + + /** + * 本次发送标识 ID(与发送接口返回的SerialNo对应) + */ + @JsonProperty("sid") + private String serialNo; + + /** + * 用户的 session 内容(与发送接口的请求参数 SessionContext 一致) + */ + @JsonProperty("ext") + private SessionContext sessionContext; + + } + + @VisibleForTesting + @Data + static class SessionContext { + + /** + * 发送短信记录id + */ + private Long logId; + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.java new file mode 100644 index 0000000..7bd1922 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.enums; + +import cn.hutool.core.util.ArrayUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 短信渠道枚举 + * + * @author zzf + * @since 2021/1/25 10:56 + */ +@Getter +@AllArgsConstructor +public enum SmsChannelEnum { + + DEBUG_DING_TALK("DEBUG_DING_TALK", "调试(钉钉)"), + ALIYUN("ALIYUN", "阿里云"), + TENCENT("TENCENT", "腾讯云"), +// HUA_WEI("HUA_WEI", "华为云"), + ; + + /** + * 编码 + */ + private final String code; + /** + * 名字 + */ + private final String name; + + public static SmsChannelEnum getByCode(String code) { + return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java new file mode 100644 index 0000000..489f69e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 短信模板的审核状态枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum SmsTemplateAuditStatusEnum { + + CHECKING(1), + SUCCESS(2), + FAIL(3); + + private final Integer status; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.java new file mode 100644 index 0000000..793b049 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.framework.sms.core.property; + +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsChannelEnum; +import lombok.Data; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 短信渠道配置类 + * + * @author zzf + * @since 2021/1/25 17:01 + */ +@Data +@Validated +public class SmsChannelProperties { + + /** + * 渠道编号 + */ + @NotNull(message = "短信渠道 ID 不能为空") + private Long id; + /** + * 短信签名 + */ + @NotEmpty(message = "短信签名不能为空") + private String signature; + /** + * 渠道编码 + * + * 枚举 {@link SmsChannelEnum} + */ + @NotEmpty(message = "渠道编码不能为空") + private String code; + /** + * 短信 API 的账号 + */ + @NotEmpty(message = "短信 API 的账号不能为空") + private String apiKey; + /** + * 短信 API 的密钥 + */ + @NotEmpty(message = "短信 API 的密钥不能为空") + private String apiSecret; + /** + * 短信发送回调 URL + */ + private String callbackUrl; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.java new file mode 100644 index 0000000..5b1b235 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.system.framework.web.config; + +import cn.iocoder.yudao.framework.swagger.config.YudaoSwaggerAutoConfiguration; +import org.springdoc.core.GroupedOpenApi; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * system 模块的 web 组件的 Configuration + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class SystemWebConfiguration { + + /** + * system 模块的 API 分组 + */ + @Bean + public GroupedOpenApi systemGroupedOpenApi() { + return YudaoSwaggerAutoConfiguration.buildGroupedOpenApi("system"); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.java new file mode 100644 index 0000000..1a17a3d --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.java @@ -0,0 +1,4 @@ +/** + * system 模块的 web 配置 + */ +package cn.iocoder.yudao.module.system.framework.web; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.java new file mode 100644 index 0000000..70bb92a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.job; + +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.tenant.core.job.TenantJob; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +@Component +public class DemoJob implements JobHandler { + + @Resource + private AdminUserMapper adminUserMapper; + + @Override + @TenantJob // 标记多租户 + public String execute(String param) { + System.out.println("当前租户:" + TenantContextHolder.getTenantId()); + List users = adminUserMapper.selectList(); + return "用户数量:" + users.size(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/package-info.java new file mode 100644 index 0000000..a7f5954 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.yudao.module.system.job; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.java new file mode 100644 index 0000000..7e7b487 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.mq.consumer.mail; + +import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage; +import cn.iocoder.yudao.module.system.service.mail.MailSendService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link MailSendMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class MailSendConsumer { + + @Resource + private MailSendService mailSendService; + + @EventListener + @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步 + public void onMessage(MailSendMessage message) { + log.info("[onMessage][消息内容({})]", message); + mailSendService.doSendMail(message); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.java new file mode 100644 index 0000000..39753b6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.mq.consumer.sms; + +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; +import cn.iocoder.yudao.module.system.service.sms.SmsSendService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SmsSendMessage} 的消费者 + * + * @author zzf + */ +@Component +@Slf4j +public class SmsSendConsumer { + + @Resource + private SmsSendService smsSendService; + + @EventListener + @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步 + public void onMessage(SmsSendMessage message) { + log.info("[onMessage][消息内容({})]", message); + smsSendService.doSendSms(message); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.java new file mode 100644 index 0000000..943d69b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.system.mq.message.mail; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 邮箱发送消息 + * + * @author 芋道源码 + */ +@Data +public class MailSendMessage { + + /** + * 邮件日志编号 + */ + @NotNull(message = "邮件日志编号不能为空") + private Long logId; + /** + * 接收邮件地址 + */ + @NotNull(message = "接收邮件地址不能为空") + private String mail; + /** + * 邮件账号编号 + */ + @NotNull(message = "邮件账号编号不能为空") + private Long accountId; + + /** + * 邮件发件人 + */ + private String nickname; + /** + * 邮件标题 + */ + @NotEmpty(message = "邮件标题不能为空") + private String title; + /** + * 邮件内容 + */ + @NotEmpty(message = "邮件内容不能为空") + private String content; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.java new file mode 100644 index 0000000..e4baefc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.mq.message.sms; + +import cn.iocoder.yudao.framework.common.core.KeyValue; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 短信发送消息 + * + * @author 芋道源码 + */ +@Data +public class SmsSendMessage { + + /** + * 短信日志编号 + */ + @NotNull(message = "短信日志编号不能为空") + private Long logId; + /** + * 手机号 + */ + @NotNull(message = "手机号不能为空") + private String mobile; + /** + * 短信渠道编号 + */ + @NotNull(message = "短信渠道编号不能为空") + private Long channelId; + /** + * 短信 API 的模板编号 + */ + @NotNull(message = "短信 API 的模板编号不能为空") + private String apiTemplateId; + /** + * 短信模板参数 + */ + private List> templateParams; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.java new file mode 100644 index 0000000..5894332 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.mq.producer.mail; + +import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * Mail 邮件相关消息的 Producer + * + * @author wangjingyi + * @since 2021/4/19 13:33 + */ +@Slf4j +@Component +public class MailProducer { + + @Resource + private ApplicationContext applicationContext; + + /** + * 发送 {@link MailSendMessage} 消息 + * + * @param sendLogId 发送日志编码 + * @param mail 接收邮件地址 + * @param accountId 邮件账号编号 + * @param nickname 邮件发件人 + * @param title 邮件标题 + * @param content 邮件内容 + */ + public void sendMailSendMessage(Long sendLogId, String mail, Long accountId, + String nickname, String title, String content) { + MailSendMessage message = new MailSendMessage() + .setLogId(sendLogId).setMail(mail).setAccountId(accountId) + .setNickname(nickname).setTitle(title).setContent(content); + applicationContext.publishEvent(message); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.java new file mode 100644 index 0000000..379f2e2 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.system.mq.producer.sms; + +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Sms 短信相关消息的 Producer + * + * @author zzf + * @since 2021/3/9 16:35 + */ +@Slf4j +@Component +public class SmsProducer { + + @Resource + private ApplicationContext applicationContext; + + /** + * 发送 {@link SmsSendMessage} 消息 + * + * @param logId 短信日志编号 + * @param mobile 手机号 + * @param channelId 渠道编号 + * @param apiTemplateId 短信模板编号 + * @param templateParams 短信模板参数 + */ + public void sendSmsSendMessage(Long logId, String mobile, + Long channelId, String apiTemplateId, List> templateParams) { + SmsSendMessage message = new SmsSendMessage().setLogId(logId).setMobile(mobile); + message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams); + applicationContext.publishEvent(message); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/package-info.java new file mode 100644 index 0000000..df82ac7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/package-info.java @@ -0,0 +1,8 @@ +/** + * system 模块下,我们放通用业务,支撑上层的核心业务。 + * 例如说:用户、部门、权限、数据字典等等 + * + * 1. Controller URL:以 /system/ 开头,避免和其它 Module 冲突 + * 2. DataObject 表名:以 system_ 开头,方便在数据库中区分 + */ +package cn.iocoder.yudao.module.system; diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java new file mode 100644 index 0000000..52796ec --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.service.auth; + +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; + +import javax.validation.Valid; + +/** + * 管理后台的认证 Service 接口 + * + * 提供用户的登录、登出的能力 + * + * @author 芋道源码 + */ +public interface AdminAuthService { + + /** + * 验证账号 + 密码。如果通过,则返回用户 + * + * @param username 账号 + * @param password 密码 + * @return 用户 + */ + AdminUserDO authenticate(String username, String password); + + /** + * 账号登录 + * + * @param reqVO 登录信息 + * @return 登录结果 + */ + AuthLoginRespVO login(@Valid AuthLoginReqVO reqVO); + + /** + * 基于 token 退出登录 + * + * @param token token + * @param logType 登出类型 + */ + void logout(String token, Integer logType); + + /** + * 短信验证码发送 + * + * @param reqVO 发送请求 + */ + void sendSmsCode(AuthSmsSendReqVO reqVO); + + /** + * 短信登录 + * + * @param reqVO 登录信息 + * @return 登录结果 + */ + AuthLoginRespVO smsLogin(AuthSmsLoginReqVO reqVO) ; + + /** + * 社交快捷登录,使用 code 授权码 + * + * @param reqVO 登录信息 + * @return 登录结果 + */ + AuthLoginRespVO socialLogin(@Valid AuthSocialLoginReqVO reqVO); + + /** + * 刷新访问令牌 + * + * @param refreshToken 刷新令牌 + * @return 登录结果 + */ + AuthLoginRespVO refreshToken(String refreshToken); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java new file mode 100644 index 0000000..722e7f7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -0,0 +1,264 @@ +package cn.iocoder.yudao.module.system.service.auth; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; +import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; +import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; +import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; +import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; +import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import cn.iocoder.yudao.module.system.service.logger.LoginLogService; +import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.social.SocialUserService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.google.common.annotations.VisibleForTesting; +import com.xingyuv.captcha.model.common.ResponseModel; +import com.xingyuv.captcha.model.vo.CaptchaVO; +import com.xingyuv.captcha.service.CaptchaService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.validation.Validator; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * Auth Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class AdminAuthServiceImpl implements AdminAuthService { + + @Resource + private AdminUserService userService; + @Resource + private LoginLogService loginLogService; + @Resource + private OAuth2TokenService oauth2TokenService; + @Resource + private SocialUserService socialUserService; + + @Resource + private Validator validator; + @Resource + private CaptchaService captchaService; + @Resource + private SmsCodeApi smsCodeApi; + + @Resource + private PermissionService permissionService; + /** + * 验证码的开关,默认为 true + */ + @Value("${yudao.captcha.enable:true}") + private Boolean captchaEnable; + + @Override + public AdminUserDO authenticate(String username, String password) { + final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_USERNAME; + + + // 校验账号是否存在 + AdminUserDO user = userService.getUserByUsername(username); + if (user == null) { + createLoginLog(null, username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); + throw exception(AUTH_LOGIN_BAD_CREDENTIALS); + } + if (!userService.isPasswordMatch(password, user.getPassword())) { + createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); + throw exception(AUTH_LOGIN_BAD_CREDENTIALS); + } + // 校验是否禁用 + if (CommonStatusEnum.isDisable(user.getStatus())) { + createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.USER_DISABLED); + throw exception(AUTH_LOGIN_USER_DISABLED); + } + return user; + } + + @Override + public AuthLoginRespVO login(AuthLoginReqVO reqVO) { + // 校验验证码 + validateCaptcha(reqVO); + + // 使用账号密码,进行登录 + AdminUserDO user = authenticate(reqVO.getUsername(), reqVO.getPassword()); + + // 如果 socialType 非空,说明需要绑定社交用户 + if (reqVO.getSocialType() != null) { + socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(), + reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())); + } + //清空缓存 + permissionService.clearCache(user.getId()); + try{ + Thread.sleep(2000L); + }catch (Exception e){ + + } + // 创建 Token 令牌,记录登录日志 + return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME); + } + + @Override + public void sendSmsCode(AuthSmsSendReqVO reqVO) { + // 登录场景,验证是否存在 + if (userService.getUserByMobile(reqVO.getMobile()) == null) { + throw exception(AUTH_MOBILE_NOT_EXISTS); + } + // 发送验证码 + smsCodeApi.sendSmsCode(AuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP())); + } + + @Override + public AuthLoginRespVO smsLogin(AuthSmsLoginReqVO reqVO) { + // 校验验证码 + smsCodeApi.useSmsCode(AuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.ADMIN_MEMBER_LOGIN.getScene(), getClientIP())); + + // 获得用户信息 + AdminUserDO user = userService.getUserByMobile(reqVO.getMobile()); + if (user == null) { + throw exception(USER_NOT_EXISTS); + } + + // 创建 Token 令牌,记录登录日志 + return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE); + } + + private void createLoginLog(Long userId, String username, + LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) { + // 插入登录日志 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO(); + reqDTO.setLogType(logTypeEnum.getType()); + reqDTO.setTraceId(TracerUtils.getTraceId()); + reqDTO.setUserId(userId); + reqDTO.setUserType(getUserType().getValue()); + reqDTO.setUsername(username); + reqDTO.setUserAgent(ServletUtils.getUserAgent()); + reqDTO.setUserIp(ServletUtils.getClientIP()); + reqDTO.setResult(loginResult.getResult()); + loginLogService.createLoginLog(reqDTO); + // 更新最后登录时间 + if (userId != null && Objects.equals(LoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) { + userService.updateUserLogin(userId, ServletUtils.getClientIP()); + } + } + + @Override + public AuthLoginRespVO socialLogin(AuthSocialLoginReqVO reqVO) { + // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号 + SocialUserRespDTO socialUser = socialUserService.getSocialUserByCode(UserTypeEnum.ADMIN.getValue(), reqVO.getType(), + reqVO.getCode(), reqVO.getState()); + if (socialUser == null || socialUser.getUserId() == null) { + throw exception(AUTH_THIRD_LOGIN_NOT_BIND); + } + + // 获得用户 + AdminUserDO user = userService.getUser(socialUser.getUserId()); + if (user == null) { + throw exception(USER_NOT_EXISTS); + } + + // 创建 Token 令牌,记录登录日志 + return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL); + } + + @VisibleForTesting + void validateCaptcha(AuthLoginReqVO reqVO) { + if(true){ + return; + } + // 如果验证码关闭,则不进行校验 + if (true) {//临时关闭 + return; + } + if (!captchaEnable) { + return; + } + // 校验验证码 + ValidationUtils.validate(validator, reqVO, AuthLoginReqVO.CodeEnableGroup.class); + CaptchaVO captchaVO = new CaptchaVO(); + captchaVO.setCaptchaVerification(reqVO.getCaptchaVerification()); + ResponseModel response = captchaService.verification(captchaVO); + // 验证不通过 + if (!response.isSuccess()) { + // 创建登录失败日志(验证码不正确) + createLoginLog(null, reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR); + throw exception(AUTH_LOGIN_CAPTCHA_CODE_ERROR, response.getRepMsg()); + } + } + + private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType) { + // 插入登陆日志 + createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS); + // 创建访问令牌 + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(), + OAuth2ClientConstants.CLIENT_ID_DEFAULT, null); + // 构建返回结果 + return AuthConvert.INSTANCE.convert(accessTokenDO); + } + + @Override + public AuthLoginRespVO refreshToken(String refreshToken) { + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.refreshAccessToken(refreshToken, OAuth2ClientConstants.CLIENT_ID_DEFAULT); + return AuthConvert.INSTANCE.convert(accessTokenDO); + } + + @Override + public void logout(String token, Integer logType) { + // 删除访问令牌 + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.removeAccessToken(token); + if (accessTokenDO == null) { + return; + } + // 删除成功,则记录登出日志 + createLogoutLog(accessTokenDO.getUserId(), accessTokenDO.getUserType(), logType); + } + + private void createLogoutLog(Long userId, Integer userType, Integer logType) { + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO(); + reqDTO.setLogType(logType); + reqDTO.setTraceId(TracerUtils.getTraceId()); + reqDTO.setUserId(userId); + reqDTO.setUserType(userType); + + reqDTO.setUsername(getUsername(userId)); + + reqDTO.setUserAgent(ServletUtils.getUserAgent()); + reqDTO.setUserIp(ServletUtils.getClientIP()); + reqDTO.setResult(LoginResultEnum.SUCCESS.getResult()); + loginLogService.createLoginLog(reqDTO); + } + + private String getUsername(Long userId) { + if (userId == null) { + return null; + } + AdminUserDO user = userService.getUser(userId); + return user != null ? user.getUsername() : null; + } + + private UserTypeEnum getUserType() { + return UserTypeEnum.ADMIN; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java new file mode 100644 index 0000000..11cb5f4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.system.service.dept; + +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 部门 Service 接口 + * + * @author 芋道源码 + */ +public interface DeptService { + + /** + * 创建部门 + * + * @param createReqVO 部门信息 + * @return 部门编号 + */ + Long createDept(DeptSaveReqVO createReqVO); + + /** + * 更新部门 + * + * @param updateReqVO 部门信息 + */ + void updateDept(DeptSaveReqVO updateReqVO); + + /** + * 删除部门 + * + * @param id 部门编号 + */ + void deleteDept(Long id); + + /** + * 获得部门信息 + * + * @param id 部门编号 + * @return 部门信息 + */ + DeptDO getDept(Long id); + + /** + * 获得部门信息数组 + * + * @param ids 部门编号数组 + * @return 部门信息数组 + */ + List getDeptList(Collection ids); + + /** + * 筛选部门列表 + * + * @param reqVO 筛选条件请求 VO + * @return 部门列表 + */ + List getDeptList(DeptListReqVO reqVO); + + /** + * 获得指定编号的部门 Map + * + * @param ids 部门编号数组 + * @return 部门 Map + */ + default Map getDeptMap(Collection ids) { + List list = getDeptList(ids); + return CollectionUtils.convertMap(list, DeptDO::getId); + } + + /** + * 获得指定部门的所有子部门 + * + * @param id 部门编号 + * @return 子部门列表 + */ + List getChildDeptList(Long id); + + /** + * 获得所有子部门,从缓存中 + * + * @param id 父部门编号 + * @return 子部门列表 + */ + Set getChildDeptIdListFromCache(Long id); + + /** + * 校验部门们是否有效。如下情况,视为无效: + * 1. 部门编号不存在 + * 2. 部门被禁用 + * + * @param ids 角色编号数组 + */ + void validateDeptList(Collection ids); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java new file mode 100644 index 0000000..183f11f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -0,0 +1,218 @@ +package cn.iocoder.yudao.module.system.service.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.mysql.dept.DeptMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 部门 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class DeptServiceImpl implements DeptService { + + @Resource + private DeptMapper deptMapper; + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,因为操作一个部门,涉及到多个缓存 + public Long createDept(DeptSaveReqVO createReqVO) { + if (createReqVO.getParentId() == null) { + createReqVO.setParentId(DeptDO.PARENT_ID_ROOT); + } + // 校验父部门的有效性 + validateParentDept(null, createReqVO.getParentId()); + // 校验部门名的唯一性 + validateDeptNameUnique(null, createReqVO.getParentId(), createReqVO.getName()); + + // 插入部门 + DeptDO dept = BeanUtils.toBean(createReqVO, DeptDO.class); + deptMapper.insert(dept); + return dept.getId(); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,因为操作一个部门,涉及到多个缓存 + public void updateDept(DeptSaveReqVO updateReqVO) { + if (updateReqVO.getParentId() == null) { + updateReqVO.setParentId(DeptDO.PARENT_ID_ROOT); + } + // 校验自己存在 + validateDeptExists(updateReqVO.getId()); + // 校验父部门的有效性 + validateParentDept(updateReqVO.getId(), updateReqVO.getParentId()); + // 校验部门名的唯一性 + validateDeptNameUnique(updateReqVO.getId(), updateReqVO.getParentId(), updateReqVO.getName()); + + // 更新部门 + DeptDO updateObj = BeanUtils.toBean(updateReqVO, DeptDO.class); + deptMapper.updateById(updateObj); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,因为操作一个部门,涉及到多个缓存 + public void deleteDept(Long id) { + // 校验是否存在 + validateDeptExists(id); + // 校验是否有子部门 + if (deptMapper.selectCountByParentId(id) > 0) { + throw exception(DEPT_EXITS_CHILDREN); + } + // 删除部门 + deptMapper.deleteById(id); + } + + @VisibleForTesting + void validateDeptExists(Long id) { + if (id == null) { + return; + } + DeptDO dept = deptMapper.selectById(id); + if (dept == null) { + throw exception(DEPT_NOT_FOUND); + } + } + + @VisibleForTesting + void validateParentDept(Long id, Long parentId) { + if (parentId == null || DeptDO.PARENT_ID_ROOT.equals(parentId)) { + return; + } + // 1. 不能设置自己为父部门 + if (Objects.equals(id, parentId)) { + throw exception(DEPT_PARENT_ERROR); + } + // 2. 父部门不存在 + DeptDO parentDept = deptMapper.selectById(parentId); + if (parentDept == null) { + throw exception(DEPT_PARENT_NOT_EXITS); + } + // 3. 递归校验父部门,如果父部门是自己的子部门,则报错,避免形成环路 + if (id == null) { // id 为空,说明新增,不需要考虑环路 + return; + } + for (int i = 0; i < Short.MAX_VALUE; i++) { + // 3.1 校验环路 + parentId = parentDept.getParentId(); + if (Objects.equals(id, parentId)) { + throw exception(DEPT_PARENT_IS_CHILD); + } + // 3.2 继续递归下一级父部门 + if (parentId == null || DeptDO.PARENT_ID_ROOT.equals(parentId)) { + break; + } + parentDept = deptMapper.selectById(parentId); + if (parentDept == null) { + break; + } + } + } + + @VisibleForTesting + void validateDeptNameUnique(Long id, Long parentId, String name) { + DeptDO dept = deptMapper.selectByParentIdAndName(parentId, name); + if (dept == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的部门 + if (id == null) { + throw exception(DEPT_NAME_DUPLICATE); + } + if (ObjectUtil.notEqual(dept.getId(), id)) { + throw exception(DEPT_NAME_DUPLICATE); + } + } + + @Override + public DeptDO getDept(Long id) { + return deptMapper.selectById(id); + } + + @Override + public List getDeptList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return deptMapper.selectBatchIds(ids); + } + + @Override + public List getDeptList(DeptListReqVO reqVO) { + List list = deptMapper.selectList(reqVO); + list.sort(Comparator.comparing(DeptDO::getSort)); + return list; + } + + @Override + public List getChildDeptList(Long id) { + List children = new LinkedList<>(); + // 遍历每一层 + Collection parentIds = Collections.singleton(id); + for (int i = 0; i < Short.MAX_VALUE; i++) { // 使用 Short.MAX_VALUE 避免 bug 场景下,存在死循环 + // 查询当前层,所有的子部门 + List depts = deptMapper.selectListByParentId(parentIds); + // 1. 如果没有子部门,则结束遍历 + if (CollUtil.isEmpty(depts)) { + break; + } + // 2. 如果有子部门,继续遍历 + children.addAll(depts); + parentIds = convertSet(depts, DeptDO::getId); + } + return children; + } + + @Override + @DataPermission(enable = false) // 禁用数据权限,避免建立不正确的缓存 + @Cacheable(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST, key = "#id") + public Set getChildDeptIdListFromCache(Long id) { + List children = getChildDeptList(id); + return convertSet(children, DeptDO::getId); + } + + @Override + public void validateDeptList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得科室信息 + Map deptMap = getDeptMap(ids); + // 校验 + ids.forEach(id -> { + DeptDO dept = deptMap.get(id); + if (dept == null) { + throw exception(DEPT_NOT_FOUND); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) { + throw exception(DEPT_NOT_ENABLE, dept.getName()); + } + }); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java new file mode 100644 index 0000000..25604ce --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.system.service.dept; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import org.springframework.lang.Nullable; + +import java.util.Collection; +import java.util.List; + +/** + * 岗位 Service 接口 + * + * @author 芋道源码 + */ +public interface PostService { + + /** + * 创建岗位 + * + * @param createReqVO 岗位信息 + * @return 岗位编号 + */ + Long createPost(PostSaveReqVO createReqVO); + + /** + * 更新岗位 + * + * @param updateReqVO 岗位信息 + */ + void updatePost(PostSaveReqVO updateReqVO); + + /** + * 删除岗位信息 + * + * @param id 岗位编号 + */ + void deletePost(Long id); + + /** + * 获得岗位列表 + * + * @param ids 岗位编号数组 + * @return 部门列表 + */ + List getPostList(@Nullable Collection ids); + + /** + * 获得符合条件的岗位列表 + * + * @param ids 岗位编号数组。如果为空,不进行筛选 + * @param statuses 状态数组。如果为空,不进行筛选 + * @return 部门列表 + */ + List getPostList(@Nullable Collection ids, + @Nullable Collection statuses); + + /** + * 获得岗位分页列表 + * + * @param reqVO 分页条件 + * @return 部门分页列表 + */ + PageResult getPostPage(PostPageReqVO reqVO); + + /** + * 获得岗位信息 + * + * @param id 岗位编号 + * @return 岗位信息 + */ + PostDO getPost(Long id); + + /** + * 校验岗位们是否有效。如下情况,视为无效: + * 1. 岗位编号不存在 + * 2. 岗位被禁用 + * + * @param ids 岗位编号数组 + */ + void validatePostList(Collection ids); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java new file mode 100644 index 0000000..168386e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java @@ -0,0 +1,153 @@ +package cn.iocoder.yudao.module.system.service.dept; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO; +import cn.iocoder.yudao.module.system.dal.mysql.dept.PostMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 岗位 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class PostServiceImpl implements PostService { + + @Resource + private PostMapper postMapper; + + @Override + public Long createPost(PostSaveReqVO createReqVO) { + // 校验正确性 + validatePostForCreateOrUpdate(null, createReqVO.getName(), createReqVO.getCode()); + + // 插入岗位 + PostDO post = BeanUtils.toBean(createReqVO, PostDO.class); + postMapper.insert(post); + return post.getId(); + } + + @Override + public void updatePost(PostSaveReqVO updateReqVO) { + // 校验正确性 + validatePostForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getName(), updateReqVO.getCode()); + + // 更新岗位 + PostDO updateObj = BeanUtils.toBean(updateReqVO, PostDO.class); + postMapper.updateById(updateObj); + } + + @Override + public void deletePost(Long id) { + // 校验是否存在 + validatePostExists(id); + // 删除部门 + postMapper.deleteById(id); + } + + private void validatePostForCreateOrUpdate(Long id, String name, String code) { + // 校验自己存在 + validatePostExists(id); + // 校验岗位名的唯一性 + validatePostNameUnique(id, name); + // 校验岗位编码的唯一性 + validatePostCodeUnique(id, code); + } + + private void validatePostNameUnique(Long id, String name) { + PostDO post = postMapper.selectByName(name); + if (post == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 + if (id == null) { + throw exception(POST_NAME_DUPLICATE); + } + if (!post.getId().equals(id)) { + throw exception(POST_NAME_DUPLICATE); + } + } + + private void validatePostCodeUnique(Long id, String code) { + PostDO post = postMapper.selectByCode(code); + if (post == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 + if (id == null) { + throw exception(POST_CODE_DUPLICATE); + } + if (!post.getId().equals(id)) { + throw exception(POST_CODE_DUPLICATE); + } + } + + private void validatePostExists(Long id) { + if (id == null) { + return; + } + if (postMapper.selectById(id) == null) { + throw exception(POST_NOT_FOUND); + } + } + + @Override + public List getPostList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return postMapper.selectBatchIds(ids); + } + + @Override + public List getPostList(Collection ids, Collection statuses) { + return postMapper.selectList(ids, statuses); + } + + @Override + public PageResult getPostPage(PostPageReqVO reqVO) { + return postMapper.selectPage(reqVO); + } + + @Override + public PostDO getPost(Long id) { + return postMapper.selectById(id); + } + + @Override + public void validatePostList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得岗位信息 + List posts = postMapper.selectBatchIds(ids); + Map postMap = convertMap(posts, PostDO::getId); + // 校验 + ids.forEach(id -> { + PostDO post = postMap.get(id); + if (post == null) { + throw exception(POST_NOT_FOUND); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) { + throw exception(POST_NOT_ENABLE, post.getName()); + } + }); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java new file mode 100644 index 0000000..654da45 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.system.service.dict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import org.springframework.lang.Nullable; + +import java.util.Collection; +import java.util.List; + +/** + * 字典数据 Service 接口 + * + * @author ruoyi + */ +public interface DictDataService { + + /** + * 创建字典数据 + * + * @param createReqVO 字典数据信息 + * @return 字典数据编号 + */ + Long createDictData(DictDataSaveReqVO createReqVO); + + /** + * 更新字典数据 + * + * @param updateReqVO 字典数据信息 + */ + void updateDictData(DictDataSaveReqVO updateReqVO); + + /** + * 删除字典数据 + * + * @param id 字典数据编号 + */ + void deleteDictData(Long id); + + /** + * 获得字典数据列表 + * + * @param status 状态 + * @param dictType 字典类型 + * @return 字典数据全列表 + */ + List getDictDataList(@Nullable Integer status, @Nullable String dictType); + + /** + * 获得字典数据分页列表 + * + * @param pageReqVO 分页请求 + * @return 字典数据分页列表 + */ + PageResult getDictDataPage(DictDataPageReqVO pageReqVO); + + /** + * 获得字典数据详情 + * + * @param id 字典数据编号 + * @return 字典数据 + */ + DictDataDO getDictData(Long id); + + /** + * 获得指定字典类型的数据数量 + * + * @param dictType 字典类型 + * @return 数据数量 + */ + long getDictDataCountByDictType(String dictType); + + /** + * 校验字典数据们是否有效。如下情况,视为无效: + * 1. 字典数据不存在 + * 2. 字典数据被禁用 + * + * @param dictType 字典类型 + * @param values 字典数据值的数组 + */ + void validateDictDataList(String dictType, Collection values); + + /** + * 获得指定的字典数据 + * + * @param dictType 字典类型 + * @param value 字典数据值 + * @return 字典数据 + */ + DictDataDO getDictData(String dictType, String value); + + /** + * 解析获得指定的字典数据,从缓存中 + * + * @param dictType 字典类型 + * @param label 字典数据标签 + * @return 字典数据 + */ + DictDataDO parseDictData(String dictType, String label); + + List getListByDictType(String dictType); +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java new file mode 100644 index 0000000..0937f7b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java @@ -0,0 +1,178 @@ +package cn.iocoder.yudao.module.system.service.dict; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; +import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 字典数据 Service 实现类 + * + * @author ruoyi + */ +@Service +@Slf4j +public class DictDataServiceImpl implements DictDataService { + + /** + * 排序 dictType > sort + */ + private static final Comparator COMPARATOR_TYPE_AND_SORT = Comparator + .comparing(DictDataDO::getDictType) + .thenComparingInt(DictDataDO::getSort); + + @Resource + private DictTypeService dictTypeService; + + @Resource + private DictDataMapper dictDataMapper; + + @Override + public List getDictDataList(Integer status, String dictType) { + List list = dictDataMapper.selectListByStatusAndDictType(status, dictType); + list.sort(COMPARATOR_TYPE_AND_SORT); + return list; + } + + @Override + public PageResult getDictDataPage(DictDataPageReqVO pageReqVO) { + return dictDataMapper.selectPage(pageReqVO); + } + + @Override + public DictDataDO getDictData(Long id) { + return dictDataMapper.selectById(id); + } + + @Override + public Long createDictData(DictDataSaveReqVO createReqVO) { + // 校验字典类型有效 + validateDictTypeExists(createReqVO.getDictType()); + // 校验字典数据的值的唯一性 + validateDictDataValueUnique(null, createReqVO.getDictType(), createReqVO.getValue()); + + // 插入字典类型 + DictDataDO dictData = BeanUtils.toBean(createReqVO, DictDataDO.class); + dictDataMapper.insert(dictData); + return dictData.getId(); + } + + @Override + public void updateDictData(DictDataSaveReqVO updateReqVO) { + // 校验自己存在 + validateDictDataExists(updateReqVO.getId()); + // 校验字典类型有效 + validateDictTypeExists(updateReqVO.getDictType()); + // 校验字典数据的值的唯一性 + validateDictDataValueUnique(updateReqVO.getId(), updateReqVO.getDictType(), updateReqVO.getValue()); + + // 更新字典类型 + DictDataDO updateObj = BeanUtils.toBean(updateReqVO, DictDataDO.class); + dictDataMapper.updateById(updateObj); + } + + @Override + public void deleteDictData(Long id) { + // 校验是否存在 + validateDictDataExists(id); + + // 删除字典数据 + dictDataMapper.deleteById(id); + } + + @Override + public long getDictDataCountByDictType(String dictType) { + return dictDataMapper.selectCountByDictType(dictType); + } + + @VisibleForTesting + public void validateDictDataValueUnique(Long id, String dictType, String value) { + DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value); + if (dictData == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的字典数据 + if (id == null) { + throw exception(DICT_DATA_VALUE_DUPLICATE); + } + if (!dictData.getId().equals(id)) { + throw exception(DICT_DATA_VALUE_DUPLICATE); + } + } + + @VisibleForTesting + public void validateDictDataExists(Long id) { + if (id == null) { + return; + } + DictDataDO dictData = dictDataMapper.selectById(id); + if (dictData == null) { + throw exception(DICT_DATA_NOT_EXISTS); + } + } + + @VisibleForTesting + public void validateDictTypeExists(String type) { + DictTypeDO dictType = dictTypeService.getDictType(type); + if (dictType == null) { + throw exception(DICT_TYPE_NOT_EXISTS); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(dictType.getStatus())) { + throw exception(DICT_TYPE_NOT_ENABLE); + } + } + + @Override + public void validateDictDataList(String dictType, Collection values) { + if (CollUtil.isEmpty(values)) { + return; + } + Map dictDataMap = CollectionUtils.convertMap( + dictDataMapper.selectByDictTypeAndValues(dictType, values), DictDataDO::getValue); + // 校验 + values.forEach(value -> { + DictDataDO dictData = dictDataMap.get(value); + if (dictData == null) { + throw exception(DICT_DATA_NOT_EXISTS); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(dictData.getStatus())) { + throw exception(DICT_DATA_NOT_ENABLE, dictData.getLabel()); + } + }); + } + + @Override + public DictDataDO getDictData(String dictType, String value) { + return dictDataMapper.selectByDictTypeAndValue(dictType, value); + } + + @Override + public DictDataDO parseDictData(String dictType, String label) { + return dictDataMapper.selectByDictTypeAndLabel(dictType, label); + } + + @Override + public List getListByDictType(String dictType) { + if (ObjectUtil.isEmpty(dictType)) { + return new ArrayList<>(); + } + return dictDataMapper.selectListByDictType(dictType); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.java new file mode 100644 index 0000000..4091189 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.system.service.dict; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; + +import java.util.List; + +/** + * 字典类型 Service 接口 + * + * @author 芋道源码 + */ +public interface DictTypeService { + + /** + * 创建字典类型 + * + * @param createReqVO 字典类型信息 + * @return 字典类型编号 + */ + Long createDictType(DictTypeSaveReqVO createReqVO); + + /** + * 更新字典类型 + * + * @param updateReqVO 字典类型信息 + */ + void updateDictType(DictTypeSaveReqVO updateReqVO); + + /** + * 删除字典类型 + * + * @param id 字典类型编号 + */ + void deleteDictType(Long id); + + /** + * 获得字典类型分页列表 + * + * @param pageReqVO 分页请求 + * @return 字典类型分页列表 + */ + PageResult getDictTypePage(DictTypePageReqVO pageReqVO); + + /** + * 获得字典类型详情 + * + * @param id 字典类型编号 + * @return 字典类型 + */ + DictTypeDO getDictType(Long id); + + /** + * 获得字典类型详情 + * + * @param type 字典类型 + * @return 字典类型详情 + */ + DictTypeDO getDictType(String type); + + /** + * 获得全部字典类型列表 + * + * @return 字典类型列表 + */ + List getDictTypeList(); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java new file mode 100644 index 0000000..70365e4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java @@ -0,0 +1,150 @@ +package cn.iocoder.yudao.module.system.service.dict; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; +import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; +import com.google.common.annotations.VisibleForTesting; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 字典类型 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class DictTypeServiceImpl implements DictTypeService { + + @Resource + private DictDataService dictDataService; + + @Resource + private DictTypeMapper dictTypeMapper; + + @Override + public PageResult getDictTypePage(DictTypePageReqVO pageReqVO) { + return dictTypeMapper.selectPage(pageReqVO); + } + + @Override + public DictTypeDO getDictType(Long id) { + return dictTypeMapper.selectById(id); + } + + @Override + public DictTypeDO getDictType(String type) { + return dictTypeMapper.selectByType(type); + } + + @Override + public Long createDictType(DictTypeSaveReqVO createReqVO) { + // 校验字典类型的名字的唯一性 + validateDictTypeNameUnique(null, createReqVO.getName()); + // 校验字典类型的类型的唯一性 + validateDictTypeUnique(null, createReqVO.getType()); + + // 插入字典类型 + DictTypeDO dictType = BeanUtils.toBean(createReqVO, DictTypeDO.class); + dictType.setDeletedTime(LocalDateTimeUtils.EMPTY); // 唯一索引,避免 null 值 + dictTypeMapper.insert(dictType); + return dictType.getId(); + } + + @Override + public void updateDictType(DictTypeSaveReqVO updateReqVO) { + // 校验自己存在 + validateDictTypeExists(updateReqVO.getId()); + // 校验字典类型的名字的唯一性 + validateDictTypeNameUnique(updateReqVO.getId(), updateReqVO.getName()); + // 校验字典类型的类型的唯一性 + validateDictTypeUnique(updateReqVO.getId(), updateReqVO.getType()); + + // 更新字典类型 + DictTypeDO updateObj = BeanUtils.toBean(updateReqVO, DictTypeDO.class); + dictTypeMapper.updateById(updateObj); + } + + @Override + public void deleteDictType(Long id) { + // 校验是否存在 + DictTypeDO dictType = validateDictTypeExists(id); + + List dictDataList = dictDataService.getDictDataList(null, dictType.getType()); + //把子集删除 + dictDataList.stream().forEach(model->{ + dictDataService.deleteDictData(model.getId()); + }); + + + + // 校验是否有字典数据 + /*if (dictDataService.getDictDataCountByDictType(dictType.getType()) > 0) { + throw exception(DICT_TYPE_HAS_CHILDREN); + }*/ + // 删除字典类型 + dictTypeMapper.updateToDelete(id, LocalDateTime.now()); + } + + @Override + public List getDictTypeList() { + return dictTypeMapper.selectList(); + } + + @VisibleForTesting + void validateDictTypeNameUnique(Long id, String name) { + DictTypeDO dictType = dictTypeMapper.selectByName(name); + if (dictType == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的字典类型 + if (id == null) { + throw exception(DICT_TYPE_NAME_DUPLICATE); + } + if (!dictType.getId().equals(id)) { + throw exception(DICT_TYPE_NAME_DUPLICATE); + } + } + + @VisibleForTesting + void validateDictTypeUnique(Long id, String type) { + if (StrUtil.isEmpty(type)) { + return; + } + DictTypeDO dictType = dictTypeMapper.selectByType(type); + if (dictType == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的字典类型 + if (id == null) { + throw exception(DICT_TYPE_TYPE_DUPLICATE); + } + if (!dictType.getId().equals(id)) { + throw exception(DICT_TYPE_TYPE_DUPLICATE); + } + } + + @VisibleForTesting + DictTypeDO validateDictTypeExists(Long id) { + if (id == null) { + return null; + } + DictTypeDO dictType = dictTypeMapper.selectById(id); + if (dictType == null) { + throw exception(DICT_TYPE_NOT_EXISTS); + } + return dictType; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java new file mode 100644 index 0000000..b389458 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeService.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.system.service.errorcode; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; + +import javax.validation.Valid; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 错误码 Service 接口 + * + * @author 芋道源码 + */ +public interface ErrorCodeService { + + /** + * 自动创建错误码 + * + * @param autoGenerateDTOs 错误码信息 + */ + void autoGenerateErrorCodes(@Valid List autoGenerateDTOs); + + /** + * 增量获得错误码数组 + * + * 如果 minUpdateTime 为空时,则获取所有错误码 + * + * @param applicationName 应用名 + * @param minUpdateTime 最小更新时间 + * @return 错误码数组 + */ + List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime); + + /** + * 创建错误码 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createErrorCode(@Valid ErrorCodeSaveReqVO createReqVO); + + /** + * 更新错误码 + * + * @param updateReqVO 更新信息 + */ + void updateErrorCode(@Valid ErrorCodeSaveReqVO updateReqVO); + + /** + * 删除错误码 + * + * @param id 编号 + */ + void deleteErrorCode(Long id); + + /** + * 获得错误码 + * + * @param id 编号 + * @return 错误码 + */ + ErrorCodeDO getErrorCode(Long id); + + /** + * 获得错误码分页 + * + * @param pageReqVO 分页查询 + * @return 错误码分页 + */ + PageResult getErrorCodePage(ErrorCodePageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java new file mode 100644 index 0000000..45dfb7c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceImpl.java @@ -0,0 +1,167 @@ +package cn.iocoder.yudao.module.system.service.errorcode; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeAutoGenerateReqDTO; +import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.errorcode.vo.ErrorCodeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.errorcode.ErrorCodeDO; +import cn.iocoder.yudao.module.system.dal.mysql.errorcode.ErrorCodeMapper; +import cn.iocoder.yudao.module.system.enums.errorcode.ErrorCodeTypeEnum; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.ERROR_CODE_DUPLICATE; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.ERROR_CODE_NOT_EXISTS; + +/** + * 错误码 Service 实现类 + * + * @author dlyan + */ +@Service +@Validated +@Slf4j +public class ErrorCodeServiceImpl implements ErrorCodeService { + + @Resource + private ErrorCodeMapper errorCodeMapper; + + @Override + public Long createErrorCode(ErrorCodeSaveReqVO createReqVO) { + // 校验 code 重复 + validateCodeDuplicate(createReqVO.getCode(), null); + + // 插入 + ErrorCodeDO errorCode = BeanUtils.toBean(createReqVO, ErrorCodeDO.class) + .setType(ErrorCodeTypeEnum.MANUAL_OPERATION.getType()); + errorCodeMapper.insert(errorCode); + // 返回 + return errorCode.getId(); + } + + @Override + public void updateErrorCode(ErrorCodeSaveReqVO updateReqVO) { + // 校验存在 + validateErrorCodeExists(updateReqVO.getId()); + // 校验 code 重复 + validateCodeDuplicate(updateReqVO.getCode(), updateReqVO.getId()); + + // 更新 + ErrorCodeDO updateObj = BeanUtils.toBean(updateReqVO, ErrorCodeDO.class) + .setType(ErrorCodeTypeEnum.MANUAL_OPERATION.getType()); + errorCodeMapper.updateById(updateObj); + } + + @Override + public void deleteErrorCode(Long id) { + // 校验存在 + validateErrorCodeExists(id); + // 删除 + errorCodeMapper.deleteById(id); + } + + /** + * 校验错误码的唯一字段是否重复 + * + * 是否存在相同编码的错误码 + * + * @param code 错误码编码 + * @param id 错误码编号 + */ + @VisibleForTesting + public void validateCodeDuplicate(Integer code, Long id) { + ErrorCodeDO errorCodeDO = errorCodeMapper.selectByCode(code); + if (errorCodeDO == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的错误码 + if (id == null) { + throw exception(ERROR_CODE_DUPLICATE); + } + if (!errorCodeDO.getId().equals(id)) { + throw exception(ERROR_CODE_DUPLICATE); + } + } + + @VisibleForTesting + void validateErrorCodeExists(Long id) { + if (errorCodeMapper.selectById(id) == null) { + throw exception(ERROR_CODE_NOT_EXISTS); + } + } + + @Override + public ErrorCodeDO getErrorCode(Long id) { + return errorCodeMapper.selectById(id); + } + + @Override + public PageResult getErrorCodePage(ErrorCodePageReqVO pageReqVO) { + return errorCodeMapper.selectPage(pageReqVO); + } + + @Override + @Transactional + public void autoGenerateErrorCodes(List autoGenerateDTOs) { + if (CollUtil.isEmpty(autoGenerateDTOs)) { + return; + } + // 获得错误码 + List errorCodeDOs = errorCodeMapper.selectListByCodes( + convertSet(autoGenerateDTOs, ErrorCodeAutoGenerateReqDTO::getCode)); + Map errorCodeDOMap = convertMap(errorCodeDOs, ErrorCodeDO::getCode); + + // 遍历 autoGenerateBOs 数组,逐个插入或更新。考虑到每次量级不大,就不走批量了 + autoGenerateDTOs.forEach(autoGenerateDTO -> { + ErrorCodeDO errorCode = errorCodeDOMap.get(autoGenerateDTO.getCode()); + // 不存在,则进行新增 + if (errorCode == null) { + errorCode = BeanUtils.toBean(autoGenerateDTO, ErrorCodeDO.class) + .setType(ErrorCodeTypeEnum.AUTO_GENERATION.getType()); + errorCodeMapper.insert(errorCode); + return; + } + // 存在,则进行更新。更新有三个前置条件: + // 条件 1. 只更新自动生成的错误码,即 Type 为 ErrorCodeTypeEnum.AUTO_GENERATION + if (!ErrorCodeTypeEnum.AUTO_GENERATION.getType().equals(errorCode.getType())) { + return; + } + // 条件 2. 分组 applicationName 必须匹配,避免存在错误码冲突的情况 + if (!autoGenerateDTO.getApplicationName().equals(errorCode.getApplicationName())) { + log.error("[autoGenerateErrorCodes][自动创建({}/{}) 错误码失败,数据库中已经存在({}/{})]", + autoGenerateDTO.getCode(), autoGenerateDTO.getApplicationName(), + errorCode.getCode(), errorCode.getApplicationName()); + return; + } + // 条件 3. 错误提示语存在差异 + if (autoGenerateDTO.getMessage().equals(errorCode.getMessage())) { + return; + } + // 最终匹配,进行更新 + errorCodeMapper.updateById(new ErrorCodeDO().setId(errorCode.getId()).setMessage(autoGenerateDTO.getMessage())); + }); + } + + @Override + public List getErrorCodeList(String applicationName, LocalDateTime minUpdateTime) { + List list = errorCodeMapper.selectListByApplicationNameAndUpdateTimeGt( + applicationName, minUpdateTime); + return BeanUtils.toBean(list, ErrorCodeRespDTO.class); + } + +} + diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/IJeeLowCodePermissionService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/IJeeLowCodePermissionService.java new file mode 100644 index 0000000..7936ad6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/IJeeLowCodePermissionService.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.service.jeelowcode; + +import java.util.List; +import java.util.Set; + +/** + * 低代码 权限过滤 + */ +public interface IJeeLowCodePermissionService { + /** + * 校验是否有权限 + * @param userId + * @param roleIds + * @param permission + * @return true=有权限 false =无权限 + */ + boolean hasAnyPermission(Long userId, Set roleIds, String permission); + + /** + * 转为list + * @param permission + * @return + */ + List permission2List(String permission); +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/JeeLowCodePermissionServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/JeeLowCodePermissionServiceImpl.java new file mode 100644 index 0000000..f30d88b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/jeelowcode/JeeLowCodePermissionServiceImpl.java @@ -0,0 +1,187 @@ +package cn.iocoder.yudao.module.system.service.jeelowcode; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.service.permission.MenuService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import com.jeelowcode.module.api.JeeLowCodeApi; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 低代码权限判断处理 + */ +@Service +@Slf4j +public class JeeLowCodePermissionServiceImpl implements IJeeLowCodePermissionService { + + @Resource + private StringRedisTemplate stringRedisTemplate; + + @Resource + private PermissionService permissionService; + + @Resource + private MenuService menuService; + + @Autowired + private JeeLowCodeApi jeeLowCodeApi; + + + static List jeeLowCodePrePermissionList_dbform = new ArrayList<>(); + static List jeeLowCodePrePermissionList_report = new ArrayList<>(); + + //报表多个查询 + static { + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:query:");//列表 + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:create:");//保存 + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:update:");//编辑 + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:delete:");//删除 + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:export:");//导出 + jeeLowCodePrePermissionList_dbform.add("jeelowcode:dbform-data:import:");//导入 + + jeeLowCodePrePermissionList_report.add("jeelowcode:report-data:query:");//列表 + jeeLowCodePrePermissionList_report.add("jeelowcode:report-data:export:");//导出 + } + + /** + * 校验是否有权限 + * + * @param userId + * @param permission + * @return true=有权限 false =无权限,继续走系统自带的 + */ + @Override + public boolean hasAnyPermission(Long userId, Set roleIds, String permission) { + if (ObjectUtil.isEmpty(permission)) { + return false; + } + boolean skipFlag=true; + Long dbFormId = null; + for (String preStr : jeeLowCodePrePermissionList_dbform) { + if (permission.startsWith(preStr)) { + dbFormId = Long.valueOf(permission.replace(preStr, "")); + skipFlag=false; + break; + } + } + + List reportCodeList=null;//报表code列 + for (String preStr : jeeLowCodePrePermissionList_report) { + if (permission.startsWith(preStr)) { + String reportCodeStr = permission.replace(preStr, ""); + reportCodeList = Pattern.compile(",") + .splitAsStream(reportCodeStr) + .collect(Collectors.toList()); + skipFlag=false; + break; + } + } + + + + + + //说明不是在本次拦截范围内 + if (skipFlag) { + return false; + } + //根据角色id来判断我是否是开发者,如果有开发者,则说明直接可以访问 + boolean devUserFlag=false; + String isDevUserRedisKey="JEE_LOW_CODE:USER:"+userId+":DEVUSER"; + if(!stringRedisTemplate.hasKey(isDevUserRedisKey)){//没有数据,则查询获取 TODO 优化 + //所有菜单列表 + Set menuIdList = permissionService.getRoleMenuListByRoleId(roleIds); + if(ObjectUtil.isNotEmpty(menuIdList)){ + List menuList = menuService.getMenuList(menuIdList);//菜单列表 + for(MenuDO menuDO:menuList){ + String component = menuDO.getComponent(); + if(ObjectUtil.isNotEmpty(component) && ObjectUtil.equal(component,"lowdesign/tableDesign/index")){ + devUserFlag=true;//说明当前是开发人员 + break; + } + } + } + String redisVal=devUserFlag?"true":"false"; + stringRedisTemplate.opsForValue().set(isDevUserRedisKey, redisVal, 300, TimeUnit.SECONDS);//5分钟 + devUserFlag =ObjectUtil.equal(redisVal,"true"); + }else{ + String redisVal = stringRedisTemplate.opsForValue().get(isDevUserRedisKey); + devUserFlag =ObjectUtil.equal(redisVal,"true"); + } + if(devUserFlag){//开发者,则直接可以访问 + return true; + } + + + //表单开发 + if(ObjectUtil.isNotEmpty(dbFormId)){ + String authType = jeeLowCodeApi.getDbformAuthType(dbFormId); + if(ObjectUtil.isEmpty(authType)){ + return false; + } + //查找缓存,获取类型 + switch (authType) { + case "authOpen"://不登录可查询,直接放开,说明可以访问 + return true; + case "authTrue"://说明强制校验,则走系统自带的校验,全匹配 + return false; + case "authFalse"://说明,只需要登录,即可访问 + return true; + default: + return false;//默认走系统自带 + } + + }else if(ObjectUtil.isNotEmpty(reportCodeList)){//数据报表 + for(String reportCode:reportCodeList){ + String authType = jeeLowCodeApi.getReportAuthType(reportCode); + + if(ObjectUtil.isEmpty(authType)){ + return false; + } + //查找缓存,获取类型 + switch (authType) { + case "authTrue"://说明强制校验,则走系统自带的校验,全匹配 + return false; + } + } + return true; + } + + return false; + + } + + /** + * 转为list + * @param permission + * @return + */ + @Override + public List permission2List(String permission){ + if (!permission.startsWith("jeelowcode:report-data:query:")) { + List permissionList=new ArrayList<>(); + permissionList.add(permission); + return permissionList; + } + + String reportCodeListStr = permission.replace("jeelowcode:report-data:query:", ""); + List list = Arrays.asList(reportCodeListStr.split(",")); + + List prefixedList = list.stream() + .map(item -> "jeelowcode:report-data:query:" + item) + .collect(Collectors.toList()); + return prefixedList; + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.java new file mode 100644 index 0000000..64cd07b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO; + +import javax.validation.Valid; + +/** + * 登录日志 Service 接口 + */ +public interface LoginLogService { + + /** + * 获得登录日志分页 + * + * @param pageReqVO 分页条件 + * @return 登录日志分页 + */ + PageResult getLoginLogPage(LoginLogPageReqVO pageReqVO); + + /** + * 创建登录日志 + * + * @param reqDTO 日志信息 + */ + void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.java new file mode 100644 index 0000000..e1de978 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.LoginLogDO; +import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 登录日志 Service 实现 + */ +@Service +@Validated +public class LoginLogServiceImpl implements LoginLogService { + + @Resource + private LoginLogMapper loginLogMapper; + + @Override + public PageResult getLoginLogPage(LoginLogPageReqVO pageReqVO) { + return loginLogMapper.selectPage(pageReqVO); + } + + @Override + public void createLoginLog(LoginLogCreateReqDTO reqDTO) { + LoginLogDO loginLog = BeanUtils.toBean(reqDTO, LoginLogDO.class); + loginLogMapper.insert(loginLog); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.java new file mode 100644 index 0000000..6843f2f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.system.service.logger; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; + +/** + * 操作日志 Service 接口 + * + * @author 芋道源码 + */ +public interface OperateLogService { + + /** + * 记录操作日志 + * + * @param createReqDTO 操作日志请求 + */ + void createOperateLog(OperateLogCreateReqDTO createReqDTO); + + /** + * 获得操作日志分页列表 + * + * @param pageReqVO 分页条件 + * @return 操作日志分页列表 + */ + PageResult getOperateLogPage(OperateLogPageReqVO pageReqVO); + + // ======================= LOG V2 ======================= + + /** + * 记录操作日志 V2 + * + * @param createReqDTO 创建请求 + */ + void createOperateLogV2(OperateLogV2CreateReqDTO createReqDTO); + + /** + * 获得操作日志分页列表 + * + * @param pageReqVO 分页条件 + * @return 操作日志分页列表 + */ + PageResult getOperateLogPage(OperateLogV2PageReqDTO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java new file mode 100644 index 0000000..a1b9373 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.system.service.logger; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.string.StrUtils; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; +import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; +import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogV2Mapper; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH; +import static cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO.RESULT_MAX_LENGTH; + +/** + * 操作日志 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class OperateLogServiceImpl implements OperateLogService { + + @Resource + private OperateLogMapper operateLogMapper; + @Resource + private OperateLogV2Mapper operateLogV2Mapper; + + @Resource + private AdminUserService userService; + + @Override + public void createOperateLog(OperateLogCreateReqDTO createReqDTO) { + OperateLogDO log = BeanUtils.toBean(createReqDTO, OperateLogDO.class); + log.setJavaMethodArgs(StrUtils.maxLength(log.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH)); + log.setResultData(StrUtils.maxLength(log.getResultData(), RESULT_MAX_LENGTH)); + operateLogMapper.insert(log); + } + + @Override + public PageResult getOperateLogPage(OperateLogPageReqVO pageReqVO) { + // 处理基于用户昵称的查询 + Collection userIds = null; + if (StrUtil.isNotEmpty(pageReqVO.getUserNickname())) { + userIds = convertSet(userService.getUserListByNickname(pageReqVO.getUserNickname()), AdminUserDO::getId); + if (CollUtil.isEmpty(userIds)) { + return PageResult.empty(); + } + } + // 查询分页 + return operateLogMapper.selectPage(pageReqVO, userIds); + } + + // ======================= LOG V2 ======================= + + @Override + public void createOperateLogV2(OperateLogV2CreateReqDTO createReqDTO) { + OperateLogV2DO log = BeanUtils.toBean(createReqDTO, OperateLogV2DO.class); + operateLogV2Mapper.insert(log); + } + + @Override + public PageResult getOperateLogPage(OperateLogV2PageReqDTO pageReqDTO) { + return operateLogV2Mapper.selectPage(pageReqDTO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java new file mode 100644 index 0000000..72d6256 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 邮箱账号 Service 接口 + * + * @author wangjingyi + * @since 2022-03-21 + */ +public interface MailAccountService { + + /** + * 创建邮箱账号 + * + * @param createReqVO 邮箱账号信息 + * @return 编号 + */ + Long createMailAccount(@Valid MailAccountSaveReqVO createReqVO); + + /** + * 修改邮箱账号 + * + * @param updateReqVO 邮箱账号信息 + */ + void updateMailAccount(@Valid MailAccountSaveReqVO updateReqVO); + + /** + * 删除邮箱账号 + * + * @param id 编号 + */ + void deleteMailAccount(Long id); + + /** + * 获取邮箱账号信息 + * + * @param id 编号 + * @return 邮箱账号信息 + */ + MailAccountDO getMailAccount(Long id); + + /** + * 从缓存中获取邮箱账号 + * + * @param id 编号 + * @return 邮箱账号 + */ + MailAccountDO getMailAccountFromCache(Long id); + + /** + * 获取邮箱账号分页信息 + * + * @param pageReqVO 邮箱账号分页参数 + * @return 邮箱账号分页信息 + */ + PageResult getMailAccountPage(MailAccountPageReqVO pageReqVO); + + /** + * 获取邮箱数组信息 + * + * @return 邮箱账号信息数组 + */ + List getMailAccountList(); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.java new file mode 100644 index 0000000..73cd9d3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.java @@ -0,0 +1,99 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.account.MailAccountSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import cn.iocoder.yudao.module.system.dal.mysql.mail.MailAccountMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_ACCOUNT_NOT_EXISTS; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS; + +/** + * 邮箱账号 Service 实现类 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@Service +@Validated +@Slf4j +public class MailAccountServiceImpl implements MailAccountService { + + @Resource + private MailAccountMapper mailAccountMapper; + + @Resource + private MailTemplateService mailTemplateService; + + @Override + public Long createMailAccount(MailAccountSaveReqVO createReqVO) { + MailAccountDO account = BeanUtils.toBean(createReqVO, MailAccountDO.class); + mailAccountMapper.insert(account); + return account.getId(); + } + + @Override + @CacheEvict(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#updateReqVO.id") + public void updateMailAccount(MailAccountSaveReqVO updateReqVO) { + // 校验是否存在 + validateMailAccountExists(updateReqVO.getId()); + + // 更新 + MailAccountDO updateObj = BeanUtils.toBean(updateReqVO, MailAccountDO.class); + mailAccountMapper.updateById(updateObj); + } + + @Override + @CacheEvict(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#id") + public void deleteMailAccount(Long id) { + // 校验是否存在账号 + validateMailAccountExists(id); + // 校验是否存在关联模版 + if (mailTemplateService.getMailTemplateCountByAccountId(id) > 0) { + throw exception(MAIL_ACCOUNT_RELATE_TEMPLATE_EXISTS); + } + + // 删除 + mailAccountMapper.deleteById(id); + } + + private void validateMailAccountExists(Long id) { + if (mailAccountMapper.selectById(id) == null) { + throw exception(MAIL_ACCOUNT_NOT_EXISTS); + } + } + + @Override + public MailAccountDO getMailAccount(Long id) { + return mailAccountMapper.selectById(id); + } + + @Override + @Cacheable(value = RedisKeyConstants.MAIL_ACCOUNT, key = "#id", unless = "#result == null") + public MailAccountDO getMailAccountFromCache(Long id) { + return getMailAccount(id); + } + + @Override + public PageResult getMailAccountPage(MailAccountPageReqVO pageReqVO) { + return mailAccountMapper.selectPage(pageReqVO); + } + + @Override + public List getMailAccountList() { + return mailAccountMapper.selectList(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java new file mode 100644 index 0000000..4a0b204 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; + +import java.util.Map; + +/** + * 邮件日志 Service 接口 + * + * @author wangjingyi + * @since 2022-03-21 + */ +public interface MailLogService { + + /** + * 邮件日志分页 + * + * @param pageVO 分页参数 + * @return 分页结果 + */ + PageResult getMailLogPage(MailLogPageReqVO pageVO); + + /** + * 获得指定编号的邮件日志 + * + * @param id 日志编号 + * @return 邮件日志 + */ + MailLogDO getMailLog(Long id); + + /** + * 创建邮件日志 + * + * @param userId 用户编码 + * @param userType 用户类型 + * @param toMail 收件人邮件 + * @param account 邮件账号信息 + * @param template 模版信息 + * @param templateContent 模版内容 + * @param templateParams 模版参数 + * @param isSend 是否发送成功 + * @return 日志编号 + */ + Long createMailLog(Long userId, Integer userType, String toMail, + MailAccountDO account, MailTemplateDO template , + String templateContent, Map templateParams, Boolean isSend); + + /** + * 更新邮件发送结果 + * + * @param logId 日志编号 + * @param messageId 发送后的消息编号 + * @param exception 发送异常 + */ + void updateMailSendResult(Long logId, String messageId, Exception exception); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java new file mode 100644 index 0000000..292acab --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.log.MailLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.mail.MailLogMapper; +import cn.iocoder.yudao.module.system.enums.mail.MailSendStatusEnum; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.Objects; + +import static cn.hutool.core.exceptions.ExceptionUtil.getRootCauseMessage; + +/** + * 邮件日志 Service 实现类 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@Service +@Validated +public class MailLogServiceImpl implements MailLogService { + + @Resource + private MailLogMapper mailLogMapper; + + @Override + public PageResult getMailLogPage(MailLogPageReqVO pageVO) { + return mailLogMapper.selectPage(pageVO); + } + + @Override + public MailLogDO getMailLog(Long id) { + return mailLogMapper.selectById(id); + } + + @Override + public Long createMailLog(Long userId, Integer userType, String toMail, + MailAccountDO account, MailTemplateDO template, + String templateContent, Map templateParams, Boolean isSend) { + MailLogDO.MailLogDOBuilder logDOBuilder = MailLogDO.builder(); + // 根据是否要发送,设置状态 + logDOBuilder.sendStatus(Objects.equals(isSend, true) ? MailSendStatusEnum.INIT.getStatus() + : MailSendStatusEnum.IGNORE.getStatus()) + // 用户信息 + .userId(userId).userType(userType).toMail(toMail) + .accountId(account.getId()).fromMail(account.getMail()) + // 模板相关字段 + .templateId(template.getId()).templateCode(template.getCode()).templateNickname(template.getNickname()) + .templateTitle(template.getTitle()).templateContent(templateContent).templateParams(templateParams); + + // 插入数据库 + MailLogDO logDO = logDOBuilder.build(); + mailLogMapper.insert(logDO); + return logDO.getId(); + } + + @Override + public void updateMailSendResult(Long logId, String messageId, Exception exception) { + // 1. 成功 + if (exception == null) { + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) + .setSendStatus(MailSendStatusEnum.SUCCESS.getStatus()).setSendMessageId(messageId)); + return; + } + // 2. 失败 + mailLogMapper.updateById(new MailLogDO().setId(logId).setSendTime(LocalDateTime.now()) + .setSendStatus(MailSendStatusEnum.FAILURE.getStatus()).setSendException(getRootCauseMessage(exception))); + + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.java new file mode 100644 index 0000000..8988168 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage; + +import java.util.Map; + +/** + * 邮件发送 Service 接口 + * + * @author wangjingyi + * @since 2022-03-21 + */ +public interface MailSendService { + + /** + * 发送单条邮件给管理后台的用户 + * + * @param mail 邮箱 + * @param userId 用户编码 + * @param templateCode 邮件模版编码 + * @param templateParams 邮件模版参数 + * @return 发送日志编号 + */ + Long sendSingleMailToAdmin(String mail, Long userId, + String templateCode, Map templateParams); + + /** + * 发送单条邮件给用户 APP 的用户 + * + * @param mail 邮箱 + * @param userId 用户编码 + * @param templateCode 邮件模版编码 + * @param templateParams 邮件模版参数 + * @return 发送日志编号 + */ + Long sendSingleMailToMember(String mail, Long userId, + String templateCode, Map templateParams); + + /** + * 发送单条邮件给用户 + * + * @param mail 邮箱 + * @param userId 用户编码 + * @param userType 用户类型 + * @param templateCode 邮件模版编码 + * @param templateParams 邮件模版参数 + * @return 发送日志编号 + */ + Long sendSingleMail(String mail, Long userId, Integer userType, + String templateCode, Map templateParams); + + /** + * 执行真正的邮件发送 + * 注意,该方法仅仅提供给 MQ Consumer 使用 + * + * @param message 邮件 + */ + void doSendMail(MailSendMessage message); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java new file mode 100644 index 0000000..277945c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.java @@ -0,0 +1,161 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.mail.MailAccount; +import cn.hutool.extra.mail.MailUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.module.system.convert.mail.MailAccountConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailAccountDO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage; +import cn.iocoder.yudao.module.system.mq.producer.mail.MailProducer; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 邮箱发送 Service 实现类 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@Service +@Validated +@Slf4j +public class MailSendServiceImpl implements MailSendService { + + @Resource + private AdminUserService adminUserService; + + @Resource + private MailAccountService mailAccountService; + @Resource + private MailTemplateService mailTemplateService; + + @Resource + private MailLogService mailLogService; + @Resource + private MailProducer mailProducer; + + @Override + public Long sendSingleMailToAdmin(String mail, Long userId, + String templateCode, Map templateParams) { + // 如果 mail 为空,则加载用户编号对应的邮箱 + if (StrUtil.isEmpty(mail)) { + AdminUserDO user = adminUserService.getUser(userId); + if (user != null) { + mail = user.getEmail(); + } + } + // 执行发送 + return sendSingleMail(mail, userId, UserTypeEnum.ADMIN.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleMailToMember(String mail, Long userId, + String templateCode, Map templateParams) { + + // 执行发送 + return sendSingleMail(mail, userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleMail(String mail, Long userId, Integer userType, + String templateCode, Map templateParams) { + // 校验邮箱模版是否合法 + MailTemplateDO template = validateMailTemplate(templateCode); + // 校验邮箱账号是否合法 + MailAccountDO account = validateMailAccount(template.getAccountId()); + + // 校验邮箱是否存在 + mail = validateMail(mail); + validateTemplateParams(template, templateParams); + + // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志 + Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()); + String title = mailTemplateService.formatMailTemplateContent(template.getTitle(), templateParams); + String content = mailTemplateService.formatMailTemplateContent(template.getContent(), templateParams); + Long sendLogId = mailLogService.createMailLog(userId, userType, mail, + account, template, content, templateParams, isSend); + // 发送 MQ 消息,异步执行发送短信 + if (isSend) { + mailProducer.sendMailSendMessage(sendLogId, mail, account.getId(), + template.getNickname(), title, content); + } + return sendLogId; + } + + @Override + public void doSendMail(MailSendMessage message) { + // 1. 创建发送账号 + MailAccountDO account = validateMailAccount(message.getAccountId()); + MailAccount mailAccount = MailAccountConvert.INSTANCE.convert(account, message.getNickname()); + // 2. 发送邮件 + try { + String messageId = MailUtil.send(mailAccount, message.getMail(), + message.getTitle(), message.getContent(),true); + // 3. 更新结果(成功) + mailLogService.updateMailSendResult(message.getLogId(), messageId, null); + } catch (Exception e) { + // 3. 更新结果(异常) + mailLogService.updateMailSendResult(message.getLogId(), null, e); + } + } + + @VisibleForTesting + MailTemplateDO validateMailTemplate(String templateCode) { + // 获得邮件模板。考虑到效率,从缓存中获取 + MailTemplateDO template = mailTemplateService.getMailTemplateByCodeFromCache(templateCode); + // 邮件模板不存在 + if (template == null) { + throw exception(MAIL_TEMPLATE_NOT_EXISTS); + } + return template; + } + + @VisibleForTesting + MailAccountDO validateMailAccount(Long accountId) { + // 获得邮箱账号。考虑到效率,从缓存中获取 + MailAccountDO account = mailAccountService.getMailAccountFromCache(accountId); + // 邮箱账号不存在 + if (account == null) { + throw exception(MAIL_ACCOUNT_NOT_EXISTS); + } + return account; + } + + @VisibleForTesting + String validateMail(String mail) { + if (StrUtil.isEmpty(mail)) { + throw exception(MAIL_SEND_MAIL_NOT_EXISTS); + } + return mail; + } + + /** + * 校验邮件参数是否确实 + * + * @param template 邮箱模板 + * @param templateParams 参数列表 + */ + @VisibleForTesting + void validateTemplateParams(MailTemplateDO template, Map templateParams) { + template.getParams().forEach(key -> { + Object value = templateParams.get(key); + if (value == null) { + throw exception(MAIL_SEND_TEMPLATE_PARAM_MISS, key); + } + }); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java new file mode 100644 index 0000000..0f5a49f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; + +/** + * 邮件模版 Service 接口 + * + * @author wangjingyi + * @since 2022-03-21 + */ +public interface MailTemplateService { + + /** + * 邮件模版创建 + * + * @param createReqVO 邮件信息 + * @return 编号 + */ + Long createMailTemplate(@Valid MailTemplateSaveReqVO createReqVO); + + /** + * 邮件模版修改 + * + * @param updateReqVO 邮件信息 + */ + void updateMailTemplate(@Valid MailTemplateSaveReqVO updateReqVO); + + /** + * 邮件模版删除 + * + * @param id 编号 + */ + void deleteMailTemplate(Long id); + + /** + * 获取邮件模版 + * + * @param id 编号 + * @return 邮件模版 + */ + MailTemplateDO getMailTemplate(Long id); + + /** + * 获取邮件模版分页 + * + * @param pageReqVO 模版信息 + * @return 邮件模版分页信息 + */ + PageResult getMailTemplatePage(MailTemplatePageReqVO pageReqVO); + + /** + * 获取邮件模板数组 + * + * @return 模版数组 + */ + List getMailTemplateList(); + + /** + * 从缓存中获取邮件模版 + * + * @param code 模板编码 + * @return 邮件模板 + */ + MailTemplateDO getMailTemplateByCodeFromCache(String code); + + /** + * 邮件模版内容合成 + * + * @param content 邮件模版 + * @param params 合成参数 + * @return 格式化后的内容 + */ + String formatMailTemplateContent(String content, Map params); + + /** + * 获得指定邮件账号下的邮件模板数量 + * + * @param accountId 账号编号 + * @return 数量 + */ + long getMailTemplateCountByAccountId(Long accountId); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java new file mode 100644 index 0000000..b19c7a4 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.java @@ -0,0 +1,138 @@ +package cn.iocoder.yudao.module.system.service.mail; + +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.mail.vo.template.MailTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.mail.MailTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.mail.MailTemplateMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_TEMPLATE_CODE_EXISTS; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MAIL_TEMPLATE_NOT_EXISTS; + +/** + * 邮箱模版 Service 实现类 + * + * @author wangjingyi + * @since 2022-03-21 + */ +@Service +@Validated +@Slf4j +public class MailTemplateServiceImpl implements MailTemplateService { + + /** + * 正则表达式,匹配 {} 中的变量 + */ + private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); + + @Resource + private MailTemplateMapper mailTemplateMapper; + + @Override + public Long createMailTemplate(MailTemplateSaveReqVO createReqVO) { + // 校验 code 是否唯一 + validateCodeUnique(null, createReqVO.getCode()); + + // 插入 + MailTemplateDO template = BeanUtils.toBean(createReqVO, MailTemplateDO.class) + .setParams(parseTemplateContentParams(createReqVO.getContent())); + mailTemplateMapper.insert(template); + return template.getId(); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.MAIL_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为可能修改到 code 字段,不好清理 + public void updateMailTemplate(@Valid MailTemplateSaveReqVO updateReqVO) { + // 校验是否存在 + validateMailTemplateExists(updateReqVO.getId()); + // 校验 code 是否唯一 + validateCodeUnique(updateReqVO.getId(),updateReqVO.getCode()); + + // 更新 + MailTemplateDO updateObj = BeanUtils.toBean(updateReqVO, MailTemplateDO.class) + .setParams(parseTemplateContentParams(updateReqVO.getContent())); + mailTemplateMapper.updateById(updateObj); + } + + @VisibleForTesting + void validateCodeUnique(Long id, String code) { + MailTemplateDO template = mailTemplateMapper.selectByCode(code); + if (template == null) { + return; + } + // 存在 template 记录的情况下 + if (id == null // 新增时,说明重复 + || ObjUtil.notEqual(id, template.getId())) { // 更新时,如果 id 不一致,说明重复 + throw exception(MAIL_TEMPLATE_CODE_EXISTS); + } + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.MAIL_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为 id 不是直接的缓存 code,不好清理 + public void deleteMailTemplate(Long id) { + // 校验是否存在 + validateMailTemplateExists(id); + + // 删除 + mailTemplateMapper.deleteById(id); + } + + private void validateMailTemplateExists(Long id) { + if (mailTemplateMapper.selectById(id) == null) { + throw exception(MAIL_TEMPLATE_NOT_EXISTS); + } + } + + @Override + public MailTemplateDO getMailTemplate(Long id) {return mailTemplateMapper.selectById(id);} + + @Override + @Cacheable(value = RedisKeyConstants.MAIL_TEMPLATE, key = "#code", unless = "#result == null") + public MailTemplateDO getMailTemplateByCodeFromCache(String code) { + return mailTemplateMapper.selectByCode(code); + } + + @Override + public PageResult getMailTemplatePage(MailTemplatePageReqVO pageReqVO) { + return mailTemplateMapper.selectPage(pageReqVO); + } + + @Override + public List getMailTemplateList() {return mailTemplateMapper.selectList();} + + @Override + public String formatMailTemplateContent(String content, Map params) { + return StrUtil.format(content, params); + } + + @VisibleForTesting + public List parseTemplateContentParams(String content) { + return ReUtil.findAllGroup1(PATTERN_PARAMS, content); + } + + @Override + public long getMailTemplateCountByAccountId(Long accountId) { + return mailTemplateMapper.selectCountByAccountId(accountId); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.java new file mode 100644 index 0000000..c935c49 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.system.service.notice; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; + +/** + * 通知公告 Service 接口 + */ +public interface NoticeService { + + /** + * 创建通知公告 + * + * @param createReqVO 通知公告 + * @return 编号 + */ + Long createNotice(NoticeSaveReqVO createReqVO); + + /** + * 更新通知公告 + * + * @param reqVO 通知公告 + */ + void updateNotice(NoticeSaveReqVO reqVO); + + /** + * 删除通知公告 + * + * @param id 编号 + */ + void deleteNotice(Long id); + + /** + * 获得通知公告分页列表 + * + * @param reqVO 分页条件 + * @return 部门分页列表 + */ + PageResult getNoticePage(NoticePageReqVO reqVO); + + /** + * 获得通知公告 + * + * @param id 编号 + * @return 通知公告 + */ + NoticeDO getNotice(Long id); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java new file mode 100644 index 0000000..f0204c3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.service.notice; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticeSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; +import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper; +import com.google.common.annotations.VisibleForTesting; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND; + +/** + * 通知公告 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class NoticeServiceImpl implements NoticeService { + + @Resource + private NoticeMapper noticeMapper; + + @Override + public Long createNotice(NoticeSaveReqVO createReqVO) { + NoticeDO notice = BeanUtils.toBean(createReqVO, NoticeDO.class); + noticeMapper.insert(notice); + return notice.getId(); + } + + @Override + public void updateNotice(NoticeSaveReqVO updateReqVO) { + // 校验是否存在 + validateNoticeExists(updateReqVO.getId()); + // 更新通知公告 + NoticeDO updateObj = BeanUtils.toBean(updateReqVO, NoticeDO.class); + noticeMapper.updateById(updateObj); + } + + @Override + public void deleteNotice(Long id) { + // 校验是否存在 + validateNoticeExists(id); + // 删除通知公告 + noticeMapper.deleteById(id); + } + + @Override + public PageResult getNoticePage(NoticePageReqVO reqVO) { + return noticeMapper.selectPage(reqVO); + } + + @Override + public NoticeDO getNotice(Long id) { + return noticeMapper.selectById(id); + } + + @VisibleForTesting + public void validateNoticeExists(Long id) { + if (id == null) { + return; + } + NoticeDO notice = noticeMapper.selectById(id); + if (notice == null) { + throw exception(NOTICE_NOT_FOUND); + } + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java new file mode 100644 index 0000000..b06aef3 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java @@ -0,0 +1,97 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 站内信 Service 接口 + * + * @author xrcoder + */ +public interface NotifyMessageService { + + /** + * 创建站内信 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param template 模版信息 + * @param templateContent 模版内容 + * @param templateParams 模版参数 + * @return 站内信编号 + */ + Long createNotifyMessage(Long userId, Integer userType, + NotifyTemplateDO template, String templateContent, Map templateParams); + + /** + * 获得站内信分页 + * + * @param pageReqVO 分页查询 + * @return 站内信分页 + */ + PageResult getNotifyMessagePage(NotifyMessagePageReqVO pageReqVO); + + /** + * 获得【我的】站内信分页 + * + * @param pageReqVO 分页查询 + * @param userId 用户编号 + * @param userType 用户类型 + * @return 站内信分页 + */ + PageResult getMyMyNotifyMessagePage(NotifyMessageMyPageReqVO pageReqVO, Long userId, Integer userType); + + /** + * 获得站内信 + * + * @param id 编号 + * @return 站内信 + */ + NotifyMessageDO getNotifyMessage(Long id); + + /** + * 获得【我的】未读站内信列表 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param size 数量 + * @return 站内信列表 + */ + List getUnreadNotifyMessageList(Long userId, Integer userType, Integer size); + + /** + * 统计用户未读站内信条数 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @return 返回未读站内信条数 + */ + Long getUnreadNotifyMessageCount(Long userId, Integer userType); + + /** + * 标记站内信为已读 + * + * @param ids 站内信编号集合 + * @param userId 用户编号 + * @param userType 用户类型 + * @return 更新到的条数 + */ + int updateNotifyMessageRead(Collection ids, Long userId, Integer userType); + + /** + * 标记所有站内信为已读 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @return 更新到的条数 + */ + int updateAllNotifyMessageRead(Long userId, Integer userType); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java new file mode 100644 index 0000000..1ac4c04 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java @@ -0,0 +1,75 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyMessageMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 站内信 Service 实现类 + * + * @author xrcoder + */ +@Service +@Validated +public class NotifyMessageServiceImpl implements NotifyMessageService { + + @Resource + private NotifyMessageMapper notifyMessageMapper; + + @Override + public Long createNotifyMessage(Long userId, Integer userType, + NotifyTemplateDO template, String templateContent, Map templateParams) { + NotifyMessageDO message = new NotifyMessageDO().setUserId(userId).setUserType(userType) + .setTemplateId(template.getId()).setTemplateCode(template.getCode()) + .setTemplateType(template.getType()).setTemplateNickname(template.getNickname()) + .setTemplateContent(templateContent).setTemplateParams(templateParams).setReadStatus(false); + notifyMessageMapper.insert(message); + return message.getId(); + } + + @Override + public PageResult getNotifyMessagePage(NotifyMessagePageReqVO pageReqVO) { + return notifyMessageMapper.selectPage(pageReqVO); + } + + @Override + public PageResult getMyMyNotifyMessagePage(NotifyMessageMyPageReqVO pageReqVO, Long userId, Integer userType) { + return notifyMessageMapper.selectPage(pageReqVO, userId, userType); + } + + @Override + public NotifyMessageDO getNotifyMessage(Long id) { + return notifyMessageMapper.selectById(id); + } + + @Override + public List getUnreadNotifyMessageList(Long userId, Integer userType, Integer size) { + return notifyMessageMapper.selectUnreadListByUserIdAndUserType(userId, userType, size); + } + + @Override + public Long getUnreadNotifyMessageCount(Long userId, Integer userType) { + return notifyMessageMapper.selectUnreadCountByUserIdAndUserType(userId, userType); + } + + @Override + public int updateNotifyMessageRead(Collection ids, Long userId, Integer userType) { + return notifyMessageMapper.updateListRead(ids, userId, userType); + } + + @Override + public int updateAllNotifyMessageRead(Long userId, Integer userType) { + return notifyMessageMapper.updateListRead(userId, userType); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java new file mode 100644 index 0000000..d848bcb --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import java.util.List; +import java.util.Map; + +/** + * 站内信发送 Service 接口 + * + * @author xrcoder + */ +public interface NotifySendService { + + /** + * 发送单条站内信给管理后台的用户 + * + * 在 mobile 为空时,使用 userId 加载对应管理员的手机号 + * + * @param userId 用户编号 + * @param templateCode 短信模板编号 + * @param templateParams 短信模板参数 + * @return 发送日志编号 + */ + Long sendSingleNotifyToAdmin(Long userId, + String templateCode, Map templateParams); + /** + * 发送单条站内信给用户 APP 的用户 + * + * 在 mobile 为空时,使用 userId 加载对应会员的手机号 + * + * @param userId 用户编号 + * @param templateCode 站内信模板编号 + * @param templateParams 站内信模板参数 + * @return 发送日志编号 + */ + Long sendSingleNotifyToMember(Long userId, + String templateCode, Map templateParams); + + /** + * 发送单条站内信给用户 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param templateCode 站内信模板编号 + * @param templateParams 站内信模板参数 + * @return 发送日志编号 + */ + Long sendSingleNotify( Long userId, Integer userType, + String templateCode, Map templateParams); + + default void sendBatchNotify(List mobiles, List userIds, Integer userType, + String templateCode, Map templateParams) { + throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!"); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java new file mode 100644 index 0000000..f71c5fe --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java @@ -0,0 +1,86 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 站内信发送 Service 实现类 + * + * @author xrcoder + */ +@Service +@Validated +@Slf4j +public class NotifySendServiceImpl implements NotifySendService { + + @Resource + private NotifyTemplateService notifyTemplateService; + + @Resource + private NotifyMessageService notifyMessageService; + + @Override + public Long sendSingleNotifyToAdmin(Long userId, String templateCode, Map templateParams) { + return sendSingleNotify(userId, UserTypeEnum.ADMIN.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleNotifyToMember(Long userId, String templateCode, Map templateParams) { + return sendSingleNotify(userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleNotify(Long userId, Integer userType, String templateCode, Map templateParams) { + // 校验模版 + NotifyTemplateDO template = validateNotifyTemplate(templateCode); + if (Objects.equals(template.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { + log.info("[sendSingleNotify][模版({})已经关闭,无法给用户({}/{})发送]", templateCode, userId, userType); + return null; + } + // 校验参数 + validateTemplateParams(template, templateParams); + + // 发送站内信 + String content = notifyTemplateService.formatNotifyTemplateContent(template.getContent(), templateParams); + return notifyMessageService.createNotifyMessage(userId, userType, template, content, templateParams); + } + + @VisibleForTesting + public NotifyTemplateDO validateNotifyTemplate(String templateCode) { + // 获得站内信模板。考虑到效率,从缓存中获取 + NotifyTemplateDO template = notifyTemplateService.getNotifyTemplateByCodeFromCache(templateCode); + // 站内信模板不存在 + if (template == null) { + throw exception(NOTICE_NOT_FOUND); + } + return template; + } + + /** + * 校验站内信模版参数是否确实 + * + * @param template 邮箱模板 + * @param templateParams 参数列表 + */ + @VisibleForTesting + public void validateTemplateParams(NotifyTemplateDO template, Map templateParams) { + template.getParams().forEach(key -> { + Object value = templateParams.get(key); + if (value == null) { + throw exception(NOTIFY_SEND_TEMPLATE_PARAM_MISS, key); + } + }); + } +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java new file mode 100644 index 0000000..76e1554 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; + +import javax.validation.Valid; +import java.util.Map; + +/** + * 站内信模版 Service 接口 + * + * @author xrcoder + */ +public interface NotifyTemplateService { + + /** + * 创建站内信模版 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createNotifyTemplate(@Valid NotifyTemplateSaveReqVO createReqVO); + + /** + * 更新站内信模版 + * + * @param updateReqVO 更新信息 + */ + void updateNotifyTemplate(@Valid NotifyTemplateSaveReqVO updateReqVO); + + /** + * 删除站内信模版 + * + * @param id 编号 + */ + void deleteNotifyTemplate(Long id); + + /** + * 获得站内信模版 + * + * @param id 编号 + * @return 站内信模版 + */ + NotifyTemplateDO getNotifyTemplate(Long id); + + /** + * 获得站内信模板,从缓存中 + * + * @param code 模板编码 + * @return 站内信模板 + */ + NotifyTemplateDO getNotifyTemplateByCodeFromCache(String code); + + /** + * 获得站内信模版分页 + * + * @param pageReqVO 分页查询 + * @return 站内信模版分页 + */ + PageResult getNotifyTemplatePage(NotifyTemplatePageReqVO pageReqVO); + + /** + * 格式化站内信内容 + * + * @param content 站内信模板的内容 + * @param params 站内信内容的参数 + * @return 格式化后的内容 + */ + String formatNotifyTemplateContent(String content, Map params); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java new file mode 100644 index 0000000..cd8e907 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java @@ -0,0 +1,138 @@ +package cn.iocoder.yudao.module.system.service.notify; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTIFY_TEMPLATE_CODE_DUPLICATE; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTIFY_TEMPLATE_NOT_EXISTS; + +/** + * 站内信模版 Service 实现类 + * + * @author xrcoder + */ +@Service +@Validated +@Slf4j +public class NotifyTemplateServiceImpl implements NotifyTemplateService { + + /** + * 正则表达式,匹配 {} 中的变量 + */ + private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); + + @Resource + private NotifyTemplateMapper notifyTemplateMapper; + + @Override + public Long createNotifyTemplate(NotifyTemplateSaveReqVO createReqVO) { + // 校验站内信编码是否重复 + validateNotifyTemplateCodeDuplicate(null, createReqVO.getCode()); + + // 插入 + NotifyTemplateDO notifyTemplate = BeanUtils.toBean(createReqVO, NotifyTemplateDO.class); + notifyTemplate.setParams(parseTemplateContentParams(notifyTemplate.getContent())); + notifyTemplateMapper.insert(notifyTemplate); + return notifyTemplate.getId(); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.NOTIFY_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为可能修改到 code 字段,不好清理 + public void updateNotifyTemplate(NotifyTemplateSaveReqVO updateReqVO) { + // 校验存在 + validateNotifyTemplateExists(updateReqVO.getId()); + // 校验站内信编码是否重复 + validateNotifyTemplateCodeDuplicate(updateReqVO.getId(), updateReqVO.getCode()); + + // 更新 + NotifyTemplateDO updateObj = BeanUtils.toBean(updateReqVO, NotifyTemplateDO.class); + updateObj.setParams(parseTemplateContentParams(updateObj.getContent())); + notifyTemplateMapper.updateById(updateObj); + } + + @VisibleForTesting + public List parseTemplateContentParams(String content) { + return ReUtil.findAllGroup1(PATTERN_PARAMS, content); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.NOTIFY_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为 id 不是直接的缓存 code,不好清理 + public void deleteNotifyTemplate(Long id) { + // 校验存在 + validateNotifyTemplateExists(id); + // 删除 + notifyTemplateMapper.deleteById(id); + } + + private void validateNotifyTemplateExists(Long id) { + if (notifyTemplateMapper.selectById(id) == null) { + throw exception(NOTIFY_TEMPLATE_NOT_EXISTS); + } + } + + @Override + public NotifyTemplateDO getNotifyTemplate(Long id) { + return notifyTemplateMapper.selectById(id); + } + + @Override + @Cacheable(cacheNames = RedisKeyConstants.NOTIFY_TEMPLATE, key = "#code", + unless = "#result == null") + public NotifyTemplateDO getNotifyTemplateByCodeFromCache(String code) { + return notifyTemplateMapper.selectByCode(code); + } + + @Override + public PageResult getNotifyTemplatePage(NotifyTemplatePageReqVO pageReqVO) { + return notifyTemplateMapper.selectPage(pageReqVO); + } + + @VisibleForTesting + void validateNotifyTemplateCodeDuplicate(Long id, String code) { + NotifyTemplateDO template = notifyTemplateMapper.selectByCode(code); + if (template == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的字典类型 + if (id == null) { + throw exception(NOTIFY_TEMPLATE_CODE_DUPLICATE, code); + } + if (!template.getId().equals(id)) { + throw exception(NOTIFY_TEMPLATE_CODE_DUPLICATE, code); + } + } + + /** + * 格式化站内信内容 + * + * @param content 站内信模板的内容 + * @param params 站内信内容的参数 + * @return 格式化后的内容 + */ + @Override + public String formatNotifyTemplateContent(String content, Map params) { + return StrUtil.format(content, params); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.java new file mode 100644 index 0000000..def3e5e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.java @@ -0,0 +1,52 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ApproveDO; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * OAuth2 批准 Service 接口 + * + * 从功能上,和 Spring Security OAuth 的 ApprovalStoreUserApprovalHandler 的功能,记录用户针对指定客户端的授权,减少手动确定。 + * + * @author 芋道源码 + */ +public interface OAuth2ApproveService { + + /** + * 获得指定用户,针对指定客户端的指定授权,是否通过 + * + * 参考 ApprovalStoreUserApprovalHandler 的 checkForPreApproval 方法 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param requestedScopes 授权范围 + * @return 是否授权通过 + */ + boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection requestedScopes); + + /** + * 在用户发起批准时,基于 scopes 的选项,计算最终是否通过 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param requestedScopes 授权范围 + * @return 是否授权通过 + */ + boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map requestedScopes); + + /** + * 获得用户的批准列表,排除已过期的 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @return 是否授权通过 + */ + List getApproveList(Long userId, Integer userType, String clientId); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java new file mode 100644 index 0000000..29f0f11 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ApproveDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2ApproveMapper; +import com.google.common.annotations.VisibleForTesting; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +/** + * OAuth2 批准 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class OAuth2ApproveServiceImpl implements OAuth2ApproveService { + + /** + * 批准的过期时间,默认 30 天 + */ + private static final Integer TIMEOUT = 30 * 24 * 60 * 60; // 单位:秒 + + @Resource + private OAuth2ClientService oauth2ClientService; + + @Resource + private OAuth2ApproveMapper oauth2ApproveMapper; + + @Override + @Transactional + public boolean checkForPreApproval(Long userId, Integer userType, String clientId, Collection requestedScopes) { + // 第一步,基于 Client 的自动授权计算,如果 scopes 都在自动授权中,则返回 true 通过 + OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId); + Assert.notNull(clientDO, "客户端不能为空"); // 防御性编程 + if (CollUtil.containsAll(clientDO.getAutoApproveScopes(), requestedScopes)) { + // gh-877 - if all scopes are auto approved, approvals still need to be added to the approval store. + LocalDateTime expireTime = LocalDateTime.now().plusSeconds(TIMEOUT); + for (String scope : requestedScopes) { + saveApprove(userId, userType, clientId, scope, true, expireTime); + } + return true; + } + + // 第二步,算上用户已经批准的授权。如果 scopes 都包含,则返回 true + List approveDOs = getApproveList(userId, userType, clientId); + Set scopes = convertSet(approveDOs, OAuth2ApproveDO::getScope, + OAuth2ApproveDO::getApproved); // 只保留未过期的 + 同意的 + return CollUtil.containsAll(scopes, requestedScopes); + } + + @Override + @Transactional + public boolean updateAfterApproval(Long userId, Integer userType, String clientId, Map requestedScopes) { + // 如果 requestedScopes 为空,说明没有要求,则返回 true 通过 + if (CollUtil.isEmpty(requestedScopes)) { + return true; + } + + // 更新批准的信息 + boolean success = false; // 需要至少有一个同意 + LocalDateTime expireTime = LocalDateTime.now().plusSeconds(TIMEOUT); + for (Map.Entry entry : requestedScopes.entrySet()) { + if (entry.getValue()) { + success = true; + } + saveApprove(userId, userType, clientId, entry.getKey(), entry.getValue(), expireTime); + } + return success; + } + + @Override + public List getApproveList(Long userId, Integer userType, String clientId) { + List approveDOs = oauth2ApproveMapper.selectListByUserIdAndUserTypeAndClientId( + userId, userType, clientId); + approveDOs.removeIf(o -> DateUtils.isExpired(o.getExpiresTime())); + return approveDOs; + } + + @VisibleForTesting + void saveApprove(Long userId, Integer userType, String clientId, + String scope, Boolean approved, LocalDateTime expireTime) { + // 先更新 + OAuth2ApproveDO approveDO = new OAuth2ApproveDO().setUserId(userId).setUserType(userType) + .setClientId(clientId).setScope(scope).setApproved(approved).setExpiresTime(expireTime); + if (oauth2ApproveMapper.update(approveDO) == 1) { + return; + } + // 失败,则说明不存在,进行更新 + oauth2ApproveMapper.insert(approveDO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.java new file mode 100644 index 0000000..1073553 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.java @@ -0,0 +1,90 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; + +import javax.validation.Valid; +import java.util.Collection; + +/** + * OAuth2.0 Client Service 接口 + * + * 从功能上,和 JdbcClientDetailsService 的功能,提供客户端的操作 + * + * @author 芋道源码 + */ +public interface OAuth2ClientService { + + /** + * 创建 OAuth2 客户端 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createOAuth2Client(@Valid OAuth2ClientSaveReqVO createReqVO); + + /** + * 更新 OAuth2 客户端 + * + * @param updateReqVO 更新信息 + */ + void updateOAuth2Client(@Valid OAuth2ClientSaveReqVO updateReqVO); + + /** + * 删除 OAuth2 客户端 + * + * @param id 编号 + */ + void deleteOAuth2Client(Long id); + + /** + * 获得 OAuth2 客户端 + * + * @param id 编号 + * @return OAuth2 客户端 + */ + OAuth2ClientDO getOAuth2Client(Long id); + + /** + * 获得 OAuth2 客户端,从缓存中 + * + * @param clientId 客户端编号 + * @return OAuth2 客户端 + */ + OAuth2ClientDO getOAuth2ClientFromCache(String clientId); + + /** + * 获得 OAuth2 客户端分页 + * + * @param pageReqVO 分页查询 + * @return OAuth2 客户端分页 + */ + PageResult getOAuth2ClientPage(OAuth2ClientPageReqVO pageReqVO); + + /** + * 从缓存中,校验客户端是否合法 + * + * @return 客户端 + */ + default OAuth2ClientDO validOAuthClientFromCache(String clientId) { + return validOAuthClientFromCache(clientId, null, null, null, null); + } + + /** + * 从缓存中,校验客户端是否合法 + * + * 非空时,进行校验 + * + * @param clientId 客户端编号 + * @param clientSecret 客户端密钥 + * @param authorizedGrantType 授权方式 + * @param scopes 授权范围 + * @param redirectUri 重定向地址 + * @return 客户端 + */ + OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, String authorizedGrantType, + Collection scopes, String redirectUri); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java new file mode 100644 index 0000000..66392b1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.java @@ -0,0 +1,153 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.common.util.string.StrUtils; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.client.OAuth2ClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2ClientMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * OAuth2.0 Client Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class OAuth2ClientServiceImpl implements OAuth2ClientService { + + @Resource + private OAuth2ClientMapper oauth2ClientMapper; + + @Override + public Long createOAuth2Client(OAuth2ClientSaveReqVO createReqVO) { + validateClientIdExists(null, createReqVO.getClientId()); + // 插入 + OAuth2ClientDO client = BeanUtils.toBean(createReqVO, OAuth2ClientDO.class); + oauth2ClientMapper.insert(client); + return client.getId(); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.OAUTH_CLIENT, + allEntries = true) // allEntries 清空所有缓存,因为可能修改到 clientId 字段,不好清理 + public void updateOAuth2Client(OAuth2ClientSaveReqVO updateReqVO) { + // 校验存在 + validateOAuth2ClientExists(updateReqVO.getId()); + // 校验 Client 未被占用 + validateClientIdExists(updateReqVO.getId(), updateReqVO.getClientId()); + + // 更新 + OAuth2ClientDO updateObj = BeanUtils.toBean(updateReqVO, OAuth2ClientDO.class); + oauth2ClientMapper.updateById(updateObj); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.OAUTH_CLIENT, + allEntries = true) // allEntries 清空所有缓存,因为 id 不是直接的缓存 key,不好清理 + public void deleteOAuth2Client(Long id) { + // 校验存在 + validateOAuth2ClientExists(id); + // 删除 + oauth2ClientMapper.deleteById(id); + } + + private void validateOAuth2ClientExists(Long id) { + if (oauth2ClientMapper.selectById(id) == null) { + throw exception(OAUTH2_CLIENT_NOT_EXISTS); + } + } + + @VisibleForTesting + void validateClientIdExists(Long id, String clientId) { + OAuth2ClientDO client = oauth2ClientMapper.selectByClientId(clientId); + if (client == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的客户端 + if (id == null) { + throw exception(OAUTH2_CLIENT_EXISTS); + } + if (!client.getId().equals(id)) { + throw exception(OAUTH2_CLIENT_EXISTS); + } + } + + @Override + public OAuth2ClientDO getOAuth2Client(Long id) { + return oauth2ClientMapper.selectById(id); + } + + @Override + @Cacheable(cacheNames = RedisKeyConstants.OAUTH_CLIENT, key = "#clientId", + unless = "#result == null") + public OAuth2ClientDO getOAuth2ClientFromCache(String clientId) { + return oauth2ClientMapper.selectByClientId(clientId); + } + + @Override + public PageResult getOAuth2ClientPage(OAuth2ClientPageReqVO pageReqVO) { + return oauth2ClientMapper.selectPage(pageReqVO); + } + + @Override + public OAuth2ClientDO validOAuthClientFromCache(String clientId, String clientSecret, String authorizedGrantType, + Collection scopes, String redirectUri) { + // 校验客户端存在、且开启 + OAuth2ClientDO client = getSelf().getOAuth2ClientFromCache(clientId); + if (client == null) { + throw exception(OAUTH2_CLIENT_NOT_EXISTS); + } + if (CommonStatusEnum.isDisable(client.getStatus())) { + throw exception(OAUTH2_CLIENT_DISABLE); + } + + // 校验客户端密钥 + if (StrUtil.isNotEmpty(clientSecret) && ObjectUtil.notEqual(client.getSecret(), clientSecret)) { + throw exception(OAUTH2_CLIENT_CLIENT_SECRET_ERROR); + } + // 校验授权方式 + if (StrUtil.isNotEmpty(authorizedGrantType) && !CollUtil.contains(client.getAuthorizedGrantTypes(), authorizedGrantType)) { + throw exception(OAUTH2_CLIENT_AUTHORIZED_GRANT_TYPE_NOT_EXISTS); + } + // 校验授权范围 + if (CollUtil.isNotEmpty(scopes) && !CollUtil.containsAll(client.getScopes(), scopes)) { + throw exception(OAUTH2_CLIENT_SCOPE_OVER); + } + // 校验回调地址 + if (StrUtil.isNotEmpty(redirectUri) && !StrUtils.startWithAny(redirectUri, client.getRedirectUris())) { + throw exception(OAUTH2_CLIENT_REDIRECT_URI_NOT_MATCH, redirectUri); + } + return client; + } + + /** + * 获得自身的代理对象,解决 AOP 生效问题 + * + * @return 自己 + */ + private OAuth2ClientServiceImpl getSelf() { + return SpringUtil.getBean(getClass()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.java new file mode 100644 index 0000000..5ace87e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2CodeDO; + +import java.util.List; + +/** + * OAuth2.0 授权码 Service 接口 + * + * 从功能上,和 Spring Security OAuth 的 JdbcAuthorizationCodeServices 的功能,提供授权码的操作 + * + * @author 芋道源码 + */ +public interface OAuth2CodeService { + + /** + * 创建授权码 + * + * 参考 JdbcAuthorizationCodeServices 的 createAuthorizationCode 方法 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @param redirectUri 重定向 URI + * @param state 状态 + * @return 授权码的信息 + */ + OAuth2CodeDO createAuthorizationCode(Long userId, Integer userType, String clientId, + List scopes, String redirectUri, String state); + + /** + * 使用授权码 + * + * @param code 授权码 + */ + OAuth2CodeDO consumeAuthorizationCode(String code); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java new file mode 100644 index 0000000..df6d4c8 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.hutool.core.util.IdUtil; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2CodeDO; +import cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2CodeMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.OAUTH2_CODE_EXPIRE; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.OAUTH2_CODE_NOT_EXISTS; + +/** + * OAuth2.0 授权码 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class OAuth2CodeServiceImpl implements OAuth2CodeService { + + /** + * 授权码的过期时间,默认 5 分钟 + */ + private static final Integer TIMEOUT = 5 * 60; + + @Resource + private OAuth2CodeMapper oauth2CodeMapper; + + @Override + public OAuth2CodeDO createAuthorizationCode(Long userId, Integer userType, String clientId, + List scopes, String redirectUri, String state) { + OAuth2CodeDO codeDO = new OAuth2CodeDO().setCode(generateCode()) + .setUserId(userId).setUserType(userType) + .setClientId(clientId).setScopes(scopes) + .setExpiresTime(LocalDateTime.now().plusSeconds(TIMEOUT)) + .setRedirectUri(redirectUri).setState(state); + oauth2CodeMapper.insert(codeDO); + return codeDO; + } + + @Override + public OAuth2CodeDO consumeAuthorizationCode(String code) { + OAuth2CodeDO codeDO = oauth2CodeMapper.selectByCode(code); + if (codeDO == null) { + throw exception(OAUTH2_CODE_NOT_EXISTS); + } + if (DateUtils.isExpired(codeDO.getExpiresTime())) { + throw exception(OAUTH2_CODE_EXPIRE); + } + oauth2CodeMapper.deleteById(codeDO.getId()); + return codeDO; + } + + private static String generateCode() { + return IdUtil.fastSimpleUUID(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java new file mode 100644 index 0000000..fef1d5e --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.java @@ -0,0 +1,113 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; + +import java.util.List; + +/** + * OAuth2 授予 Service 接口 + * + * 从功能上,和 Spring Security OAuth 的 TokenGranter 的功能,提供访问令牌、刷新令牌的操作 + * + * 将自身的 AdminUser 用户,授权给第三方应用,采用 OAuth2.0 的协议。 + * + * 问题:为什么自身也作为一个第三方应用,也走这套流程呢? + * 回复:当然可以这么做,采用 password 模式。考虑到大多数开发者使用不到这个特性,OAuth2.0 毕竟有一定学习成本,所以暂时没有采取这种方式。 + * + * @author 芋道源码 + */ +public interface OAuth2GrantService { + + /** + * 简化模式 + * + * 对应 Spring Security OAuth2 的 ImplicitTokenGranter 功能 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @return 访问令牌 + */ + OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, + String clientId, List scopes); + + /** + * 授权码模式,第一阶段,获得 code 授权码 + * + * 对应 Spring Security OAuth2 的 AuthorizationEndpoint 的 generateCode 方法 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @param redirectUri 重定向 URI + * @param state 状态 + * @return 授权码 + */ + String grantAuthorizationCodeForCode(Long userId, Integer userType, + String clientId, List scopes, + String redirectUri, String state); + + /** + * 授权码模式,第二阶段,获得 accessToken 访问令牌 + * + * 对应 Spring Security OAuth2 的 AuthorizationCodeTokenGranter 功能 + * + * @param clientId 客户端编号 + * @param code 授权码 + * @param redirectUri 重定向 URI + * @param state 状态 + * @return 访问令牌 + */ + OAuth2AccessTokenDO grantAuthorizationCodeForAccessToken(String clientId, String code, + String redirectUri, String state); + + /** + * 密码模式 + * + * 对应 Spring Security OAuth2 的 ResourceOwnerPasswordTokenGranter 功能 + * + * @param username 账号 + * @param password 密码 + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @return 访问令牌 + */ + OAuth2AccessTokenDO grantPassword(String username, String password, + String clientId, List scopes); + + /** + * 刷新模式 + * + * 对应 Spring Security OAuth2 的 ResourceOwnerPasswordTokenGranter 功能 + * + * @param refreshToken 刷新令牌 + * @param clientId 客户端编号 + * @return 访问令牌 + */ + OAuth2AccessTokenDO grantRefreshToken(String refreshToken, String clientId); + + /** + * 客户端模式 + * + * 对应 Spring Security OAuth2 的 ClientCredentialsTokenGranter 功能 + * + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @return 访问令牌 + */ + OAuth2AccessTokenDO grantClientCredentials(String clientId, List scopes); + + /** + * 移除访问令牌 + * + * 对应 Spring Security OAuth2 的 ConsumerTokenServices 的 revokeToken 方法 + * + * @param accessToken 访问令牌 + * @param clientId 客户端编号 + * @return 是否移除到 + */ + boolean revokeToken(String clientId, String accessToken); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.java new file mode 100644 index 0000000..adb07f9 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2CodeDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants; +import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; + +/** + * OAuth2 授予 Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class OAuth2GrantServiceImpl implements OAuth2GrantService { + + @Resource + private OAuth2TokenService oauth2TokenService; + @Resource + private OAuth2CodeService oauth2CodeService; + @Resource + private AdminAuthService adminAuthService; + + @Override + public OAuth2AccessTokenDO grantImplicit(Long userId, Integer userType, + String clientId, List scopes) { + return oauth2TokenService.createAccessToken(userId, userType, clientId, scopes); + } + + @Override + public String grantAuthorizationCodeForCode(Long userId, Integer userType, + String clientId, List scopes, + String redirectUri, String state) { + return oauth2CodeService.createAuthorizationCode(userId, userType, clientId, scopes, + redirectUri, state).getCode(); + } + + @Override + public OAuth2AccessTokenDO grantAuthorizationCodeForAccessToken(String clientId, String code, + String redirectUri, String state) { + OAuth2CodeDO codeDO = oauth2CodeService.consumeAuthorizationCode(code); + Assert.notNull(codeDO, "授权码不能为空"); // 防御性编程 + // 校验 clientId 是否匹配 + if (!StrUtil.equals(clientId, codeDO.getClientId())) { + throw exception(ErrorCodeConstants.OAUTH2_GRANT_CLIENT_ID_MISMATCH); + } + // 校验 redirectUri 是否匹配 + if (!StrUtil.equals(redirectUri, codeDO.getRedirectUri())) { + throw exception(ErrorCodeConstants.OAUTH2_GRANT_REDIRECT_URI_MISMATCH); + } + // 校验 state 是否匹配 + state = StrUtil.nullToDefault(state, ""); // 数据库 state 为 null 时,会设置为 "" 空串 + if (!StrUtil.equals(state, codeDO.getState())) { + throw exception(ErrorCodeConstants.OAUTH2_GRANT_STATE_MISMATCH); + } + + // 创建访问令牌 + return oauth2TokenService.createAccessToken(codeDO.getUserId(), codeDO.getUserType(), + codeDO.getClientId(), codeDO.getScopes()); + } + + @Override + public OAuth2AccessTokenDO grantPassword(String username, String password, String clientId, List scopes) { + // 使用账号 + 密码进行登录 + AdminUserDO user = adminAuthService.authenticate(username, password); + Assert.notNull(user, "用户不能为空!"); // 防御性编程 + + // 创建访问令牌 + return oauth2TokenService.createAccessToken(user.getId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes); + } + + @Override + public OAuth2AccessTokenDO grantRefreshToken(String refreshToken, String clientId) { + return oauth2TokenService.refreshAccessToken(refreshToken, clientId); + } + + @Override + public OAuth2AccessTokenDO grantClientCredentials(String clientId, List scopes) { + // TODO 芋艿:项目中使用 OAuth2 解决的是三方应用的授权,内部的 SSO 等问题,所以暂时不考虑 client_credentials 这个场景 + throw new UnsupportedOperationException("暂时不支持 client_credentials 授权模式"); + } + + @Override + public boolean revokeToken(String clientId, String accessToken) { + // 先查询,保证 clientId 时匹配的 + OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.getAccessToken(accessToken); + if (accessTokenDO == null || ObjectUtil.notEqual(clientId, accessTokenDO.getClientId())) { + return false; + } + // 再删除 + return oauth2TokenService.removeAccessToken(accessToken) != null; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java new file mode 100644 index 0000000..977d935 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; + +import java.util.List; + +/** + * OAuth2.0 Token Service 接口 + * + * 从功能上,和 Spring Security OAuth 的 DefaultTokenServices + JdbcTokenStore 的功能,提供访问令牌、刷新令牌的操作 + * + * @author 芋道源码 + */ +public interface OAuth2TokenService { + + /** + * 创建访问令牌 + * 注意:该流程中,会包含创建刷新令牌的创建 + * + * 参考 DefaultTokenServices 的 createAccessToken 方法 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @param clientId 客户端编号 + * @param scopes 授权范围 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes); + + /** + * 刷新访问令牌 + * + * 参考 DefaultTokenServices 的 refreshAccessToken 方法 + * + * @param refreshToken 刷新令牌 + * @param clientId 客户端编号 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenDO refreshAccessToken(String refreshToken, String clientId); + + /** + * 获得访问令牌 + * + * 参考 DefaultTokenServices 的 getAccessToken 方法 + * + * @param accessToken 访问令牌 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenDO getAccessToken(String accessToken); + + /** + * 校验访问令牌 + * + * @param accessToken 访问令牌 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenDO checkAccessToken(String accessToken); + + /** + * 移除访问令牌 + * 注意:该流程中,会移除相关的刷新令牌 + * + * 参考 DefaultTokenServices 的 revokeToken 方法 + * + * @param accessToken 刷新令牌 + * @return 访问令牌的信息 + */ + OAuth2AccessTokenDO removeAccessToken(String accessToken); + + /** + * 获得访问令牌分页 + * + * @param reqVO 请求 + * @return 访问令牌分页 + */ + PageResult getAccessTokenPage(OAuth2AccessTokenPageReqVO reqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java new file mode 100644 index 0000000..bde7d2f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -0,0 +1,166 @@ +package cn.iocoder.yudao.module.system.service.oauth2; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.OAuth2AccessTokenPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2ClientDO; +import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2RefreshTokenDO; +import cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2AccessTokenMapper; +import cn.iocoder.yudao.module.system.dal.mysql.oauth2.OAuth2RefreshTokenMapper; +import cn.iocoder.yudao.module.system.dal.redis.oauth2.OAuth2AccessTokenRedisDAO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +/** + * OAuth2.0 Token Service 实现类 + * + * @author 芋道源码 + */ +@Service +public class OAuth2TokenServiceImpl implements OAuth2TokenService { + + @Resource + private OAuth2AccessTokenMapper oauth2AccessTokenMapper; + @Resource + private OAuth2RefreshTokenMapper oauth2RefreshTokenMapper; + + @Resource + private OAuth2AccessTokenRedisDAO oauth2AccessTokenRedisDAO; + + @Resource + private OAuth2ClientService oauth2ClientService; + + @Override + @Transactional + public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes) { + OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId); + // 创建刷新令牌 + OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes); + // 创建访问令牌 + return createOAuth2AccessToken(refreshTokenDO, clientDO); + } + + @Override + public OAuth2AccessTokenDO refreshAccessToken(String refreshToken, String clientId) { + // 查询访问令牌 + OAuth2RefreshTokenDO refreshTokenDO = oauth2RefreshTokenMapper.selectByRefreshToken(refreshToken); + if (refreshTokenDO == null) { + throw exception0(GlobalErrorCodeConstants.BAD_REQUEST.getCode(), "无效的刷新令牌"); + } + + // 校验 Client 匹配 + OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId); + if (ObjectUtil.notEqual(clientId, refreshTokenDO.getClientId())) { + throw exception0(GlobalErrorCodeConstants.BAD_REQUEST.getCode(), "刷新令牌的客户端编号不正确"); + } + + // 移除相关的访问令牌 + List accessTokenDOs = oauth2AccessTokenMapper.selectListByRefreshToken(refreshToken); + if (CollUtil.isNotEmpty(accessTokenDOs)) { + oauth2AccessTokenMapper.deleteBatchIds(convertSet(accessTokenDOs, OAuth2AccessTokenDO::getId)); + oauth2AccessTokenRedisDAO.deleteList(convertSet(accessTokenDOs, OAuth2AccessTokenDO::getAccessToken)); + } + + // 已过期的情况下,删除刷新令牌 + if (DateUtils.isExpired(refreshTokenDO.getExpiresTime())) { + oauth2RefreshTokenMapper.deleteById(refreshTokenDO.getId()); + throw exception0(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "刷新令牌已过期"); + } + + // 创建访问令牌 + return createOAuth2AccessToken(refreshTokenDO, clientDO); + } + + @Override + public OAuth2AccessTokenDO getAccessToken(String accessToken) { + // 优先从 Redis 中获取 + OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenRedisDAO.get(accessToken); + if (accessTokenDO != null) { + return accessTokenDO; + } + + // 获取不到,从 MySQL 中获取 + accessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(accessToken); + // 如果在 MySQL 存在,则往 Redis 中写入 + if (accessTokenDO != null && !DateUtils.isExpired(accessTokenDO.getExpiresTime())) { + oauth2AccessTokenRedisDAO.set(accessTokenDO); + } + return accessTokenDO; + } + + @Override + public OAuth2AccessTokenDO checkAccessToken(String accessToken) { + OAuth2AccessTokenDO accessTokenDO = getAccessToken(accessToken); + if (accessTokenDO == null) { + throw exception0(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌不存在"); + } + if (DateUtils.isExpired(accessTokenDO.getExpiresTime())) { + throw exception0(GlobalErrorCodeConstants.UNAUTHORIZED.getCode(), "访问令牌已过期"); + } + return accessTokenDO; + } + + @Override + public OAuth2AccessTokenDO removeAccessToken(String accessToken) { + // 删除访问令牌 + OAuth2AccessTokenDO accessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(accessToken); + if (accessTokenDO == null) { + return null; + } + oauth2AccessTokenMapper.deleteById(accessTokenDO.getId()); + oauth2AccessTokenRedisDAO.delete(accessToken); + // 删除刷新令牌 + oauth2RefreshTokenMapper.deleteByRefreshToken(accessTokenDO.getRefreshToken()); + return accessTokenDO; + } + + @Override + public PageResult getAccessTokenPage(OAuth2AccessTokenPageReqVO reqVO) { + return oauth2AccessTokenMapper.selectPage(reqVO); + } + + private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2RefreshTokenDO refreshTokenDO, OAuth2ClientDO clientDO) { + OAuth2AccessTokenDO accessTokenDO = new OAuth2AccessTokenDO().setAccessToken(generateAccessToken()) + .setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType()) + .setClientId(clientDO.getClientId()).setScopes(refreshTokenDO.getScopes()) + .setRefreshToken(refreshTokenDO.getRefreshToken()) + .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds())); + accessTokenDO.setTenantId(TenantContextHolder.getTenantId()); // 手动设置租户编号,避免缓存到 Redis 的时候,无对应的租户编号 + oauth2AccessTokenMapper.insert(accessTokenDO); + // 记录到 Redis 中 + oauth2AccessTokenRedisDAO.set(accessTokenDO); + return accessTokenDO; + } + + private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List scopes) { + OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken()) + .setUserId(userId).setUserType(userType) + .setClientId(clientDO.getClientId()).setScopes(scopes) + .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds())); + oauth2RefreshTokenMapper.insert(refreshToken); + return refreshToken; + } + + private static String generateAccessToken() { + return IdUtil.fastSimpleUUID(); + } + + private static String generateRefreshToken() { + return IdUtil.fastSimpleUUID(); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.java new file mode 100644 index 0000000..17859d1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; + +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * 菜单 Service 接口 + * + * @author 芋道源码 + */ +public interface MenuService { + + /** + * 创建菜单 + * + * @param createReqVO 菜单信息 + * @return 创建出来的菜单编号 + */ + Long createMenu(MenuSaveVO createReqVO); + + List createBatchMenu(List voList); + + /** + * 更新菜单 + * + * @param updateReqVO 菜单信息 + */ + void updateMenu(MenuSaveVO updateReqVO); + + /** + * 删除菜单 + * + * @param id 菜单编号 + */ + void deleteMenu(Long id,String type); + + /** + * 获得所有菜单列表 + * + * @return 菜单列表 + */ + List getMenuList(); + + /** + * 基于租户,筛选菜单列表 + * 注意,如果是系统租户,返回的还是全菜单 + * + * @param reqVO 筛选条件请求 VO + * @return 菜单列表 + */ + List getMenuListByTenant(MenuListReqVO reqVO); + + /** + * 筛选菜单列表 + * + * @param reqVO 筛选条件请求 VO + * @return 菜单列表 + */ + List getMenuList(MenuListReqVO reqVO); + + /** + * 获得权限对应的菜单编号数组 + * + * @param permission 权限标识 + * @return 数组 + */ + List getMenuIdListByPermissionFromCache(String permission); + + /** + * 获得菜单 + * + * @param id 菜单编号 + * @return 菜单 + */ + MenuDO getMenu(Long id); + + /** + * 获得菜单数组 + * + * @param ids 菜单编号数组 + * @return 菜单数组 + */ + List getMenuList(Collection ids); + + //获取所有按钮权限 + Set getAllButtonPermissionSets(); +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java new file mode 100644 index 0000000..5b85f67 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java @@ -0,0 +1,272 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuSaveVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; +import cn.iocoder.yudao.module.system.service.tenant.TenantService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO.ID_ROOT; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 菜单 Service 实现 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class MenuServiceImpl implements MenuService { + + @Resource + private MenuMapper menuMapper; + @Resource + private PermissionService permissionService; + @Resource + @Lazy // 延迟,避免循环依赖报错 + private TenantService tenantService; + + @Override + @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#createReqVO.permission", + condition = "#createReqVO.permission != null") + public Long createMenu(MenuSaveVO createReqVO) { + // 校验父菜单存在 + validateParentMenu(createReqVO.getParentId(), null); + // 校验菜单(自己) + validateMenu(createReqVO.getParentId(), createReqVO.getName(), null); + + // 插入数据库 + MenuDO menu = BeanUtils.toBean(createReqVO, MenuDO.class); + initMenuProperty(menu); + menuMapper.insert(menu); + // 返回 + return menu.getId(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public List createBatchMenu(List volist) { + MenuServiceImpl proxyService = SpringUtil.getBean(MenuServiceImpl.class); + + List idList=new ArrayList<>(); + for(MenuSaveVO createReqVO:volist){ + Long id = proxyService.createMenu(createReqVO); + idList.add(id); + } + + // 返回 + return idList; + } + + @Override + @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,因为 permission 如果变更,涉及到新老两个 permission。直接清理,简单有效 + public void updateMenu(MenuSaveVO updateReqVO) { + // 校验更新的菜单是否存在 + if (menuMapper.selectById(updateReqVO.getId()) == null) { + throw exception(MENU_NOT_EXISTS); + } + // 校验父菜单存在 + validateParentMenu(updateReqVO.getParentId(), updateReqVO.getId()); + // 校验菜单(自己) + validateMenu(updateReqVO.getParentId(), updateReqVO.getName(), updateReqVO.getId()); + + // 更新到数据库 + MenuDO updateObj = BeanUtils.toBean(updateReqVO, MenuDO.class); + initMenuProperty(updateObj); + menuMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,因为此时不知道 id 对应的 permission 是多少。直接清理,简单有效 + public void deleteMenu(Long id,String type) { + if(ObjectUtil.isNotEmpty(type) && ObjectUtil.equal(type,"2")){ + // 标记删除 + menuMapper.deleteById(id); + // 删除授予给角色的权限 + permissionService.processMenuDeleted(id); + + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(MenuDO::getParentId,id); + List menuDOList = menuMapper.selectList(wrapper); + if(ObjectUtil.isNotEmpty(menuDOList)){//有下级 + for(MenuDO menuDO:menuDOList){ + LambdaQueryWrapper subWrapper=new LambdaQueryWrapper<>(); + subWrapper.eq(MenuDO::getParentId,menuDO.getId()); + List subMenuDOList = menuMapper.selectList(subWrapper); + if(ObjectUtil.isNotEmpty(subMenuDOList)){//有下级 + for(MenuDO subMenuDO:subMenuDOList){ + // 标记删除 + menuMapper.deleteById(subMenuDO.getId()); + // 删除授予给角色的权限 + permissionService.processMenuDeleted(subMenuDO.getId()); + } + } + + + // 标记删除 + menuMapper.deleteById(menuDO.getId()); + // 删除授予给角色的权限 + permissionService.processMenuDeleted(menuDO.getId()); + } + } + return; + } + + + // 校验是否还有子菜单 + if (menuMapper.selectCountByParentId(id) > 0) { + throw exception(MENU_EXISTS_CHILDREN); + } + // 校验删除的菜单是否存在 + if (menuMapper.selectById(id) == null) { + throw exception(MENU_NOT_EXISTS); + } + // 标记删除 + menuMapper.deleteById(id); + // 删除授予给角色的权限 + permissionService.processMenuDeleted(id); + } + + @Override + public List getMenuList() { + return menuMapper.selectList(); + } + + @Override + public List getMenuListByTenant(MenuListReqVO reqVO) { + List menus = getMenuList(reqVO); + // 开启多租户的情况下,需要过滤掉未开通的菜单 + tenantService.handleTenantMenu(menuIds -> menus.removeIf(menu -> !CollUtil.contains(menuIds, menu.getId()))); + return menus; + } + + @Override + public List getMenuList(MenuListReqVO reqVO) { + return menuMapper.selectList(reqVO); + } + + @Override + @Cacheable(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, key = "#permission") + public List getMenuIdListByPermissionFromCache(String permission) { + List menus = menuMapper.selectListByPermission(permission); + return convertList(menus, MenuDO::getId); + } + + @Override + public MenuDO getMenu(Long id) { + return menuMapper.selectById(id); + } + + @Override + public List getMenuList(Collection ids) { + return menuMapper.selectBatchIds(ids); + } + + //获取所有按钮权限 + @Override + public Set getAllButtonPermissionSets(){ + LambdaQueryWrapper menuWrapper=new LambdaQueryWrapper<>(); + menuWrapper.eq(MenuDO::getType,3);//按钮 + menuWrapper.isNotNull(MenuDO::getPermission);//权限不为空 + + return menuMapper.selectList(menuWrapper).stream() + .map(MenuDO::getPermission) + .collect(Collectors.toSet()); + } + + /** + * 校验父菜单是否合法 + *

    + * 1. 不能设置自己为父菜单 + * 2. 父菜单不存在 + * 3. 父菜单必须是 {@link MenuTypeEnum#MENU} 菜单类型 + * + * @param parentId 父菜单编号 + * @param childId 当前菜单编号 + */ + @VisibleForTesting + void validateParentMenu(Long parentId, Long childId) { + if (parentId == null || ID_ROOT.equals(parentId)) { + return; + } + // 不能设置自己为父菜单 + if (parentId.equals(childId)) { + throw exception(MENU_PARENT_ERROR); + } + MenuDO menu = menuMapper.selectById(parentId); + // 父菜单不存在 + if (menu == null) { + throw exception(MENU_PARENT_NOT_EXISTS); + } + // 父菜单必须是目录或者菜单类型 + if (!MenuTypeEnum.DIR.getType().equals(menu.getType()) + && !MenuTypeEnum.MENU.getType().equals(menu.getType())) { + throw exception(MENU_PARENT_NOT_DIR_OR_MENU); + } + } + + /** + * 校验菜单是否合法 + *

    + * 1. 校验相同父菜单编号下,是否存在相同的菜单名 + * + * @param name 菜单名字 + * @param parentId 父菜单编号 + * @param id 菜单编号 + */ + @VisibleForTesting + void validateMenu(Long parentId, String name, Long id) { + MenuDO menu = menuMapper.selectByParentIdAndName(parentId, name); + if (menu == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的菜单 + if (id == null) { + throw exception(MENU_NAME_DUPLICATE); + } + if (!menu.getId().equals(id)) { + throw exception(MENU_NAME_DUPLICATE); + } + } + + /** + * 初始化菜单的通用属性。 + *

    + * 例如说,只有目录或者菜单类型的菜单,才设置 icon + * + * @param menu 菜单 + */ + private void initMenuProperty(MenuDO menu) { + // 菜单为按钮类型时,无需 component、icon、path 属性,进行置空 + if (MenuTypeEnum.BUTTON.getType().equals(menu.getType())) { + menu.setComponent(""); + menu.setComponentName(""); + menu.setIcon(""); + menu.setPath(""); + } + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java new file mode 100644 index 0000000..ee235b0 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java @@ -0,0 +1,149 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; + +import java.util.Collection; +import java.util.Set; + +import static java.util.Collections.singleton; + +/** + * 权限 Service 接口 + *

    + * 提供用户-角色、角色-菜单、角色-部门的关联权限处理 + * + * @author 芋道源码 + */ +public interface PermissionService { + + /** + * 判断是否有权限,任一一个即可 + * + * @param userId 用户编号 + * @param permissions 权限 + * @return 是否 + */ + boolean hasAnyPermissions(Long userId, String... permissions); + + /** + * 判断是否有角色,任一一个即可 + * + * @param roles 角色数组 + * @return 是否 + */ + boolean hasAnyRoles(Long userId, String... roles); + + // ========== 角色-菜单的相关方法 ========== + + /** + * 设置角色菜单 + * + * @param roleId 角色编号 + * @param menuIds 菜单编号集合 + */ + void assignRoleMenu(Long roleId, Set menuIds); + + /** + * 处理角色删除时,删除关联授权数据 + * + * @param roleId 角色编号 + */ + void processRoleDeleted(Long roleId); + + /** + * 处理菜单删除时,删除关联授权数据 + * + * @param menuId 菜单编号 + */ + void processMenuDeleted(Long menuId); + + /** + * 获得角色拥有的菜单编号集合 + * + * @param roleId 角色编号 + * @return 菜单编号集合 + */ + default Set getRoleMenuListByRoleId(Long roleId) { + return getRoleMenuListByRoleId(singleton(roleId)); + } + + /** + * 获得角色们拥有的菜单编号集合 + * + * @param roleIds 角色编号数组 + * @return 菜单编号集合 + */ + Set getRoleMenuListByRoleId(Collection roleIds); + + /** + * 获得拥有指定菜单的角色编号数组,从缓存中获取 + * + * @param menuId 菜单编号 + * @return 角色编号数组 + */ + Set getMenuRoleIdListByMenuIdFromCache(Long menuId); + + // ========== 用户-角色的相关方法 ========== + + /** + * 设置用户角色 + * + * @param userId 角色编号 + * @param roleIds 角色编号集合 + */ + void assignUserRole(Long userId, Set roleIds); + + /** + * 处理用户删除时,删除关联授权数据 + * + * @param userId 用户编号 + */ + void processUserDeleted(Long userId); + + /** + * 获得拥有多个角色的用户编号集合 + * + * @param roleIds 角色编号集合 + * @return 用户编号集合 + */ + Set getUserRoleIdListByRoleId(Collection roleIds); + + /** + * 获得用户拥有的角色编号集合 + * + * @param userId 用户编号 + * @return 角色编号集合 + */ + Set getUserRoleIdListByUserId(Long userId); + + /** + * 获得用户拥有的角色编号集合,从缓存中获取 + * + * @param userId 用户编号 + * @return 角色编号集合 + */ + Set getUserRoleIdListByUserIdFromCache(Long userId); + + // ========== 用户-部门的相关方法 ========== + + /** + * 设置角色的数据权限 + * + * @param roleId 角色编号 + * @param dataScope 数据范围 + * @param dataScopeDeptIds 部门编号数组 + */ + void assignRoleDataScope(Long roleId, Integer dataScope, Set dataScopeDeptIds); + + /** + * 获得登陆用户的部门数据权限 + * + * @param userId 用户编号 + * @return 部门数据权限 + */ + DeptDataPermissionRespDTO getDeptDataPermission(Long userId); + + //清除缓存 + Boolean clearCache(Long userId); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java new file mode 100644 index 0000000..d87cd85 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java @@ -0,0 +1,371 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper; +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.jeelowcode.IJeeLowCodePermissionService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Suppliers; +import com.google.common.collect.Sets; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.Caching; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.function.Supplier; + +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; + +/** + * 权限 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class PermissionServiceImpl implements PermissionService { + + @Resource + private RoleMenuMapper roleMenuMapper; + @Resource + private UserRoleMapper userRoleMapper; + + @Resource + private RoleService roleService; + @Resource + private MenuService menuService; + @Resource + private DeptService deptService; + @Resource + private AdminUserService userService; + + @Autowired + private IJeeLowCodePermissionService jeeLowCodePermissionService; + + @Override + public boolean hasAnyPermissions(Long userId, String... permissions) { + // 如果为空,说明已经有权限 + if (ArrayUtil.isEmpty(permissions)) { + return true; + } + + // 获得当前登录的角色。如果为空,说明没有权限 + List roles = getEnableUserRoleListByUserIdFromCache(userId); + if (CollUtil.isEmpty(roles)) { + return false; + } + Set roleIds = convertSet(roles, RoleDO::getId); + // 情况一:遍历判断每个权限,如果有一满足,说明有权限 + for (String permissionListStr : permissions) { + List permission2List = jeeLowCodePermissionService.permission2List(permissionListStr); + boolean permissionFlag=true; + for(String permission:permission2List){ + boolean jeeLowCodeFlag = jeeLowCodePermissionService.hasAnyPermission(userId, roleIds,permission); + if(jeeLowCodeFlag){//里面校验通过,则直接说明有权限 + continue; + } + + if (hasAnyPermission(roles, permission)) { + continue; + } + permissionFlag=false;//有一个没有权限的话 = 所有没有权限 + } + if(permissionFlag){ + return permissionFlag; + } + } + + // 情况二:如果是超管,也说明有权限 + return roleService.hasAnySuperAdmin(convertSet(roles, RoleDO::getId)); + } + + /** + * 判断指定角色,是否拥有该 permission 权限 + * + * @param roles 指定角色数组 + * @param permission 权限标识 + * @return 是否拥有 + */ + private boolean hasAnyPermission(List roles, String permission) { + List menuIds = menuService.getMenuIdListByPermissionFromCache(permission); + // 采用严格模式,如果权限找不到对应的 Menu 的话,也认为没有权限 + if (CollUtil.isEmpty(menuIds)) { + return false; + } + + // 判断是否有权限 + Set roleIds = convertSet(roles, RoleDO::getId); + for (Long menuId : menuIds) { + // 获得拥有该菜单的角色编号集合 + Set menuRoleIds = getSelf().getMenuRoleIdListByMenuIdFromCache(menuId); + // 如果有交集,说明有权限 + if (CollUtil.containsAny(menuRoleIds, roleIds)) { + return true; + } + } + return false; + } + + @Override + public boolean hasAnyRoles(Long userId, String... roles) { + // 如果为空,说明已经有权限 + if (ArrayUtil.isEmpty(roles)) { + return true; + } + + // 获得当前登录的角色。如果为空,说明没有权限 + List roleList = getEnableUserRoleListByUserIdFromCache(userId); + if (CollUtil.isEmpty(roleList)) { + return false; + } + + // 判断是否有角色 + Set userRoles = convertSet(roleList, RoleDO::getCode); + return CollUtil.containsAny(userRoles, Sets.newHashSet(roles)); + } + + // ========== 角色-菜单的相关方法 ========== + + @Override + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + @CacheEvict(value = RedisKeyConstants.MENU_ROLE_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,主要一次更新涉及到的 menuIds 较多,反倒批量会更快 + public void assignRoleMenu(Long roleId, Set menuIds) { + // 获得角色拥有菜单编号 + Set dbMenuIds = convertSet(roleMenuMapper.selectListByRoleId(roleId), RoleMenuDO::getMenuId); + // 计算新增和删除的菜单编号 + Set menuIdList = CollUtil.emptyIfNull(menuIds); + Collection createMenuIds = CollUtil.subtract(menuIdList, dbMenuIds); + Collection deleteMenuIds = CollUtil.subtract(dbMenuIds, menuIdList); + // 执行新增和删除。对于已经授权的菜单,不用做任何处理 + if (CollUtil.isNotEmpty(createMenuIds)) { + roleMenuMapper.insertBatch(CollectionUtils.convertList(createMenuIds, menuId -> { + RoleMenuDO entity = new RoleMenuDO(); + entity.setRoleId(roleId); + entity.setMenuId(menuId); + return entity; + })); + } + if (CollUtil.isNotEmpty(deleteMenuIds)) { + roleMenuMapper.deleteListByRoleIdAndMenuIds(roleId, deleteMenuIds); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + @Caching(evict = { + @CacheEvict(value = RedisKeyConstants.MENU_ROLE_ID_LIST, + allEntries = true), // allEntries 清空所有缓存,此处无法方便获得 roleId 对应的 menu 缓存们 + @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, + allEntries = true) // allEntries 清空所有缓存,此处无法方便获得 roleId 对应的 user 缓存们 + }) + public void processRoleDeleted(Long roleId) { + // 标记删除 UserRole + userRoleMapper.deleteListByRoleId(roleId); + // 标记删除 RoleMenu + roleMenuMapper.deleteListByRoleId(roleId); + } + + @Override + @CacheEvict(value = RedisKeyConstants.MENU_ROLE_ID_LIST, key = "#menuId") + public void processMenuDeleted(Long menuId) { + roleMenuMapper.deleteListByMenuId(menuId); + } + + @Override + public Set getRoleMenuListByRoleId(Collection roleIds) { + if (CollUtil.isEmpty(roleIds)) { + return Collections.emptySet(); + } + + // 如果是管理员的情况下,获取全部菜单编号 + if (roleService.hasAnySuperAdmin(roleIds)) { + return convertSet(menuService.getMenuList(), MenuDO::getId); + } + // 如果是非管理员的情况下,获得拥有的菜单编号 + return convertSet(roleMenuMapper.selectListByRoleId(roleIds), RoleMenuDO::getMenuId); + } + + @Override + @Cacheable(value = RedisKeyConstants.MENU_ROLE_ID_LIST, key = "#menuId") + public Set getMenuRoleIdListByMenuIdFromCache(Long menuId) { + return convertSet(roleMenuMapper.selectListByMenuId(menuId), RoleMenuDO::getRoleId); + } + + // ========== 用户-角色的相关方法 ========== + + @Override + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") + public void assignUserRole(Long userId, Set roleIds) { + // 获得角色拥有角色编号 + Set dbRoleIds = convertSet(userRoleMapper.selectListByUserId(userId), + UserRoleDO::getRoleId); + // 计算新增和删除的角色编号 + Set roleIdList = CollUtil.emptyIfNull(roleIds); + Collection createRoleIds = CollUtil.subtract(roleIdList, dbRoleIds); + Collection deleteMenuIds = CollUtil.subtract(dbRoleIds, roleIdList); + // 执行新增和删除。对于已经授权的角色,不用做任何处理 + if (!CollectionUtil.isEmpty(createRoleIds)) { + userRoleMapper.insertBatch(CollectionUtils.convertList(createRoleIds, roleId -> { + UserRoleDO entity = new UserRoleDO(); + entity.setUserId(userId); + entity.setRoleId(roleId); + return entity; + })); + } + if (!CollectionUtil.isEmpty(deleteMenuIds)) { + userRoleMapper.deleteListByUserIdAndRoleIdIds(userId, deleteMenuIds); + } + } + + @Override + @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") + public void processUserDeleted(Long userId) { + userRoleMapper.deleteListByUserId(userId); + } + + @Override + public Set getUserRoleIdListByUserId(Long userId) { + return convertSet(userRoleMapper.selectListByUserId(userId), UserRoleDO::getRoleId); + } + + @Override + @Cacheable(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") + public Set getUserRoleIdListByUserIdFromCache(Long userId) { + return getUserRoleIdListByUserId(userId); + } + + @Override + public Set getUserRoleIdListByRoleId(Collection roleIds) { + return convertSet(userRoleMapper.selectListByRoleIds(roleIds), UserRoleDO::getUserId); + } + + /** + * 获得用户拥有的角色,并且这些角色是开启状态的 + * + * @param userId 用户编号 + * @return 用户拥有的角色 + */ + @VisibleForTesting + List getEnableUserRoleListByUserIdFromCache(Long userId) { + // 获得用户拥有的角色编号 + Set roleIds = getSelf().getUserRoleIdListByUserIdFromCache(userId); + // 获得角色数组,并移除被禁用的 + List roles = roleService.getRoleListFromCache(roleIds); + roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); + return roles; + } + + // ========== 用户-部门的相关方法 ========== + + @Override + public void assignRoleDataScope(Long roleId, Integer dataScope, Set dataScopeDeptIds) { + roleService.updateRoleDataScope(roleId, dataScope, dataScopeDeptIds); + } + + @Override + @DataPermission(enable = false) // 关闭数据权限,不然就会出现递归获取数据权限的问题 + public DeptDataPermissionRespDTO getDeptDataPermission(Long userId) { + // 获得用户的角色 + List roles = getEnableUserRoleListByUserIdFromCache(userId); + + // 如果角色为空,则只能查看自己 + DeptDataPermissionRespDTO result = new DeptDataPermissionRespDTO(); + if (CollUtil.isEmpty(roles)) { + result.setSelf(true); + return result; + } + + // 获得用户的部门编号的缓存,通过 Guava 的 Suppliers 惰性求值,即有且仅有第一次发起 DB 的查询 + Supplier userDeptId = Suppliers.memoize(() -> userService.getUser(userId).getDeptId()); + // 遍历每个角色,计算 + for (RoleDO role : roles) { + // 为空时,跳过 + if (role.getDataScope() == null) { + continue; + } + // 情况一,ALL + if (Objects.equals(role.getDataScope(), DataScopeEnum.ALL.getScope())) { + result.setAll(true); + continue; + } + // 情况二,DEPT_CUSTOM + if (Objects.equals(role.getDataScope(), DataScopeEnum.DEPT_CUSTOM.getScope())) { + CollUtil.addAll(result.getDeptIds(), role.getDataScopeDeptIds()); + // 自定义可见部门时,保证可以看到自己所在的部门。否则,一些场景下可能会有问题。 + // 例如说,登录时,基于 t_user 的 username 查询会可能被 dept_id 过滤掉 + CollUtil.addAll(result.getDeptIds(), userDeptId.get()); + continue; + } + // 情况三,DEPT_ONLY + if (Objects.equals(role.getDataScope(), DataScopeEnum.DEPT_ONLY.getScope())) { + CollectionUtils.addIfNotNull(result.getDeptIds(), userDeptId.get()); + continue; + } + // 情况四,DEPT_DEPT_AND_CHILD + if (Objects.equals(role.getDataScope(), DataScopeEnum.DEPT_AND_CHILD.getScope())) { + CollUtil.addAll(result.getDeptIds(), deptService.getChildDeptIdListFromCache(userDeptId.get())); + // 添加本身部门编号 + CollUtil.addAll(result.getDeptIds(), userDeptId.get()); + continue; + } + // 情况五,SELF + if (Objects.equals(role.getDataScope(), DataScopeEnum.SELF.getScope())) { + result.setSelf(true); + continue; + } + // 未知情况,error log 即可 + log.error("[getDeptDataPermission][LoginUser({}) role({}) 无法处理]", userId, toJsonString(result)); + } + return result; + } + + //清除缓存 + @Override + @Caching(evict = { + @CacheEvict(value = RedisKeyConstants.PERMISSION_MENU_ID_LIST, allEntries = true), // all + @CacheEvict(value = RedisKeyConstants.MENU_ROLE_ID_LIST,allEntries = true), // all + @CacheEvict(value = RedisKeyConstants.USER_ROLE_ID_LIST, key = "#userId") + }) + public Boolean clearCache(Long userId){ + try{ + Thread.sleep(500L); + }catch (Exception e){ + + } + return true; + } + + /** + * 获得自身的代理对象,解决 AOP 生效问题 + * + * @return 自己 + */ + private PermissionServiceImpl getSelf() { + return SpringUtil.getBean(getClass()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java new file mode 100644 index 0000000..a97eb79 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java @@ -0,0 +1,132 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +/** + * 角色 Service 接口 + * + * @author 芋道源码 + */ +public interface RoleService { + + /** + * 创建角色 + * + * @param createReqVO 创建角色信息 + * @param type 角色类型 + * @return 角色编号 + */ + Long createRole(@Valid RoleSaveReqVO createReqVO, Integer type); + + /** + * 更新角色 + * + * @param updateReqVO 更新角色信息 + */ + void updateRole(@Valid RoleSaveReqVO updateReqVO); + + /** + * 删除角色 + * + * @param id 角色编号 + */ + void deleteRole(Long id); + + /** + * 更新角色状态 + * + * @param id 角色编号 + * @param status 状态 + */ + void updateRoleStatus(Long id, Integer status); + + /** + * 设置角色的数据权限 + * + * @param id 角色编号 + * @param dataScope 数据范围 + * @param dataScopeDeptIds 部门编号数组 + */ + void updateRoleDataScope(Long id, Integer dataScope, Set dataScopeDeptIds); + + /** + * 获得角色 + * + * @param id 角色编号 + * @return 角色 + */ + RoleDO getRole(Long id); + + /** + * 获得角色,从缓存中 + * + * @param id 角色编号 + * @return 角色 + */ + RoleDO getRoleFromCache(Long id); + + /** + * 获得角色列表 + * + * @param ids 角色编号数组 + * @return 角色列表 + */ + List getRoleList(Collection ids); + + /** + * 获得角色数组,从缓存中 + * + * @param ids 角色编号数组 + * @return 角色数组 + */ + List getRoleListFromCache(Collection ids); + + /** + * 获得角色列表 + * + * @param statuses 筛选的状态 + * @return 角色列表 + */ + List getRoleListByStatus(Collection statuses); + + /** + * 获得所有角色列表 + * + * @return 角色列表 + */ + List getRoleList(); + + /** + * 获得角色分页 + * + * @param reqVO 角色分页查询 + * @return 角色分页结果 + */ + PageResult getRolePage(RolePageReqVO reqVO); + + /** + * 判断角色编号数组中,是否有管理员 + * + * @param ids 角色编号数组 + * @return 是否有管理员 + */ + boolean hasAnySuperAdmin(Collection ids); + + /** + * 校验角色们是否有效。如下情况,视为无效: + * 1. 角色编号不存在 + * 2. 角色被禁用 + * + * @param ids 角色编号数组 + */ + void validateRoleList(Collection ids); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java new file mode 100644 index 0000000..f29a76a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -0,0 +1,250 @@ +package cn.iocoder.yudao.module.system.service.permission; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.extra.spring.SpringUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; +import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; +import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 角色 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class RoleServiceImpl implements RoleService { + + @Resource + private PermissionService permissionService; + + @Resource + private RoleMapper roleMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createRole(RoleSaveReqVO createReqVO, Integer type) { + // 校验角色 + validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null); + // 插入到数据库 + RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class); + role.setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType())); + role.setStatus(CommonStatusEnum.ENABLE.getStatus()); + role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限 + roleMapper.insert(role); + // 返回 + return role.getId(); + } + + @Override + @CacheEvict(value = RedisKeyConstants.ROLE, key = "#updateReqVO.id") + public void updateRole(RoleSaveReqVO updateReqVO) { + // 校验是否可以更新 + validateRoleForUpdate(updateReqVO.getId()); + // 校验角色的唯一字段是否重复 + validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId()); + + // 更新到数据库 + RoleDO updateObj = BeanUtils.toBean(updateReqVO, RoleDO.class); + roleMapper.updateById(updateObj); + } + + @Override + @CacheEvict(value = RedisKeyConstants.ROLE, key = "#id") + public void updateRoleStatus(Long id, Integer status) { + // 校验是否可以更新 + validateRoleForUpdate(id); + + // 更新状态 + RoleDO updateObj = new RoleDO().setId(id).setStatus(status); + roleMapper.updateById(updateObj); + } + + @Override + @CacheEvict(value = RedisKeyConstants.ROLE, key = "#id") + public void updateRoleDataScope(Long id, Integer dataScope, Set dataScopeDeptIds) { + // 校验是否可以更新 + validateRoleForUpdate(id); + + // 更新数据范围 + RoleDO updateObject = new RoleDO(); + updateObject.setId(id); + updateObject.setDataScope(dataScope); + updateObject.setDataScopeDeptIds(dataScopeDeptIds); + roleMapper.updateById(updateObject); + } + + @Override + @Transactional(rollbackFor = Exception.class) + @CacheEvict(value = RedisKeyConstants.ROLE, key = "#id") + public void deleteRole(Long id) { + // 校验是否可以更新 + validateRoleForUpdate(id); + // 标记删除 + roleMapper.deleteById(id); + // 删除相关数据 + permissionService.processRoleDeleted(id); + } + + /** + * 校验角色的唯一字段是否重复 + * + * 1. 是否存在相同名字的角色 + * 2. 是否存在相同编码的角色 + * + * @param name 角色名字 + * @param code 角色额编码 + * @param id 角色编号 + */ + @VisibleForTesting + void validateRoleDuplicate(String name, String code, Long id) { + // 0. 超级管理员,不允许创建 + if (RoleCodeEnum.isSuperAdmin(code)) { + throw exception(ROLE_ADMIN_CODE_ERROR, code); + } + // 1. 该 name 名字被其它角色所使用 + RoleDO role = roleMapper.selectByName(name); + if (role != null && !role.getId().equals(id)) { + throw exception(ROLE_NAME_DUPLICATE, name); + } + // 2. 是否存在相同编码的角色 + if (!StringUtils.hasText(code)) { + return; + } + // 该 code 编码被其它角色所使用 + role = roleMapper.selectByCode(code); + if (role != null && !role.getId().equals(id)) { + throw exception(ROLE_CODE_DUPLICATE, code); + } + } + + /** + * 校验角色是否可以被更新 + * + * @param id 角色编号 + */ + @VisibleForTesting + void validateRoleForUpdate(Long id) { + RoleDO roleDO = roleMapper.selectById(id); + if (roleDO == null) { + throw exception(ROLE_NOT_EXISTS); + } + // 内置角色,不允许删除 + if (RoleTypeEnum.SYSTEM.getType().equals(roleDO.getType())) { + throw exception(ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE); + } + } + + @Override + public RoleDO getRole(Long id) { + return roleMapper.selectById(id); + } + + @Override + @Cacheable(value = RedisKeyConstants.ROLE, key = "#id", + unless = "#result == null") + public RoleDO getRoleFromCache(Long id) { + return roleMapper.selectById(id); + } + + + @Override + public List getRoleListByStatus(Collection statuses) { + return roleMapper.selectListByStatus(statuses); + } + + @Override + public List getRoleList() { + return roleMapper.selectList(); + } + + @Override + public List getRoleList(Collection ids) { + if (CollectionUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return roleMapper.selectBatchIds(ids); + } + + @Override + public List getRoleListFromCache(Collection ids) { + if (CollectionUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + // 这里采用 for 循环从缓存中获取,主要考虑 Spring CacheManager 无法批量操作的问题 + RoleServiceImpl self = getSelf(); + return CollectionUtils.convertList(ids, self::getRoleFromCache); + } + + @Override + public PageResult getRolePage(RolePageReqVO reqVO) { + return roleMapper.selectPage(reqVO); + } + + @Override + public boolean hasAnySuperAdmin(Collection ids) { + if (CollectionUtil.isEmpty(ids)) { + return false; + } + RoleServiceImpl self = getSelf(); + return ids.stream().anyMatch(id -> { + RoleDO role = self.getRoleFromCache(id); + return role != null && RoleCodeEnum.isSuperAdmin(role.getCode()); + }); + } + + @Override + public void validateRoleList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得角色信息 + List roles = roleMapper.selectBatchIds(ids); + Map roleMap = convertMap(roles, RoleDO::getId); + // 校验 + ids.forEach(id -> { + RoleDO role = roleMap.get(id); + if (role == null) { + throw exception(ROLE_NOT_EXISTS); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) { + throw exception(ROLE_IS_DISABLE, role.getName()); + } + }); + } + + /** + * 获得自身的代理对象,解决 AOP 生效问题 + * + * @return 自己 + */ + private RoleServiceImpl getSelf() { + return SpringUtil.getBean(getClass()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java new file mode 100644 index 0000000..4f03632 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.module.system.service.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordSaveVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; + +import javax.validation.Valid; +import java.util.List; +import java.util.Set; + +/** + * 敏感词 Service 接口 + * + * @author 永不言败 + */ +public interface SensitiveWordService { + + /** + * 创建敏感词 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSensitiveWord(@Valid SensitiveWordSaveVO createReqVO); + + /** + * 更新敏感词 + * + * @param updateReqVO 更新信息 + */ + void updateSensitiveWord(@Valid SensitiveWordSaveVO updateReqVO); + + /** + * 删除敏感词 + * + * @param id 编号 + */ + void deleteSensitiveWord(Long id); + + /** + * 获得敏感词 + * + * @param id 编号 + * @return 敏感词 + */ + SensitiveWordDO getSensitiveWord(Long id); + + /** + * 获得敏感词列表 + * + * @return 敏感词列表 + */ + List getSensitiveWordList(); + + /** + * 获得敏感词分页 + * + * @param pageReqVO 分页查询 + * @return 敏感词分页 + */ + PageResult getSensitiveWordPage(SensitiveWordPageReqVO pageReqVO); + + /** + * 获得所有敏感词的标签数组 + * + * @return 标签数组 + */ + Set getSensitiveWordTagSet(); + + /** + * 获得文本所包含的不合法的敏感词数组 + * + * @param text 文本 + * @param tags 标签数组 + * @return 不合法的敏感词数组 + */ + List validateText(String text, List tags); + + /** + * 判断文本是否包含敏感词 + * + * @param text 文本 + * @param tags 标签数组 + * @return 是否包含敏感词 + */ + boolean isTextValid(String text, List tags); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java new file mode 100644 index 0000000..a41cb35 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java @@ -0,0 +1,262 @@ +package cn.iocoder.yudao.module.system.service.sensitiveword; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordSaveVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import cn.iocoder.yudao.module.system.dal.mysql.sensitiveword.SensitiveWordMapper; +import cn.iocoder.yudao.module.system.util.collection.SimpleTrie; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.TimeUnit; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getMaxValue; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SENSITIVE_WORD_EXISTS; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SENSITIVE_WORD_NOT_EXISTS; + +/** + * 敏感词 Service 实现类 + * + * @author 永不言败 + */ +@Service +@Slf4j +@Validated +public class SensitiveWordServiceImpl implements SensitiveWordService { + + /** + * 是否开启敏感词功能 + */ + public static Boolean ENABLED = true; + + /** + * 敏感词列表缓存 + */ + @Getter + private volatile List sensitiveWordCache = Collections.emptyList(); + /** + * 敏感词标签缓存 + * key:敏感词编号 {@link SensitiveWordDO#getId()} + *

    + * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 + */ + @Getter + private volatile Set sensitiveWordTagsCache = Collections.emptySet(); + + @Resource + private SensitiveWordMapper sensitiveWordMapper; + + /** + * 默认的敏感词的字典树,包含所有敏感词 + */ + @Getter + private volatile SimpleTrie defaultSensitiveWordTrie = new SimpleTrie(Collections.emptySet()); + /** + * 标签与敏感词的字段数的映射 + */ + @Getter + private volatile Map tagSensitiveWordTries = Collections.emptyMap(); + + /** + * 初始化缓存 + */ + @PostConstruct + public void initLocalCache() { + if (!ENABLED) { + return; + } + + // 第一步:查询数据 + List sensitiveWords = sensitiveWordMapper.selectList(); + log.info("[initLocalCache][缓存敏感词,数量为:{}]", sensitiveWords.size()); + + // 第二步:构建缓存 + // 写入 sensitiveWordTagsCache 缓存 + Set tags = new HashSet<>(); + sensitiveWords.forEach(word -> tags.addAll(word.getTags())); + sensitiveWordTagsCache = tags; + sensitiveWordCache = sensitiveWords; + // 写入 defaultSensitiveWordTrie、tagSensitiveWordTries 缓存 + initSensitiveWordTrie(sensitiveWords); + } + + private void initSensitiveWordTrie(List wordDOs) { + // 过滤禁用的敏感词 + wordDOs = filterList(wordDOs, word -> word.getStatus().equals(CommonStatusEnum.ENABLE.getStatus())); + + // 初始化默认的 defaultSensitiveWordTrie + this.defaultSensitiveWordTrie = new SimpleTrie(CollectionUtils.convertList(wordDOs, SensitiveWordDO::getName)); + + // 初始化 tagSensitiveWordTries + Multimap tagWords = HashMultimap.create(); + for (SensitiveWordDO word : wordDOs) { + if (CollUtil.isEmpty(word.getTags())) { + continue; + } + word.getTags().forEach(tag -> tagWords.put(tag, word.getName())); + } + // 添加到 tagSensitiveWordTries 中 + Map tagSensitiveWordTries = new HashMap<>(); + tagWords.asMap().forEach((tag, words) -> tagSensitiveWordTries.put(tag, new SimpleTrie(words))); + this.tagSensitiveWordTries = tagSensitiveWordTries; + } + + /** + * 通过定时任务轮询,刷新缓存 + * + * 目的:多节点部署时,通过轮询”通知“所有节点,进行刷新 + */ + @Scheduled(initialDelay = 60, fixedRate = 60, timeUnit = TimeUnit.SECONDS) + public void refreshLocalCache() { + // 情况一:如果缓存里没有数据,则直接刷新缓存 + if (CollUtil.isEmpty(sensitiveWordCache)) { + initLocalCache(); + return; + } + + // 情况二,如果缓存里数据,则通过 updateTime 判断是否有数据变更,有变更则刷新缓存 + LocalDateTime maxTime = getMaxValue(sensitiveWordCache, SensitiveWordDO::getUpdateTime); + if (sensitiveWordMapper.selectCountByUpdateTimeGt(maxTime) > 0) { + initLocalCache(); + } + } + + @Override + public Long createSensitiveWord(SensitiveWordSaveVO createReqVO) { + // 校验唯一性 + validateSensitiveWordNameUnique(null, createReqVO.getName()); + + // 插入 + SensitiveWordDO sensitiveWord = BeanUtils.toBean(createReqVO, SensitiveWordDO.class); + sensitiveWordMapper.insert(sensitiveWord); + + // 刷新缓存 + initLocalCache(); + return sensitiveWord.getId(); + } + + @Override + public void updateSensitiveWord(SensitiveWordSaveVO updateReqVO) { + // 校验唯一性 + validateSensitiveWordExists(updateReqVO.getId()); + validateSensitiveWordNameUnique(updateReqVO.getId(), updateReqVO.getName()); + + // 更新 + SensitiveWordDO updateObj = BeanUtils.toBean(updateReqVO, SensitiveWordDO.class); + sensitiveWordMapper.updateById(updateObj); + + // 刷新缓存 + initLocalCache(); + } + + @Override + public void deleteSensitiveWord(Long id) { + // 校验存在 + validateSensitiveWordExists(id); + // 删除 + sensitiveWordMapper.deleteById(id); + + // 刷新缓存 + initLocalCache(); + } + + private void validateSensitiveWordNameUnique(Long id, String name) { + SensitiveWordDO word = sensitiveWordMapper.selectByName(name); + if (word == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的敏感词 + if (id == null) { + throw exception(SENSITIVE_WORD_EXISTS); + } + if (!word.getId().equals(id)) { + throw exception(SENSITIVE_WORD_EXISTS); + } + } + + private void validateSensitiveWordExists(Long id) { + if (sensitiveWordMapper.selectById(id) == null) { + throw exception(SENSITIVE_WORD_NOT_EXISTS); + } + } + + @Override + public SensitiveWordDO getSensitiveWord(Long id) { + return sensitiveWordMapper.selectById(id); + } + + @Override + public List getSensitiveWordList() { + return sensitiveWordMapper.selectList(); + } + + @Override + public PageResult getSensitiveWordPage(SensitiveWordPageReqVO pageReqVO) { + return sensitiveWordMapper.selectPage(pageReqVO); + } + + @Override + public Set getSensitiveWordTagSet() { + return sensitiveWordTagsCache; + } + + @Override + public List validateText(String text, List tags) { + Assert.isTrue(ENABLED, "敏感词功能未开启,请将 ENABLED 设置为 true"); + + // 无标签时,默认所有 + if (CollUtil.isEmpty(tags)) { + return defaultSensitiveWordTrie.validate(text); + } + // 有标签的情况 + Set result = new HashSet<>(); + tags.forEach(tag -> { + SimpleTrie trie = tagSensitiveWordTries.get(tag); + if (trie == null) { + return; + } + result.addAll(trie.validate(text)); + }); + return new ArrayList<>(result); + } + + @Override + public boolean isTextValid(String text, List tags) { + Assert.isTrue(ENABLED, "敏感词功能未开启,请将 ENABLED 设置为 true"); + + // 无标签时,默认所有 + if (CollUtil.isEmpty(tags)) { + return defaultSensitiveWordTrie.isValid(text); + } + // 有标签的情况 + for (String tag : tags) { + SimpleTrie trie = tagSensitiveWordTries.get(tag); + if (trie == null) { + continue; + } + // 如果有一个标签不合法,则返回 false 不合法 + if (!trie.isValid(text)) { + return false; + } + } + return true; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.java new file mode 100644 index 0000000..5c77fe1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.java @@ -0,0 +1,81 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 短信渠道 Service 接口 + * + * @author zzf + * @since 2021/1/25 9:24 + */ +public interface SmsChannelService { + + /** + * 创建短信渠道 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSmsChannel(@Valid SmsChannelSaveReqVO createReqVO); + + /** + * 更新短信渠道 + * + * @param updateReqVO 更新信息 + */ + void updateSmsChannel(@Valid SmsChannelSaveReqVO updateReqVO); + + /** + * 删除短信渠道 + * + * @param id 编号 + */ + void deleteSmsChannel(Long id); + + /** + * 获得短信渠道 + * + * @param id 编号 + * @return 短信渠道 + */ + SmsChannelDO getSmsChannel(Long id); + + /** + * 获得所有短信渠道列表 + * + * @return 短信渠道列表 + */ + List getSmsChannelList(); + + /** + * 获得短信渠道分页 + * + * @param pageReqVO 分页查询 + * @return 短信渠道分页 + */ + PageResult getSmsChannelPage(SmsChannelPageReqVO pageReqVO); + + /** + * 获得短信客户端 + * + * @param id 编号 + * @return 短信客户端 + */ + SmsClient getSmsClient(Long id); + + /** + * 获得短信客户端 + * + * @param code 编码 + * @return 短信客户端 + */ + SmsClient getSmsClient(String code); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java new file mode 100644 index 0000000..a7455f1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java @@ -0,0 +1,166 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClientFactory; +import cn.iocoder.yudao.module.system.framework.sms.core.property.SmsChannelProperties; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.Duration; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.cache.CacheUtils.buildAsyncReloadingCache; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS; + +/** + * 短信渠道 Service 实现类 + * + * @author zzf + */ +@Service +@Slf4j +public class SmsChannelServiceImpl implements SmsChannelService { + + /** + * {@link SmsClient} 缓存,通过它异步刷新 smsClientFactory + */ + @Getter + private final LoadingCache idClientCache = buildAsyncReloadingCache(Duration.ofSeconds(10L), + new CacheLoader() { + + @Override + public SmsClient load(Long id) { + // 查询,然后尝试刷新 + SmsChannelDO channel = smsChannelMapper.selectById(id); + if (channel != null) { + SmsChannelProperties properties = BeanUtils.toBean(channel, SmsChannelProperties.class); + smsClientFactory.createOrUpdateSmsClient(properties); + } + return smsClientFactory.getSmsClient(id); + } + + }); + + /** + * {@link SmsClient} 缓存,通过它异步刷新 smsClientFactory + */ + @Getter + private final LoadingCache codeClientCache = buildAsyncReloadingCache(Duration.ofSeconds(60L), + new CacheLoader() { + + @Override + public SmsClient load(String code) { + // 查询,然后尝试刷新 + SmsChannelDO channel = smsChannelMapper.selectByCode(code); + if (channel != null) { + SmsChannelProperties properties = BeanUtils.toBean(channel, SmsChannelProperties.class); + smsClientFactory.createOrUpdateSmsClient(properties); + } + return smsClientFactory.getSmsClient(code); + } + + }); + + @Resource + private SmsClientFactory smsClientFactory; + + @Resource + private SmsChannelMapper smsChannelMapper; + + @Resource + private SmsTemplateService smsTemplateService; + + @Override + public Long createSmsChannel(SmsChannelSaveReqVO createReqVO) { + SmsChannelDO channel = BeanUtils.toBean(createReqVO, SmsChannelDO.class); + smsChannelMapper.insert(channel); + return channel.getId(); + } + + @Override + public void updateSmsChannel(SmsChannelSaveReqVO updateReqVO) { + // 校验存在 + SmsChannelDO channel = validateSmsChannelExists(updateReqVO.getId()); + // 更新 + SmsChannelDO updateObj = BeanUtils.toBean(updateReqVO, SmsChannelDO.class); + smsChannelMapper.updateById(updateObj); + + // 清空缓存 + clearCache(updateReqVO.getId(), channel.getCode()); + } + + @Override + public void deleteSmsChannel(Long id) { + // 校验存在 + SmsChannelDO channel = validateSmsChannelExists(id); + // 校验是否有在使用该账号的模版 + if (smsTemplateService.getSmsTemplateCountByChannelId(id) > 0) { + throw exception(SMS_CHANNEL_HAS_CHILDREN); + } + // 删除 + smsChannelMapper.deleteById(id); + + // 清空缓存 + clearCache(id, channel.getCode()); + } + + /** + * 清空指定渠道编号的缓存 + * + * @param id 渠道编号 + * @param code 渠道编码 + */ + private void clearCache(Long id, String code) { + idClientCache.invalidate(id); + if (StrUtil.isNotEmpty(code)) { + codeClientCache.invalidate(code); + } + } + + private SmsChannelDO validateSmsChannelExists(Long id) { + SmsChannelDO channel = smsChannelMapper.selectById(id); + if (channel == null) { + throw exception(SMS_CHANNEL_NOT_EXISTS); + } + return channel; + } + + @Override + public SmsChannelDO getSmsChannel(Long id) { + return smsChannelMapper.selectById(id); + } + + @Override + public List getSmsChannelList() { + return smsChannelMapper.selectList(); + } + + @Override + public PageResult getSmsChannelPage(SmsChannelPageReqVO pageReqVO) { + return smsChannelMapper.selectPage(pageReqVO); + } + + @Override + public SmsClient getSmsClient(Long id) { + return idClientCache.getUnchecked(id); + } + + @Override + public SmsClient getSmsClient(String code) { + return codeClientCache.getUnchecked(code); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.java new file mode 100644 index 0000000..c310949 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; + +import javax.validation.Valid; + +/** + * 短信验证码 Service 接口 + * + * @author 芋道源码 + */ +public interface SmsCodeService { + + /** + * 创建短信验证码,并进行发送 + * + * @param reqDTO 发送请求 + */ + void sendSmsCode(@Valid SmsCodeSendReqDTO reqDTO); + + /** + * 验证短信验证码,并进行使用 + * 如果正确,则将验证码标记成已使用 + * 如果错误,则抛出 {@link ServiceException} 异常 + * + * @param reqDTO 使用请求 + */ + void useSmsCode(@Valid SmsCodeUseReqDTO reqDTO); + + /** + * 检查验证码是否有效 + * + * @param reqDTO 校验请求 + */ + void validateSmsCode(@Valid SmsCodeValidateReqDTO reqDTO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java new file mode 100644 index 0000000..79162c6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java @@ -0,0 +1,111 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.map.MapUtil; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; +import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsCodeDO; +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsCodeMapper; +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; +import cn.iocoder.yudao.module.system.framework.sms.config.SmsCodeProperties; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.randomInt; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.isToday; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 短信验证码 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class SmsCodeServiceImpl implements SmsCodeService { + + @Resource + private SmsCodeProperties smsCodeProperties; + + @Resource + private SmsCodeMapper smsCodeMapper; + + @Resource + private SmsSendService smsSendService; + + @Override + public void sendSmsCode(SmsCodeSendReqDTO reqDTO) { + SmsSceneEnum sceneEnum = SmsSceneEnum.getCodeByScene(reqDTO.getScene()); + Assert.notNull(sceneEnum, "验证码场景({}) 查找不到配置", reqDTO.getScene()); + // 创建验证码 + String code = createSmsCode(reqDTO.getMobile(), reqDTO.getScene(), reqDTO.getCreateIp()); + // 发送验证码 + smsSendService.sendSingleSms(reqDTO.getMobile(), null, null, + sceneEnum.getTemplateCode(), MapUtil.of("code", code)); + } + + private String createSmsCode(String mobile, Integer scene, String ip) { + // 校验是否可以发送验证码,不用筛选场景 + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null, null); + if (lastSmsCode != null) { + if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() + < smsCodeProperties.getSendFrequency().toMillis()) { // 发送过于频繁 + throw exception(SMS_CODE_SEND_TOO_FAST); + } + if (isToday(lastSmsCode.getCreateTime()) && // 必须是今天,才能计算超过当天的上限 + lastSmsCode.getTodayIndex() >= smsCodeProperties.getSendMaximumQuantityPerDay()) { // 超过当天发送的上限。 + throw exception(SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY); + } + // TODO 芋艿:提升,每个 IP 每天可发送数量 + // TODO 芋艿:提升,每个 IP 每小时可发送数量 + } + + // 创建验证码记录 + String code = String.valueOf(randomInt(smsCodeProperties.getBeginCode(), smsCodeProperties.getEndCode() + 1)); + SmsCodeDO newSmsCode = SmsCodeDO.builder().mobile(mobile).code(code).scene(scene) + .todayIndex(lastSmsCode != null && isToday(lastSmsCode.getCreateTime()) ? lastSmsCode.getTodayIndex() + 1 : 1) + .createIp(ip).used(false).build(); + smsCodeMapper.insert(newSmsCode); + return code; + } + + @Override + public void useSmsCode(SmsCodeUseReqDTO reqDTO) { + // 检测验证码是否有效 + SmsCodeDO lastSmsCode = validateSmsCode0(reqDTO.getMobile(), reqDTO.getCode(), reqDTO.getScene()); + // 使用验证码 + smsCodeMapper.updateById(SmsCodeDO.builder().id(lastSmsCode.getId()) + .used(true).usedTime(LocalDateTime.now()).usedIp(reqDTO.getUsedIp()).build()); + } + + @Override + public void validateSmsCode(SmsCodeValidateReqDTO reqDTO) { + validateSmsCode0(reqDTO.getMobile(), reqDTO.getCode(), reqDTO.getScene()); + } + + private SmsCodeDO validateSmsCode0(String mobile, String code, Integer scene) { + // 校验验证码 + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, code, scene); + // 若验证码不存在,抛出异常 + if (lastSmsCode == null) { + throw exception(SMS_CODE_NOT_FOUND); + } + // 超过时间 + if (LocalDateTimeUtil.between(lastSmsCode.getCreateTime(), LocalDateTime.now()).toMillis() + >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期 + throw exception(SMS_CODE_EXPIRED); + } + // 判断验证码是否已被使用 + if (Boolean.TRUE.equals(lastSmsCode.getUsed())) { + throw exception(SMS_CODE_USED); + } + return lastSmsCode; + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java new file mode 100644 index 0000000..0c86c0f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; + +import java.time.LocalDateTime; +import java.util.Map; + +/** + * 短信日志 Service 接口 + * + * @author zzf + * @date 13:48 2021/3/2 + */ +public interface SmsLogService { + + /** + * 创建短信日志 + * + * @param mobile 手机号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param isSend 是否发送 + * @param template 短信模板 + * @param templateContent 短信内容 + * @param templateParams 短信参数 + * @return 发送日志编号 + */ + Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend, + SmsTemplateDO template, String templateContent, Map templateParams); + + /** + * 更新日志的发送结果 + * + * @param id 日志编号 + * @param success 发送是否成功 + * @param apiSendCode 短信 API 发送结果的编码 + * @param apiSendMsg 短信 API 发送失败的提示 + * @param apiRequestId 短信 API 发送返回的唯一请求 ID + * @param apiSerialNo 短信 API 发送返回的序号 + */ + void updateSmsSendResult(Long id, Boolean success, + String apiSendCode, String apiSendMsg, + String apiRequestId, String apiSerialNo); + + /** + * 更新日志的接收结果 + * + * @param id 日志编号 + * @param success 是否接收成功 + * @param receiveTime 用户接收时间 + * @param apiReceiveCode API 接收结果的编码 + * @param apiReceiveMsg API 接收结果的说明 + */ + void updateSmsReceiveResult(Long id, Boolean success, + LocalDateTime receiveTime, String apiReceiveCode, String apiReceiveMsg); + + /** + * 获得短信日志分页 + * + * @param pageReqVO 分页查询 + * @return 短信日志分页 + */ + PageResult getSmsLogPage(SmsLogPageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java new file mode 100644 index 0000000..c79b941 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java @@ -0,0 +1,79 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper; +import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum; +import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.Objects; + +/** + * 短信日志 Service 实现类 + * + * @author zzf + */ +@Slf4j +@Service +public class SmsLogServiceImpl implements SmsLogService { + + @Resource + private SmsLogMapper smsLogMapper; + + @Override + public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend, + SmsTemplateDO template, String templateContent, Map templateParams) { + SmsLogDO.SmsLogDOBuilder logBuilder = SmsLogDO.builder(); + // 根据是否要发送,设置状态 + logBuilder.sendStatus(Objects.equals(isSend, true) ? SmsSendStatusEnum.INIT.getStatus() + : SmsSendStatusEnum.IGNORE.getStatus()); + // 设置手机相关字段 + logBuilder.mobile(mobile).userId(userId).userType(userType); + // 设置模板相关字段 + logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType()); + logBuilder.templateContent(templateContent).templateParams(templateParams) + .apiTemplateId(template.getApiTemplateId()); + // 设置渠道相关字段 + logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode()); + // 设置接收相关字段 + logBuilder.receiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); + + // 插入数据库 + SmsLogDO logDO = logBuilder.build(); + smsLogMapper.insert(logDO); + return logDO.getId(); + } + + @Override + public void updateSmsSendResult(Long id, Boolean success, + String apiSendCode, String apiSendMsg, + String apiRequestId, String apiSerialNo) { + SmsSendStatusEnum sendStatus = success ? SmsSendStatusEnum.SUCCESS : SmsSendStatusEnum.FAILURE; + smsLogMapper.updateById(SmsLogDO.builder().id(id) + .sendStatus(sendStatus.getStatus()).sendTime(LocalDateTime.now()) + .apiSendCode(apiSendCode).apiSendMsg(apiSendMsg) + .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build()); + } + + @Override + public void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime, + String apiReceiveCode, String apiReceiveMsg) { + SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? + SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE; + smsLogMapper.updateById(SmsLogDO.builder().id(id).receiveStatus(receiveStatus.getStatus()) + .receiveTime(receiveTime).apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build()); + } + + @Override + public PageResult getSmsLogPage(SmsLogPageReqVO pageReqVO) { + return smsLogMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.java new file mode 100644 index 0000000..3c42cf5 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; + +import java.util.List; +import java.util.Map; + +/** + * 短信发送 Service 接口 + * + * @author 芋道源码 + */ +public interface SmsSendService { + + /** + * 发送单条短信给管理后台的用户 + * + * 在 mobile 为空时,使用 userId 加载对应管理员的手机号 + * + * @param mobile 手机号 + * @param userId 用户编号 + * @param templateCode 短信模板编号 + * @param templateParams 短信模板参数 + * @return 发送日志编号 + */ + Long sendSingleSmsToAdmin(String mobile, Long userId, + String templateCode, Map templateParams); + + /** + * 发送单条短信给用户 APP 的用户 + * + * 在 mobile 为空时,使用 userId 加载对应会员的手机号 + * + * @param mobile 手机号 + * @param userId 用户编号 + * @param templateCode 短信模板编号 + * @param templateParams 短信模板参数 + * @return 发送日志编号 + */ + Long sendSingleSmsToMember(String mobile, Long userId, + String templateCode, Map templateParams); + + /** + * 发送单条短信给用户 + * + * @param mobile 手机号 + * @param userId 用户编号 + * @param userType 用户类型 + * @param templateCode 短信模板编号 + * @param templateParams 短信模板参数 + * @return 发送日志编号 + */ + Long sendSingleSms(String mobile, Long userId, Integer userType, + String templateCode, Map templateParams); + + default void sendBatchSms(List mobiles, List userIds, Integer userType, + String templateCode, Map templateParams) { + throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!"); + } + + /** + * 执行真正的短信发送 + * 注意,该方法仅仅提供给 MQ Consumer 使用 + * + * @param message 短信 + */ + void doSendSms(SmsSendMessage message); + + /** + * 接收短信的接收结果 + * + * @param channelCode 渠道编码 + * @param text 结果内容 + * @throws Throwable 处理失败时,抛出异常 + */ + void receiveSmsStatus(String channelCode, String text) throws Throwable; + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java new file mode 100644 index 0000000..a27bcce --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java @@ -0,0 +1,185 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.core.KeyValue; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsReceiveRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsSendRespDTO; +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; +import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 短信发送 Service 发送的实现 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class SmsSendServiceImpl implements SmsSendService { + + @Resource + private AdminUserService adminUserService; + + @Resource + private SmsChannelService smsChannelService; + @Resource + private SmsTemplateService smsTemplateService; + @Resource + private SmsLogService smsLogService; + + @Resource + private SmsProducer smsProducer; + + @Override + @DataPermission(enable = false) // 发送短信时,无需考虑数据权限 + public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map templateParams) { + // 如果 mobile 为空,则加载用户编号对应的手机号 + if (StrUtil.isEmpty(mobile)) { + AdminUserDO user = adminUserService.getUser(userId); + if (user != null) { + mobile = user.getMobile(); + } + } + // 执行发送 + return sendSingleSms(mobile, userId, UserTypeEnum.ADMIN.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map templateParams) { + // 执行发送 + return sendSingleSms(mobile, userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams); + } + + @Override + public Long sendSingleSms(String mobile, Long userId, Integer userType, + String templateCode, Map templateParams) { + // 校验短信模板是否合法 + SmsTemplateDO template = validateSmsTemplate(templateCode); + // 校验短信渠道是否合法 + SmsChannelDO smsChannel = validateSmsChannel(template.getChannelId()); + + // 校验手机号码是否存在 + mobile = validateMobile(mobile); + // 构建有序的模板参数。为什么放在这个位置,是提前保证模板参数的正确性,而不是到了插入发送日志 + List> newTemplateParams = buildTemplateParams(template, templateParams); + + // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志 + Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()) + && CommonStatusEnum.ENABLE.getStatus().equals(smsChannel.getStatus()); + String content = smsTemplateService.formatSmsTemplateContent(template.getContent(), templateParams); + Long sendLogId = smsLogService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams); + + // 发送 MQ 消息,异步执行发送短信 + if (isSend) { + smsProducer.sendSmsSendMessage(sendLogId, mobile, template.getChannelId(), + template.getApiTemplateId(), newTemplateParams); + } + return sendLogId; + } + + @VisibleForTesting + SmsChannelDO validateSmsChannel(Long channelId) { + // 获得短信模板。考虑到效率,从缓存中获取 + SmsChannelDO channelDO = smsChannelService.getSmsChannel(channelId); + // 短信模板不存在 + if (channelDO == null) { + throw exception(SMS_CHANNEL_NOT_EXISTS); + } + return channelDO; + } + + @VisibleForTesting + SmsTemplateDO validateSmsTemplate(String templateCode) { + // 获得短信模板。考虑到效率,从缓存中获取 + SmsTemplateDO template = smsTemplateService.getSmsTemplateByCodeFromCache(templateCode); + // 短信模板不存在 + if (template == null) { + throw exception(SMS_SEND_TEMPLATE_NOT_EXISTS); + } + return template; + } + + /** + * 将参数模板,处理成有序的 KeyValue 数组 + *

    + * 原因是,部分短信平台并不是使用 key 作为参数,而是数组下标,例如说 腾讯云 + * + * @param template 短信模板 + * @param templateParams 原始参数 + * @return 处理后的参数 + */ + @VisibleForTesting + List> buildTemplateParams(SmsTemplateDO template, Map templateParams) { + return template.getParams().stream().map(key -> { + Object value = templateParams.get(key); + if (value == null) { + throw exception(SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS, key); + } + return new KeyValue<>(key, value); + }).collect(Collectors.toList()); + } + + @VisibleForTesting + public String validateMobile(String mobile) { + if (StrUtil.isEmpty(mobile)) { + throw exception(SMS_SEND_MOBILE_NOT_EXISTS); + } + return mobile; + } + + @Override + public void doSendSms(SmsSendMessage message) { + // 获得渠道对应的 SmsClient 客户端 + SmsClient smsClient = smsChannelService.getSmsClient(message.getChannelId()); + Assert.notNull(smsClient, "短信客户端({}) 不存在", message.getChannelId()); + // 发送短信 + try { + SmsSendRespDTO sendResponse = smsClient.sendSms(message.getLogId(), message.getMobile(), + message.getApiTemplateId(), message.getTemplateParams()); + smsLogService.updateSmsSendResult(message.getLogId(), sendResponse.getSuccess(), + sendResponse.getApiCode(), sendResponse.getApiMsg(), + sendResponse.getApiRequestId(), sendResponse.getSerialNo()); + } catch (Throwable ex) { + log.error("[doSendSms][发送短信异常,日志编号({})]", message.getLogId(), ex); + smsLogService.updateSmsSendResult(message.getLogId(), false, + "EXCEPTION", ExceptionUtil.getRootCauseMessage(ex), null, null); + } + } + + @Override + public void receiveSmsStatus(String channelCode, String text) throws Throwable { + // 获得渠道对应的 SmsClient 客户端 + SmsClient smsClient = smsChannelService.getSmsClient(channelCode); + Assert.notNull(smsClient, "短信客户端({}) 不存在", channelCode); + // 解析内容 + List receiveResults = smsClient.parseSmsReceiveStatus(text); + if (CollUtil.isEmpty(receiveResults)) { + return; + } + // 更新短信日志的接收结果. 因为量一般不大,所以先使用 for 循环更新 + receiveResults.forEach(result -> smsLogService.updateSmsReceiveResult(result.getLogId(), + result.getSuccess(), result.getReceiveTime(), result.getErrorCode(), result.getErrorMsg())); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java new file mode 100644 index 0000000..9d6ac3a --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; + +import javax.validation.Valid; +import java.util.Map; + +/** + * 短信模板 Service 接口 + * + * @author zzf + * @since 2021/1/25 9:24 + */ +public interface SmsTemplateService { + + /** + * 创建短信模板 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSmsTemplate(@Valid SmsTemplateSaveReqVO createReqVO); + + /** + * 更新短信模板 + * + * @param updateReqVO 更新信息 + */ + void updateSmsTemplate(@Valid SmsTemplateSaveReqVO updateReqVO); + + /** + * 删除短信模板 + * + * @param id 编号 + */ + void deleteSmsTemplate(Long id); + + /** + * 获得短信模板 + * + * @param id 编号 + * @return 短信模板 + */ + SmsTemplateDO getSmsTemplate(Long id); + + /** + * 获得短信模板,从缓存中 + * + * @param code 模板编码 + * @return 短信模板 + */ + SmsTemplateDO getSmsTemplateByCodeFromCache(String code); + + /** + * 获得短信模板分页 + * + * @param pageReqVO 分页查询 + * @return 短信模板分页 + */ + PageResult getSmsTemplatePage(SmsTemplatePageReqVO pageReqVO); + + /** + * 获得指定短信渠道下的短信模板数量 + * + * @param channelId 短信渠道编号 + * @return 数量 + */ + Long getSmsTemplateCountByChannelId(Long channelId); + + /** + * 格式化短信内容 + * + * @param content 短信模板的内容 + * @param params 内容的参数 + * @return 格式化后的内容 + */ + String formatSmsTemplateContent(String content, Map params); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java new file mode 100644 index 0000000..639bec6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java @@ -0,0 +1,199 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.framework.sms.core.client.SmsClient; +import cn.iocoder.yudao.module.system.framework.sms.core.client.dto.SmsTemplateRespDTO; +import cn.iocoder.yudao.module.system.framework.sms.core.enums.SmsTemplateAuditStatusEnum; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO; +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO; +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsTemplateMapper; +import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.regex.Pattern; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 短信模板 Service 实现类 + * + * @author zzf + * @since 2021/1/25 9:25 + */ +@Service +@Slf4j +public class SmsTemplateServiceImpl implements SmsTemplateService { + + /** + * 正则表达式,匹配 {} 中的变量 + */ + private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); + + @Resource + private SmsTemplateMapper smsTemplateMapper; + + @Resource + private SmsChannelService smsChannelService; + + @Override + public Long createSmsTemplate(SmsTemplateSaveReqVO createReqVO) { + // 校验短信渠道 + SmsChannelDO channelDO = validateSmsChannel(createReqVO.getChannelId()); + // 校验短信编码是否重复 + validateSmsTemplateCodeDuplicate(null, createReqVO.getCode()); + // 校验短信模板 + validateApiTemplate(createReqVO.getChannelId(), createReqVO.getApiTemplateId()); + + // 插入 + SmsTemplateDO template = BeanUtils.toBean(createReqVO, SmsTemplateDO.class); + template.setParams(parseTemplateContentParams(template.getContent())); + template.setChannelCode(channelDO.getCode()); + smsTemplateMapper.insert(template); + // 返回 + return template.getId(); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.SMS_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为可能修改到 code 字段,不好清理 + public void updateSmsTemplate(SmsTemplateSaveReqVO updateReqVO) { + // 校验存在 + validateSmsTemplateExists(updateReqVO.getId()); + // 校验短信渠道 + SmsChannelDO channelDO = validateSmsChannel(updateReqVO.getChannelId()); + // 校验短信编码是否重复 + validateSmsTemplateCodeDuplicate(updateReqVO.getId(), updateReqVO.getCode()); + // 校验短信模板 + validateApiTemplate(updateReqVO.getChannelId(), updateReqVO.getApiTemplateId()); + + // 更新 + SmsTemplateDO updateObj = BeanUtils.toBean(updateReqVO, SmsTemplateDO.class); + updateObj.setParams(parseTemplateContentParams(updateObj.getContent())); + updateObj.setChannelCode(channelDO.getCode()); + smsTemplateMapper.updateById(updateObj); + } + + @Override + @CacheEvict(cacheNames = RedisKeyConstants.SMS_TEMPLATE, + allEntries = true) // allEntries 清空所有缓存,因为 id 不是直接的缓存 code,不好清理 + public void deleteSmsTemplate(Long id) { + // 校验存在 + validateSmsTemplateExists(id); + // 更新 + smsTemplateMapper.deleteById(id); + } + + private void validateSmsTemplateExists(Long id) { + if (smsTemplateMapper.selectById(id) == null) { + throw exception(SMS_TEMPLATE_NOT_EXISTS); + } + } + + @Override + public SmsTemplateDO getSmsTemplate(Long id) { + return smsTemplateMapper.selectById(id); + } + + @Override + @Cacheable(cacheNames = RedisKeyConstants.SMS_TEMPLATE, key = "#code", + unless = "#result == null") + public SmsTemplateDO getSmsTemplateByCodeFromCache(String code) { + return smsTemplateMapper.selectByCode(code); + } + + @Override + public PageResult getSmsTemplatePage(SmsTemplatePageReqVO pageReqVO) { + return smsTemplateMapper.selectPage(pageReqVO); + } + + @Override + public Long getSmsTemplateCountByChannelId(Long channelId) { + return smsTemplateMapper.selectCountByChannelId(channelId); + } + + @VisibleForTesting + public SmsChannelDO validateSmsChannel(Long channelId) { + SmsChannelDO channelDO = smsChannelService.getSmsChannel(channelId); + if (channelDO == null) { + throw exception(SMS_CHANNEL_NOT_EXISTS); + } + if (CommonStatusEnum.isDisable(channelDO.getStatus())) { + throw exception(SMS_CHANNEL_DISABLE); + } + return channelDO; + } + + @VisibleForTesting + public void validateSmsTemplateCodeDuplicate(Long id, String code) { + SmsTemplateDO template = smsTemplateMapper.selectByCode(code); + if (template == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的字典类型 + if (id == null) { + throw exception(SMS_TEMPLATE_CODE_DUPLICATE, code); + } + if (!template.getId().equals(id)) { + throw exception(SMS_TEMPLATE_CODE_DUPLICATE, code); + } + } + + /** + * 校验 API 短信平台的模板是否有效 + * + * @param channelId 渠道编号 + * @param apiTemplateId API 模板编号 + */ + @VisibleForTesting + void validateApiTemplate(Long channelId, String apiTemplateId) { + // 获得短信模板 + SmsClient smsClient = smsChannelService.getSmsClient(channelId); + Assert.notNull(smsClient, String.format("短信客户端(%d) 不存在", channelId)); + SmsTemplateRespDTO template; + try { + template = smsClient.getSmsTemplate(apiTemplateId); + } catch (Throwable ex) { + throw exception(SMS_TEMPLATE_API_ERROR, ExceptionUtil.getRootCauseMessage(ex)); + } + // 校验短信模版 + if (template == null) { + throw exception(SMS_TEMPLATE_API_NOT_FOUND); + } + if (Objects.equals(template.getAuditStatus(), SmsTemplateAuditStatusEnum.CHECKING.getStatus())) { + throw exception(SMS_TEMPLATE_API_AUDIT_CHECKING); + } + if (Objects.equals(template.getAuditStatus(), SmsTemplateAuditStatusEnum.FAIL.getStatus())) { + throw exception(SMS_TEMPLATE_API_AUDIT_FAIL, template.getAuditReason()); + } + Assert.equals(template.getAuditStatus(), SmsTemplateAuditStatusEnum.SUCCESS.getStatus(), + String.format("短信模板(%s) 审核状态(%d) 不正确", apiTemplateId, template.getAuditStatus())); + } + + @Override + public String formatSmsTemplateContent(String content, Map params) { + return StrUtil.format(content, params); + } + + @VisibleForTesting + List parseTemplateContentParams(String content) { + return ReUtil.findAllGroup1(PATTERN_PARAMS, content); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java new file mode 100644 index 0000000..dba86c6 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.system.service.social; + +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.xingyuv.jushauth.model.AuthUser; +import me.chanjar.weixin.common.bean.WxJsapiSignature; + +import javax.validation.Valid; + +/** + * 社交应用 Service 接口 + * + * @author 芋道源码 + */ +public interface SocialClientService { + + /** + * 获得社交平台的授权 URL + * + * @param socialType 社交平台的类型 {@link SocialTypeEnum} + * @param userType 用户类型 + * @param redirectUri 重定向 URL + * @return 社交平台的授权 URL + */ + String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri); + + /** + * 请求社交平台,获得授权的用户 + * + * @param socialType 社交平台的类型 + * @param userType 用户类型 + * @param code 授权码 + * @param state 授权 state + * @return 授权的用户 + */ + AuthUser getAuthUser(Integer socialType, Integer userType, String code, String state); + + // =================== 微信公众号独有 =================== + + /** + * 创建微信公众号的 JS SDK 初始化所需的签名 + * + * @param userType 用户类型 + * @param url 访问的 URL 地址 + * @return 签名 + */ + WxJsapiSignature createWxMpJsapiSignature(Integer userType, String url); + + // =================== 微信小程序独有 =================== + + /** + * 获得微信小程序的手机信息 + * + * @param userType 用户类型 + * @param phoneCode 手机授权码 + * @return 手机信息 + */ + WxMaPhoneNumberInfo getWxMaPhoneNumberInfo(Integer userType, String phoneCode); + + // =================== 客户端管理 =================== + + /** + * 创建社交客户端 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSocialClient(@Valid SocialClientSaveReqVO createReqVO); + + /** + * 更新社交客户端 + * + * @param updateReqVO 更新信息 + */ + void updateSocialClient(@Valid SocialClientSaveReqVO updateReqVO); + + /** + * 删除社交客户端 + * + * @param id 编号 + */ + void deleteSocialClient(Long id); + + /** + * 获得社交客户端 + * + * @param id 编号 + * @return 社交客户端 + */ + SocialClientDO getSocialClient(Long id); + + /** + * 获得社交客户端分页 + * + * @param pageReqVO 分页查询 + * @return 社交客户端分页 + */ + PageResult getSocialClientPage(SocialClientPageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java new file mode 100644 index 0000000..23b3cea --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java @@ -0,0 +1,339 @@ +package cn.iocoder.yudao.module.system.service.social; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; +import cn.iocoder.yudao.framework.common.util.http.HttpUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialClientDO; +import cn.iocoder.yudao.module.system.dal.mysql.social.SocialClientMapper; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaProperties; +import com.binarywang.spring.starter.wxjava.mp.properties.WxMpProperties; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.xingyuv.jushauth.config.AuthConfig; +import com.xingyuv.jushauth.model.AuthCallback; +import com.xingyuv.jushauth.model.AuthResponse; +import com.xingyuv.jushauth.model.AuthUser; +import com.xingyuv.jushauth.request.AuthRequest; +import com.xingyuv.jushauth.utils.AuthStateUtils; +import com.xingyuv.justauth.AuthRequestFactory; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.bean.WxJsapiSignature; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps; +import me.chanjar.weixin.mp.api.WxMpService; +import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; +import me.chanjar.weixin.mp.config.impl.WxMpRedisConfigImpl; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.Duration; +import java.util.Objects; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 社交应用 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Slf4j +public class SocialClientServiceImpl implements SocialClientService { + + @Resource + private AuthRequestFactory authRequestFactory; + + @Resource + private WxMpService wxMpService; + @Resource + private WxMpProperties wxMpProperties; + @Resource + private StringRedisTemplate stringRedisTemplate; // WxMpService 需要使用到,所以在 Service 注入了它 + /** + * 缓存 WxMpService 对象 + * + * key:使用微信公众号的 appId + secret 拼接,即 {@link SocialClientDO} 的 clientId 和 clientSecret 属性。 + * 为什么 key 使用这种格式?因为 {@link SocialClientDO} 在管理后台可以变更,通过这个 key 存储它的单例。 + * + * 为什么要做 WxMpService 缓存?因为 WxMpService 构建成本比较大,所以尽量保证它是单例。 + */ + private final LoadingCache wxMpServiceCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofSeconds(10L), + new CacheLoader() { + + @Override + public WxMpService load(String key) { + String[] keys = key.split(":"); + return buildWxMpService(keys[0], keys[1]); + } + + }); + + @Resource + private WxMaService wxMaService; + @Resource + private WxMaProperties wxMaProperties; + /** + * 缓存 WxMaService 对象 + * + * 说明同 {@link #wxMpServiceCache} 变量 + */ + private final LoadingCache wxMaServiceCache = CacheUtils.buildAsyncReloadingCache( + Duration.ofSeconds(10L), + new CacheLoader() { + + @Override + public WxMaService load(String key) { + String[] keys = key.split(":"); + return buildWxMaService(keys[0], keys[1]); + } + + }); + + @Resource + private SocialClientMapper socialClientMapper; + + @Override + public String getAuthorizeUrl(Integer socialType, Integer userType, String redirectUri) { + // 获得对应的 AuthRequest 实现 + AuthRequest authRequest = buildAuthRequest(socialType, userType); + // 生成跳转地址 + String authorizeUri = authRequest.authorize(AuthStateUtils.createState()); + return HttpUtils.replaceUrlQuery(authorizeUri, "redirect_uri", redirectUri); + } + + @Override + public AuthUser getAuthUser(Integer socialType, Integer userType, String code, String state) { + // 构建请求 + AuthRequest authRequest = buildAuthRequest(socialType, userType); + AuthCallback authCallback = AuthCallback.builder().code(code).state(state).build(); + // 执行请求 + AuthResponse authResponse = authRequest.login(authCallback); + log.info("[getAuthUser][请求社交平台 type({}) request({}) response({})]", socialType, + toJsonString(authCallback), toJsonString(authResponse)); + if (!authResponse.ok()) { + throw exception(SOCIAL_USER_AUTH_FAILURE, authResponse.getMsg()); + } + return (AuthUser) authResponse.getData(); + } + + /** + * 构建 AuthRequest 对象,支持多租户配置 + * + * @param socialType 社交类型 + * @param userType 用户类型 + * @return AuthRequest 对象 + */ + @VisibleForTesting + AuthRequest buildAuthRequest(Integer socialType, Integer userType) { + // 1. 先查找默认的配置项,从 application-*.yaml 中读取 + AuthRequest request = authRequestFactory.get(SocialTypeEnum.valueOfType(socialType).getSource()); + Assert.notNull(request, String.format("社交平台(%d) 不存在", socialType)); + // 2. 查询 DB 的配置项,如果存在则进行覆盖 + SocialClientDO client = socialClientMapper.selectBySocialTypeAndUserType(socialType, userType); + if (client != null && Objects.equals(client.getStatus(), CommonStatusEnum.ENABLE.getStatus())) { + // 2.1 构造新的 AuthConfig 对象 + AuthConfig authConfig = (AuthConfig) ReflectUtil.getFieldValue(request, "config"); + AuthConfig newAuthConfig = ReflectUtil.newInstance(authConfig.getClass()); + BeanUtil.copyProperties(authConfig, newAuthConfig); + // 2.2 修改对应的 clientId + clientSecret 密钥 + newAuthConfig.setClientId(client.getClientId()); + newAuthConfig.setClientSecret(client.getClientSecret()); + if (client.getAgentId() != null) { // 如果有 agentId 则修改 agentId + newAuthConfig.setAgentId(client.getAgentId()); + } + // 2.3 设置会 request 里,进行后续使用 + ReflectUtil.setFieldValue(request, "config", newAuthConfig); + } + return request; + } + + // =================== 微信公众号独有 =================== + + @Override + @SneakyThrows + public WxJsapiSignature createWxMpJsapiSignature(Integer userType, String url) { + WxMpService service = getWxMpService(userType); + return service.createJsapiSignature(url); + } + + /** + * 获得 clientId + clientSecret 对应的 WxMpService 对象 + * + * @param userType 用户类型 + * @return WxMpService 对象 + */ + @VisibleForTesting + WxMpService getWxMpService(Integer userType) { + // 第一步,查询 DB 的配置项,获得对应的 WxMpService 对象 + SocialClientDO client = socialClientMapper.selectBySocialTypeAndUserType( + SocialTypeEnum.WECHAT_MP.getType(), userType); + if (client != null && Objects.equals(client.getStatus(), CommonStatusEnum.ENABLE.getStatus())) { + return wxMpServiceCache.getUnchecked(client.getClientId() + ":" + client.getClientSecret()); + } + // 第二步,不存在 DB 配置项,则使用 application-*.yaml 对应的 WxMpService 对象 + return wxMpService; + } + + /** + * 创建 clientId + clientSecret 对应的 WxMpService 对象 + * + * @param clientId 微信公众号 appId + * @param clientSecret 微信公众号 secret + * @return WxMpService 对象 + */ + public WxMpService buildWxMpService(String clientId, String clientSecret) { + // 第一步,创建 WxMpRedisConfigImpl 对象 + WxMpRedisConfigImpl configStorage = new WxMpRedisConfigImpl( + new RedisTemplateWxRedisOps(stringRedisTemplate), + wxMpProperties.getConfigStorage().getKeyPrefix()); + configStorage.setAppId(clientId); + configStorage.setSecret(clientSecret); + + // 第二步,创建 WxMpService 对象 + WxMpService service = new WxMpServiceImpl(); + service.setWxMpConfigStorage(configStorage); + return service; + } + + // =================== 微信小程序独有 =================== + + @Override + public WxMaPhoneNumberInfo getWxMaPhoneNumberInfo(Integer userType, String phoneCode) { + WxMaService service = getWxMaService(userType); + try { + return service.getUserService().getPhoneNoInfo(phoneCode); + } catch (WxErrorException e) { + log.error("[getPhoneNoInfo][userType({}) phoneCode({}) 获得手机号失败]", userType, phoneCode, e); + throw exception(SOCIAL_CLIENT_WEIXIN_MINI_APP_PHONE_CODE_ERROR); + } + } + + /** + * 获得 clientId + clientSecret 对应的 WxMpService 对象 + * + * @param userType 用户类型 + * @return WxMpService 对象 + */ + @VisibleForTesting + WxMaService getWxMaService(Integer userType) { + // 第一步,查询 DB 的配置项,获得对应的 WxMaService 对象 + SocialClientDO client = socialClientMapper.selectBySocialTypeAndUserType( + SocialTypeEnum.WECHAT_MINI_APP.getType(), userType); + if (client != null && Objects.equals(client.getStatus(), CommonStatusEnum.ENABLE.getStatus())) { + return wxMaServiceCache.getUnchecked(client.getClientId() + ":" + client.getClientSecret()); + } + // 第二步,不存在 DB 配置项,则使用 application-*.yaml 对应的 WxMaService 对象 + return wxMaService; + } + + /** + * 创建 clientId + clientSecret 对应的 WxMaService 对象 + * + * @param clientId 微信小程序 appId + * @param clientSecret 微信小程序 secret + * @return WxMaService 对象 + */ + private WxMaService buildWxMaService(String clientId, String clientSecret) { + // 第一步,创建 WxMaRedisBetterConfigImpl 对象 + WxMaRedisBetterConfigImpl configStorage = new WxMaRedisBetterConfigImpl( + new RedisTemplateWxRedisOps(stringRedisTemplate), + wxMaProperties.getConfigStorage().getKeyPrefix()); + configStorage.setAppid(clientId); + configStorage.setSecret(clientSecret); + + // 第二步,创建 WxMpService 对象 + WxMaService service = new WxMaServiceImpl(); + service.setWxMaConfig(configStorage); + return service; + } + + // =================== 客户端管理 =================== + + @Override + public Long createSocialClient(SocialClientSaveReqVO createReqVO) { + // 校验重复 + validateSocialClientUnique(null, createReqVO.getUserType(), createReqVO.getSocialType()); + + // 插入 + SocialClientDO client = BeanUtils.toBean(createReqVO, SocialClientDO.class); + socialClientMapper.insert(client); + return client.getId(); + } + + @Override + public void updateSocialClient(SocialClientSaveReqVO updateReqVO) { + // 校验存在 + validateSocialClientExists(updateReqVO.getId()); + // 校验重复 + validateSocialClientUnique(updateReqVO.getId(), updateReqVO.getUserType(), updateReqVO.getSocialType()); + + // 更新 + SocialClientDO updateObj = BeanUtils.toBean(updateReqVO, SocialClientDO.class); + socialClientMapper.updateById(updateObj); + } + + @Override + public void deleteSocialClient(Long id) { + // 校验存在 + validateSocialClientExists(id); + // 删除 + socialClientMapper.deleteById(id); + } + + private void validateSocialClientExists(Long id) { + if (socialClientMapper.selectById(id) == null) { + throw exception(SOCIAL_CLIENT_NOT_EXISTS); + } + } + + /** + * 校验社交应用是否重复,需要保证 userType + socialType 唯一 + * + * 原因是,不同端(userType)选择某个社交登录(socialType)时,需要通过 {@link #buildAuthRequest(Integer, Integer)} 构建对应的请求 + * + * @param id 编号 + * @param userType 用户类型 + * @param socialType 社交类型 + */ + private void validateSocialClientUnique(Long id, Integer userType, Integer socialType) { + SocialClientDO client = socialClientMapper.selectBySocialTypeAndUserType( + socialType, userType); + if (client == null) { + return; + } + if (id == null // 新增时,说明重复 + || ObjUtil.notEqual(id, client.getId())) { // 更新时,如果 id 不一致,说明重复 + throw exception(SOCIAL_CLIENT_UNIQUE); + } + } + + @Override + public SocialClientDO getSocialClient(Long id) { + return socialClientMapper.selectById(id); + } + + @Override + public PageResult getSocialClientPage(SocialClientPageReqVO pageReqVO) { + return socialClientMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.java new file mode 100644 index 0000000..b8fa3f7 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.java @@ -0,0 +1,89 @@ +package cn.iocoder.yudao.module.system.service.social; + +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; + +import javax.validation.Valid; +import java.util.List; + +/** + * 社交用户 Service 接口,例如说社交平台的授权登录 + * + * @author 芋道源码 + */ +public interface SocialUserService { + + /** + * 获得指定用户的社交用户列表 + * + * @param userId 用户编号 + * @param userType 用户类型 + * @return 社交用户列表 + */ + List getSocialUserList(Long userId, Integer userType); + + /** + * 绑定社交用户 + * + * @param reqDTO 绑定信息 + * @return 社交用户 openid + */ + String bindSocialUser(@Valid SocialUserBindReqDTO reqDTO); + + /** + * 取消绑定社交用户 + * + * @param userId 用户编号 + * @param userType 全局用户类型 + * @param socialType 社交平台的类型 {@link SocialTypeEnum} + * @param openid 社交平台的 openid + */ + void unbindSocialUser(Long userId, Integer userType, Integer socialType, String openid); + + /** + * 获得社交用户,基于 userId + * + * @param userType 用户类型 + * @param userId 用户编号 + * @param socialType 社交平台的类型 + * @return 社交用户 + */ + SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType); + + /** + * 获得社交用户 + * + * 在认证信息不正确的情况下,也会抛出 {@link ServiceException} 业务异常 + * + * @param userType 用户类型 + * @param socialType 社交平台的类型 + * @param code 授权码 + * @param state state + * @return 社交用户 + */ + SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state); + + // ==================== 社交用户 CRUD ==================== + + /** + * 获得社交用户 + * + * @param id 编号 + * @return 社交用户 + */ + SocialUserDO getSocialUser(Long id); + + /** + * 获得社交用户分页 + * + * @param pageReqVO 分页查询 + * @return 社交用户分页 + */ + PageResult getSocialUserPage(SocialUserPageReqVO pageReqVO); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java new file mode 100644 index 0000000..7458d9c --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java @@ -0,0 +1,173 @@ +package cn.iocoder.yudao.module.system.service.social; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; +import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserBindDO; +import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserBindMapper; +import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper; +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; +import com.xingyuv.jushauth.model.AuthUser; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.constraints.NotNull; +import java.util.Collections; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SOCIAL_USER_NOT_FOUND; + +/** + * 社交用户 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class SocialUserServiceImpl implements SocialUserService { + + @Resource + private SocialUserBindMapper socialUserBindMapper; + @Resource + private SocialUserMapper socialUserMapper; + + @Resource + private SocialClientService socialClientService; + + @Override + public List getSocialUserList(Long userId, Integer userType) { + // 获得绑定 + List socialUserBinds = socialUserBindMapper.selectListByUserIdAndUserType(userId, userType); + if (CollUtil.isEmpty(socialUserBinds)) { + return Collections.emptyList(); + } + // 获得社交用户 + return socialUserMapper.selectBatchIds(convertSet(socialUserBinds, SocialUserBindDO::getSocialUserId)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String bindSocialUser(SocialUserBindReqDTO reqDTO) { + // 获得社交用户 + SocialUserDO socialUser = authSocialUser(reqDTO.getSocialType(), reqDTO.getUserType(), + reqDTO.getCode(), reqDTO.getState()); + Assert.notNull(socialUser, "社交用户不能为空"); + + // 社交用户可能之前绑定过别的用户,需要进行解绑 + socialUserBindMapper.deleteByUserTypeAndSocialUserId(reqDTO.getUserType(), socialUser.getId()); + + // 用户可能之前已经绑定过该社交类型,需要进行解绑 + socialUserBindMapper.deleteByUserTypeAndUserIdAndSocialType(reqDTO.getUserType(), reqDTO.getUserId(), + socialUser.getType()); + + // 绑定当前登录的社交用户 + SocialUserBindDO socialUserBind = SocialUserBindDO.builder() + .userId(reqDTO.getUserId()).userType(reqDTO.getUserType()) + .socialUserId(socialUser.getId()).socialType(socialUser.getType()).build(); + socialUserBindMapper.insert(socialUserBind); + return socialUser.getOpenid(); + } + + @Override + public void unbindSocialUser(Long userId, Integer userType, Integer socialType, String openid) { + // 获得 openid 对应的 SocialUserDO 社交用户 + SocialUserDO socialUser = socialUserMapper.selectByTypeAndOpenid(socialType, openid); + if (socialUser == null) { + throw exception(SOCIAL_USER_NOT_FOUND); + } + + // 获得对应的社交绑定关系 + socialUserBindMapper.deleteByUserTypeAndUserIdAndSocialType(userType, userId, socialUser.getType()); + } + + @Override + public SocialUserRespDTO getSocialUserByUserId(Integer userType, Long userId, Integer socialType) { + // 获得绑定用户 + SocialUserBindDO socialUserBind = socialUserBindMapper.selectByUserIdAndUserTypeAndSocialType(userId, userType, socialType); + if (socialUserBind == null) { + return null; + } + // 获得社交用户 + SocialUserDO socialUser = socialUserMapper.selectById(socialUserBind.getSocialUserId()); + Assert.notNull(socialUser, "社交用户不能为空"); + return new SocialUserRespDTO(socialUser.getOpenid(), socialUser.getNickname(), socialUser.getAvatar(), + socialUserBind.getUserId()); + } + + @Override + public SocialUserRespDTO getSocialUserByCode(Integer userType, Integer socialType, String code, String state) { + // 获得社交用户 + SocialUserDO socialUser = authSocialUser(socialType, userType, code, state); + Assert.notNull(socialUser, "社交用户不能为空"); + + // 获得绑定用户 + SocialUserBindDO socialUserBind = socialUserBindMapper.selectByUserTypeAndSocialUserId(userType, + socialUser.getId()); + return new SocialUserRespDTO(socialUser.getOpenid(), socialUser.getNickname(), socialUser.getAvatar(), + socialUserBind != null ? socialUserBind.getUserId() : null); + } + + /** + * 授权获得对应的社交用户 + * 如果授权失败,则会抛出 {@link ServiceException} 异常 + * + * @param socialType 社交平台的类型 {@link SocialTypeEnum} + * @param userType 用户类型 + * @param code 授权码 + * @param state state + * @return 授权用户 + */ + @NotNull + public SocialUserDO authSocialUser(Integer socialType, Integer userType, String code, String state) { + // 优先从 DB 中获取,因为 code 有且可以使用一次。 + // 在社交登录时,当未绑定 User 时,需要绑定登录,此时需要 code 使用两次 + SocialUserDO socialUser = socialUserMapper.selectByTypeAndCodeAnState(socialType, code, state); + if (socialUser != null) { + return socialUser; + } + + // 请求获取 + AuthUser authUser = socialClientService.getAuthUser(socialType, userType, code, state); + Assert.notNull(authUser, "三方用户不能为空"); + + // 保存到 DB 中 + socialUser = socialUserMapper.selectByTypeAndOpenid(socialType, authUser.getUuid()); + if (socialUser == null) { + socialUser = new SocialUserDO(); + } + socialUser.setType(socialType).setCode(code).setState(state) // 需要保存 code + state 字段,保证后续可查询 + .setOpenid(authUser.getUuid()).setToken(authUser.getToken().getAccessToken()).setRawTokenInfo((toJsonString(authUser.getToken()))) + .setNickname(authUser.getNickname()).setAvatar(authUser.getAvatar()).setRawUserInfo(toJsonString(authUser.getRawUserInfo())); + if (socialUser.getId() == null) { + socialUserMapper.insert(socialUser); + } else { + socialUserMapper.updateById(socialUser); + } + return socialUser; + } + + // ==================== 社交用户 CRUD ==================== + + @Override + public SocialUserDO getSocialUser(Long id) { + return socialUserMapper.selectById(id); + } + + @Override + public PageResult getSocialUserPage(SocialUserPageReqVO pageReqVO) { + return socialUserMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.java new file mode 100644 index 0000000..1abe4fe --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.system.service.tenant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 租户套餐 Service 接口 + * + * @author 芋道源码 + */ +public interface TenantPackageService { + + /** + * 创建租户套餐 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTenantPackage(@Valid TenantPackageSaveReqVO createReqVO); + + /** + * 更新租户套餐 + * + * @param updateReqVO 更新信息 + */ + void updateTenantPackage(@Valid TenantPackageSaveReqVO updateReqVO); + + /** + * 删除租户套餐 + * + * @param id 编号 + */ + void deleteTenantPackage(Long id); + + /** + * 获得租户套餐 + * + * @param id 编号 + * @return 租户套餐 + */ + TenantPackageDO getTenantPackage(Long id); + + /** + * 获得租户套餐分页 + * + * @param pageReqVO 分页查询 + * @return 租户套餐分页 + */ + PageResult getTenantPackagePage(TenantPackagePageReqVO pageReqVO); + + /** + * 校验租户套餐 + * + * @param id 编号 + * @return 租户套餐 + */ + TenantPackageDO validTenantPackage(Long id); + + /** + * 获得指定状态的租户套餐列表 + * + * @param status 状态 + * @return 租户套餐 + */ + List getTenantPackageListByStatus(Integer status); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.java new file mode 100644 index 0000000..3fd76a1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.java @@ -0,0 +1,114 @@ +package cn.iocoder.yudao.module.system.service.tenant; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackagePageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.TenantPackageSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; +import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantPackageMapper; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 租户套餐 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +public class TenantPackageServiceImpl implements TenantPackageService { + + @Resource + private TenantPackageMapper tenantPackageMapper; + + @Resource + @Lazy // 避免循环依赖的报错 + private TenantService tenantService; + + @Override + public Long createTenantPackage(TenantPackageSaveReqVO createReqVO) { + // 插入 + TenantPackageDO tenantPackage = BeanUtils.toBean(createReqVO, TenantPackageDO.class); + tenantPackageMapper.insert(tenantPackage); + // 返回 + return tenantPackage.getId(); + } + + @Override + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + public void updateTenantPackage(TenantPackageSaveReqVO updateReqVO) { + // 校验存在 + TenantPackageDO tenantPackage = validateTenantPackageExists(updateReqVO.getId()); + // 更新 + TenantPackageDO updateObj = BeanUtils.toBean(updateReqVO, TenantPackageDO.class); + tenantPackageMapper.updateById(updateObj); + // 如果菜单发生变化,则修改每个租户的菜单 + if (!CollUtil.isEqualList(tenantPackage.getMenuIds(), updateReqVO.getMenuIds())) { + List tenants = tenantService.getTenantListByPackageId(tenantPackage.getId()); + tenants.forEach(tenant -> tenantService.updateTenantRoleMenu(tenant.getId(), updateReqVO.getMenuIds())); + } + } + + @Override + public void deleteTenantPackage(Long id) { + // 校验存在 + validateTenantPackageExists(id); + // 校验正在使用 + validateTenantUsed(id); + // 删除 + tenantPackageMapper.deleteById(id); + } + + private TenantPackageDO validateTenantPackageExists(Long id) { + TenantPackageDO tenantPackage = tenantPackageMapper.selectById(id); + if (tenantPackage == null) { + throw exception(TENANT_PACKAGE_NOT_EXISTS); + } + return tenantPackage; + } + + private void validateTenantUsed(Long id) { + if (tenantService.getTenantCountByPackageId(id) > 0) { + throw exception(TENANT_PACKAGE_USED); + } + } + + @Override + public TenantPackageDO getTenantPackage(Long id) { + return tenantPackageMapper.selectById(id); + } + + @Override + public PageResult getTenantPackagePage(TenantPackagePageReqVO pageReqVO) { + return tenantPackageMapper.selectPage(pageReqVO); + } + + @Override + public TenantPackageDO validTenantPackage(Long id) { + TenantPackageDO tenantPackage = tenantPackageMapper.selectById(id); + if (tenantPackage == null) { + throw exception(TENANT_PACKAGE_NOT_EXISTS); + } + if (tenantPackage.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { + throw exception(TENANT_PACKAGE_DISABLE, tenantPackage.getName()); + } + return tenantPackage; + } + + @Override + public List getTenantPackageListByStatus(Integer status) { + return tenantPackageMapper.selectListByStatus(status); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java new file mode 100644 index 0000000..c7e879b --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java @@ -0,0 +1,130 @@ +package cn.iocoder.yudao.module.system.service.tenant; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; +import cn.iocoder.yudao.module.system.service.tenant.handler.TenantInfoHandler; +import cn.iocoder.yudao.module.system.service.tenant.handler.TenantMenuHandler; + +import javax.validation.Valid; +import java.util.List; +import java.util.Set; + +/** + * 租户 Service 接口 + * + * @author 芋道源码 + */ +public interface TenantService { + + /** + * 创建租户 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTenant(@Valid TenantSaveReqVO createReqVO); + + /** + * 更新租户 + * + * @param updateReqVO 更新信息 + */ + void updateTenant(@Valid TenantSaveReqVO updateReqVO); + + /** + * 更新租户的角色菜单 + * + * @param tenantId 租户编号 + * @param menuIds 菜单编号数组 + */ + void updateTenantRoleMenu(Long tenantId, Set menuIds); + + /** + * 删除租户 + * + * @param id 编号 + */ + void deleteTenant(Long id); + + /** + * 获得租户 + * + * @param id 编号 + * @return 租户 + */ + TenantDO getTenant(Long id); + + /** + * 获得租户分页 + * + * @param pageReqVO 分页查询 + * @return 租户分页 + */ + PageResult getTenantPage(TenantPageReqVO pageReqVO); + + /** + * 获得名字对应的租户 + * + * @param name 租户名 + * @return 租户 + */ + TenantDO getTenantByName(String name); + + /** + * 获得域名对应的租户 + * + * @param website 域名 + * @return 租户 + */ + TenantDO getTenantByWebsite(String website); + + /** + * 获得使用指定套餐的租户数量 + * + * @param packageId 租户套餐编号 + * @return 租户数量 + */ + Long getTenantCountByPackageId(Long packageId); + + /** + * 获得使用指定套餐的租户数组 + * + * @param packageId 租户套餐编号 + * @return 租户数组 + */ + List getTenantListByPackageId(Long packageId); + + /** + * 进行租户的信息处理逻辑 + * 其中,租户编号从 {@link TenantContextHolder} 上下文中获取 + * + * @param handler 处理器 + */ + void handleTenantInfo(TenantInfoHandler handler); + + /** + * 进行租户的菜单处理逻辑 + * 其中,租户编号从 {@link TenantContextHolder} 上下文中获取 + * + * @param handler 处理器 + */ + void handleTenantMenu(TenantMenuHandler handler); + + /** + * 获得所有租户 + * + * @return 租户编号数组 + */ + List getTenantIdList(); + + /** + * 校验租户是否合法 + * + * @param id 租户编号 + */ + void validTenant(Long id); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java new file mode 100644 index 0000000..b4bdf10 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -0,0 +1,306 @@ +package cn.iocoder.yudao.module.system.service.tenant; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.tenant.config.TenantProperties; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; +import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; +import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper; +import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; +import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; +import cn.iocoder.yudao.module.system.service.permission.MenuService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import cn.iocoder.yudao.module.system.service.tenant.handler.TenantInfoHandler; +import cn.iocoder.yudao.module.system.service.tenant.handler.TenantMenuHandler; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; +import static java.util.Collections.singleton; + +/** + * 租户 Service 实现类 + * + * @author 芋道源码 + */ +@Service +@Validated +@Slf4j +public class TenantServiceImpl implements TenantService { + + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") + @Autowired(required = false) // 由于 yudao.tenant.enable 配置项,可以关闭多租户的功能,所以这里只能不强制注入 + private TenantProperties tenantProperties; + + @Resource + private TenantMapper tenantMapper; + + @Resource + private TenantPackageService tenantPackageService; + @Resource + @Lazy // 延迟,避免循环依赖报错 + private AdminUserService userService; + @Resource + private RoleService roleService; + @Resource + private MenuService menuService; + @Resource + private PermissionService permissionService; + + @Override + public List getTenantIdList() { + List tenants = tenantMapper.selectList(); + return CollectionUtils.convertList(tenants, TenantDO::getId); + } + + @Override + public void validTenant(Long id) { + TenantDO tenant = getTenant(id); + if (tenant == null) { + throw exception(TENANT_NOT_EXISTS); + } + if (tenant.getStatus().equals(CommonStatusEnum.DISABLE.getStatus())) { + throw exception(TENANT_DISABLE, tenant.getName()); + } + if (DateUtils.isExpired(tenant.getExpireTime())) { + throw exception(TENANT_EXPIRE, tenant.getName()); + } + } + + @Override + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + public Long createTenant(TenantSaveReqVO createReqVO) { + // 校验租户名称是否重复 + validTenantNameDuplicate(createReqVO.getName(), null); + // 校验租户域名是否重复 + validTenantWebsiteDuplicate(createReqVO.getWebsite(), null); + // 校验套餐被禁用 + TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(createReqVO.getPackageId()); + + // 创建租户 + TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class); + tenantMapper.insert(tenant); + // 创建租户的管理员 + TenantUtils.execute(tenant.getId(), () -> { + // 创建角色 + Long roleId = createRole(tenantPackage); + // 创建用户,并分配角色 + Long userId = createUser(roleId, createReqVO); + // 修改租户的管理员 + tenantMapper.updateById(new TenantDO().setId(tenant.getId()).setContactUserId(userId)); + }); + return tenant.getId(); + } + + private Long createUser(Long roleId, TenantSaveReqVO createReqVO) { + // 创建用户 + Long userId = userService.createUser(TenantConvert.INSTANCE.convert02(createReqVO)); + // 分配角色 + permissionService.assignUserRole(userId, singleton(roleId)); + return userId; + } + + private Long createRole(TenantPackageDO tenantPackage) { + // 创建角色 + RoleSaveReqVO reqVO = new RoleSaveReqVO(); + reqVO.setName(RoleCodeEnum.TENANT_ADMIN.getName()).setCode(RoleCodeEnum.TENANT_ADMIN.getCode()) + .setSort(0).setRemark("系统自动生成"); + Long roleId = roleService.createRole(reqVO, RoleTypeEnum.SYSTEM.getType()); + // 分配权限 + permissionService.assignRoleMenu(roleId, tenantPackage.getMenuIds()); + return roleId; + } + + @Override + @DSTransactional // 多数据源,使用 @DSTransactional 保证本地事务,以及数据源的切换 + public void updateTenant(TenantSaveReqVO updateReqVO) { + // 校验存在 + TenantDO tenant = validateUpdateTenant(updateReqVO.getId()); + // 校验租户名称是否重复 + validTenantNameDuplicate(updateReqVO.getName(), updateReqVO.getId()); + // 校验租户域名是否重复 + validTenantWebsiteDuplicate(updateReqVO.getWebsite(), updateReqVO.getId()); + // 校验套餐被禁用 + TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(updateReqVO.getPackageId()); + + // 更新租户 + TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class); + tenantMapper.updateById(updateObj); + // 如果套餐发生变化,则修改其角色的权限 + if (ObjectUtil.notEqual(tenant.getPackageId(), updateReqVO.getPackageId())) { + updateTenantRoleMenu(tenant.getId(), tenantPackage.getMenuIds()); + } + } + + private void validTenantNameDuplicate(String name, Long id) { + TenantDO tenant = tenantMapper.selectByName(name); + if (tenant == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同名字的租户 + if (id == null) { + throw exception(TENANT_NAME_DUPLICATE, name); + } + if (!tenant.getId().equals(id)) { + throw exception(TENANT_NAME_DUPLICATE, name); + } + } + + private void validTenantWebsiteDuplicate(String website, Long id) { + if (StrUtil.isEmpty(website)) { + return; + } + TenantDO tenant = tenantMapper.selectByWebsite(website); + if (tenant == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同名字的租户 + if (id == null) { + throw exception(TENANT_WEBSITE_DUPLICATE, website); + } + if (!tenant.getId().equals(id)) { + throw exception(TENANT_WEBSITE_DUPLICATE, website); + } + } + + @Override + @DSTransactional + public void updateTenantRoleMenu(Long tenantId, Set menuIds) { + TenantUtils.execute(tenantId, () -> { + // 获得所有角色 + List roles = roleService.getRoleList(); + roles.forEach(role -> Assert.isTrue(tenantId.equals(role.getTenantId()), "角色({}/{}) 租户不匹配", + role.getId(), role.getTenantId(), tenantId)); // 兜底校验 + // 重新分配每个角色的权限 + roles.forEach(role -> { + // 如果是租户管理员,重新分配其权限为租户套餐的权限 + if (Objects.equals(role.getCode(), RoleCodeEnum.TENANT_ADMIN.getCode())) { + permissionService.assignRoleMenu(role.getId(), menuIds); + log.info("[updateTenantRoleMenu][租户管理员({}/{}) 的权限修改为({})]", role.getId(), role.getTenantId(), menuIds); + return; + } + // 如果是其他角色,则去掉超过套餐的权限 + Set roleMenuIds = permissionService.getRoleMenuListByRoleId(role.getId()); + roleMenuIds = CollUtil.intersectionDistinct(roleMenuIds, menuIds); + permissionService.assignRoleMenu(role.getId(), roleMenuIds); + log.info("[updateTenantRoleMenu][角色({}/{}) 的权限修改为({})]", role.getId(), role.getTenantId(), roleMenuIds); + }); + }); + } + + @Override + public void deleteTenant(Long id) { + // 校验存在 + validateUpdateTenant(id); + // 删除 + tenantMapper.deleteById(id); + } + + private TenantDO validateUpdateTenant(Long id) { + TenantDO tenant = tenantMapper.selectById(id); + if (tenant == null) { + throw exception(TENANT_NOT_EXISTS); + } + // 内置租户,不允许删除 + if (isSystemTenant(tenant)) { + throw exception(TENANT_CAN_NOT_UPDATE_SYSTEM); + } + return tenant; + } + + @Override + public TenantDO getTenant(Long id) { + return tenantMapper.selectById(id); + } + + @Override + public PageResult getTenantPage(TenantPageReqVO pageReqVO) { + return tenantMapper.selectPage(pageReqVO); + } + + @Override + public TenantDO getTenantByName(String name) { + return tenantMapper.selectByName(name); + } + + @Override + public TenantDO getTenantByWebsite(String website) { + return tenantMapper.selectByWebsite(website); + } + + @Override + public Long getTenantCountByPackageId(Long packageId) { + return tenantMapper.selectCountByPackageId(packageId); + } + + @Override + public List getTenantListByPackageId(Long packageId) { + return tenantMapper.selectListByPackageId(packageId); + } + + @Override + public void handleTenantInfo(TenantInfoHandler handler) { + // 如果禁用,则不执行逻辑 + if (isTenantDisable()) { + return; + } + // 获得租户 + TenantDO tenant = getTenant(TenantContextHolder.getRequiredTenantId()); + // 执行处理器 + handler.handle(tenant); + } + + @Override + public void handleTenantMenu(TenantMenuHandler handler) { + // 如果禁用,则不执行逻辑 + if (isTenantDisable()) { + return; + } + // 获得租户,然后获得菜单 + TenantDO tenant = getTenant(TenantContextHolder.getRequiredTenantId()); + Set menuIds; + if (isSystemTenant(tenant)) { // 系统租户,菜单是全量的 + menuIds = CollectionUtils.convertSet(menuService.getMenuList(), MenuDO::getId); + } else { + menuIds = tenantPackageService.getTenantPackage(tenant.getPackageId()).getMenuIds(); + } + // 执行处理器 + handler.handle(menuIds); + } + + private static boolean isSystemTenant(TenantDO tenant) { + return Objects.equals(tenant.getPackageId(), TenantDO.PACKAGE_ID_SYSTEM); + } + + private boolean isTenantDisable() { + return tenantProperties == null || Boolean.FALSE.equals(tenantProperties.getEnable()); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.java new file mode 100644 index 0000000..5b5b9fe --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.service.tenant.handler; + +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; + +/** + * 租户信息处理 + * 目的:尽量减少租户逻辑耦合到系统中 + * + * @author 芋道源码 + */ +public interface TenantInfoHandler { + + /** + * 基于传入的租户信息,进行相关逻辑的执行 + * 例如说,创建用户时,超过最大账户配额 + * + * @param tenant 租户信息 + */ + void handle(TenantDO tenant); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.java new file mode 100644 index 0000000..2e1be43 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.service.tenant.handler; + +import java.util.Set; + +/** + * 租户菜单处理 + * 目的:尽量减少租户逻辑耦合到系统中 + * + * @author 芋道源码 + */ +public interface TenantMenuHandler { + + /** + * 基于传入的租户菜单【全】列表,进行相关逻辑的执行 + * 例如说,返回可分配菜单的时候,可以移除多余的 + * + * @param menuIds 菜单列表 + */ + void handle(Set menuIds); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java new file mode 100644 index 0000000..e715a69 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -0,0 +1,204 @@ +package cn.iocoder.yudao.module.system.service.user; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; + +import javax.validation.Valid; +import java.io.InputStream; +import java.util.*; + +/** + * 后台用户 Service 接口 + * + * @author 芋道源码 + */ +public interface AdminUserService { + + /** + * 创建用户 + * + * @param createReqVO 用户信息 + * @return 用户编号 + */ + Long createUser(@Valid UserSaveReqVO createReqVO); + + /** + * 修改用户 + * + * @param updateReqVO 用户信息 + */ + void updateUser(@Valid UserSaveReqVO updateReqVO); + + /** + * 更新用户的最后登陆信息 + * + * @param id 用户编号 + * @param loginIp 登陆 IP + */ + void updateUserLogin(Long id, String loginIp); + + /** + * 修改用户个人信息 + * + * @param id 用户编号 + * @param reqVO 用户个人信息 + */ + void updateUserProfile(Long id, @Valid UserProfileUpdateReqVO reqVO); + + /** + * 修改用户个人密码 + * + * @param id 用户编号 + * @param reqVO 更新用户个人密码 + */ + void updateUserPassword(Long id, @Valid UserProfileUpdatePasswordReqVO reqVO); + + /** + * 更新用户头像 + * + * @param id 用户 id + * @param avatarFile 头像文件 + */ + String updateUserAvatar(Long id, InputStream avatarFile) throws Exception; + + /** + * 修改密码 + * + * @param id 用户编号 + * @param password 密码 + */ + void updateUserPassword(Long id, String password); + + /** + * 修改状态 + * + * @param id 用户编号 + * @param status 状态 + */ + void updateUserStatus(Long id, Integer status); + + /** + * 删除用户 + * + * @param id 用户编号 + */ + void deleteUser(Long id); + + /** + * 通过用户名查询用户 + * + * @param username 用户名 + * @return 用户对象信息 + */ + AdminUserDO getUserByUsername(String username); + + /** + * 通过手机号获取用户 + * + * @param mobile 手机号 + * @return 用户对象信息 + */ + AdminUserDO getUserByMobile(String mobile); + + /** + * 获得用户分页列表 + * + * @param reqVO 分页条件 + * @return 分页列表 + */ + PageResult getUserPage(UserPageReqVO reqVO); + + /** + * 通过用户 ID 查询用户 + * + * @param id 用户ID + * @return 用户对象信息 + */ + AdminUserDO getUser(Long id); + + /** + * 获得指定部门的用户数组 + * + * @param deptIds 部门数组 + * @return 用户数组 + */ + List getUserListByDeptIds(Collection deptIds); + + /** + * 获得指定岗位的用户数组 + * + * @param postIds 岗位数组 + * @return 用户数组 + */ + List getUserListByPostIds(Collection postIds); + + /** + * 获得用户列表 + * + * @param ids 用户编号数组 + * @return 用户列表 + */ + List getUserList(Collection ids); + + /** + * 校验用户们是否有效。如下情况,视为无效: + * 1. 用户编号不存在 + * 2. 用户被禁用 + * + * @param ids 用户编号数组 + */ + void validateUserList(Collection ids); + + /** + * 获得用户 Map + * + * @param ids 用户编号数组 + * @return 用户 Map + */ + default Map getUserMap(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return new HashMap<>(); + } + return CollectionUtils.convertMap(getUserList(ids), AdminUserDO::getId); + } + + /** + * 获得用户列表,基于昵称模糊匹配 + * + * @param nickname 昵称 + * @return 用户列表 + */ + List getUserListByNickname(String nickname); + + /** + * 批量导入用户 + * + * @param importUsers 导入用户列表 + * @param isUpdateSupport 是否支持更新 + * @return 导入结果 + */ + UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport); + + /** + * 获得指定状态的用户们 + * + * @param status 状态 + * @return 用户们 + */ + List getUserListByStatus(Integer status); + + /** + * 判断密码是否匹配 + * + * @param rawPassword 未加密的密码 + * @param encodedPassword 加密后的密码 + * @return 是否匹配 + */ + boolean isPasswordMatch(String rawPassword, String encodedPassword); + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java new file mode 100644 index 0000000..5f43870 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -0,0 +1,455 @@ +package cn.iocoder.yudao.module.system.service.user; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.exception.ServiceException; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; +import cn.iocoder.yudao.module.infra.api.file.FileApi; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportRespVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper; +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; +import cn.iocoder.yudao.module.system.service.dept.DeptService; +import cn.iocoder.yudao.module.system.service.dept.PostService; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.tenant.TenantService; +import com.google.common.annotations.VisibleForTesting; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.InputStream; +import java.time.LocalDateTime; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 后台用户 Service 实现类 + * + * @author 芋道源码 + */ +@Service("adminUserService") +@Slf4j +public class AdminUserServiceImpl implements AdminUserService { + + @Value("${sys.user.init-password:yudaoyuanma}") + private String userInitPassword; + + @Resource + private AdminUserMapper userMapper; + + @Resource + private DeptService deptService; + @Resource + private PostService postService; + @Resource + private PermissionService permissionService; + @Resource + private PasswordEncoder passwordEncoder; + @Resource + @Lazy // 延迟,避免循环依赖报错 + private TenantService tenantService; + + @Resource + private UserPostMapper userPostMapper; + + @Resource + private FileApi fileApi; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createUser(UserSaveReqVO createReqVO) { + // 校验账户配合 + tenantService.handleTenantInfo(tenant -> { + long count = userMapper.selectCount(); + if (count >= tenant.getAccountCount()) { + throw exception(USER_COUNT_MAX, tenant.getAccountCount()); + } + }); + // 校验正确性 + validateUserForCreateOrUpdate(null, createReqVO.getUsername(), + createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds()); + // 插入用户 + AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class); + user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 + user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码 + userMapper.insert(user); + // 插入关联岗位 + if (CollectionUtil.isNotEmpty(user.getPostIds())) { + userPostMapper.insertBatch(convertList(user.getPostIds(), + postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId))); + } + return user.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateUser(UserSaveReqVO updateReqVO) { + updateReqVO.setPassword(null); // 特殊:此处不更新密码 + // 校验正确性 + validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(), + updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds()); + // 更新用户 + AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class); + userMapper.updateById(updateObj); + // 更新岗位 + updateUserPost(updateReqVO, updateObj); + } + + private void updateUserPost(UserSaveReqVO reqVO, AdminUserDO updateObj) { + Long userId = reqVO.getId(); + Set dbPostIds = convertSet(userPostMapper.selectListByUserId(userId), UserPostDO::getPostId); + // 计算新增和删除的岗位编号 + Set postIds = CollUtil.emptyIfNull(updateObj.getPostIds()); + Collection createPostIds = CollUtil.subtract(postIds, dbPostIds); + Collection deletePostIds = CollUtil.subtract(dbPostIds, postIds); + // 执行新增和删除。对于已经授权的菜单,不用做任何处理 + if (!CollectionUtil.isEmpty(createPostIds)) { + userPostMapper.insertBatch(convertList(createPostIds, + postId -> new UserPostDO().setUserId(userId).setPostId(postId))); + } + if (!CollectionUtil.isEmpty(deletePostIds)) { + userPostMapper.deleteByUserIdAndPostId(userId, deletePostIds); + } + } + + @Override + public void updateUserLogin(Long id, String loginIp) { + userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(LocalDateTime.now())); + } + + @Override + public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) { + // 校验正确性 + validateUserExists(id); + validateEmailUnique(id, reqVO.getEmail()); + validateMobileUnique(id, reqVO.getMobile()); + // 执行更新 + userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id)); + } + + @Override + public void updateUserPassword(Long id, UserProfileUpdatePasswordReqVO reqVO) { + // 校验旧密码密码 + validateOldPassword(id, reqVO.getOldPassword()); + // 执行更新 + AdminUserDO updateObj = new AdminUserDO().setId(id); + updateObj.setPassword(encodePassword(reqVO.getNewPassword())); // 加密密码 + userMapper.updateById(updateObj); + } + + @Override + public String updateUserAvatar(Long id, InputStream avatarFile) { + validateUserExists(id); + // 存储文件 + String avatar = fileApi.createFile(IoUtil.readBytes(avatarFile)); + // 更新路径 + AdminUserDO sysUserDO = new AdminUserDO(); + sysUserDO.setId(id); + sysUserDO.setAvatar(avatar); + userMapper.updateById(sysUserDO); + return avatar; + } + + @Override + public void updateUserPassword(Long id, String password) { + // 校验用户存在 + validateUserExists(id); + // 更新密码 + AdminUserDO updateObj = new AdminUserDO(); + updateObj.setId(id); + updateObj.setPassword(encodePassword(password)); // 加密密码 + userMapper.updateById(updateObj); + } + + @Override + public void updateUserStatus(Long id, Integer status) { + // 校验用户存在 + validateUserExists(id); + // 更新状态 + AdminUserDO updateObj = new AdminUserDO(); + updateObj.setId(id); + updateObj.setStatus(status); + userMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteUser(Long id) { + // 校验用户存在 + validateUserExists(id); + // 删除用户 + userMapper.deleteById(id); + // 删除用户关联数据 + permissionService.processUserDeleted(id); + // 删除用户岗位 + userPostMapper.deleteByUserId(id); + } + + @Override + public AdminUserDO getUserByUsername(String username) { + return userMapper.selectByUsername(username); + } + + @Override + public AdminUserDO getUserByMobile(String mobile) { + return userMapper.selectByMobile(mobile); + } + + @Override + public PageResult getUserPage(UserPageReqVO reqVO) { + return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId())); + } + + @Override + public AdminUserDO getUser(Long id) { + return userMapper.selectById(id); + } + + @Override + public List getUserListByDeptIds(Collection deptIds) { + if (CollUtil.isEmpty(deptIds)) { + return Collections.emptyList(); + } + return userMapper.selectListByDeptIds(deptIds); + } + + @Override + public List getUserListByPostIds(Collection postIds) { + if (CollUtil.isEmpty(postIds)) { + return Collections.emptyList(); + } + Set userIds = convertSet(userPostMapper.selectListByPostIds(postIds), UserPostDO::getUserId); + if (CollUtil.isEmpty(userIds)) { + return Collections.emptyList(); + } + return userMapper.selectBatchIds(userIds); + } + + @Override + public List getUserList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return Collections.emptyList(); + } + return userMapper.selectBatchIds(ids); + } + + @Override + public void validateUserList(Collection ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 获得岗位信息 + List users = userMapper.selectBatchIds(ids); + Map userMap = CollectionUtils.convertMap(users, AdminUserDO::getId); + // 校验 + ids.forEach(id -> { + AdminUserDO user = userMap.get(id); + if (user == null) { + throw exception(USER_NOT_EXISTS); + } + if (!CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) { + throw exception(USER_IS_DISABLE, user.getNickname()); + } + }); + } + + @Override + public List getUserListByNickname(String nickname) { + return userMapper.selectListByNickname(nickname); + } + + /** + * 获得部门条件:查询指定部门的子部门编号们,包括自身 + * @param deptId 部门编号 + * @return 部门编号集合 + */ + private Set getDeptCondition(Long deptId) { + if (deptId == null) { + return Collections.emptySet(); + } + Set deptIds = convertSet(deptService.getChildDeptList(deptId), DeptDO::getId); + deptIds.add(deptId); // 包括自身 + return deptIds; + } + + private void validateUserForCreateOrUpdate(Long id, String username, String mobile, String email, + Long deptId, Set postIds) { + // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 + DataPermissionUtils.executeIgnore(() -> { + // 校验用户存在 + validateUserExists(id); + // 校验用户名唯一 + validateUsernameUnique(id, username); + // 校验手机号唯一 + validateMobileUnique(id, mobile); + // 校验邮箱唯一 + validateEmailUnique(id, email); + // 校验部门处于开启状态 + deptService.validateDeptList(CollectionUtils.singleton(deptId)); + // 校验岗位处于开启状态 + postService.validatePostList(postIds); + }); + } + + @VisibleForTesting + void validateUserExists(Long id) { + if (id == null) { + return; + } + AdminUserDO user = userMapper.selectById(id); + if (user == null) { + throw exception(USER_NOT_EXISTS); + } + } + + @VisibleForTesting + void validateUsernameUnique(Long id, String username) { + if (StrUtil.isBlank(username)) { + return; + } + AdminUserDO user = userMapper.selectByUsername(username); + if (user == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的用户 + if (id == null) { + throw exception(USER_USERNAME_EXISTS); + } + if (!user.getId().equals(id)) { + throw exception(USER_USERNAME_EXISTS); + } + } + + @VisibleForTesting + void validateEmailUnique(Long id, String email) { + if (StrUtil.isBlank(email)) { + return; + } + AdminUserDO user = userMapper.selectByEmail(email); + if (user == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的用户 + if (id == null) { + throw exception(USER_EMAIL_EXISTS); + } + if (!user.getId().equals(id)) { + throw exception(USER_EMAIL_EXISTS); + } + } + + @VisibleForTesting + void validateMobileUnique(Long id, String mobile) { + if (StrUtil.isBlank(mobile)) { + return; + } + AdminUserDO user = userMapper.selectByMobile(mobile); + if (user == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的用户 + if (id == null) { + throw exception(USER_MOBILE_EXISTS); + } + if (!user.getId().equals(id)) { + throw exception(USER_MOBILE_EXISTS); + } + } + + /** + * 校验旧密码 + * @param id 用户 id + * @param oldPassword 旧密码 + */ + @VisibleForTesting + void validateOldPassword(Long id, String oldPassword) { + AdminUserDO user = userMapper.selectById(id); + if (user == null) { + throw exception(USER_NOT_EXISTS); + } + if (!isPasswordMatch(oldPassword, user.getPassword())) { + throw exception(USER_PASSWORD_FAILED); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 + public UserImportRespVO importUserList(List importUsers, boolean isUpdateSupport) { + if (CollUtil.isEmpty(importUsers)) { + throw exception(USER_IMPORT_LIST_IS_EMPTY); + } + UserImportRespVO respVO = UserImportRespVO.builder().createUsernames(new ArrayList<>()) + .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build(); + importUsers.forEach(importUser -> { + // 校验,判断是否有不符合的原因 + try { + validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(), + importUser.getDeptId(), null); + } catch (ServiceException ex) { + respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage()); + return; + } + // 判断如果不存在,在进行插入 + AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername()); + if (existUser == null) { + userMapper.insert(BeanUtils.toBean(importUser, AdminUserDO.class) + .setPassword(encodePassword(userInitPassword)).setPostIds(new HashSet<>())); // 设置默认密码及空岗位编号数组 + respVO.getCreateUsernames().add(importUser.getUsername()); + return; + } + // 如果存在,判断是否允许更新 + if (!isUpdateSupport) { + respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg()); + return; + } + AdminUserDO updateUser = BeanUtils.toBean(importUser, AdminUserDO.class); + updateUser.setId(existUser.getId()); + userMapper.updateById(updateUser); + respVO.getUpdateUsernames().add(importUser.getUsername()); + }); + return respVO; + } + + @Override + public List getUserListByStatus(Integer status) { + return userMapper.selectListByStatus(status); + } + + @Override + public boolean isPasswordMatch(String rawPassword, String encodedPassword) { + return passwordEncoder.matches(rawPassword, encodedPassword); + } + + /** + * 对密码进行加密 + * + * @param password 密码 + * @return 加密后的密码 + */ + private String encodePassword(String password) { + return passwordEncoder.encode(password); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java new file mode 100644 index 0000000..8c3e4bc --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java @@ -0,0 +1,152 @@ +package cn.iocoder.yudao.module.system.util.collection; + +import cn.hutool.core.collection.CollUtil; + +import java.util.*; + +/** + * 基于前缀树,实现敏感词的校验 + *

    + * 相比 Apache Common 提供的 PatriciaTrie 来说,性能可能会更加好一些。 + * + * @author 芋道源码 + */ +@SuppressWarnings("unchecked") +public class SimpleTrie { + + /** + * 一个敏感词结束后对应的 key + */ + private static final Character CHARACTER_END = '\0'; + + /** + * 使用敏感词,构建的前缀树 + */ + private final Map children; + + /** + * 基于字符串,构建前缀树 + * + * @param strs 字符串数组 + */ + public SimpleTrie(Collection strs) { + // 排序,优先使用较短的前缀 + strs = CollUtil.sort(strs, String::compareTo); + // 构建树 + children = new HashMap<>(); + for (String str : strs) { + Map child = children; + // 遍历每个字符 + for (Character c : str.toCharArray()) { + // 如果已经到达结束,就没必要在添加更长的敏感词。 + // 例如说,有两个敏感词是:吃饭啊、吃饭。输入一句话是 “我要吃饭啊”,则只要匹配到 “吃饭” 这个敏感词即可。 + if (child.containsKey(CHARACTER_END)) { + break; + } + if (!child.containsKey(c)) { + child.put(c, new HashMap<>()); + } + child = (Map) child.get(c); + } + // 结束 + child.put(CHARACTER_END, null); + } + } + + /** + * 验证文本是否合法,即不包含敏感词 + * + * @param text 文本 + * @return 是否 true-合法 false-不合法 + */ + public boolean isValid(String text) { + // 遍历 text,使用每一个 [i, n) 段的字符串,使用 children 前缀树匹配,是否包含敏感词 + for (int i = 0; i < text.length(); i++) { + Map child = (Map) children.get(text.charAt(i)); + if (child == null) { + continue; + } + boolean ok = recursion(text, i + 1, child); + if (!ok) { + return false; + } + } + return true; + } + + /** + * 验证文本从指定位置开始,是否不包含某个敏感词 + * + * @param text 文本 + * @param index 开始位置 + * @param child 节点(当前遍历到的) + * @return 是否不包含 true-不包含 false-包含 + */ + private boolean recursion(String text, int index, Map child) { + if (child.containsKey(CHARACTER_END)) { + return false; + } + if (index == text.length()) { + return true; + } + child = (Map) child.get(text.charAt(index)); + return child == null || !child.containsKey(CHARACTER_END) && recursion(text, ++index, child); + } + + /** + * 获得文本所包含的不合法的敏感词 + * + * 注意,才当即最短匹配原则。例如说:当敏感词存在 “煞笔”,“煞笔二货 ”时,只会返回 “煞笔”。 + * + * @param text 文本 + * @return 匹配的敏感词 + */ + public List validate(String text) { + Set results = new HashSet<>(); + for (int i = 0; i < text.length(); i++) { + Character c = text.charAt(i); + Map child = (Map) children.get(c); + if (child == null) { + continue; + } + StringBuilder result = new StringBuilder().append(c); + boolean ok = recursionWithResult(text, i + 1, child, result); + if (!ok) { + results.add(result.toString()); + } + } + return new ArrayList<>(results); + } + + /** + * 返回文本从 index 开始的敏感词,并使用 StringBuilder 参数进行返回 + * + * 逻辑和 {@link #recursion(String, int, Map)} 是一致,只是多了 result 返回结果 + * + * @param text 文本 + * @param index 开始未知 + * @param child 节点(当前遍历到的) + * @param result 返回敏感词 + * @return 是否有敏感词 + */ + @SuppressWarnings("unchecked") + private static boolean recursionWithResult(String text, int index, Map child, StringBuilder result) { + if (child.containsKey(CHARACTER_END)) { + return false; + } + if (index == text.length()) { + return true; + } + Character c = text.charAt(index); + child = (Map) child.get(c); + if (child == null) { + return true; + } + if (child.containsKey(CHARACTER_END)) { + result.append(c); + return false; + } + return recursionWithResult(text, ++index, child, result.append(c)); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java new file mode 100644 index 0000000..2a6a46f --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.system.util.oauth2; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.util.http.HttpUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.*; + +/** + * OAuth2 相关的工具类 + * + * @author 芋道源码 + */ +public class OAuth2Utils { + + /** + * 构建授权码模式下,重定向的 URI + * + * copy from Spring Security OAuth2 的 AuthorizationEndpoint 类的 getSuccessfulRedirect 方法 + * + * @param redirectUri 重定向 URI + * @param authorizationCode 授权码 + * @param state 状态 + * @return 授权码模式下的重定向 URI + */ + public static String buildAuthorizationCodeRedirectUri(String redirectUri, String authorizationCode, String state) { + Map query = new LinkedHashMap<>(); + query.put("code", authorizationCode); + if (state != null) { + query.put("state", state); + } + return HttpUtils.append(redirectUri, query, null, false); + } + + /** + * 构建简化模式下,重定向的 URI + * + * copy from Spring Security OAuth2 的 AuthorizationEndpoint 类的 appendAccessToken 方法 + * + * @param redirectUri 重定向 URI + * @param accessToken 访问令牌 + * @param state 状态 + * @param expireTime 过期时间 + * @param scopes 授权范围 + * @param additionalInformation 附加信息 + * @return 简化授权模式下的重定向 URI + */ + public static String buildImplicitRedirectUri(String redirectUri, String accessToken, String state, LocalDateTime expireTime, + Collection scopes, Map additionalInformation) { + Map vars = new LinkedHashMap(); + Map keys = new HashMap(); + vars.put("access_token", accessToken); + vars.put("token_type", SecurityFrameworkUtils.AUTHORIZATION_BEARER.toLowerCase()); + if (state != null) { + vars.put("state", state); + } + if (expireTime != null) { + vars.put("expires_in", getExpiresIn(expireTime)); + } + if (CollUtil.isNotEmpty(scopes)) { + vars.put("scope", buildScopeStr(scopes)); + } + if (CollUtil.isNotEmpty(additionalInformation)) { + for (String key : additionalInformation.keySet()) { + Object value = additionalInformation.get(key); + if (value != null) { + keys.put("extra_" + key, key); + vars.put("extra_" + key, value); + } + } + } + // Do not include the refresh token (even if there is one) + return HttpUtils.append(redirectUri, vars, keys, true); + } + + public static String buildUnsuccessfulRedirect(String redirectUri, String responseType, String state, + String error, String description) { + Map query = new LinkedHashMap(); + query.put("error", error); + query.put("error_description", description); + if (state != null) { + query.put("state", state); + } + return HttpUtils.append(redirectUri, query, null, !responseType.contains("code")); + } + + public static long getExpiresIn(LocalDateTime expireTime) { + return LocalDateTimeUtil.between(LocalDateTime.now(), expireTime, ChronoUnit.SECONDS); + } + + public static String buildScopeStr(Collection scopes) { + return CollUtil.join(scopes, " "); + } + + public static List buildScopes(String scope) { + return StrUtil.split(scope, ' '); + } + +} diff --git a/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java new file mode 100644 index 0000000..97ca1f1 --- /dev/null +++ b/yudao-module/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java @@ -0,0 +1,4 @@ +/** + * 每个模块的 util 包,放专属当前模块的 Utils 工具类 + */ +package cn.iocoder.yudao.module.system.util;